From f6a1b2a26d0f547d14499716f3e44e98e0372305 Mon Sep 17 00:00:00 2001 From: Raihan <17radf@gmail.com> Date: Tue, 6 May 2025 12:04:42 +0700 Subject: [PATCH] initial commit --- README.md | 0 ems-model/.gitignore | 11 + .../.ipynb_checkpoints/model-checkpoint.ipynb | 6 + ems-model/.python-version | 1 + ems-model/README.md | 10 + ems-model/api.py | 127 + ems-model/csv/ems_data.csv | 155 + ems-model/csv/ems_journal.csv | 155 + ems-model/csv/ems_test.csv | 0 ems-model/model.ipynb | 1671 +++ ems-model/model.py | 178 + ems-model/pyproject.toml | 15 + ems-model/shuffle.py | 29 + ems-model/treatment.py | 17 + ems-model/uv.lock | 1892 +++ ems-sense/.editorconfig | 18 + ems-sense/.env.example | 66 + ems-sense/.gitattributes | 11 + ems-sense/.gitignore | 23 + ems-sense/README.md | 33 + .../Auth/VerifyEmailController.php | 27 + ems-sense/app/Http/Controllers/Controller.php | 8 + .../Http/Controllers/TreatmentController.php | 13 + ems-sense/app/Livewire/Actions/Logout.php | 20 + ems-sense/app/Livewire/Forms/LoginForm.php | 72 + ems-sense/app/Models/Species.php | 16 + ems-sense/app/Models/Treatment.php | 21 + ems-sense/app/Models/User.php | 53 + .../app/Policies/ModelSettingsPolicy.php | 32 + .../app/Providers/AppServiceProvider.php | 27 + .../app/Providers/VoltServiceProvider.php | 28 + ems-sense/app/View/Components/AppLayout.php | 17 + ems-sense/app/View/Components/GuestLayout.php | 17 + ems-sense/artisan | 15 + ems-sense/bootstrap/app.php | 18 + ems-sense/bootstrap/cache/.gitignore | 2 + ems-sense/bootstrap/providers.php | 6 + ems-sense/composer.json | 77 + ems-sense/composer.lock | 10560 ++++++++++++++++ ems-sense/config/app.php | 126 + ems-sense/config/auth.php | 115 + ems-sense/config/cache.php | 108 + ems-sense/config/database.php | 173 + ems-sense/config/filament.php | 91 + ems-sense/config/filesystems.php | 77 + ems-sense/config/logging.php | 132 + ems-sense/config/mail.php | 116 + ems-sense/config/queue.php | 112 + ems-sense/config/services.php | 38 + ems-sense/config/session.php | 217 + ems-sense/database/.gitignore | 1 + ems-sense/database/factories/UserFactory.php | 44 + .../0001_01_01_000000_create_users_table.php | 49 + .../0001_01_01_000001_create_cache_table.php | 35 + .../0001_01_01_000002_create_jobs_table.php | 57 + ...2025_01_13_100520_create_species_table.php | 28 + ...5_01_13_100524_create_treatments_table.php | 37 + ...is_verified_column_to_treatments_table.php | 28 + ..._164943_add_role_column_to_users_table.php | 28 + ...dd_is_added_column_to_treatments_table.php | 28 + ...0_add_note_column_for_treatments_table.php | 28 + ems-sense/database/seeders/DatabaseSeeder.php | 35 + ems-sense/database/seeders/SpeciesSeeder.php | 44 + ems-sense/package.json | 20 + ems-sense/phpunit.xml | 33 + ems-sense/pnpm-lock.yaml | 1741 +++ ems-sense/postcss.config.js | 7 + ems-sense/public/.htaccess | 21 + ems-sense/public/css/filament/forms/forms.css | 49 + .../public/css/filament/support/support.css | 1 + ems-sense/public/images/favicon.png | Bin 0 -> 165749 bytes ems-sense/public/images/plant_logo.png | Bin 0 -> 73718 bytes ems-sense/public/images/plant_logo_v2.png | Bin 0 -> 165749 bytes ems-sense/public/index.php | 17 + .../filament/forms/components/color-picker.js | 1 + .../forms/components/date-time-picker.js | 1 + .../filament/forms/components/file-upload.js | 123 + .../js/filament/forms/components/key-value.js | 1 + .../forms/components/markdown-editor.js | 51 + .../filament/forms/components/rich-editor.js | 150 + .../js/filament/forms/components/select.js | 6 + .../filament/forms/components/tags-input.js | 1 + .../js/filament/forms/components/textarea.js | 1 + .../filament/notifications/notifications.js | 1 + .../js/filament/support/async-alpine.js | 1 + .../public/js/filament/support/support.js | 46 + ems-sense/public/robots.txt | 2 + ems-sense/resources/css/app.css | 4 + ems-sense/resources/js/app.js | 1 + ems-sense/resources/js/bootstrap.js | 4 + .../views/components/action-message.blade.php | 10 + .../components/application-logo.blade.php | 1 + .../components/auth-session-status.blade.php | 7 + .../views/components/danger-button.blade.php | 3 + .../views/components/dropdown-link.blade.php | 1 + .../views/components/dropdown.blade.php | 35 + .../views/components/input-error.blade.php | 9 + .../views/components/input-label.blade.php | 5 + .../views/components/modal.blade.php | 78 + .../views/components/nav-link.blade.php | 11 + .../views/components/primary-button.blade.php | 3 + .../components/responsive-nav-link.blade.php | 11 + .../components/secondary-button.blade.php | 3 + .../views/components/text-input.blade.php | 3 + ems-sense/resources/views/dashboard.blade.php | 17 + .../resources/views/layouts/app.blade.php | 42 + .../resources/views/layouts/guest.blade.php | 32 + ems-sense/resources/views/livewire/.gitkeep | 0 .../livewire/layout/navigation.blade.php | 148 + .../pages/auth/confirm-password.blade.php | 62 + .../pages/auth/forgot-password.blade.php | 61 + .../views/livewire/pages/auth/login.blade.php | 71 + .../livewire/pages/auth/register.blade.php | 88 + .../pages/auth/reset-password.blade.php | 105 + .../pages/auth/verify-email.blade.php | 58 + .../livewire/pages/browse/index.blade.php | 10 + .../livewire/pages/browse/list.blade.php | 157 + .../livewire/pages/dashboard/index.blade.php | 226 + .../livewire/pages/model/index.blade.php | 25 + .../export-and-overwrite-csv.blade.php | 188 + .../model/settings/retrain-model.blade.php | 133 + .../livewire/pages/treatment/create.blade.php | 374 + .../livewire/pages/treatment/index.blade.php | 11 + .../livewire/pages/treatment/list.blade.php | 134 + .../profile/delete-user-form.blade.php | 79 + .../profile/update-password-form.blade.php | 79 + .../update-profile-information-form.blade.php | 115 + .../livewire/welcome/navigation.blade.php | 26 + ems-sense/resources/views/profile.blade.php | 29 + ems-sense/resources/views/welcome.blade.php | 145 + ems-sense/routes/auth.php | 31 + ems-sense/routes/console.php | 8 + ems-sense/routes/web.php | 27 + ems-sense/storage/app/.gitignore | 4 + ems-sense/storage/app/private/.gitignore | 2 + ems-sense/storage/app/public/.gitignore | 2 + ems-sense/storage/framework/.gitignore | 9 + ems-sense/storage/framework/cache/.gitignore | 3 + .../storage/framework/cache/data/.gitignore | 2 + .../storage/framework/sessions/.gitignore | 2 + .../storage/framework/testing/.gitignore | 2 + ems-sense/storage/framework/views/.gitignore | 2 + ems-sense/storage/logs/.gitignore | 2 + ems-sense/tailwind.config.js | 23 + .../tests/Feature/Auth/AuthenticationTest.php | 72 + .../Feature/Auth/EmailVerificationTest.php | 46 + .../Feature/Auth/PasswordConfirmationTest.php | 46 + .../tests/Feature/Auth/PasswordResetTest.php | 73 + .../tests/Feature/Auth/PasswordUpdateTest.php | 41 + .../tests/Feature/Auth/RegistrationTest.php | 27 + ems-sense/tests/Feature/ExampleTest.php | 7 + ems-sense/tests/Feature/ProfileTest.php | 89 + ems-sense/tests/Pest.php | 47 + ems-sense/tests/TestCase.php | 10 + ems-sense/tests/Unit/ExampleTest.php | 5 + ems-sense/vite.config.js | 14 + 156 files changed, 22668 insertions(+) create mode 100644 README.md create mode 100644 ems-model/.gitignore create mode 100644 ems-model/.ipynb_checkpoints/model-checkpoint.ipynb create mode 100644 ems-model/.python-version create mode 100644 ems-model/README.md create mode 100644 ems-model/api.py create mode 100644 ems-model/csv/ems_data.csv create mode 100644 ems-model/csv/ems_journal.csv create mode 100644 ems-model/csv/ems_test.csv create mode 100644 ems-model/model.ipynb create mode 100644 ems-model/model.py create mode 100644 ems-model/pyproject.toml create mode 100644 ems-model/shuffle.py create mode 100644 ems-model/treatment.py create mode 100644 ems-model/uv.lock create mode 100644 ems-sense/.editorconfig create mode 100644 ems-sense/.env.example create mode 100644 ems-sense/.gitattributes create mode 100644 ems-sense/.gitignore create mode 100644 ems-sense/README.md create mode 100644 ems-sense/app/Http/Controllers/Auth/VerifyEmailController.php create mode 100644 ems-sense/app/Http/Controllers/Controller.php create mode 100644 ems-sense/app/Http/Controllers/TreatmentController.php create mode 100644 ems-sense/app/Livewire/Actions/Logout.php create mode 100644 ems-sense/app/Livewire/Forms/LoginForm.php create mode 100644 ems-sense/app/Models/Species.php create mode 100644 ems-sense/app/Models/Treatment.php create mode 100644 ems-sense/app/Models/User.php create mode 100644 ems-sense/app/Policies/ModelSettingsPolicy.php create mode 100644 ems-sense/app/Providers/AppServiceProvider.php create mode 100644 ems-sense/app/Providers/VoltServiceProvider.php create mode 100644 ems-sense/app/View/Components/AppLayout.php create mode 100644 ems-sense/app/View/Components/GuestLayout.php create mode 100755 ems-sense/artisan create mode 100644 ems-sense/bootstrap/app.php create mode 100644 ems-sense/bootstrap/cache/.gitignore create mode 100644 ems-sense/bootstrap/providers.php create mode 100644 ems-sense/composer.json create mode 100644 ems-sense/composer.lock create mode 100644 ems-sense/config/app.php create mode 100644 ems-sense/config/auth.php create mode 100644 ems-sense/config/cache.php create mode 100644 ems-sense/config/database.php create mode 100644 ems-sense/config/filament.php create mode 100644 ems-sense/config/filesystems.php create mode 100644 ems-sense/config/logging.php create mode 100644 ems-sense/config/mail.php create mode 100644 ems-sense/config/queue.php create mode 100644 ems-sense/config/services.php create mode 100644 ems-sense/config/session.php create mode 100644 ems-sense/database/.gitignore create mode 100644 ems-sense/database/factories/UserFactory.php create mode 100644 ems-sense/database/migrations/0001_01_01_000000_create_users_table.php create mode 100644 ems-sense/database/migrations/0001_01_01_000001_create_cache_table.php create mode 100644 ems-sense/database/migrations/0001_01_01_000002_create_jobs_table.php create mode 100644 ems-sense/database/migrations/2025_01_13_100520_create_species_table.php create mode 100644 ems-sense/database/migrations/2025_01_13_100524_create_treatments_table.php create mode 100644 ems-sense/database/migrations/2025_01_14_162731_add_is_verified_column_to_treatments_table.php create mode 100644 ems-sense/database/migrations/2025_01_14_164943_add_role_column_to_users_table.php create mode 100644 ems-sense/database/migrations/2025_01_15_095514_add_is_added_column_to_treatments_table.php create mode 100644 ems-sense/database/migrations/2025_02_20_043320_add_note_column_for_treatments_table.php create mode 100644 ems-sense/database/seeders/DatabaseSeeder.php create mode 100644 ems-sense/database/seeders/SpeciesSeeder.php create mode 100644 ems-sense/package.json create mode 100644 ems-sense/phpunit.xml create mode 100644 ems-sense/pnpm-lock.yaml create mode 100644 ems-sense/postcss.config.js create mode 100644 ems-sense/public/.htaccess create mode 100644 ems-sense/public/css/filament/forms/forms.css create mode 100644 ems-sense/public/css/filament/support/support.css create mode 100644 ems-sense/public/images/favicon.png create mode 100644 ems-sense/public/images/plant_logo.png create mode 100644 ems-sense/public/images/plant_logo_v2.png create mode 100644 ems-sense/public/index.php create mode 100644 ems-sense/public/js/filament/forms/components/color-picker.js create mode 100644 ems-sense/public/js/filament/forms/components/date-time-picker.js create mode 100644 ems-sense/public/js/filament/forms/components/file-upload.js create mode 100644 ems-sense/public/js/filament/forms/components/key-value.js create mode 100644 ems-sense/public/js/filament/forms/components/markdown-editor.js create mode 100644 ems-sense/public/js/filament/forms/components/rich-editor.js create mode 100644 ems-sense/public/js/filament/forms/components/select.js create mode 100644 ems-sense/public/js/filament/forms/components/tags-input.js create mode 100644 ems-sense/public/js/filament/forms/components/textarea.js create mode 100644 ems-sense/public/js/filament/notifications/notifications.js create mode 100644 ems-sense/public/js/filament/support/async-alpine.js create mode 100644 ems-sense/public/js/filament/support/support.js create mode 100644 ems-sense/public/robots.txt create mode 100644 ems-sense/resources/css/app.css create mode 100644 ems-sense/resources/js/app.js create mode 100644 ems-sense/resources/js/bootstrap.js create mode 100644 ems-sense/resources/views/components/action-message.blade.php create mode 100644 ems-sense/resources/views/components/application-logo.blade.php create mode 100644 ems-sense/resources/views/components/auth-session-status.blade.php create mode 100644 ems-sense/resources/views/components/danger-button.blade.php create mode 100644 ems-sense/resources/views/components/dropdown-link.blade.php create mode 100644 ems-sense/resources/views/components/dropdown.blade.php create mode 100644 ems-sense/resources/views/components/input-error.blade.php create mode 100644 ems-sense/resources/views/components/input-label.blade.php create mode 100644 ems-sense/resources/views/components/modal.blade.php create mode 100644 ems-sense/resources/views/components/nav-link.blade.php create mode 100644 ems-sense/resources/views/components/primary-button.blade.php create mode 100644 ems-sense/resources/views/components/responsive-nav-link.blade.php create mode 100644 ems-sense/resources/views/components/secondary-button.blade.php create mode 100644 ems-sense/resources/views/components/text-input.blade.php create mode 100644 ems-sense/resources/views/dashboard.blade.php create mode 100644 ems-sense/resources/views/layouts/app.blade.php create mode 100644 ems-sense/resources/views/layouts/guest.blade.php create mode 100644 ems-sense/resources/views/livewire/.gitkeep create mode 100644 ems-sense/resources/views/livewire/layout/navigation.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/auth/confirm-password.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/auth/forgot-password.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/auth/login.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/auth/register.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/auth/reset-password.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/auth/verify-email.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/browse/index.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/browse/list.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/dashboard/index.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/model/index.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/model/settings/export-and-overwrite-csv.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/model/settings/retrain-model.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/treatment/create.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/treatment/index.blade.php create mode 100644 ems-sense/resources/views/livewire/pages/treatment/list.blade.php create mode 100644 ems-sense/resources/views/livewire/profile/delete-user-form.blade.php create mode 100644 ems-sense/resources/views/livewire/profile/update-password-form.blade.php create mode 100644 ems-sense/resources/views/livewire/profile/update-profile-information-form.blade.php create mode 100644 ems-sense/resources/views/livewire/welcome/navigation.blade.php create mode 100644 ems-sense/resources/views/profile.blade.php create mode 100644 ems-sense/resources/views/welcome.blade.php create mode 100644 ems-sense/routes/auth.php create mode 100644 ems-sense/routes/console.php create mode 100644 ems-sense/routes/web.php create mode 100644 ems-sense/storage/app/.gitignore create mode 100644 ems-sense/storage/app/private/.gitignore create mode 100644 ems-sense/storage/app/public/.gitignore create mode 100644 ems-sense/storage/framework/.gitignore create mode 100644 ems-sense/storage/framework/cache/.gitignore create mode 100644 ems-sense/storage/framework/cache/data/.gitignore create mode 100644 ems-sense/storage/framework/sessions/.gitignore create mode 100644 ems-sense/storage/framework/testing/.gitignore create mode 100644 ems-sense/storage/framework/views/.gitignore create mode 100644 ems-sense/storage/logs/.gitignore create mode 100644 ems-sense/tailwind.config.js create mode 100644 ems-sense/tests/Feature/Auth/AuthenticationTest.php create mode 100644 ems-sense/tests/Feature/Auth/EmailVerificationTest.php create mode 100644 ems-sense/tests/Feature/Auth/PasswordConfirmationTest.php create mode 100644 ems-sense/tests/Feature/Auth/PasswordResetTest.php create mode 100644 ems-sense/tests/Feature/Auth/PasswordUpdateTest.php create mode 100644 ems-sense/tests/Feature/Auth/RegistrationTest.php create mode 100644 ems-sense/tests/Feature/ExampleTest.php create mode 100644 ems-sense/tests/Feature/ProfileTest.php create mode 100644 ems-sense/tests/Pest.php create mode 100644 ems-sense/tests/TestCase.php create mode 100644 ems-sense/tests/Unit/ExampleTest.php create mode 100644 ems-sense/vite.config.js diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/ems-model/.gitignore b/ems-model/.gitignore new file mode 100644 index 0000000..4a65e2a --- /dev/null +++ b/ems-model/.gitignore @@ -0,0 +1,11 @@ +# Python-generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info +pickles/ + +# Virtual environments +.venv diff --git a/ems-model/.ipynb_checkpoints/model-checkpoint.ipynb b/ems-model/.ipynb_checkpoints/model-checkpoint.ipynb new file mode 100644 index 0000000..363fcab --- /dev/null +++ b/ems-model/.ipynb_checkpoints/model-checkpoint.ipynb @@ -0,0 +1,6 @@ +{ + "cells": [], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ems-model/.python-version b/ems-model/.python-version new file mode 100644 index 0000000..24ee5b1 --- /dev/null +++ b/ems-model/.python-version @@ -0,0 +1 @@ +3.13 diff --git a/ems-model/README.md b/ems-model/README.md new file mode 100644 index 0000000..9398381 --- /dev/null +++ b/ems-model/README.md @@ -0,0 +1,10 @@ +## Overview +This is the machine learning model for the EMS-Sense project. + +## How to use +This model is built using [sklearn](https://scikit-learn.org/stable). To use it, simply follow these steps: +1. Setup uv on your machine [uv](https://github.com/astral-sh/uv). +2. Run `uv venv` to create your virtual environment. +3. Run `uv pip install -r pyproject.toml` to install the dependencies. +4. Run `uv run model.py` to train the model. +5. Run `fastapi dev api.py` to serve the api for the model. diff --git a/ems-model/api.py b/ems-model/api.py new file mode 100644 index 0000000..53c8e14 --- /dev/null +++ b/ems-model/api.py @@ -0,0 +1,127 @@ +from fastapi import FastAPI, File, UploadFile, HTTPException +from fastapi.encoders import jsonable_encoder +from fastapi.responses import JSONResponse +from treatment import Treatment +import pandas as pd +import pickle +import subprocess + +app = FastAPI() + + +def predict(treatment: Treatment): + # load the model from pickle files + with open("pickles/ems_model.pkl", "rb") as f: + model = pickle.load(f) + + with open("pickles/label_encoding.pkl", "rb") as f: + le = pickle.load(f) + + with open("pickles/scaler_encoding.pkl", "rb") as f: + scaler = pickle.load(f) + + # encode the species species + species = le.transform([treatment.species]) + + # normalize the input data + transformed_data = scaler.transform( + pd.DataFrame( + { + "soakDuration": [treatment.soakDuration], + "lowestTemp": [treatment.lowestTemp], + "highestTemp": [treatment.highestTemp], + } + ) + ) + + data = pd.DataFrame( + { + "species": [species], + "emsConcentration": [treatment.emsConcentration], + "soakDuration": [transformed_data[0][0]], + "lowestTemp": [transformed_data[0][1]], + "highestTemp": [transformed_data[0][2]], + } + ) + + prediction_prob = model.predict_proba(data)[0] + prediction = model.predict(data)[0] + + confidence_score = prediction_prob[prediction] * 100 + + result = { + "result": int(prediction), + "confidence_score": float(confidence_score), + "success_rate": float(prediction_prob[1] * 100), + } + + return JSONResponse(content=jsonable_encoder(result)) + + +@app.post("/process") +def process(treatment: Treatment): + return predict(treatment) + + +@app.get("/species") +def get_species(): + df = pd.read_csv("csv/ems_data.csv") + unique_values = df.iloc[:, 0].drop_duplicates().tolist() + + return JSONResponse(content=unique_values) + + +@app.get("/retrain-model") +def retrain_model(): + try: + result = subprocess.run( + ["python", "model.py"], + check=True, + capture_output=True, + text=True, + ) + output = result.stdout.strip() + return {"message": "Retraining succeeded!", "details": output} + except subprocess.CalledProcessError as e: + return {"message": "Retraining failed!", "error": str(e)} + + +@app.post("/upload-csv") +async def upload_csv(file: UploadFile = File(...)): + try: + # check if the uploaded file is a csv + if not file.filename.endswith(".csv"): + raise HTTPException(status_code=400, detail="Only CSV files are allowed.") + + # save the uploaded file to csv/ems_data.csv (overwrite) + file_path = "csv/ems_data.csv" + with open(file_path, "wb") as f: + content = await file.read() + f.write(content) + + # verify if the file is valid (optional: try loading it as a dataframe) + try: + pd.read_csv( + file_path + ) + except Exception: + os.remove(file_path) + raise HTTPException( + status_code=400, detail="Uploaded file is not a valid CSV." + ) + + return {"message": "File uploaded and overwritten successfully!"} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + +@app.get("/get-csv") +def get_csv(): + file_path = "csv/ems_data.csv" + + try: + df = pd.read_csv(file_path) + + data = df.to_dict(orient="records") + return data + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error processing CSV: {str(e)}") diff --git a/ems-model/csv/ems_data.csv b/ems-model/csv/ems_data.csv new file mode 100644 index 0000000..3f807f4 --- /dev/null +++ b/ems-model/csv/ems_data.csv @@ -0,0 +1,155 @@ +species,emsConcentration,soakDuration,lowestTemp,highestTemp,result +Cotton - TM-1,1.50,180,20.0,32.0,1 +Hemp - Lembang A,0.25,360,25.0,30.0,0 +Cotton - TM-1,3.50,360,20.0,32.0,0 +Hyoscyamus niger - Black Henbane,0.02,60,25.0,28.0,1 +Sunflower - Helianthus annuus (BBS-1),1.00,480,22.0,25.0,0 +Cotton - TM-1,0.50,360,20.0,32.0,0 +Watermelon - G42,0.10,40,25.0,30.0,1 +Sunflower - Helianthus annuus (BBS-1),2.00,480,22.0,25.0,0 +Watermelon - G42,0.15,80,25.0,30.0,0 +Cotton - TM-1,1.50,360,20.0,32.0,1 +Marigold - Tagetes patula,0.00,2880,25.0,30.0,1 +Hemp - Bandung A,0.50,180,25.0,30.0,1 +Hyoscyamus niger - Black Henbane,0.03,60,25.0,28.0,1 +Marigold - Tagetes patula,1.50,240,25.0,30.0,0 +Hemp - Kumamoto,0.75,180,25.0,30.0,1 +Sesame - Tilottama,1.00,360,23.0,25.0,1 +Hemp - Indochina,0.75,180,25.0,30.0,1 +Hyoscyamus niger - Black Henbane,0.06,60,25.0,28.0,0 +Sesame - Tilottama,1.00,120,23.0,25.0,0 +Marigold - Tagetes patula,0.60,240,25.0,30.0,0 +Chinese cabbage - Brassica rapa ssp. pekinensis,0.10,360,3.0,18.0,0 +Sesame - Tilottama,0.50,240,23.0,25.0,0 +Marigold - Tagetes erecta,0.80,240,25.0,30.0,1 +Watermelon - G42,0.20,60,25.0,30.0,0 +Fodder Barley - Hordeum vulgare,0.50,90,24.0,24.0,0 +Marigold - Tagetes patula,1.00,240,25.0,30.0,0 +Hemp - Lembang A,0.50,6,25.0,30.0,0 +Watermelon - G42,0.10,60,25.0,30.0,1 +Maize - Zea mays (B73),0.70,480,25.0,30.0,1 +Fodder Barley - Hordeum vulgare,0.10,30,24.0,24.0,0 +Marigold - Tagetes patula,0.19,360,25.0,30.0,1 +Fodder Barley - Hordeum vulgare,0.90,30,24.0,24.0,0 +Fodder Barley - Hordeum vulgare,0.10,120,24.0,24.0,1 +Marigold - Tagetes erecta,0.40,240,25.0,30.0,1 +Marigold - Tagetes patula,2.50,240,25.0,30.0,0 +Sesame - Tilottama,0.25,360,23.0,25.0,0 +Hemp - Indochina,1.00,180,25.0,30.0,1 +Fodder Barley - Hordeum vulgare,0.90,60,24.0,24.0,0 +Fodder Barley - Hordeum vulgare,0.30,30,24.0,24.0,0 +Watermelon - G42,0.15,60,25.0,30.0,1 +Watermelon - G42,0.20,40,25.0,30.0,0 +Cotton - Luyanmian21,1.50,360,20.0,32.0,1 +Hemp - Lembang A,0.50,180,25.0,30.0,1 +Hemp - Lembang A,0.75,180,25.0,30.0,1 +Hemp - Bandung A,0.75,180,25.0,30.0,1 +Fodder Barley - Hordeum vulgare,0.50,60,24.0,24.0,0 +Fodder Barley - Hordeum vulgare,0.10,60,24.0,24.0,1 +Hemp - Seiki Selskin,0.50,180,25.0,30.0,1 +Marigold - Tagetes erecta,0.00,2880,25.0,30.0,1 +Sunflower - Helianthus annuus (BBS-1),0.75,480,22.0,25.0,0 +Fodder Barley - Hordeum vulgare,0.90,150,24.0,24.0,0 +Hemp - Bandung A,0.25,180,25.0,30.0,0 +Sesame - Tilottama,0.50,360,23.0,25.0,1 +Hemp - Indochina,0.25,360,25.0,30.0,0 +Cotton - Luyanmian21,3.50,360,20.0,32.0,0 +Hyoscyamus niger - Black Henbane,0.08,60,25.0,28.0,0 +Sunflower - Helianthus annuus (BBS-1),3.00,480,22.0,25.0,0 +Maize - Zea mays (B73),1.00,120,25.0,30.0,1 +Marigold - Tagetes erecta,1.00,240,25.0,30.0,0 +Hemp - Indochina,0.50,360,25.0,30.0,1 +Fodder Barley - Hordeum vulgare,0.90,120,24.0,24.0,0 +Sesame - Tilottama,1.00,240,23.0,25.0,1 +Hemp - Kumamoto,0.75,360,25.0,30.0,0 +Fodder Barley - Hordeum vulgare,0.90,90,24.0,24.0,0 +Hemp - Lembang A,0.75,6,25.0,30.0,1 +Fodder Barley - Hordeum vulgare,0.50,30,24.0,24.0,0 +Cotton - Luyanmian21,0.50,180,20.0,32.0,0 +Jasmine - Jasminum grandiflorum,0.40,60,28.0,30.0,0 +Chinese cabbage - Brassica rapa ssp. pekinensis,0.70,1440,5.0,25.0,1 +Fodder Barley - Hordeum vulgare,0.30,60,24.0,24.0,1 +Hemp - Lembang A,1.00,180,25.0,30.0,0 +Hemp - Bandung A,1.00,180,25.0,30.0,0 +Hemp - Seiki Selskin,0.75,180,25.0,30.0,1 +Hemp - Seiki Selskin,0.75,360,25.0,30.0,1 +Hemp - Indochina,1.00,360,25.0,30.0,1 +Fenugreek - Trigonella foenum-graecum,0.30,360,25.0,30.0,0 +Hemp - Indochina,0.25,180,25.0,30.0,0 +Hyoscyamus niger - Black Henbane,0.07,60,25.0,28.0,0 +Fodder Barley - Hordeum vulgare,0.30,150,24.0,24.0,0 +Marigold - Tagetes patula,0.02,1440,25.0,30.0,0 +Cotton - Luyanmian21,2.50,360,20.0,32.0,0 +Marigold - Tagetes patula,2.00,240,25.0,30.0,1 +Cotton - TM-1,2.50,360,20.0,32.0,0 +Hemp - Lembang A,1.00,360,25.0,30.0,0 +Hyoscyamus niger - Black Henbane,0.10,60,25.0,28.0,0 +Fodder Barley - Hordeum vulgare,0.70,120,24.0,24.0,0 +Cotton - Luyanmian21,3.50,180,20.0,32.0,0 +Hyoscyamus niger - Black Henbane,0.04,60,25.0,28.0,0 +Fodder Barley - Hordeum vulgare,0.70,150,24.0,24.0,0 +Hemp - Lembang A,0.25,180,25.0,30.0,1 +Jasmine - Jasminum grandiflorum,0.30,60,28.0,30.0,1 +Jasmine - Jasminum grandiflorum,0.35,60,28.0,30.0,0 +Hemp - Indochina,0.75,360,25.0,30.0,1 +Cotton - TM-1,3.50,180,20.0,32.0,0 +Cotton - TM-1,2.50,180,20.0,32.0,0 +Marigold - Tagetes patula,0.20,240,25.0,30.0,0 +Hemp - Kumamoto,0.50,180,25.0,30.0,1 +Sesame - Tilottama,0.25,120,23.0,25.0,0 +Sunflower - Helianthus annuus (BBS-1),0.60,480,22.0,25.0,1 +Fenugreek - Trigonella foenum-graecum,0.40,360,25.0,30.0,0 +Jasmine - Jasminum grandiflorum,0.25,60,28.0,30.0,1 +Cotton - TM-1,0.50,180,20.0,32.0,0 +Fodder Barley - Hordeum vulgare,0.70,60,24.0,24.0,0 +Marigold - Tagetes erecta,0.00,240,25.0,30.0,0 +Hemp - Kumamoto,0.50,360,25.0,30.0,1 +Hemp - Kumamoto,1.00,360,25.0,30.0,1 +Marigold - Tagetes erecta,0.60,240,25.0,30.0,1 +Fodder Barley - Hordeum vulgare,0.50,120,24.0,24.0,0 +Fodder Barley - Hordeum vulgare,0.30,120,24.0,24.0,0 +Marigold - Tagetes patula,0.80,240,25.0,30.0,0 +Hemp - Seiki Selskin,1.00,360,25.0,30.0,1 +Hemp - Indochina,0.50,180,25.0,30.0,1 +Watermelon - G42,0.20,80,25.0,30.0,0 +Watermelon - G42,0.15,40,25.0,30.0,1 +Hemp - Seiki Selskin,0.50,360,25.0,30.0,0 +Hemp - Kumamoto,0.25,180,25.0,30.0,0 +Fodder Barley - Hordeum vulgare,0.50,150,24.0,24.0,0 +Cotton - Luyanmian21,2.50,180,20.0,32.0,0 +Hemp - Seiki Selskin,0.25,180,25.0,30.0,1 +Marigold - Tagetes erecta,0.20,240,25.0,30.0,0 +Hemp - Bandung A,0.25,360,25.0,30.0,1 +Fodder Barley - Hordeum vulgare,0.70,30,24.0,24.0,0 +Fodder Barley - Hordeum vulgare,0.10,90,24.0,24.0,1 +Hemp - Bandung A,1.00,360,25.0,30.0,0 +Marigold - Tagetes patula,0.40,240,25.0,30.0,0 +Hyoscyamus niger - Black Henbane,0.05,60,25.0,28.0,0 +Hemp - Bandung A,0.75,360,25.0,30.0,1 +Sesame - Tilottama,0.50,120,23.0,25.0,0 +Marigold - Tagetes patula,3.00,240,25.0,30.0,0 +Maize - Zea mays (B73),0.50,240,25.0,30.0,0 +Hemp - Seiki Selskin,0.25,360,25.0,30.0,0 +Fodder Barley - Hordeum vulgare,0.10,150,24.0,24.0,0 +Cotton - Luyanmian21,0.50,360,20.0,32.0,0 +Fenugreek - Trigonella foenum-graecum,0.10,360,25.0,30.0,1 +Marigold - Tagetes erecta,0.01,1440,25.0,30.0,1 +Sesame - Tilottama,0.25,240,23.0,25.0,0 +Marigold - Tagetes patula,0.00,240,25.0,30.0,0 +Hemp - Kumamoto,1.00,180,25.0,30.0,0 +Sunflower - Helianthus annuus (BBS-1),0.50,480,22.0,25.0,1 +Hyoscyamus niger - Black Henbane,0.01,60,25.0,28.0,1 +Chinese cabbage - Brassica rapa ssp. pekinensis,0.50,720,4.0,25.0,1 +Hemp - Bandung A,0.50,360,25.0,30.0,1 +Fodder Barley - Hordeum vulgare,0.70,90,24.0,24.0,0 +Chinese cabbage - Brassica rapa ssp. pekinensis,1.00,2880,4.0,28.0,1 +Fenugreek - Trigonella foenum-graecum,0.20,360,25.0,30.0,1 +Cotton - Luyanmian21,1.50,180,20.0,32.0,1 +Watermelon - G42,0.10,80,25.0,30.0,0 +Hemp - Seiki Selskin,1.00,180,25.0,30.0,0 +Fodder Barley - Hordeum vulgare,0.30,90,24.0,24.0,1 +Maize - Zea mays (B73),1.20,720,25.0,30.0,0 +Hyoscyamus niger - Black Henbane,0.09,60,25.0,28.0,0 +Hemp - Kumamoto,0.25,360,25.0,30.0,0 +Chinese cabbage - Brassica rapa ssp. pekinensis,0.30,480,4.0,20.0,0 +Marigold - Tagetes erecta,0.08,360,25.0,30.0,0 diff --git a/ems-model/csv/ems_journal.csv b/ems-model/csv/ems_journal.csv new file mode 100644 index 0000000..4b3b12a --- /dev/null +++ b/ems-model/csv/ems_journal.csv @@ -0,0 +1,155 @@ +species,emsConcentration,soakDuration,lowestTemp,highestTemp,result +Hemp - Kumamoto,0.25,180,25,30,0 +Hemp - Kumamoto,0.50,180,25,30,1 +Hemp - Kumamoto,0.75,180,25,30,1 +Hemp - Kumamoto,1.00,180,25,30,0 +Hemp - Kumamoto,0.25,360,25,30,0 +Hemp - Kumamoto,0.50,360,25,30,1 +Hemp - Kumamoto,0.75,360,25,30,0 +Hemp - Kumamoto,1.00,360,25,30,1 +Hemp - Seiki Selskin,0.25,180,25,30,1 +Hemp - Seiki Selskin,0.50,180,25,30,1 +Hemp - Seiki Selskin,0.75,180,25,30,1 +Hemp - Seiki Selskin,1.00,180,25,30,0 +Hemp - Seiki Selskin,0.25,360,25,30,0 +Hemp - Seiki Selskin,0.50,360,25,30,0 +Hemp - Seiki Selskin,0.75,360,25,30,1 +Hemp - Seiki Selskin,1.00,360,25,30,1 +Hemp - Lembang A,0.25,180,25,30,1 +Hemp - Lembang A,0.50,180,25,30,1 +Hemp - Lembang A,0.75,180,25,30,1 +Hemp - Lembang A,1.00,180,25,30,0 +Hemp - Lembang A,0.25,360,25,30,0 +Hemp - Lembang A,0.50,6,25,30,0 +Hemp - Lembang A,0.75,6,25,30,1 +Hemp - Lembang A,1.00,360,25,30,0 +Hemp - Bandung A,0.25,180,25,30,0 +Hemp - Bandung A,0.50,180,25,30,1 +Hemp - Bandung A,0.75,180,25,30,1 +Hemp - Bandung A,1.00,180,25,30,0 +Hemp - Bandung A,0.25,360,25,30,1 +Hemp - Bandung A,0.50,360,25,30,1 +Hemp - Bandung A,0.75,360,25,30,1 +Hemp - Bandung A,1.00,360,25,30,0 +Hemp - Indochina,0.25,180,25,30,0 +Hemp - Indochina,0.50,180,25,30,1 +Hemp - Indochina,0.75,180,25,30,1 +Hemp - Indochina,1.00,180,25,30,1 +Hemp - Indochina,0.25,360,25,30,0 +Hemp - Indochina,0.50,360,25,30,1 +Hemp - Indochina,0.75,360,25,30,1 +Hemp - Indochina,1.00,360,25,30,1 +Marigold - Tagetes erecta,0.0,240,25,30,0 +Marigold - Tagetes erecta,0.2,240,25,30,0 +Marigold - Tagetes erecta,0.4,240,25,30,1 +Marigold - Tagetes erecta,0.6,240,25,30,1 +Marigold - Tagetes erecta,0.8,240,25,30,1 +Marigold - Tagetes erecta,1.0,240,25,30,0 +Marigold - Tagetes erecta,0.082,360,25,30,0 +Marigold - Tagetes erecta,0.0082,1440,25,30,1 +Marigold - Tagetes erecta,0.00082,2880,25,30,1 +Marigold - Tagetes patula,0.0,240,25,30,0 +Marigold - Tagetes patula,0.2,240,25,30,0 +Marigold - Tagetes patula,0.4,240,25,30,0 +Marigold - Tagetes patula,0.6,240,25,30,0 +Marigold - Tagetes patula,0.8,240,25,30,0 +Marigold - Tagetes patula,1.0,240,25,30,0 +Marigold - Tagetes patula,1.5,240,25,30,0 +Marigold - Tagetes patula,2.0,240,25,30,1 +Marigold - Tagetes patula,2.5,240,25,30,0 +Marigold - Tagetes patula,3.0,240,25,30,0 +Marigold - Tagetes patula,0.187,360,25,30,1 +Marigold - Tagetes patula,0.0187,1440,25,30,0 +Marigold - Tagetes patula,0.00187,2880,25,30,1 +Fodder Barley - Hordeum vulgare,0.1,30,24,24,0 +Fodder Barley - Hordeum vulgare,0.1,60,24,24,1 +Fodder Barley - Hordeum vulgare,0.1,90,24,24,1 +Fodder Barley - Hordeum vulgare,0.1,120,24,24,1 +Fodder Barley - Hordeum vulgare,0.1,150,24,24,0 +Fodder Barley - Hordeum vulgare,0.3,30,24,24,0 +Fodder Barley - Hordeum vulgare,0.3,60,24,24,1 +Fodder Barley - Hordeum vulgare,0.3,90,24,24,1 +Fodder Barley - Hordeum vulgare,0.3,120,24,24,0 +Fodder Barley - Hordeum vulgare,0.3,150,24,24,0 +Fodder Barley - Hordeum vulgare,0.5,30,24,24,0 +Fodder Barley - Hordeum vulgare,0.5,60,24,24,0 +Fodder Barley - Hordeum vulgare,0.5,90,24,24,0 +Fodder Barley - Hordeum vulgare,0.5,120,24,24,0 +Fodder Barley - Hordeum vulgare,0.5,150,24,24,0 +Fodder Barley - Hordeum vulgare,0.7,30,24,24,0 +Fodder Barley - Hordeum vulgare,0.7,60,24,24,0 +Fodder Barley - Hordeum vulgare,0.7,90,24,24,0 +Fodder Barley - Hordeum vulgare,0.7,120,24,24,0 +Fodder Barley - Hordeum vulgare,0.7,150,24,24,0 +Fodder Barley - Hordeum vulgare,0.9,30,24,24,0 +Fodder Barley - Hordeum vulgare,0.9,60,24,24,0 +Fodder Barley - Hordeum vulgare,0.9,90,24,24,0 +Fodder Barley - Hordeum vulgare,0.9,120,24,24,0 +Fodder Barley - Hordeum vulgare,0.9,150,24,24,0 +Watermelon - G42,0.1,40,25,30,1 +Watermelon - G42,0.1,60,25,30,1 +Watermelon - G42,0.1,80,25,30,0 +Watermelon - G42,0.15,40,25,30,1 +Watermelon - G42,0.15,60,25,30,1 +Watermelon - G42,0.15,80,25,30,0 +Watermelon - G42,0.2,40,25,30,0 +Watermelon - G42,0.2,60,25,30,0 +Watermelon - G42,0.2,80,25,30,0 +Cotton - TM-1,0.5,180,20,32,0 +Cotton - TM-1,1.5,180,20,32,1 +Cotton - TM-1,2.5,180,20,32,0 +Cotton - TM-1,3.5,180,20,32,0 +Cotton - TM-1,0.5,360,20,32,0 +Cotton - TM-1,1.5,360,20,32,1 +Cotton - TM-1,2.5,360,20,32,0 +Cotton - TM-1,3.5,360,20,32,0 +Cotton - Luyanmian21,0.5,180,20,32,0 +Cotton - Luyanmian21,1.5,180,20,32,1 +Cotton - Luyanmian21,2.5,180,20,32,0 +Cotton - Luyanmian21,3.5,180,20,32,0 +Cotton - Luyanmian21,0.5,360,20,32,0 +Cotton - Luyanmian21,1.5,360,20,32,1 +Cotton - Luyanmian21,2.5,360,20,32,0 +Cotton - Luyanmian21,3.5,360,20,32,0 +Sesame - Tilottama,0.25,120,23,25,0 +Sesame - Tilottama,0.25,240,23,25,0 +Sesame - Tilottama,0.25,360,23,25,0 +Sesame - Tilottama,0.50,120,23,25,0 +Sesame - Tilottama,0.50,240,23,25,0 +Sesame - Tilottama,0.50,360,23,25,1 +Sesame - Tilottama,1.00,120,23,25,0 +Sesame - Tilottama,1.00,240,23,25,1 +Sesame - Tilottama,1.00,360,23,25,1 +Chinese cabbage - Brassica rapa ssp. pekinensis,0.5,720,4,25,1 +Chinese cabbage - Brassica rapa ssp. pekinensis,0.3,480,4,20,0 +Chinese cabbage - Brassica rapa ssp. pekinensis,0.7,1440,5,25,1 +Chinese cabbage - Brassica rapa ssp. pekinensis,0.1,360,3,18,0 +Chinese cabbage - Brassica rapa ssp. pekinensis,1.0,2880,4,28,1 +Jasmine - Jasminum grandiflorum,0.25,60,28,30,1 +Jasmine - Jasminum grandiflorum,0.30,60,28,30,1 +Jasmine - Jasminum grandiflorum,0.35,60,28,30,0 +Jasmine - Jasminum grandiflorum,0.40,60,28,30,0 +Maize - Zea mays (B73),1.0,120,25,30,1 +Maize - Zea mays (B73),0.5,240,25,30,0 +Maize - Zea mays (B73),0.7,480,25,30,1 +Maize - Zea mays (B73),1.2,720,25,30,0 +Sunflower - Helianthus annuus (BBS-1),0.5,480,22,25,1 +Sunflower - Helianthus annuus (BBS-1),0.6,480,22,25,1 +Sunflower - Helianthus annuus (BBS-1),0.75,480,22,25,0 +Sunflower - Helianthus annuus (BBS-1),1.0,480,22,25,0 +Sunflower - Helianthus annuus (BBS-1),2.0,480,22,25,0 +Sunflower - Helianthus annuus (BBS-1),3.0,480,22,25,0 +Fenugreek - Trigonella foenum-graecum,0.1,360,25,30,1 +Fenugreek - Trigonella foenum-graecum,0.2,360,25,30,1 +Fenugreek - Trigonella foenum-graecum,0.3,360,25,30,0 +Fenugreek - Trigonella foenum-graecum,0.4,360,25,30,0 +Hyoscyamus niger - Black Henbane,0.01,60,25,28,1 +Hyoscyamus niger - Black Henbane,0.02,60,25,28,1 +Hyoscyamus niger - Black Henbane,0.03,60,25,28,1 +Hyoscyamus niger - Black Henbane,0.04,60,25,28,0 +Hyoscyamus niger - Black Henbane,0.05,60,25,28,0 +Hyoscyamus niger - Black Henbane,0.06,60,25,28,0 +Hyoscyamus niger - Black Henbane,0.07,60,25,28,0 +Hyoscyamus niger - Black Henbane,0.08,60,25,28,0 +Hyoscyamus niger - Black Henbane,0.09,60,25,28,0 +Hyoscyamus niger - Black Henbane,0.1,60,25,28,0 diff --git a/ems-model/csv/ems_test.csv b/ems-model/csv/ems_test.csv new file mode 100644 index 0000000..e69de29 diff --git a/ems-model/model.ipynb b/ems-model/model.ipynb new file mode 100644 index 0000000..c751fef --- /dev/null +++ b/ems-model/model.ipynb @@ -0,0 +1,1671 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "564dfa7f-55ae-423a-ae59-22ac4f00364f", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "from sklearn.model_selection import StratifiedShuffleSplit, cross_val_score, train_test_split\n", + "from sklearn.ensemble import RandomForestClassifier\n", + "from sklearn.preprocessing import LabelEncoder, MinMaxScaler\n", + "from sklearn.metrics import classification_report, confusion_matrix\n", + "import numpy as np\n", + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "import pickle\n", + "import os\n", + "import subprocess\n", + "np.random.seed(42)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "b0867074-62b1-4bff-9188-0c6e73f814d0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CSV Loaded, Dataset shape: (154, 6)\n" + ] + } + ], + "source": [ + "# Load the data\n", + "df = pd.read_csv(\"csv/ems_data.csv\")\n", + "print(\"CSV Loaded, Dataset shape:\", df.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0e2ebde8-90f1-483a-a3cb-4119878459d2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
speciesemsConcentrationsoakDurationlowestTemphighestTempresult
0Cotton - TM-11.5018020.032.01
1Hemp - Lembang A0.2536025.030.00
2Cotton - TM-13.5036020.032.00
3Hyoscyamus niger - Black Henbane0.026025.028.01
4Sunflower - Helianthus annuus (BBS-1)1.0048022.025.00
.....................
149Maize - Zea mays (B73)1.2072025.030.00
150Hyoscyamus niger - Black Henbane0.096025.028.00
151Hemp - Kumamoto0.2536025.030.00
152Chinese cabbage - Brassica rapa ssp. pekinensis0.304804.020.00
153Marigold - Tagetes erecta0.0836025.030.00
\n", + "

154 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " species emsConcentration \\\n", + "0 Cotton - TM-1 1.50 \n", + "1 Hemp - Lembang A 0.25 \n", + "2 Cotton - TM-1 3.50 \n", + "3 Hyoscyamus niger - Black Henbane 0.02 \n", + "4 Sunflower - Helianthus annuus (BBS-1) 1.00 \n", + ".. ... ... \n", + "149 Maize - Zea mays (B73) 1.20 \n", + "150 Hyoscyamus niger - Black Henbane 0.09 \n", + "151 Hemp - Kumamoto 0.25 \n", + "152 Chinese cabbage - Brassica rapa ssp. pekinensis 0.30 \n", + "153 Marigold - Tagetes erecta 0.08 \n", + "\n", + " soakDuration lowestTemp highestTemp result \n", + "0 180 20.0 32.0 1 \n", + "1 360 25.0 30.0 0 \n", + "2 360 20.0 32.0 0 \n", + "3 60 25.0 28.0 1 \n", + "4 480 22.0 25.0 0 \n", + ".. ... ... ... ... \n", + "149 720 25.0 30.0 0 \n", + "150 60 25.0 28.0 0 \n", + "151 360 25.0 30.0 0 \n", + "152 480 4.0 20.0 0 \n", + "153 360 25.0 30.0 0 \n", + "\n", + "[154 rows x 6 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "d9e0823c-72bc-4c8f-959a-bcbd973f2a2c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
speciessum
0Chinese cabbage - Brassica rapa ssp. pekinensis5
1Cotton - Luyanmian218
2Cotton - TM-18
3Fenugreek - Trigonella foenum-graecum4
4Fodder Barley - Hordeum vulgare25
5Hemp - Bandung A8
6Hemp - Indochina8
7Hemp - Kumamoto8
8Hemp - Lembang A8
9Hemp - Seiki Selskin8
10Hyoscyamus niger - Black Henbane10
11Jasmine - Jasminum grandiflorum4
12Maize - Zea mays (B73)4
13Marigold - Tagetes erecta9
14Marigold - Tagetes patula13
15Sesame - Tilottama9
16Sunflower - Helianthus annuus (BBS-1)6
17Watermelon - G429
\n", + "
" + ], + "text/plain": [ + " species sum\n", + "0 Chinese cabbage - Brassica rapa ssp. pekinensis 5\n", + "1 Cotton - Luyanmian21 8\n", + "2 Cotton - TM-1 8\n", + "3 Fenugreek - Trigonella foenum-graecum 4\n", + "4 Fodder Barley - Hordeum vulgare 25\n", + "5 Hemp - Bandung A 8\n", + "6 Hemp - Indochina 8\n", + "7 Hemp - Kumamoto 8\n", + "8 Hemp - Lembang A 8\n", + "9 Hemp - Seiki Selskin 8\n", + "10 Hyoscyamus niger - Black Henbane 10\n", + "11 Jasmine - Jasminum grandiflorum 4\n", + "12 Maize - Zea mays (B73) 4\n", + "13 Marigold - Tagetes erecta 9\n", + "14 Marigold - Tagetes patula 13\n", + "15 Sesame - Tilottama 9\n", + "16 Sunflower - Helianthus annuus (BBS-1) 6\n", + "17 Watermelon - G42 9" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.groupby('species').size().reset_index(name='sum')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "dd25961d-14b9-4818-bd2e-cdd090729839", + "metadata": {}, + "outputs": [], + "source": [ + "if not os.path.exists(\"pickles\"):\n", + " os.makedirs(\"pickles\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ebed42cc-3fc6-49c0-9512-f1b40a878ca6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 Cotton - TM-1\n", + "1 Hemp - Lembang A\n", + "2 Cotton - TM-1\n", + "3 Hyoscyamus niger - Black Henbane\n", + "4 Sunflower - Helianthus annuus (BBS-1)\n", + " ... \n", + "149 Maize - Zea mays (B73)\n", + "150 Hyoscyamus niger - Black Henbane\n", + "151 Hemp - Kumamoto\n", + "152 Chinese cabbage - Brassica rapa ssp. pekinensis\n", + "153 Marigold - Tagetes erecta\n", + "Name: species, Length: 154, dtype: object" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['species']" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "d80c362c-21c3-43ae-b3e1-699ce68fba2f", + "metadata": {}, + "outputs": [], + "source": [ + "# Label encode the species column\n", + "le = LabelEncoder()\n", + "df['species'] = le.fit_transform(df['species'])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "ef7b15fa-cbf8-4501-88d4-983c3f336555", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 2\n", + "1 8\n", + "2 2\n", + "3 10\n", + "4 16\n", + " ..\n", + "149 12\n", + "150 10\n", + "151 7\n", + "152 0\n", + "153 13\n", + "Name: species, Length: 154, dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['species']" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "6d9432cb-1b76-4257-a11a-aeda39dc9de1", + "metadata": {}, + "outputs": [], + "source": [ + "# Save label encoder\n", + "with open('pickles/label_encoding.pkl', 'wb') as f:\n", + " pickle.dump(le, f)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "23b88731-5bb4-4944-9bef-582147039330", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
soakDurationlowestTemphighestTemp
018020.032.0
136025.030.0
236020.032.0
36025.028.0
448022.025.0
............
14972025.030.0
1506025.028.0
15136025.030.0
1524804.020.0
15336025.030.0
\n", + "

154 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " soakDuration lowestTemp highestTemp\n", + "0 180 20.0 32.0\n", + "1 360 25.0 30.0\n", + "2 360 20.0 32.0\n", + "3 60 25.0 28.0\n", + "4 480 22.0 25.0\n", + ".. ... ... ...\n", + "149 720 25.0 30.0\n", + "150 60 25.0 28.0\n", + "151 360 25.0 30.0\n", + "152 480 4.0 20.0\n", + "153 360 25.0 30.0\n", + "\n", + "[154 rows x 3 columns]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "numerical_columns = ['soakDuration', 'lowestTemp', 'highestTemp']\n", + "df[numerical_columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "998ed801-8791-46e6-86ef-8652439ea797", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
soakDurationlowestTemphighestTemp
00.0605430.681.000000
10.1231730.880.857143
20.1231730.681.000000
30.0187890.880.714286
40.1649270.760.500000
............
1490.2484340.880.857143
1500.0187890.880.714286
1510.1231730.880.857143
1520.1649270.040.142857
1530.1231730.880.857143
\n", + "

154 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " soakDuration lowestTemp highestTemp\n", + "0 0.060543 0.68 1.000000\n", + "1 0.123173 0.88 0.857143\n", + "2 0.123173 0.68 1.000000\n", + "3 0.018789 0.88 0.714286\n", + "4 0.164927 0.76 0.500000\n", + ".. ... ... ...\n", + "149 0.248434 0.88 0.857143\n", + "150 0.018789 0.88 0.714286\n", + "151 0.123173 0.88 0.857143\n", + "152 0.164927 0.04 0.142857\n", + "153 0.123173 0.88 0.857143\n", + "\n", + "[154 rows x 3 columns]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Scale numerical features\n", + "scaler = MinMaxScaler()\n", + "df[numerical_columns] = scaler.fit_transform(df[numerical_columns])\n", + "df[numerical_columns]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "750d729d-fcb6-4ac6-b12e-c072656f53c0", + "metadata": {}, + "outputs": [], + "source": [ + "# Save scaler\n", + "with open('pickles/scaler_encoding.pkl', 'wb') as f:\n", + " pickle.dump(scaler, f)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "14bc165d-f845-45bf-bc70-19f0e8620d66", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
speciesemsConcentrationsoakDurationlowestTemphighestTempresult
021.500.0605430.681.0000001
180.250.1231730.880.8571430
223.500.1231730.681.0000000
3100.020.0187890.880.7142861
4161.000.1649270.760.5000000
.....................
149121.200.2484340.880.8571430
150100.090.0187890.880.7142860
15170.250.1231730.880.8571430
15200.300.1649270.040.1428570
153130.080.1231730.880.8571430
\n", + "

154 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " species emsConcentration soakDuration lowestTemp highestTemp result\n", + "0 2 1.50 0.060543 0.68 1.000000 1\n", + "1 8 0.25 0.123173 0.88 0.857143 0\n", + "2 2 3.50 0.123173 0.68 1.000000 0\n", + "3 10 0.02 0.018789 0.88 0.714286 1\n", + "4 16 1.00 0.164927 0.76 0.500000 0\n", + ".. ... ... ... ... ... ...\n", + "149 12 1.20 0.248434 0.88 0.857143 0\n", + "150 10 0.09 0.018789 0.88 0.714286 0\n", + "151 7 0.25 0.123173 0.88 0.857143 0\n", + "152 0 0.30 0.164927 0.04 0.142857 0\n", + "153 13 0.08 0.123173 0.88 0.857143 0\n", + "\n", + "[154 rows x 6 columns]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "a3a563bd-e60d-46aa-9ad9-6ba0e72a82bf", + "metadata": {}, + "outputs": [], + "source": [ + "# Prepare features and target\n", + "X = df[['species', 'emsConcentration', 'soakDuration', 'lowestTemp', 'highestTemp']]\n", + "y = df['result']" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "2bb98509-dce7-4e3a-8fed-c1a76287036d", + "metadata": {}, + "outputs": [], + "source": [ + "# Split the data\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "8dd3a818-c206-4993-be54-f3933c0a3276", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
RandomForestClassifier(random_state=42)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "RandomForestClassifier(random_state=42)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Initialize and train the model\n", + "rf_model = RandomForestClassifier(n_estimators=100, criterion='gini', random_state=42)\n", + "rf_model.fit(X_train, y_train)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "c5177b39-502a-4adb-ac59-f0b78ea07759", + "metadata": {}, + "outputs": [], + "source": [ + "# Save the model\n", + "with open('pickles/ems_model.pkl', 'wb') as f:\n", + " pickle.dump(rf_model, f)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "86ca9871-2dc2-43a0-a9c9-d0fd18604209", + "metadata": {}, + "outputs": [], + "source": [ + "sss = StratifiedShuffleSplit(n_splits=10, test_size=0.3, random_state=42)\n", + "scores = cross_val_score(rf_model, X, y, cv=sss)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "214e50eb-8a4a-44b5-98cd-0177318bf51c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.82978723, 0.63829787, 0.68085106, 0.70212766, 0.72340426,\n", + " 0.68085106, 0.74468085, 0.74468085, 0.74468085, 0.68085106])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scores" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "7089a59e-061a-48e4-913e-9962da369721", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.float64(0.7170212765957447)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scores.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "83a91ebc-5ccf-4ac6-9ceb-dceb1d0a139b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.float64(0.050394550137561736)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scores.std()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "664e4879-ce66-4459-b306-874f134942d2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model Accuracy Score: 80.9%\n" + ] + } + ], + "source": [ + "print(f\"Model Accuracy Score: {round(rf_model.score(X_test, y_test) * 100,1)}%\")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "314a66f8-1d8d-441b-9fcd-c876b43410b7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.81 0.90 0.85 29\n", + " 1 0.80 0.67 0.73 18\n", + "\n", + " accuracy 0.81 47\n", + " macro avg 0.81 0.78 0.79 47\n", + "weighted avg 0.81 0.81 0.80 47\n", + "\n" + ] + } + ], + "source": [ + "y_pred = rf_model.predict(X_test)\n", + "print(classification_report(y_test, y_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "14162b15-6bd1-4ee4-8f32-f9186146b6d3", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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b7zh8r0A4PdoAAEfFRoaKkn69ddfXTp///79CggIUN26dZ32R0VFKTw8XPv373faX7NmzWLXqFSpkn755ZcrrLi4vn37qm3btnrooYdUrVo19evXT++9994lm8FzdTZo0KDYsYYNG+rnn39WXl6e0/7zn6VSpUqS5Naz3H777apYsaLeffddLViwQK1atSr2tzynqKhIU6ZMUb169WS321WlShVFRkZqx44dys7Odvmef/jDH9x64ePll19WRESE0tLSNH36dFWtWtXl7wLA79EAAj4qNDRUMTEx+vbbb9363vkvYVxMmTJlLrjfsqwrvse5+WnnBAcHa926dfrss8/0pz/9STt27FDfvn112223FTv3alzNs5xjt9vVq1cvzZs3T4sWLbpo+idJL7zwglJSUtS+fXu98847Wr58uVauXKnrr7/e5aRT+u3v445vvvlGR48elSTt3LnTre8CwO/RAAI+rHv37tqzZ482btx42XNjY2NVVFSk3bt3O+0/cuSIsrKyHG/0loRKlSo5vTF7zvkpoyQFBASoU6dOmjx5sr7//ns9//zzWr16tT7//PMLXvtcnbt27Sp27H//+5+qVKmiChUqXN0DXET//v31zTff6Ndff73gizPn/Pvf/1bHjh311ltvqV+/furSpYs6d+5c7G/iajPuiry8PA0cOFCNGjXSI488okmTJmnLli0ldn0AZqEBBHzYU089pQoVKuihhx7SkSNHih3fs2ePpk2bJum3IUxJxd7UnTx5siTpjjvuKLG66tSpo+zsbO3YscOx7/Dhw1q0aJHTeSdOnCj23XMLIp+/NM050dHRatasmebNm+fUUH377bdasWKF4zk9oWPHjnr22Wf12muvKSoq6qLnlSlTpli6+P777+vgwYNO+841qhdqlt01atQoHThwQPPmzdPkyZMVFxenxMTEi/4dAeBSWAga8GF16tTRwoUL1bdvXzVs2NDpl0A2bNig999/X0lJSZKkpk2bKjExUX//+9+VlZWl+Ph4ffXVV5o3b5569ux50SVGrkS/fv00atQo3X333frzn/+skydPaubMmapfv77TSxATJ07UunXrdMcddyg2NlZHjx7V66+/rurVq+uWW2656PVfeukldevWTW3atNGgQYN06tQpvfrqqwoLC9P48eNL7DnOFxAQoGeeeeay53Xv3l0TJ07U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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(8, 6))\n", + "cm = confusion_matrix(y_test, y_pred)\n", + "sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')\n", + "plt.title('Confusion Matrix')\n", + "plt.ylabel('True Label')\n", + "plt.xlabel('Predicted Label')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "36cb958d-c438-44e0-a25d-dfeb22b500ee", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Fail rate Success rate\n", + "Fail rate 26 3\n", + "Success rate 6 12\n" + ] + } + ], + "source": [ + "confusion_df = pd.crosstab(y_test, y_pred, rownames=['Actual'], colnames=['Predicted'])\\\n", + " .rename_axis(index={'Actual': 'Actual'}, columns={'Predicted': 'Predicted'})\\\n", + " .set_axis(['Fail rate', 'Success rate'], axis=0)\\\n", + " .set_axis(['Fail rate', 'Success rate'], axis=1)\n", + "print(confusion_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "27d8e70d-9331-49b1-a51f-a06e66777e6f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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QTt27JC9vX2az/BWo0ePloeHh7H4+fll2BYAAAAAgEfBoEGDVL58eb344osZtilbtqxeeeUVVatWTXXq1NHMmTNVp04dTZw40Wgzd+5cWa1WFS1aVI6Ojvrwww/Vvn372468up0cGUotW7ZMrq6uNst7772Xpl2XLl0UFRUlq9Wqr7/+2hjNdKvatWvrf//7nzp06KCCBQuqRYsWev/993Xq1KkMz//rr79KksqVK3fbOr/44gtdvXpVc+bM0eOPP65GjRppypQpmjt3rk3/Xl5emjJlisqVK6cnn3xSLVu21Lp16yRJhw8f1pdffqmZM2fq6aefVsmSJdW4cWM9//zzkqQpU6YoKChI7733nsqVK6egoCDNnDlT69ev1+HDh41zBAYGatiwYSpdurQ6d+6s6tWrG+coVKiQpJthmo+Pj7Eu3Xxlb86cOQoKCjImQmvbtq2eeeYZlSpVSlWqVNHMmTMVGxurAwcO2PRXoEAB+fj4KH/+/GnuzeXLlzV16lS9//77atGihSpUqKDp06fL2dnZZhSYJL377rsKCQlRhQoV9NZbb2nLli26evVquvd80KBBunjxorHcOlIOAAAAAICczsfHJ01mkbru4+OT7jE//vijvvrqK9nb28ve3l6NGzeWJBUsWFDDhg3L8Fw1a9bUkSNHjPXHHntMGzZsUGJiov744w9t27ZN169fV8mSJbN0LTkylGrYsKFiYmJslldffTVNu5YtWyoxMVE//fSTZs6cmeEIm3fffVfx8fGaNm2aKlasqGnTpqlcuXKKjY1Nt/3djqg6ePCgKleubDOHVd26dZWSkmLzClrFihVlZ2dnrPv6+hqTrMfExMjOzk4hISHpnmPPnj1av369TUCXGpbd+krdf2fWv/Uct+Pv728TUkk3Q7n27durZMmScnd3N173O3HixB37S3X06FFdv35ddevWNbblzZtXNWvW1MGDB23a3lq7r6+vJGVYu6Ojo9zd3W0WAAAAAAByi+DgYP3000820/6sWbNGZcuWTTO1UarFixdrz549RoYyY8YMSdLGjRsVGRmZ4bliYmKMv8Nv5eLiIl9fX50/f14//PCDWrdunaVrsb9zk4ePi4uLSpUqdcd29vb26tSpk4YNG6ZffvlFS5YsybBtgQIF9Nxzz+m5557Te++9p6CgII0fP954/e9WZcqUkSQdOnRI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N/6FduDAgSpTpozy5cunkiVLasiQIbp+/bokKSoqSiNGjNCePXuM+ShS56ywWCxaunSp0X9sbKwaNWokZ2dnFShQQN27d1diYqKxPyIiQm3atNH48ePl6+urAgUKKDIy0jhXeq5du6aEhASbBQCAnCI+Pl6FCxe22Za6Hh8ff1d9bNmyRYsWLbIZWZVRvwkJCfr3338lSbVq1VJUVJRWrVqlqVOn6tixY6pfv74uXbp0L5cEAACQofsWSkk3h3z//fff97PLh46rq6tcXV21dOlSXbt2Ld02KSkpat26tf755x9t2LBBa9as0W+//abnn3/eaJOYmKgnnnhC69at0+7du9W8eXO1atUqw3+RHDdunN566y2tXr1ajRs3zlTNzs7OevXVV7V582adPn06U8eOHz9elStX1u7duzVkyBBJkpubm6KionTgwAFNnjxZ06dP18SJEyVJzz//vPr166eKFSvq5MmTOnnypM11p7p8+bLCwsLk5eWl7du366uvvtLatWuN1wxSrV+/XkePHtX69es1e/ZsRUVFpZmY9VajR4+Wh4eHsfj5+WXqegEAyMn27dun1q1ba9iwYWrWrFmmjm3RooWee+45BQYGKiwsTCtWrNCFCxf05ZdfPqBqAQDAoy5Lc0p99913NutWq1UnT57UlClTsnVOJTPY29srKipK3bp107Rp01S1alWFhITohRdeUGBgoCRp3bp1io2N1bFjx4xQZM6cOapYsaK2b9+uGjVqqHLlyqpcubLR76hRo7RkyRJ99913aYKZgQMHau7cudqwYYMqVqyYpbpTvz3n+PHj8vb2vuvjGjVqpH79+tlse/vtt42fAwIC1L9/fy1cuFADBgyQs7OzXF1d7zgnxRdffKGrV69qzpw5cnFxkSRNmTJFrVq10tixY41/zfXy8tKUKVNkZ2encuXKqWXLllq3bp26deuWbr+DBg1S3759jfWEhASCKQBAjuHj42MzslqSsX6nuZ4OHDigxo0bq3v37jb/X327ft3d3eXs7Jxuf56enipTpoyOHDmS2csAAAC4K1kKpf777WkWi0WFChVSo0aNjAk0c7O2bduqZcuW2rhxo37++WetXLlS48aN04wZMxQREaGDBw/Kz8/PJgypUKGCPD09dfDgQdWoUUOJiYkaPny4li9frpMnT+rGjRv6999/04yUmjBhgi5f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01PfffedKlSoIEdHR504cULbt29X06ZNVbBgQXl4eCgkJES7du0yjgsICJAkPf3007JYLMZ6eiPgevfurdDQ0DR19+7dWwULFlRYWJgkad++fWrRooVcXV1VuHBhderUSWfPnk339yP12hISEmwW5C7x8fE24ZIkYz2j+Z/u5hhfX19NmzZNixcv1uLFi+Xn56fQ0FCb3/GFCxdq165dGj169H27HgAAAAB4VOWYUOqvv/7SE088oRo1amjPnj2aOnWqPv/8c73zzjuSpPr16+vSpUvavXu3pJsBVsGCBW3Clg0bNhhByNGjR9W8eXO1bdtWe/fu1aJFi7Rp0yb16NFDkrRjxw716tVLI0eOVFxcnFatWqUGDRpIkiZPnqzg4GB169bNGPXk5+eXqesZPXq05syZo2nTpmn//v3q06ePXnzxRW3YsMGm3fDhwzVlyhRt2bJFf/zxh9q1a6dJkybpiy++0PLly7V69Wp99NFHNsfMnj1b9vb22rZtmyZPnqwPPvhAM2bMMPb36NFDW7du1cKFC7V3714999xzat68uX799VejzZUrVzR27FjNmDFD+/fvl7e3ty5duqTw8HBt2rRJP//8s0qXLq0nnnhCly5dknRznh1JmjVrlk6ePGms363Zs2fLwcFBmzdv1rRp03ThwgU1atRIQUFB2rFjh1atWqVTp06pXbt2t72vHh4expLZzwWPrrJly+qVV15RtWrVVKdOHc2cOVN16tTRxIkTJUl//PGH3njjDc2fP19OTk7ZXC0AAAAA5Hw5ZqLzTz75RH5+fpoyZYosFovKlSunv//+WwMHDtTQoUPl4eGhKlWqKDo6WtWrV1d0dLT69OmjESNGKDExURcvXtSRI0cUEhIi6WZ40bFjR2NeqNKlS+vDDz9USEiIpk6dqhMnTsjFxUVPPvmk3Nzc5O/vr6CgIEmSh4eHHBwclC9fPvn4+GT6Wq5du6b33ntPa9euVXBwsCSpZMmS2rRpkz799FOjRkl65513VLduXUlS165dNWjQIB09elQlS5aUJD377LNav369Bg4caBzj5+eniRMnymKxqGzZsoqNjdXEiRPVrVs3nThxQrNmzdKJEydUpEgRSVL//v21atUqzZo1y5j0+fr16/rkk09UuXJlo99GjRrZXMdnn30mT09PbdiwQU8++aQKFSokSfL09MzSfSldurTNt6i98847CgoKspmIeubMmfLz89Phw4dVpkyZNH0MGjRIffv2NdYTEhIIpnIZHx8fnTp1ymZb6npGv3c+Pj7atm1bpo6RpJo1a2rTpk2SpJ07d+r06dOqWrWqsT85OVk//fSTpkyZomvXrsnOzi7zFwQAAAAAj6gcM1Lq4MGDCg4OlsViMbbVrVtXiYmJ+vPPPyVJISEhio6OltVq1caNG/XMM8+ofPny2rRpkzZs2KAiRYqodOnSkqQ9e/YoKipKrq6uxhIWFqaUlBQdO3ZMTZs2lb+/v0qWLKlOnTpp/vz5Nq/J3YsjR47oypUratq0qc3558yZo6NHj9q0vfXbvQoXLqx8+fIZgVTqttOnT9scU7t2bZv7FBwcrF9//VXJycmKjY1VcnKyypQpY3PuDRs22JzbwcEhzTeLnTp1St26dVPp0qXl4eEhd3d3JSYm6sSJE/flvlSrVs1mfc+ePVq/fr1NneXKlZOkNPcplaOjo9zd3W0W5C7BwcH66aefdP36dWPbmjVrVLZs2QwnHg8ODlZsbKzNs7JmzRq5u7urQoUKGZ4rJiZGvr6+kqTGjRsrNjZWMTExxlK9enV17NhRMTExBFIAAAAAkEk5ZqTU3QgNDdXMmTO1Z88e5c2bV+XKlVNoaKiio6N1/vx5mxFIiYmJeuWVV9SrV680/RQvXlwODg7atWuXoqOjtXr1ag0dOlTDhw/X9u3b5enpeU91JiYmSpKWL1+uokWL2uxzdHS0Wc+bN6/xs8VisVlP3ZaZScgTExNlZ2ennTt3pvkj2tXV1fjZ2dnZJtiSpPDwcJ07d06TJ0+Wv7+/HB0dFRwcfMdJyfPkyWMzp5Ukm0AhlYuLS5paW7VqpbFjx6ZpmxoU4NHToUMHjRgxQl27dtXAgQO1b98+TZ482XjNTpKWLFmiQYMG6dChQ5KkZs2aqUKFCurUqZPGjRun+Ph4vf3224qMjDSeudQ53ipWrKirV69qxowZ+vHHH7V69WpJkpubmx5//HGbWlxcXFSgQIE02wEAAAAAd5ZjQqny5ctr8eLFslqtRliyefNmubm5qVixYpL+/7xSEydONAKo0NBQjRkzRufPn1e/fv2M/qpWraoDBw6oVKlSGZ7T3t5eTZo0UZMmTTRs2DB5enrqxx9/1DPPPCMHBwdjUvXMunXy8FuDsvvll19+sVlPnf/Jzs5OQUFBSk5O1unTp1W/fv1M9bt582Z98skneuKJJyTdnGPnv5OO582bN819KVSokPbt22ezLSYmJk3A9l9Vq1bV4sWLFRAQIHv7HPOrigfMw8NDq1evVmRkpKpVq6aCBQtq6NCh6t69u9Hm4sWLiouLM9bt7Oy0bNkyvfbaawoODpaLi4vCw8M1cuRIo01SUpL69eunv/76S/ny5VNgYKDWrl2rhg0bmnp9AAAAAPCoeOj+0r948aJiYmJsthUoUECvv/66Jk2apJ49e6pHjx6Ki4vTsGHD1LdvX+XJc/MtRC8vLwUGBmr+/PmaMmWKJKlBgwZq166drl+/bhMADRw4ULVr11aPHj308ssvy8XFRQcOHNCaNWs0ZcoULVu2TL/99psaNGggLy8vrVixQikpKSpbtqykm98098svv+j48eNydXVV/vz5jTruxM3NTf3791efPn2UkpKievXq6eLFi9q8ebPc3d0VHh5+T/fwxIkT6tu3r1555RXt2rVLH330kSZMmCBJKlOmjDp27KjOnTtrwoQJCgoK0pkzZ7Ru3ToFBgaqZcuWGfZbunRpzZ07V9WrV1dCQoLefPNNOTs727QJCAjQunXrVLduXTk6OsrLy0uNGjXS+++/rzlz5ig4OFjz5s3Tvn37jDm6MhIZGanp06erffv2GjBggPLnz68jR45o4cKFmjFjBq9LPcICAwO1cePGDPdHREQoIiLCZpu/v79WrFiR4TEDBgzQgAEDMlXHrV+kAAAAAADInIduTqno6GgFBQXZLCNGjFDRokW1YsUKbdu2TZUrV9arr76qrl276u2337Y5PiQkRMnJyca37OXPn18VKlSQj4+PEShJN/+o3bBhgw4fPqz69esrKChIQ4cONSb/9vT01DfffKNGjRqpfPnymjZtmhYsWKCKFStKujk5uJ2dnSpUqKBChQplel6lUaNGaciQIRo9erTKly+v5s2ba/ny5SpRosQ93L2bOnfurH///Vc1a9ZUZGSk3njjDZtRJLNmzVLnzp3Vr18/lS1bVm3atNH27dtVvHjx2/b7+eef6/z586patao6deqkXr16ydvb26bNhAkTtGbNGvn5+RmhU1hYmIYMGaIBAwaoRo0aunTpkjp37nzH6yhSpIg2b96s5ORkNWvWTJUqVVLv3r3l6el51wEgAAAAAAB4OFms/53sBzla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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Create and sort feature importance DataFrame\n", + "feature_names = ['Species', 'EMS Concentration', 'Soak Duration', 'Lowest Temperature', 'Highest Temperature']\n", + "feature_importance = pd.DataFrame({\n", + " 'feature': feature_names,\n", + " 'importance': rf_model.feature_importances_\n", + "})\n", + "feature_importance = feature_importance.sort_values('importance', ascending=False)\n", + "\n", + "# Create the plot\n", + "plt.figure(figsize=(12, 6))\n", + "ax = sns.barplot(\n", + " x='importance', \n", + " y='feature', \n", + " hue='feature', # Add hue parameter\n", + " data=feature_importance, \n", + " legend=False # Hide the legend\n", + ")\n", + "\n", + "# Add value labels on the bars\n", + "for i, v in enumerate(feature_importance['importance']):\n", + " # Format the value to show only 3 decimal places\n", + " percentage = f'{v:.3f}'\n", + " ax.text(v, i, f' {percentage}', va='center')\n", + "\n", + "# Customize the plot\n", + "plt.title('Feature Importance', pad=20, fontsize=12, fontweight='bold')\n", + "plt.xlabel('Importance Score', fontsize=10)\n", + "plt.ylabel('Features', fontsize=10)\n", + "\n", + "# Adjust layout to prevent text cutoff\n", + "plt.tight_layout()\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "e85837c0-29a2-46d0-abda-d18e735f22d0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Feature Importance Scores:\n", + " feature importance\n", + " EMS Concentration 0.458966\n", + " Species 0.229847\n", + " Soak Duration 0.205221\n", + " Lowest Temperature 0.053902\n", + "Highest Temperature 0.052065\n" + ] + } + ], + "source": [ + "# Print tabular format for reference\n", + "print(\"\\nFeature Importance Scores:\")\n", + "print(feature_importance.to_string(index=False))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.1" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/ems-model/model.py b/ems-model/model.py new file mode 100644 index 0000000..8a84725 --- /dev/null +++ b/ems-model/model.py @@ -0,0 +1,178 @@ +import pandas as pd +from sklearn.model_selection import StratifiedShuffleSplit, cross_val_score, train_test_split +from sklearn.ensemble import RandomForestClassifier +from sklearn.preprocessing import LabelEncoder, MinMaxScaler +from sklearn.metrics import classification_report, confusion_matrix +import numpy as np +import seaborn as sns +import matplotlib.pyplot as plt +import pickle +import os +import subprocess +np.random.seed(42) + +def load_data(file_path): + """ + Load the data from .csv file (must be a csv) + """ + try: + df = pd.read_csv(file_path) + print("CSV Loaded, Dataset shape:", df.shape) + return df + except FileNotFoundError: + print(f"Error: CSV File {file_path} not found!") + return None + +def preprocess_data(df): + """ + Preprocess data: + - LabelEncoder to species (categorical) + - MinMaxScaling for the rest (numerical) + """ + if not os.path.exists("pickles"): + os.makedirs("pickles") + + le = LabelEncoder() + df['species'] = le.fit_transform(df['species']) + + with open('pickles/label_encoding.pkl', 'wb') as f: + pickle.dump(le, f) + + scaler = MinMaxScaler() + numerical_columns = ['soakDuration', 'lowestTemp', 'highestTemp'] + df[numerical_columns] = scaler.fit_transform(df[numerical_columns]) + + scaled_features = df[numerical_columns] + + with open('pickles/scaler_encoding.pkl', 'wb') as f: + pickle.dump(scaler, f) + + X = df[['species', 'emsConcentration', 'soakDuration', + 'lowestTemp', 'highestTemp']] + y = df['result'] + + return X, y + +def train_model(X, y): + """ + Split data and train Random Forest model + """ + X_train, X_test, y_train, y_test = train_test_split( + X, y, test_size=0.3, random_state=42 + ) + + # initialize and train model + # use hitchhiker's guide to the galaxy which is 42 + # if u just wanted to, say a random number + # + # "Deep Thought had been built by its creators to give the answer to the "Ultimate Question of Life, the Universe, and Everything", which, after eons of calculations, was given simply as "42"." - Wikipedia about hitchiker's guide to the galaxy + # + rf_model = RandomForestClassifier( + n_estimators=100, + criterion='gini', + random_state=42 + ) + + rf_model.fit(X_train, y_train) + + with open('pickles/ems_model.pkl', 'wb') as f: + pickle.dump(rf_model, f) + + return rf_model, X_train, X_test, y_train, y_test + +def evaluate_model(model, X_test, y_test, X, y): + """ + Evaluate model performance + """ + y_pred = model.predict(X_test) + y_test = np.array(y_test) + + print("\n!!! Evaluation !!!\n") + + print("\n!!! K - Fold (Stratified Shuffle Split) !!!\n") + sss = StratifiedShuffleSplit(n_splits=10, test_size=0.3, random_state=42) + scores = cross_val_score(model, X, y, cv=sss) + + print("Cross-validation scores:", scores) + print("Mean accuracy:", scores.mean()) + print("Standard deviation:", scores.std()) + + print("\n!!! Classification Report !!!\n") + print(classification_report(y_test, y_pred)) + + cm = confusion_matrix(y_test, y_pred) + plt.figure(figsize=(8, 6)) + sns.heatmap(cm, annot=True, fmt='d', cmap='Blues') + plt.title('Confusion Matrix') + plt.ylabel('True Label') + plt.xlabel('Predicted Label') + + print(f"Model Accuracy Score: {round(model.score(X_test, y_test) * 100,1)}% \n") + + print("\n!!! Confusion Matrix !!!\n") + + print(pd.crosstab(y_test, y_pred, rownames=['Actual'], colnames=['Predicted']) + .rename_axis(index={'Actual': 'Actual'}, columns={'Predicted': 'Predicted'}) + .set_axis(['Fail rate', 'Success rate'], axis=0) + .set_axis(['Fail rate', 'Success rate'], axis=1)) + +def feature_importance(model): + """ + Plot feature importance + Check the importance of each feature + """ + feature_names = ['Species', 'EMS Concentration', 'Soak Duration', 'Lowest Temperature', 'Highest Temperature'] + feature_importance = pd.DataFrame({ + 'feature': feature_names, + 'importance': model.feature_importances_ + }) + feature_importance = feature_importance.sort_values('importance', ascending=False) + + plt.figure(figsize=(12, 6)) + ax = sns.barplot( + x='importance', + y='feature', + hue='feature', + data=feature_importance, + legend=False + ) + + for i, v in enumerate(feature_importance['importance']): + percentage = f'{v:.3f}' + ax.text(v, i, f' {percentage}', va='center') + + plt.title('Feature Importance', pad=20, fontsize=12, fontweight='bold') + plt.xlabel('Importance Score', fontsize=10) + plt.ylabel('Features', fontsize=10) + + plt.tight_layout() + +def main(): + print("Hello from ems-model!") + + # randomize (shuffle) the data + # subprocess.run( + # ["python", "shuffle.py"], capture_output=True, text=True, check=True + # ) + + # load from csv file + # df = load_data("csv/ems_data_randomized.csv") + df = load_data("csv/ems_data.csv") + + # preprocess + X, y = preprocess_data(df) + + # train + model, _, X_test, _, y_test = train_model(X, y) + + # evaluate + evaluate_model(model, X_test, y_test, X, y) + + # feature importance + feature_importance(model) + + # show evaluation on confusion matrix and feature importance + # plt.show() + +if __name__ == "__main__": + main() diff --git a/ems-model/pyproject.toml b/ems-model/pyproject.toml new file mode 100644 index 0000000..fffa895 --- /dev/null +++ b/ems-model/pyproject.toml @@ -0,0 +1,15 @@ +[project] +name = "ems-model" +version = "0.1.0" +description = "model for ems-sense, detecting mutagenesis treatment using ems" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [ + "fastapi[standard]>=0.115.6", + "matplotlib>=3.10.0", + "notebook>=7.3.2", + "numpy>=2.2.1", + "pandas>=2.2.3", + "scikit-learn>=1.6.1", + "seaborn>=0.13.2", +] diff --git a/ems-model/shuffle.py b/ems-model/shuffle.py new file mode 100644 index 0000000..0ee8c62 --- /dev/null +++ b/ems-model/shuffle.py @@ -0,0 +1,29 @@ +import csv +import random + +def clean_csv(input_file, output_file): + # Open the input CSV file for reading + with open(input_file, 'r', newline='') as csvfile: + reader = csv.reader(csvfile) + # Read all rows except the header + rows = list(reader)[1:] + + # Shuffle the rows + random.shuffle(rows) + + # Open the output CSV file for writing + with open(output_file, 'w', newline='') as outfile: + writer = csv.writer(outfile) + # Write the header row to the output file + writer.writerow(next(csv.reader(open(input_file)))) + # Write the shuffled rows to the output file + writer.writerows(rows) + +# Input and output file paths +input_file = 'csv/ems_data.csv' +output_file = 'csv/ems_data_randomized.csv' + +# Call the function to clean the CSV file +clean_csv(input_file, output_file) + +print("CSV file cleaned successfully!") diff --git a/ems-model/treatment.py b/ems-model/treatment.py new file mode 100644 index 0000000..f6096e9 --- /dev/null +++ b/ems-model/treatment.py @@ -0,0 +1,17 @@ +from pydantic import BaseModel + +class Treatment(BaseModel): + species: str + emsConcentration: float + soakDuration: float + lowestTemp: float + highestTemp: float + + def to_dict(self): + return { + 'species': self.species, + 'emsConcentration': self.emsConcentration, + 'soakDuration': self.soakDuration, + 'lowestTemp': self.lowestTemp, + 'highestTemp': self.highestTemp, + } diff --git a/ems-model/uv.lock b/ems-model/uv.lock new file mode 100644 index 0000000..69e3ed1 --- /dev/null +++ b/ems-model/uv.lock @@ -0,0 +1,1892 @@ +version = 1 +requires-python = ">=3.13" + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, +] + +[[package]] +name = "anyio" +version = "4.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/73/199a98fc2dae33535d6b8e8e6ec01f8c1d76c9adb096c6b7d64823038cde/anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a", size = 181126 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/eb/e7f063ad1fec6b3178a3cd82d1a3c4de82cccf283fc42746168188e1cdd5/anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a", size = 96041 }, +] + +[[package]] +name = "appnope" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/5d/752690df9ef5b76e169e68d6a129fa6d08a7100ca7f754c89495db3c6019/appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee", size = 4170 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/29/5ecc3a15d5a33e31b26c11426c45c501e439cb865d0bff96315d86443b78/appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c", size = 4321 }, +] + +[[package]] +name = "argon2-cffi" +version = "23.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "argon2-cffi-bindings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/fa/57ec2c6d16ecd2ba0cf15f3c7d1c3c2e7b5fcb83555ff56d7ab10888ec8f/argon2_cffi-23.1.0.tar.gz", hash = "sha256:879c3e79a2729ce768ebb7d36d4609e3a78a4ca2ec3a9f12286ca057e3d0db08", size = 42798 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/6a/e8a041599e78b6b3752da48000b14c8d1e8a04ded09c88c714ba047f34f5/argon2_cffi-23.1.0-py3-none-any.whl", hash = "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea", size = 15124 }, +] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/e9/184b8ccce6683b0aa2fbb7ba5683ea4b9c5763f1356347f1312c32e3c66e/argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3", size = 1779911 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/13/838ce2620025e9666aa8f686431f67a29052241692a3dd1ae9d3692a89d3/argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367", size = 29658 }, + { url = "https://files.pythonhosted.org/packages/b3/02/f7f7bb6b6af6031edb11037639c697b912e1dea2db94d436e681aea2f495/argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d", size = 80583 }, + { url = "https://files.pythonhosted.org/packages/ec/f7/378254e6dd7ae6f31fe40c8649eea7d4832a42243acaf0f1fff9083b2bed/argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae", size = 86168 }, + { url = "https://files.pythonhosted.org/packages/74/f6/4a34a37a98311ed73bb80efe422fed95f2ac25a4cacc5ae1d7ae6a144505/argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c", size = 82709 }, + { url = "https://files.pythonhosted.org/packages/74/2b/73d767bfdaab25484f7e7901379d5f8793cccbb86c6e0cbc4c1b96f63896/argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86", size = 83613 }, + { url = "https://files.pythonhosted.org/packages/4f/fd/37f86deef67ff57c76f137a67181949c2d408077e2e3dd70c6c42912c9bf/argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f", size = 84583 }, + { url = "https://files.pythonhosted.org/packages/6f/52/5a60085a3dae8fded8327a4f564223029f5f54b0cb0455a31131b5363a01/argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e", size = 88475 }, + { url = "https://files.pythonhosted.org/packages/8b/95/143cd64feb24a15fa4b189a3e1e7efbaeeb00f39a51e99b26fc62fbacabd/argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082", size = 27698 }, + { url = "https://files.pythonhosted.org/packages/37/2c/e34e47c7dee97ba6f01a6203e0383e15b60fb85d78ac9a15cd066f6fe28b/argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f", size = 30817 }, + { url = "https://files.pythonhosted.org/packages/5a/e4/bf8034d25edaa495da3c8a3405627d2e35758e44ff6eaa7948092646fdcc/argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93", size = 53104 }, +] + +[[package]] +name = "arrow" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "types-python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/00/0f6e8fcdb23ea632c866620cc872729ff43ed91d284c866b515c6342b173/arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85", size = 131960 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/ed/e97229a566617f2ae958a6b13e7cc0f585470eac730a73e9e82c32a3cdd2/arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80", size = 66419 }, +] + +[[package]] +name = "asttokens" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/e7/82da0a03e7ba5141f05cce0d302e6eed121ae055e0456ca228bf693984bc/asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7", size = 61978 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/8a/c46dcc25341b5bce5472c718902eb3d38600a903b14fa6aeecef3f21a46f/asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2", size = 26918 }, +] + +[[package]] +name = "async-lru" +version = "2.0.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/80/e2/2b4651eff771f6fd900d233e175ddc5e2be502c7eb62c0c42f975c6d36cd/async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627", size = 10019 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/9f/3c3503693386c4b0f245eaf5ca6198e3b28879ca0a40bde6b0e319793453/async_lru-2.0.4-py3-none-any.whl", hash = "sha256:ff02944ce3c288c5be660c42dbcca0742b32c3b279d6dceda655190240b99224", size = 6111 }, +] + +[[package]] +name = "attrs" +version = "24.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/48/c8/6260f8ccc11f0917360fc0da435c5c9c7504e3db174d5a12a1494887b045/attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff", size = 805984 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/aa/ab0f7891a01eeb2d2e338ae8fecbe57fcebea1a24dbb64d45801bfab481d/attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308", size = 63397 }, +] + +[[package]] +name = "babel" +version = "2.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2a/74/f1bc80f23eeba13393b7222b11d95ca3af2c1e28edca18af487137eefed9/babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316", size = 9348104 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/20/bc79bc575ba2e2a7f70e8a1155618bb1301eaa5132a8271373a6903f73f8/babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", size = 9587599 }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925 }, +] + +[[package]] +name = "bleach" +version = "6.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/9a/0e33f5054c54d349ea62c277191c020c2d6ef1d65ab2cb1993f91ec846d1/bleach-6.2.0.tar.gz", hash = "sha256:123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f", size = 203083 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/55/96142937f66150805c25c4d0f31ee4132fd33497753400734f9dfdcbdc66/bleach-6.2.0-py3-none-any.whl", hash = "sha256:117d9c6097a7c3d22fd578fcd8d35ff1e125df6736f554da4e432fdd63f31e5e", size = 163406 }, +] + +[package.optional-dependencies] +css = [ + { name = "tinycss2" }, +] + +[[package]] +name = "certifi" +version = "2024.12.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 }, +] + +[[package]] +name = "cffi" +version = "1.17.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/97/c783634659c2920c3fc70419e3af40972dbaf758daa229a7d6ea6135c90d/cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824", size = 516621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8d/f8/dd6c246b148639254dad4d6803eb6a54e8c85c6e11ec9df2cffa87571dbe/cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e", size = 182989 }, + { url = "https://files.pythonhosted.org/packages/8b/f1/672d303ddf17c24fc83afd712316fda78dc6fce1cd53011b839483e1ecc8/cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2", size = 178802 }, + { url = "https://files.pythonhosted.org/packages/0e/2d/eab2e858a91fdff70533cab61dcff4a1f55ec60425832ddfdc9cd36bc8af/cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3", size = 454792 }, + { url = "https://files.pythonhosted.org/packages/75/b2/fbaec7c4455c604e29388d55599b99ebcc250a60050610fadde58932b7ee/cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683", size = 478893 }, + { url = "https://files.pythonhosted.org/packages/4f/b7/6e4a2162178bf1935c336d4da8a9352cccab4d3a5d7914065490f08c0690/cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5", size = 485810 }, + { url = "https://files.pythonhosted.org/packages/c7/8a/1d0e4a9c26e54746dc08c2c6c037889124d4f59dffd853a659fa545f1b40/cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4", size = 471200 }, + { url = "https://files.pythonhosted.org/packages/26/9f/1aab65a6c0db35f43c4d1b4f580e8df53914310afc10ae0397d29d697af4/cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd", size = 479447 }, + { url = "https://files.pythonhosted.org/packages/5f/e4/fb8b3dd8dc0e98edf1135ff067ae070bb32ef9d509d6cb0f538cd6f7483f/cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed", size = 484358 }, + { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 }, + { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 }, + { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/16/b0/572805e227f01586461c80e0fd25d65a2115599cc9dad142fee4b747c357/charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3", size = 123188 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/94/ce8e6f63d18049672c76d07d119304e1e2d7c6098f0841b51c666e9f44a0/charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda", size = 195698 }, + { url = "https://files.pythonhosted.org/packages/24/2e/dfdd9770664aae179a96561cc6952ff08f9a8cd09a908f259a9dfa063568/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313", size = 140162 }, + { url = "https://files.pythonhosted.org/packages/24/4e/f646b9093cff8fc86f2d60af2de4dc17c759de9d554f130b140ea4738ca6/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9", size = 150263 }, + { url = "https://files.pythonhosted.org/packages/5e/67/2937f8d548c3ef6e2f9aab0f6e21001056f692d43282b165e7c56023e6dd/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b", size = 142966 }, + { url = "https://files.pythonhosted.org/packages/52/ed/b7f4f07de100bdb95c1756d3a4d17b90c1a3c53715c1a476f8738058e0fa/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11", size = 144992 }, + { url = "https://files.pythonhosted.org/packages/96/2c/d49710a6dbcd3776265f4c923bb73ebe83933dfbaa841c5da850fe0fd20b/charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f", size = 147162 }, + { url = "https://files.pythonhosted.org/packages/b4/41/35ff1f9a6bd380303dea55e44c4933b4cc3c4850988927d4082ada230273/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd", size = 140972 }, + { url = "https://files.pythonhosted.org/packages/fb/43/c6a0b685fe6910d08ba971f62cd9c3e862a85770395ba5d9cad4fede33ab/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2", size = 149095 }, + { url = "https://files.pythonhosted.org/packages/4c/ff/a9a504662452e2d2878512115638966e75633519ec11f25fca3d2049a94a/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886", size = 152668 }, + { url = "https://files.pythonhosted.org/packages/6c/71/189996b6d9a4b932564701628af5cee6716733e9165af1d5e1b285c530ed/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601", size = 150073 }, + { url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 }, + { url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 }, + { url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 }, + { url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 }, +] + +[[package]] +name = "click" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, +] + +[[package]] +name = "comm" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/a8/fb783cb0abe2b5fded9f55e5703015cdf1c9c85b3669087c538dd15a6a86/comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e", size = 6210 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/75/49e5bfe642f71f272236b5b2d2691cf915a7283cc0ceda56357b61daa538/comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3", size = 7180 }, +] + +[[package]] +name = "contourpy" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/25/c2/fc7193cc5383637ff390a712e88e4ded0452c9fbcf84abe3de5ea3df1866/contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699", size = 13465753 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/e7/de62050dce687c5e96f946a93546910bc67e483fe05324439e329ff36105/contourpy-1.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a761d9ccfc5e2ecd1bf05534eda382aa14c3e4f9205ba5b1684ecfe400716ef2", size = 271548 }, + { url = "https://files.pythonhosted.org/packages/78/4d/c2a09ae014ae984c6bdd29c11e74d3121b25eaa117eca0bb76340efd7e1c/contourpy-1.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:523a8ee12edfa36f6d2a49407f705a6ef4c5098de4f498619787e272de93f2d5", size = 255576 }, + { url = "https://files.pythonhosted.org/packages/ab/8a/915380ee96a5638bda80cd061ccb8e666bfdccea38d5741cb69e6dbd61fc/contourpy-1.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece6df05e2c41bd46776fbc712e0996f7c94e0d0543af1656956d150c4ca7c81", size = 306635 }, + { url = "https://files.pythonhosted.org/packages/29/5c/c83ce09375428298acd4e6582aeb68b1e0d1447f877fa993d9bf6cd3b0a0/contourpy-1.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:573abb30e0e05bf31ed067d2f82500ecfdaec15627a59d63ea2d95714790f5c2", size = 345925 }, + { url = "https://files.pythonhosted.org/packages/29/63/5b52f4a15e80c66c8078a641a3bfacd6e07106835682454647aca1afc852/contourpy-1.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fa36448e6a3a1a9a2ba23c02012c43ed88905ec80163f2ffe2421c7192a5d7", size = 318000 }, + { url = "https://files.pythonhosted.org/packages/9a/e2/30ca086c692691129849198659bf0556d72a757fe2769eb9620a27169296/contourpy-1.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ea9924d28fc5586bf0b42d15f590b10c224117e74409dd7a0be3b62b74a501c", size = 322689 }, + { url = "https://files.pythonhosted.org/packages/6b/77/f37812ef700f1f185d348394debf33f22d531e714cf6a35d13d68a7003c7/contourpy-1.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b75aa69cb4d6f137b36f7eb2ace9280cfb60c55dc5f61c731fdf6f037f958a3", size = 1268413 }, + { url = "https://files.pythonhosted.org/packages/3f/6d/ce84e79cdd128542ebeb268f84abb4b093af78e7f8ec504676673d2675bc/contourpy-1.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:041b640d4ec01922083645a94bb3b2e777e6b626788f4095cf21abbe266413c1", size = 1326530 }, + { url = "https://files.pythonhosted.org/packages/72/22/8282f4eae20c73c89bee7a82a19c4e27af9b57bb602ecaa00713d5bdb54d/contourpy-1.3.1-cp313-cp313-win32.whl", hash = "sha256:36987a15e8ace5f58d4d5da9dca82d498c2bbb28dff6e5d04fbfcc35a9cb3a82", size = 175315 }, + { url = "https://files.pythonhosted.org/packages/e3/d5/28bca491f65312b438fbf076589dcde7f6f966b196d900777f5811b9c4e2/contourpy-1.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7895f46d47671fa7ceec40f31fae721da51ad34bdca0bee83e38870b1f47ffd", size = 220987 }, + { url = "https://files.pythonhosted.org/packages/2f/24/a4b285d6adaaf9746e4700932f579f1a7b6f9681109f694cfa233ae75c4e/contourpy-1.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ddeb796389dadcd884c7eb07bd14ef12408aaae358f0e2ae24114d797eede30", size = 285001 }, + { url = "https://files.pythonhosted.org/packages/48/1d/fb49a401b5ca4f06ccf467cd6c4f1fd65767e63c21322b29b04ec40b40b9/contourpy-1.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19c1555a6801c2f084c7ddc1c6e11f02eb6a6016ca1318dd5452ba3f613a1751", size = 268553 }, + { url = "https://files.pythonhosted.org/packages/79/1e/4aef9470d13fd029087388fae750dccb49a50c012a6c8d1d634295caa644/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:841ad858cff65c2c04bf93875e384ccb82b654574a6d7f30453a04f04af71342", size = 310386 }, + { url = "https://files.pythonhosted.org/packages/b0/34/910dc706ed70153b60392b5305c708c9810d425bde12499c9184a1100888/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4318af1c925fb9a4fb190559ef3eec206845f63e80fb603d47f2d6d67683901c", size = 349806 }, + { url = "https://files.pythonhosted.org/packages/31/3c/faee6a40d66d7f2a87f7102236bf4780c57990dd7f98e5ff29881b1b1344/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14c102b0eab282427b662cb590f2e9340a9d91a1c297f48729431f2dcd16e14f", size = 321108 }, + { url = "https://files.pythonhosted.org/packages/17/69/390dc9b20dd4bb20585651d7316cc3054b7d4a7b4f8b710b2b698e08968d/contourpy-1.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05e806338bfeaa006acbdeba0ad681a10be63b26e1b17317bfac3c5d98f36cda", size = 327291 }, + { url = "https://files.pythonhosted.org/packages/ef/74/7030b67c4e941fe1e5424a3d988080e83568030ce0355f7c9fc556455b01/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4d76d5993a34ef3df5181ba3c92fabb93f1eaa5729504fb03423fcd9f3177242", size = 1263752 }, + { url = "https://files.pythonhosted.org/packages/f0/ed/92d86f183a8615f13f6b9cbfc5d4298a509d6ce433432e21da838b4b63f4/contourpy-1.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:89785bb2a1980c1bd87f0cb1517a71cde374776a5f150936b82580ae6ead44a1", size = 1318403 }, + { url = "https://files.pythonhosted.org/packages/b3/0e/c8e4950c77dcfc897c71d61e56690a0a9df39543d2164040301b5df8e67b/contourpy-1.3.1-cp313-cp313t-win32.whl", hash = "sha256:8eb96e79b9f3dcadbad2a3891672f81cdcab7f95b27f28f1c67d75f045b6b4f1", size = 185117 }, + { url = "https://files.pythonhosted.org/packages/c1/31/1ae946f11dfbd229222e6d6ad8e7bd1891d3d48bde5fbf7a0beb9491f8e3/contourpy-1.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:287ccc248c9e0d0566934e7d606201abd74761b5703d804ff3df8935f523d546", size = 236668 }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321 }, +] + +[[package]] +name = "debugpy" +version = "1.8.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/68/25/c74e337134edf55c4dfc9af579eccb45af2393c40960e2795a94351e8140/debugpy-1.8.12.tar.gz", hash = "sha256:646530b04f45c830ceae8e491ca1c9320a2d2f0efea3141487c82130aba70dce", size = 1641122 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/4d/7c3896619a8791effd5d8c31f0834471fc8f8fb3047ec4f5fc69dd1393dd/debugpy-1.8.12-cp313-cp313-macosx_14_0_universal2.whl", hash = "sha256:696d8ae4dff4cbd06bf6b10d671e088b66669f110c7c4e18a44c43cf75ce966f", size = 2485246 }, + { url = "https://files.pythonhosted.org/packages/99/46/bc6dcfd7eb8cc969a5716d858e32485eb40c72c6a8dc88d1e3a4d5e95813/debugpy-1.8.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:898fba72b81a654e74412a67c7e0a81e89723cfe2a3ea6fcd3feaa3395138ca9", size = 4218616 }, + { url = "https://files.pythonhosted.org/packages/03/dd/d7fcdf0381a9b8094da1f6a1c9f19fed493a4f8576a2682349b3a8b20ec7/debugpy-1.8.12-cp313-cp313-win32.whl", hash = "sha256:22a11c493c70413a01ed03f01c3c3a2fc4478fc6ee186e340487b2edcd6f4180", size = 5226540 }, + { url = "https://files.pythonhosted.org/packages/25/bd/ecb98f5b5fc7ea0bfbb3c355bc1dd57c198a28780beadd1e19915bf7b4d9/debugpy-1.8.12-cp313-cp313-win_amd64.whl", hash = "sha256:fdb3c6d342825ea10b90e43d7f20f01535a72b3a1997850c0c3cefa5c27a4a2c", size = 5267134 }, + { url = "https://files.pythonhosted.org/packages/38/c4/5120ad36405c3008f451f94b8f92ef1805b1e516f6ff870f331ccb3c4cc0/debugpy-1.8.12-py2.py3-none-any.whl", hash = "sha256:274b6a2040349b5c9864e475284bce5bb062e63dce368a394b8cc865ae3b00c6", size = 5229490 }, +] + +[[package]] +name = "decorator" +version = "5.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/0c/8d907af351aa16b42caae42f9d6aa37b900c67308052d10fdce809f8d952/decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", size = 35016 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/50/83c593b07763e1161326b3b8c6686f0f4b0f24d5526546bee538c89837d6/decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186", size = 9073 }, +] + +[[package]] +name = "defusedxml" +version = "0.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/d5/c66da9b79e5bdb124974bfe172b4daf3c984ebd9c2a06e2b8a4dc7331c72/defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69", size = 75520 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/6c/aa3f2f849e01cb6a001cd8554a88d4c77c5c1a31c95bdf1cf9301e6d9ef4/defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61", size = 25604 }, +] + +[[package]] +name = "dnspython" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/4a/263763cb2ba3816dd94b08ad3a33d5fdae34ecb856678773cc40a3605829/dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1", size = 345197 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/1b/e0a87d256e40e8c888847551b20a017a6b98139178505dc7ffb96f04e954/dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86", size = 313632 }, +] + +[[package]] +name = "email-validator" +version = "2.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/ce/13508a1ec3f8bb981ae4ca79ea40384becc868bfae97fd1c942bb3a001b1/email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7", size = 48967 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/ee/bf0adb559ad3c786f12bcbc9296b3f5675f529199bef03e2df281fa1fadb/email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631", size = 33521 }, +] + +[[package]] +name = "ems-model" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "fastapi", extra = ["standard"] }, + { name = "matplotlib" }, + { name = "notebook" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "scikit-learn" }, + { name = "seaborn" }, +] + +[package.metadata] +requires-dist = [ + { name = "fastapi", extras = ["standard"], specifier = ">=0.115.6" }, + { name = "matplotlib", specifier = ">=3.10.0" }, + { name = "notebook", specifier = ">=7.3.2" }, + { name = "numpy", specifier = ">=2.2.1" }, + { name = "pandas", specifier = ">=2.2.3" }, + { name = "scikit-learn", specifier = ">=1.6.1" }, + { name = "seaborn", specifier = ">=0.13.2" }, +] + +[[package]] +name = "executing" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/e3/7d45f492c2c4a0e8e0fad57d081a7c8a0286cdd86372b070cca1ec0caa1e/executing-2.1.0.tar.gz", hash = "sha256:8ea27ddd260da8150fa5a708269c4a10e76161e2496ec3e587da9e3c0fe4b9ab", size = 977485 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/fd/afcd0496feca3276f509df3dbd5dae726fcc756f1a08d9e25abe1733f962/executing-2.1.0-py2.py3-none-any.whl", hash = "sha256:8d63781349375b5ebccc3142f4b30350c0cd9c79f921cde38be2be4637e98eaf", size = 25805 }, +] + +[[package]] +name = "fastapi" +version = "0.115.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/93/72/d83b98cd106541e8f5e5bfab8ef2974ab45a62e8a6c5b5e6940f26d2ed4b/fastapi-0.115.6.tar.gz", hash = "sha256:9ec46f7addc14ea472958a96aae5b5de65f39721a46aaf5705c480d9a8b76654", size = 301336 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/b3/7e4df40e585df024fac2f80d1a2d579c854ac37109675db2b0cc22c0bb9e/fastapi-0.115.6-py3-none-any.whl", hash = "sha256:e9240b29e36fa8f4bb7290316988e90c381e5092e0cbe84e7818cc3713bcf305", size = 94843 }, +] + +[package.optional-dependencies] +standard = [ + { name = "email-validator" }, + { name = "fastapi-cli", extra = ["standard"] }, + { name = "httpx" }, + { name = "jinja2" }, + { name = "python-multipart" }, + { name = "uvicorn", extra = ["standard"] }, +] + +[[package]] +name = "fastapi-cli" +version = "0.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "rich-toolkit" }, + { name = "typer" }, + { name = "uvicorn", extra = ["standard"] }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fe/73/82a5831fbbf8ed75905bacf5b2d9d3dfd6f04d6968b29fe6f72a5ae9ceb1/fastapi_cli-0.0.7.tar.gz", hash = "sha256:02b3b65956f526412515907a0793c9094abd4bfb5457b389f645b0ea6ba3605e", size = 16753 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/e6/5daefc851b514ce2287d8f5d358ae4341089185f78f3217a69d0ce3a390c/fastapi_cli-0.0.7-py3-none-any.whl", hash = "sha256:d549368ff584b2804336c61f192d86ddea080c11255f375959627911944804f4", size = 10705 }, +] + +[package.optional-dependencies] +standard = [ + { name = "uvicorn", extra = ["standard"] }, +] + +[[package]] +name = "fastjsonschema" +version = "2.21.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8b/50/4b769ce1ac4071a1ef6d86b1a3fb56cdc3a37615e8c5519e1af96cdac366/fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4", size = 373939 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/2b/0817a2b257fe88725c25589d89aec060581aabf668707a8d03b2e9e0cb2a/fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667", size = 23924 }, +] + +[[package]] +name = "fonttools" +version = "4.55.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/76/61/a300d1574dc381393424047c0396a0e213db212e28361123af9830d71a8d/fonttools-4.55.3.tar.gz", hash = "sha256:3983313c2a04d6cc1fe9251f8fc647754cf49a61dac6cb1e7249ae67afaafc45", size = 3498155 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/9f/00142a19bad96eeeb1aed93f567adc19b7f2c1af6f5bc0a1c3de90b4b1ac/fonttools-4.55.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a430178ad3e650e695167cb53242dae3477b35c95bef6525b074d87493c4bf29", size = 2752812 }, + { url = "https://files.pythonhosted.org/packages/b0/20/14b8250d63ba65e162091fb0dda07730f90c303bbf5257e9ddacec7230d9/fonttools-4.55.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:529cef2ce91dc44f8e407cc567fae6e49a1786f2fefefa73a294704c415322a4", size = 2291521 }, + { url = "https://files.pythonhosted.org/packages/34/47/a681cfd10245eb74f65e491a934053ec75c4af639655446558f29818e45e/fonttools-4.55.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e75f12c82127486fac2d8bfbf5bf058202f54bf4f158d367e41647b972342ca", size = 4770980 }, + { url = "https://files.pythonhosted.org/packages/d2/6c/a7066afc19db0705a12efd812e19c32cde2b9514eb714659522f2ebd60b6/fonttools-4.55.3-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:859c358ebf41db18fb72342d3080bce67c02b39e86b9fbcf1610cca14984841b", size = 4845534 }, + { url = "https://files.pythonhosted.org/packages/0c/a2/3c204fbabbfd845d9bdcab9ae35279d41e9a4bf5c80a0a2708f9c5a195d6/fonttools-4.55.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:546565028e244a701f73df6d8dd6be489d01617863ec0c6a42fa25bf45d43048", size = 4753910 }, + { url = "https://files.pythonhosted.org/packages/6e/8c/b4cb3592880340b89e4ef6601b531780bba73862332a6451d78fe135d6cb/fonttools-4.55.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aca318b77f23523309eec4475d1fbbb00a6b133eb766a8bdc401faba91261abe", size = 4976411 }, + { url = "https://files.pythonhosted.org/packages/fc/a8/4bf98840ff89fcc188470b59daec57322178bf36d2f4f756cd19a42a826b/fonttools-4.55.3-cp313-cp313-win32.whl", hash = "sha256:8c5ec45428edaa7022f1c949a632a6f298edc7b481312fc7dc258921e9399628", size = 2160178 }, + { url = "https://files.pythonhosted.org/packages/e6/57/4cc35004605416df3225ff362f3455cf09765db00df578ae9e46d0fefd23/fonttools-4.55.3-cp313-cp313-win_amd64.whl", hash = "sha256:11e5de1ee0d95af4ae23c1a138b184b7f06e0b6abacabf1d0db41c90b03d834b", size = 2206102 }, + { url = "https://files.pythonhosted.org/packages/99/3b/406d17b1f63e04a82aa621936e6e1c53a8c05458abd66300ac85ea7f9ae9/fonttools-4.55.3-py3-none-any.whl", hash = "sha256:f412604ccbeee81b091b420272841e5ec5ef68967a9790e80bffd0e30b8e2977", size = 1111638 }, +] + +[[package]] +name = "fqdn" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121 }, +] + +[[package]] +name = "h11" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f5/38/3af3d3633a34a3316095b39c8e8fb4853a28a536e55d347bd8d8e9a14b03/h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d", size = 100418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/04/ff642e65ad6b90db43e668d70ffb6736436c7ce41fcc549f4e9472234127/h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761", size = 58259 }, +] + +[[package]] +name = "httpcore" +version = "1.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/41/d7d0a89eb493922c37d343b607bc1b5da7f5be7e383740b4753ad8943e90/httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c", size = 85196 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/f5/72347bc88306acb359581ac4d52f23c0ef445b57157adedb9aee0cd689d2/httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd", size = 78551 }, +] + +[[package]] +name = "httptools" +version = "0.6.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/9a/ce5e1f7e131522e6d3426e8e7a490b3a01f39a6696602e1c4f33f9e94277/httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c", size = 240639 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/a3/9fe9ad23fd35f7de6b91eeb60848986058bd8b5a5c1e256f5860a160cc3e/httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660", size = 197214 }, + { url = "https://files.pythonhosted.org/packages/ea/d9/82d5e68bab783b632023f2fa31db20bebb4e89dfc4d2293945fd68484ee4/httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083", size = 102431 }, + { url = "https://files.pythonhosted.org/packages/96/c1/cb499655cbdbfb57b577734fde02f6fa0bbc3fe9fb4d87b742b512908dff/httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3", size = 473121 }, + { url = "https://files.pythonhosted.org/packages/af/71/ee32fd358f8a3bb199b03261f10921716990808a675d8160b5383487a317/httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071", size = 473805 }, + { url = "https://files.pythonhosted.org/packages/8a/0a/0d4df132bfca1507114198b766f1737d57580c9ad1cf93c1ff673e3387be/httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5", size = 448858 }, + { url = "https://files.pythonhosted.org/packages/1e/6a/787004fdef2cabea27bad1073bf6a33f2437b4dbd3b6fb4a9d71172b1c7c/httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0", size = 452042 }, + { url = "https://files.pythonhosted.org/packages/4d/dc/7decab5c404d1d2cdc1bb330b1bf70e83d6af0396fd4fc76fc60c0d522bf/httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8", size = 87682 }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 }, +] + +[[package]] +name = "idna" +version = "3.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/70/7703c29685631f5a7590aa73f1f1d3fa9a380e654b86af429e0934a32f7d/idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9", size = 190490 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, +] + +[[package]] +name = "ipykernel" +version = "6.29.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "appnope", marker = "sys_platform == 'darwin'" }, + { name = "comm" }, + { name = "debugpy" }, + { name = "ipython" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "matplotlib-inline" }, + { name = "nest-asyncio" }, + { name = "packaging" }, + { name = "psutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/5c/67594cb0c7055dc50814b21731c22a601101ea3b1b50a9a1b090e11f5d0f/ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215", size = 163367 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/5c/368ae6c01c7628438358e6d337c19b05425727fbb221d2a3c4303c372f42/ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5", size = 117173 }, +] + +[[package]] +name = "ipython" +version = "8.31.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/01/35/6f90fdddff7a08b7b715fccbd2427b5212c9525cd043d26fdc45bee0708d/ipython-8.31.0.tar.gz", hash = "sha256:b6a2274606bec6166405ff05e54932ed6e5cfecaca1fc05f2cacde7bb074d70b", size = 5501011 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/60/d0feb6b6d9fe4ab89fe8fe5b47cbf6cd936bfd9f1e7ffa9d0015425aeed6/ipython-8.31.0-py3-none-any.whl", hash = "sha256:46ec58f8d3d076a61d128fe517a51eb730e3aaf0c184ea8c17d16e366660c6a6", size = 821583 }, +] + +[[package]] +name = "isoduration" +version = "20.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "arrow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321 }, +] + +[[package]] +name = "jedi" +version = "0.19.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278 }, +] + +[[package]] +name = "jinja2" +version = "3.1.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/92/b3130cbbf5591acf9ade8708c365f3238046ac7cb8ccba6e81abccb0ccff/jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb", size = 244674 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/0f/2ba5fbcd631e3e88689309dbe978c5769e883e4b84ebfe7da30b43275c5a/jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb", size = 134596 }, +] + +[[package]] +name = "joblib" +version = "1.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/64/33/60135848598c076ce4b231e1b1895170f45fbcaeaa2c9d5e38b04db70c35/joblib-1.4.2.tar.gz", hash = "sha256:2382c5816b2636fbd20a09e0f4e9dad4736765fdfb7dca582943b9c1366b3f0e", size = 2116621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl", hash = "sha256:06d478d5674cbc267e7496a410ee875abd68e4340feff4490bcb7afb88060ae6", size = 301817 }, +] + +[[package]] +name = "json5" +version = "0.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/3d/bbe62f3d0c05a689c711cff57b2e3ac3d3e526380adb7c781989f075115c/json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559", size = 48202 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/42/797895b952b682c3dafe23b1834507ee7f02f4d6299b65aaa61425763278/json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa", size = 34049 }, +] + +[[package]] +name = "jsonpointer" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595 }, +] + +[[package]] +name = "jsonschema" +version = "4.23.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4", size = 325778 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/4a/4f9dbeb84e8850557c02365a0eee0649abe5eb1d84af92a25731c6c0f922/jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566", size = 88462 }, +] + +[package.optional-dependencies] +format-nongpl = [ + { name = "fqdn" }, + { name = "idna" }, + { name = "isoduration" }, + { name = "jsonpointer" }, + { name = "rfc3339-validator" }, + { name = "rfc3986-validator" }, + { name = "uri-template" }, + { name = "webcolors" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2024.10.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/10/db/58f950c996c793472e336ff3655b13fbcf1e3b359dcf52dcf3ed3b52c352/jsonschema_specifications-2024.10.1.tar.gz", hash = "sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272", size = 15561 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/0f/8910b19ac0670a0f80ce1008e5e751c4a57e14d2c4c13a482aa6079fa9d6/jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf", size = 18459 }, +] + +[[package]] +name = "jupyter-client" +version = "8.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-core" }, + { name = "python-dateutil" }, + { name = "pyzmq" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/22/bf9f12fdaeae18019a468b68952a60fe6dbab5d67cd2a103cac7659b41ca/jupyter_client-8.6.3.tar.gz", hash = "sha256:35b3a0947c4a6e9d589eb97d7d4cd5e90f910ee73101611f01283732bd6d9419", size = 342019 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/85/b0394e0b6fcccd2c1eeefc230978a6f8cb0c5df1e4cd3e7625735a0d7d1e/jupyter_client-8.6.3-py3-none-any.whl", hash = "sha256:e8a19cc986cc45905ac3362915f410f3af85424b4c0905e94fa5f2cb08e8f23f", size = 106105 }, +] + +[[package]] +name = "jupyter-core" +version = "5.7.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "platformdirs" }, + { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/11/b56381fa6c3f4cc5d2cf54a7dbf98ad9aa0b339ef7a601d6053538b079a7/jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9", size = 87629 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/fb/108ecd1fe961941959ad0ee4e12ee7b8b1477247f30b1fdfd83ceaf017f0/jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409", size = 28965 }, +] + +[[package]] +name = "jupyter-events" +version = "0.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jsonschema", extra = ["format-nongpl"] }, + { name = "python-json-logger" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "rfc3339-validator" }, + { name = "rfc3986-validator" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f4/65/5791c8a979b5646ca29ea50e42b6708908b789f7ff389d1a03c1b93a1c54/jupyter_events-0.11.0.tar.gz", hash = "sha256:c0bc56a37aac29c1fbc3bcfbddb8c8c49533f9cf11f1c4e6adadba936574ab90", size = 62039 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/8c/9b65cb2cd4ea32d885993d5542244641590530836802a2e8c7449a4c61c9/jupyter_events-0.11.0-py3-none-any.whl", hash = "sha256:36399b41ce1ca45fe8b8271067d6a140ffa54cec4028e95491c93b78a855cacf", size = 19423 }, +] + +[[package]] +name = "jupyter-lsp" +version = "2.2.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/85/b4/3200b0b09c12bc3b72d943d923323c398eff382d1dcc7c0dbc8b74630e40/jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001", size = 48741 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/e0/7bd7cff65594fd9936e2f9385701e44574fc7d721331ff676ce440b14100/jupyter_lsp-2.2.5-py3-none-any.whl", hash = "sha256:45fbddbd505f3fbfb0b6cb2f1bc5e15e83ab7c79cd6e89416b248cb3c00c11da", size = 69146 }, +] + +[[package]] +name = "jupyter-server" +version = "2.15.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "argon2-cffi" }, + { name = "jinja2" }, + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "jupyter-events" }, + { name = "jupyter-server-terminals" }, + { name = "nbconvert" }, + { name = "nbformat" }, + { name = "overrides" }, + { name = "packaging" }, + { name = "prometheus-client" }, + { name = "pywinpty", marker = "os_name == 'nt'" }, + { name = "pyzmq" }, + { name = "send2trash" }, + { name = "terminado" }, + { name = "tornado" }, + { name = "traitlets" }, + { name = "websocket-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/8c/df09d4ab646141f130f9977b32b206ba8615d1969b2eba6a2e84b7f89137/jupyter_server-2.15.0.tar.gz", hash = "sha256:9d446b8697b4f7337a1b7cdcac40778babdd93ba614b6d68ab1c0c918f1c4084", size = 725227 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/a2/89eeaf0bb954a123a909859fa507fa86f96eb61b62dc30667b60dbd5fdaf/jupyter_server-2.15.0-py3-none-any.whl", hash = "sha256:872d989becf83517012ee669f09604aa4a28097c0bd90b2f424310156c2cdae3", size = 385826 }, +] + +[[package]] +name = "jupyter-server-terminals" +version = "0.5.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pywinpty", marker = "os_name == 'nt'" }, + { name = "terminado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/d5/562469734f476159e99a55426d697cbf8e7eb5efe89fb0e0b4f83a3d3459/jupyter_server_terminals-0.5.3.tar.gz", hash = "sha256:5ae0295167220e9ace0edcfdb212afd2b01ee8d179fe6f23c899590e9b8a5269", size = 31430 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/2d/2b32cdbe8d2a602f697a649798554e4f072115438e92249624e532e8aca6/jupyter_server_terminals-0.5.3-py3-none-any.whl", hash = "sha256:41ee0d7dc0ebf2809c668e0fc726dfaf258fcd3e769568996ca731b6194ae9aa", size = 13656 }, +] + +[[package]] +name = "jupyterlab" +version = "4.3.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "async-lru" }, + { name = "httpx" }, + { name = "ipykernel" }, + { name = "jinja2" }, + { name = "jupyter-core" }, + { name = "jupyter-lsp" }, + { name = "jupyter-server" }, + { name = "jupyterlab-server" }, + { name = "notebook-shim" }, + { name = "packaging" }, + { name = "setuptools" }, + { name = "tornado" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a7/45/1052f842e066902b1d78126df7e2269b1b9408991e1344e167b2e429f9e1/jupyterlab-4.3.4.tar.gz", hash = "sha256:f0bb9b09a04766e3423cccc2fc23169aa2ffedcdf8713e9e0fb33cac0b6859d0", size = 21797583 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/48/af57263e53cfc220e522de047aa0993f53bab734fe812af1e03e33ac6d7c/jupyterlab-4.3.4-py3-none-any.whl", hash = "sha256:b754c2601c5be6adf87cb5a1d8495d653ffb945f021939f77776acaa94dae952", size = 11665373 }, +] + +[[package]] +name = "jupyterlab-pygments" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/51/9187be60d989df97f5f0aba133fa54e7300f17616e065d1ada7d7646b6d6/jupyterlab_pygments-0.3.0.tar.gz", hash = "sha256:721aca4d9029252b11cfa9d185e5b5af4d54772bb8072f9b7036f4170054d35d", size = 512900 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/dd/ead9d8ea85bf202d90cc513b533f9c363121c7792674f78e0d8a854b63b4/jupyterlab_pygments-0.3.0-py3-none-any.whl", hash = "sha256:841a89020971da1d8693f1a99997aefc5dc424bb1b251fd6322462a1b8842780", size = 15884 }, +] + +[[package]] +name = "jupyterlab-server" +version = "2.27.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "jinja2" }, + { name = "json5" }, + { name = "jsonschema" }, + { name = "jupyter-server" }, + { name = "packaging" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0a/c9/a883ce65eb27905ce77ace410d83587c82ea64dc85a48d1f7ed52bcfa68d/jupyterlab_server-2.27.3.tar.gz", hash = "sha256:eb36caca59e74471988f0ae25c77945610b887f777255aa21f8065def9e51ed4", size = 76173 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/09/2032e7d15c544a0e3cd831c51d77a8ca57f7555b2e1b2922142eddb02a84/jupyterlab_server-2.27.3-py3-none-any.whl", hash = "sha256:e697488f66c3db49df675158a77b3b017520d772c6e1548c7d9bcc5df7944ee4", size = 59700 }, +] + +[[package]] +name = "kiwisolver" +version = "1.4.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/59/7c91426a8ac292e1cdd53a63b6d9439abd573c875c3f92c146767dd33faf/kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e", size = 97538 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/b3/e62464a652f4f8cd9006e13d07abad844a47df1e6537f73ddfbf1bc997ec/kiwisolver-1.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1c8ceb754339793c24aee1c9fb2485b5b1f5bb1c2c214ff13368431e51fc9a09", size = 124156 }, + { url = "https://files.pythonhosted.org/packages/8d/2d/f13d06998b546a2ad4f48607a146e045bbe48030774de29f90bdc573df15/kiwisolver-1.4.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a62808ac74b5e55a04a408cda6156f986cefbcf0ada13572696b507cc92fa1", size = 66555 }, + { url = "https://files.pythonhosted.org/packages/59/e3/b8bd14b0a54998a9fd1e8da591c60998dc003618cb19a3f94cb233ec1511/kiwisolver-1.4.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68269e60ee4929893aad82666821aaacbd455284124817af45c11e50a4b42e3c", size = 65071 }, + { url = "https://files.pythonhosted.org/packages/f0/1c/6c86f6d85ffe4d0ce04228d976f00674f1df5dc893bf2dd4f1928748f187/kiwisolver-1.4.8-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:34d142fba9c464bc3bbfeff15c96eab0e7310343d6aefb62a79d51421fcc5f1b", size = 1378053 }, + { url = "https://files.pythonhosted.org/packages/4e/b9/1c6e9f6dcb103ac5cf87cb695845f5fa71379021500153566d8a8a9fc291/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc373e0eef45b59197de815b1b28ef89ae3955e7722cc9710fb91cd77b7f47", size = 1472278 }, + { url = "https://files.pythonhosted.org/packages/ee/81/aca1eb176de671f8bda479b11acdc42c132b61a2ac861c883907dde6debb/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77e6f57a20b9bd4e1e2cedda4d0b986ebd0216236f0106e55c28aea3d3d69b16", size = 1478139 }, + { url = "https://files.pythonhosted.org/packages/49/f4/e081522473671c97b2687d380e9e4c26f748a86363ce5af48b4a28e48d06/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08e77738ed7538f036cd1170cbed942ef749137b1311fa2bbe2a7fda2f6bf3cc", size = 1413517 }, + { url = "https://files.pythonhosted.org/packages/8f/e9/6a7d025d8da8c4931522922cd706105aa32b3291d1add8c5427cdcd66e63/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5ce1e481a74b44dd5e92ff03ea0cb371ae7a0268318e202be06c8f04f4f1246", size = 1474952 }, + { url = "https://files.pythonhosted.org/packages/82/13/13fa685ae167bee5d94b415991c4fc7bb0a1b6ebea6e753a87044b209678/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:fc2ace710ba7c1dfd1a3b42530b62b9ceed115f19a1656adefce7b1782a37794", size = 2269132 }, + { url = "https://files.pythonhosted.org/packages/ef/92/bb7c9395489b99a6cb41d502d3686bac692586db2045adc19e45ee64ed23/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3452046c37c7692bd52b0e752b87954ef86ee2224e624ef7ce6cb21e8c41cc1b", size = 2425997 }, + { url = "https://files.pythonhosted.org/packages/ed/12/87f0e9271e2b63d35d0d8524954145837dd1a6c15b62a2d8c1ebe0f182b4/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7e9a60b50fe8b2ec6f448fe8d81b07e40141bfced7f896309df271a0b92f80f3", size = 2376060 }, + { url = "https://files.pythonhosted.org/packages/02/6e/c8af39288edbce8bf0fa35dee427b082758a4b71e9c91ef18fa667782138/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:918139571133f366e8362fa4a297aeba86c7816b7ecf0bc79168080e2bd79957", size = 2520471 }, + { url = "https://files.pythonhosted.org/packages/13/78/df381bc7b26e535c91469f77f16adcd073beb3e2dd25042efd064af82323/kiwisolver-1.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e063ef9f89885a1d68dd8b2e18f5ead48653176d10a0e324e3b0030e3a69adeb", size = 2338793 }, + { url = "https://files.pythonhosted.org/packages/d0/dc/c1abe38c37c071d0fc71c9a474fd0b9ede05d42f5a458d584619cfd2371a/kiwisolver-1.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:a17b7c4f5b2c51bb68ed379defd608a03954a1845dfed7cc0117f1cc8a9b7fd2", size = 71855 }, + { url = "https://files.pythonhosted.org/packages/a0/b6/21529d595b126ac298fdd90b705d87d4c5693de60023e0efcb4f387ed99e/kiwisolver-1.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:3cd3bc628b25f74aedc6d374d5babf0166a92ff1317f46267f12d2ed54bc1d30", size = 65430 }, + { url = "https://files.pythonhosted.org/packages/34/bd/b89380b7298e3af9b39f49334e3e2a4af0e04819789f04b43d560516c0c8/kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:370fd2df41660ed4e26b8c9d6bbcad668fbe2560462cba151a721d49e5b6628c", size = 126294 }, + { url = "https://files.pythonhosted.org/packages/83/41/5857dc72e5e4148eaac5aa76e0703e594e4465f8ab7ec0fc60e3a9bb8fea/kiwisolver-1.4.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:84a2f830d42707de1d191b9490ac186bf7997a9495d4e9072210a1296345f7dc", size = 67736 }, + { url = "https://files.pythonhosted.org/packages/e1/d1/be059b8db56ac270489fb0b3297fd1e53d195ba76e9bbb30e5401fa6b759/kiwisolver-1.4.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7a3ad337add5148cf51ce0b55642dc551c0b9d6248458a757f98796ca7348712", size = 66194 }, + { url = "https://files.pythonhosted.org/packages/e1/83/4b73975f149819eb7dcf9299ed467eba068ecb16439a98990dcb12e63fdd/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7506488470f41169b86d8c9aeff587293f530a23a23a49d6bc64dab66bedc71e", size = 1465942 }, + { url = "https://files.pythonhosted.org/packages/c7/2c/30a5cdde5102958e602c07466bce058b9d7cb48734aa7a4327261ac8e002/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f0121b07b356a22fb0414cec4666bbe36fd6d0d759db3d37228f496ed67c880", size = 1595341 }, + { url = "https://files.pythonhosted.org/packages/ff/9b/1e71db1c000385aa069704f5990574b8244cce854ecd83119c19e83c9586/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6d6bd87df62c27d4185de7c511c6248040afae67028a8a22012b010bc7ad062", size = 1598455 }, + { url = "https://files.pythonhosted.org/packages/85/92/c8fec52ddf06231b31cbb779af77e99b8253cd96bd135250b9498144c78b/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:291331973c64bb9cce50bbe871fb2e675c4331dab4f31abe89f175ad7679a4d7", size = 1522138 }, + { url = "https://files.pythonhosted.org/packages/0b/51/9eb7e2cd07a15d8bdd976f6190c0164f92ce1904e5c0c79198c4972926b7/kiwisolver-1.4.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:893f5525bb92d3d735878ec00f781b2de998333659507d29ea4466208df37bed", size = 1582857 }, + { url = "https://files.pythonhosted.org/packages/0f/95/c5a00387a5405e68ba32cc64af65ce881a39b98d73cc394b24143bebc5b8/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b47a465040146981dc9db8647981b8cb96366fbc8d452b031e4f8fdffec3f26d", size = 2293129 }, + { url = "https://files.pythonhosted.org/packages/44/83/eeb7af7d706b8347548313fa3a3a15931f404533cc54fe01f39e830dd231/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:99cea8b9dd34ff80c521aef46a1dddb0dcc0283cf18bde6d756f1e6f31772165", size = 2421538 }, + { url = "https://files.pythonhosted.org/packages/05/f9/27e94c1b3eb29e6933b6986ffc5fa1177d2cd1f0c8efc5f02c91c9ac61de/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:151dffc4865e5fe6dafce5480fab84f950d14566c480c08a53c663a0020504b6", size = 2390661 }, + { url = "https://files.pythonhosted.org/packages/d9/d4/3c9735faa36ac591a4afcc2980d2691000506050b7a7e80bcfe44048daa7/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:577facaa411c10421314598b50413aa1ebcf5126f704f1e5d72d7e4e9f020d90", size = 2546710 }, + { url = "https://files.pythonhosted.org/packages/4c/fa/be89a49c640930180657482a74970cdcf6f7072c8d2471e1babe17a222dc/kiwisolver-1.4.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:be4816dc51c8a471749d664161b434912eee82f2ea66bd7628bd14583a833e85", size = 2349213 }, +] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/38/71/3b932df36c1a044d397a1f92d1cf91ee0a503d91e470cbd670aa66b07ed0/markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb", size = 74596 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/d7/1ec15b46af6af88f19b8e5ffea08fa375d433c998b8a7639e76935c14f1f/markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1", size = 87528 }, +] + +[[package]] +name = "markupsafe" +version = "3.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/97/5d42485e71dfc078108a86d6de8fa46db44a1a9295e89c5d6d4a06e23a62/markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", size = 20537 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/0e/67eb10a7ecc77a0c2bbe2b0235765b98d164d81600746914bebada795e97/MarkupSafe-3.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", size = 14274 }, + { url = "https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", size = 12352 }, + { url = "https://files.pythonhosted.org/packages/d2/f5/6eadfcd3885ea85fe2a7c128315cc1bb7241e1987443d78c8fe712d03091/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", size = 24122 }, + { url = "https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", size = 23085 }, + { url = "https://files.pythonhosted.org/packages/c2/cf/c9d56af24d56ea04daae7ac0940232d31d5a8354f2b457c6d856b2057d69/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", size = 22978 }, + { url = "https://files.pythonhosted.org/packages/2a/9f/8619835cd6a711d6272d62abb78c033bda638fdc54c4e7f4272cf1c0962b/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", size = 24208 }, + { url = "https://files.pythonhosted.org/packages/f9/bf/176950a1792b2cd2102b8ffeb5133e1ed984547b75db47c25a67d3359f77/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", size = 23357 }, + { url = "https://files.pythonhosted.org/packages/ce/4f/9a02c1d335caabe5c4efb90e1b6e8ee944aa245c1aaaab8e8a618987d816/MarkupSafe-3.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", size = 23344 }, + { url = "https://files.pythonhosted.org/packages/ee/55/c271b57db36f748f0e04a759ace9f8f759ccf22b4960c270c78a394f58be/MarkupSafe-3.0.2-cp313-cp313-win32.whl", hash = "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", size = 15101 }, + { url = "https://files.pythonhosted.org/packages/29/88/07df22d2dd4df40aba9f3e402e6dc1b8ee86297dddbad4872bd5e7b0094f/MarkupSafe-3.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", size = 15603 }, + { url = "https://files.pythonhosted.org/packages/62/6a/8b89d24db2d32d433dffcd6a8779159da109842434f1dd2f6e71f32f738c/MarkupSafe-3.0.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", size = 14510 }, + { url = "https://files.pythonhosted.org/packages/7a/06/a10f955f70a2e5a9bf78d11a161029d278eeacbd35ef806c3fd17b13060d/MarkupSafe-3.0.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", size = 12486 }, + { url = "https://files.pythonhosted.org/packages/34/cf/65d4a571869a1a9078198ca28f39fba5fbb910f952f9dbc5220afff9f5e6/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", size = 25480 }, + { url = "https://files.pythonhosted.org/packages/0c/e3/90e9651924c430b885468b56b3d597cabf6d72be4b24a0acd1fa0e12af67/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", size = 23914 }, + { url = "https://files.pythonhosted.org/packages/66/8c/6c7cf61f95d63bb866db39085150df1f2a5bd3335298f14a66b48e92659c/MarkupSafe-3.0.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", size = 23796 }, + { url = "https://files.pythonhosted.org/packages/bb/35/cbe9238ec3f47ac9a7c8b3df7a808e7cb50fe149dc7039f5f454b3fba218/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", size = 25473 }, + { url = "https://files.pythonhosted.org/packages/e6/32/7621a4382488aa283cc05e8984a9c219abad3bca087be9ec77e89939ded9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", size = 24114 }, + { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, + { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, + { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, +] + +[[package]] +name = "matplotlib" +version = "3.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/68/dd/fa2e1a45fce2d09f4aea3cee169760e672c8262325aa5796c49d543dc7e6/matplotlib-3.10.0.tar.gz", hash = "sha256:b886d02a581b96704c9d1ffe55709e49b4d2d52709ccebc4be42db856e511278", size = 36686418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/11/1b2a094d95dcb6e6edd4a0b238177c439006c6b7a9fe8d31801237bf512f/matplotlib-3.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96f2886f5c1e466f21cc41b70c5a0cd47bfa0015eb2d5793c88ebce658600e25", size = 8173073 }, + { url = "https://files.pythonhosted.org/packages/0d/c4/87b6ad2723070511a411ea719f9c70fde64605423b184face4e94986de9d/matplotlib-3.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:12eaf48463b472c3c0f8dbacdbf906e573013df81a0ab82f0616ea4b11281908", size = 8043892 }, + { url = "https://files.pythonhosted.org/packages/57/69/cb0812a136550b21361335e9ffb7d459bf6d13e03cb7b015555d5143d2d6/matplotlib-3.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fbbabc82fde51391c4da5006f965e36d86d95f6ee83fb594b279564a4c5d0d2", size = 8450532 }, + { url = "https://files.pythonhosted.org/packages/ea/3a/bab9deb4fb199c05e9100f94d7f1c702f78d3241e6a71b784d2b88d7bebd/matplotlib-3.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad2e15300530c1a94c63cfa546e3b7864bd18ea2901317bae8bbf06a5ade6dcf", size = 8593905 }, + { url = "https://files.pythonhosted.org/packages/8b/66/742fd242f989adc1847ddf5f445815f73ad7c46aa3440690cc889cfa423c/matplotlib-3.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3547d153d70233a8496859097ef0312212e2689cdf8d7ed764441c77604095ae", size = 9399609 }, + { url = "https://files.pythonhosted.org/packages/fa/d6/54cee7142cef7d910a324a7aedf335c0c147b03658b54d49ec48166f10a6/matplotlib-3.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:c55b20591ced744aa04e8c3e4b7543ea4d650b6c3c4b208c08a05b4010e8b442", size = 8039076 }, + { url = "https://files.pythonhosted.org/packages/43/14/815d072dc36e88753433bfd0385113405efb947e6895ff7b4d2e8614a33b/matplotlib-3.10.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9ade1003376731a971e398cc4ef38bb83ee8caf0aee46ac6daa4b0506db1fd06", size = 8211000 }, + { url = "https://files.pythonhosted.org/packages/9a/76/34e75f364194ec352678adcb540964be6f35ec7d3d8c75ebcb17e6839359/matplotlib-3.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:95b710fea129c76d30be72c3b38f330269363fbc6e570a5dd43580487380b5ff", size = 8087707 }, + { url = "https://files.pythonhosted.org/packages/c3/2b/b6bc0dff6a72d333bc7df94a66e6ce662d224e43daa8ad8ae4eaa9a77f55/matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cdbaf909887373c3e094b0318d7ff230b2ad9dcb64da7ade654182872ab2593", size = 8477384 }, + { url = "https://files.pythonhosted.org/packages/c2/2d/b5949fb2b76e9b47ab05e25a5f5f887c70de20d8b0cbc704a4e2ee71c786/matplotlib-3.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d907fddb39f923d011875452ff1eca29a9e7f21722b873e90db32e5d8ddff12e", size = 8610334 }, + { url = "https://files.pythonhosted.org/packages/d6/9a/6e3c799d5134d9af44b01c787e1360bee38cf51850506ea2e743a787700b/matplotlib-3.10.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3b427392354d10975c1d0f4ee18aa5844640b512d5311ef32efd4dd7db106ede", size = 9406777 }, + { url = "https://files.pythonhosted.org/packages/0e/dd/e6ae97151e5ed648ab2ea48885bc33d39202b640eec7a2910e2c843f7ac0/matplotlib-3.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5fd41b0ec7ee45cd960a8e71aea7c946a28a0b8a4dcee47d2856b2af051f334c", size = 8109742 }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899 }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, +] + +[[package]] +name = "mistune" +version = "3.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/6e/96fc7cb3288666c5de2c396eb0e338dc95f7a8e4920e43e38783a22d0084/mistune-3.1.0.tar.gz", hash = "sha256:dbcac2f78292b9dc066cd03b7a3a26b62d85f8159f2ea5fd28e55df79908d667", size = 94401 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/b3/743ffc3f59da380da504d84ccd1faf9a857a1445991ff19bf2ec754163c2/mistune-3.1.0-py3-none-any.whl", hash = "sha256:b05198cf6d671b3deba6c87ec6cf0d4eb7b72c524636eddb6dbf13823b52cee1", size = 53694 }, +] + +[[package]] +name = "nbclient" +version = "0.10.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-client" }, + { name = "jupyter-core" }, + { name = "nbformat" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/87/66/7ffd18d58eae90d5721f9f39212327695b749e23ad44b3881744eaf4d9e8/nbclient-0.10.2.tar.gz", hash = "sha256:90b7fc6b810630db87a6d0c2250b1f0ab4cf4d3c27a299b0cde78a4ed3fd9193", size = 62424 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/6d/e7fa07f03a4a7b221d94b4d586edb754a9b0dc3c9e2c93353e9fa4e0d117/nbclient-0.10.2-py3-none-any.whl", hash = "sha256:4ffee11e788b4a27fabeb7955547e4318a5298f34342a4bfd01f2e1faaeadc3d", size = 25434 }, +] + +[[package]] +name = "nbconvert" +version = "7.16.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, + { name = "bleach", extra = ["css"] }, + { name = "defusedxml" }, + { name = "jinja2" }, + { name = "jupyter-core" }, + { name = "jupyterlab-pygments" }, + { name = "markupsafe" }, + { name = "mistune" }, + { name = "nbclient" }, + { name = "nbformat" }, + { name = "packaging" }, + { name = "pandocfilters" }, + { name = "pygments" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/2c/d026c0367f2be2463d4c2f5b538e28add2bc67bc13730abb7f364ae4eb8b/nbconvert-7.16.5.tar.gz", hash = "sha256:c83467bb5777fdfaac5ebbb8e864f300b277f68692ecc04d6dab72f2d8442344", size = 856367 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/9e/2dcc9fe00cf55d95a8deae69384e9cea61816126e345754f6c75494d32ec/nbconvert-7.16.5-py3-none-any.whl", hash = "sha256:e12eac052d6fd03040af4166c563d76e7aeead2e9aadf5356db552a1784bd547", size = 258061 }, +] + +[[package]] +name = "nbformat" +version = "5.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fastjsonschema" }, + { name = "jsonschema" }, + { name = "jupyter-core" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6d/fd/91545e604bc3dad7dca9ed03284086039b294c6b3d75c0d2fa45f9e9caf3/nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a", size = 142749 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/82/0340caa499416c78e5d8f5f05947ae4bc3cba53c9f038ab6e9ed964e22f1/nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b", size = 78454 }, +] + +[[package]] +name = "nest-asyncio" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f8/51569ac65d696c8ecbee95938f89d4abf00f47d58d48f6fbabfe8f0baefe/nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe", size = 7418 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/c4/c2971a3ba4c6103a3d10c4b0f24f461ddc027f0f09763220cf35ca1401b3/nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c", size = 5195 }, +] + +[[package]] +name = "notebook" +version = "7.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, + { name = "jupyterlab" }, + { name = "jupyterlab-server" }, + { name = "notebook-shim" }, + { name = "tornado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ea/04/ac488379d5afef43402b3fb4be2857db1a09804fecf98b9b714c741b225b/notebook-7.3.2.tar.gz", hash = "sha256:705e83a1785f45b383bf3ee13cb76680b92d24f56fb0c7d2136fe1d850cd3ca8", size = 12781804 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/9b/76e50ee18f183ea5fe1784a9eeaa50f2c71802e4740d6e959592b0993298/notebook-7.3.2-py3-none-any.whl", hash = "sha256:e5f85fc59b69d3618d73cf27544418193ff8e8058d5bf61d315ce4f473556288", size = 13163630 }, +] + +[[package]] +name = "notebook-shim" +version = "0.2.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jupyter-server" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/d2/92fa3243712b9a3e8bafaf60aac366da1cada3639ca767ff4b5b3654ec28/notebook_shim-0.2.4.tar.gz", hash = "sha256:b4b2cfa1b65d98307ca24361f5b30fe785b53c3fd07b7a47e89acb5e6ac638cb", size = 13167 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/33/bd5b9137445ea4b680023eb0469b2bb969d61303dedb2aac6560ff3d14a1/notebook_shim-0.2.4-py3-none-any.whl", hash = "sha256:411a5be4e9dc882a074ccbcae671eda64cceb068767e9a3419096986560e1cef", size = 13307 }, +] + +[[package]] +name = "numpy" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/a5/fdbf6a7871703df6160b5cf3dd774074b086d278172285c52c2758b76305/numpy-2.2.1.tar.gz", hash = "sha256:45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918", size = 20227662 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/d6/91a26e671c396e0c10e327b763485ee295f5a5a7a48c553f18417e5a0ed5/numpy-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f1d09e520217618e76396377c81fba6f290d5f926f50c35f3a5f72b01a0da780", size = 20896464 }, + { url = "https://files.pythonhosted.org/packages/8c/40/5792ccccd91d45e87d9e00033abc4f6ca8a828467b193f711139ff1f1cd9/numpy-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3ecc47cd7f6ea0336042be87d9e7da378e5c7e9b3c8ad0f7c966f714fc10d821", size = 14111350 }, + { url = "https://files.pythonhosted.org/packages/c0/2a/fb0a27f846cb857cef0c4c92bef89f133a3a1abb4e16bba1c4dace2e9b49/numpy-2.2.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f419290bc8968a46c4933158c91a0012b7a99bb2e465d5ef5293879742f8797e", size = 5111629 }, + { url = "https://files.pythonhosted.org/packages/eb/e5/8e81bb9d84db88b047baf4e8b681a3e48d6390bc4d4e4453eca428ecbb49/numpy-2.2.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5b6c390bfaef8c45a260554888966618328d30e72173697e5cabe6b285fb2348", size = 6645865 }, + { url = "https://files.pythonhosted.org/packages/7a/1a/a90ceb191dd2f9e2897c69dde93ccc2d57dd21ce2acbd7b0333e8eea4e8d/numpy-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:526fc406ab991a340744aad7e25251dd47a6720a685fa3331e5c59fef5282a59", size = 14043508 }, + { url = "https://files.pythonhosted.org/packages/f1/5a/e572284c86a59dec0871a49cd4e5351e20b9c751399d5f1d79628c0542cb/numpy-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74e6fdeb9a265624ec3a3918430205dff1df7e95a230779746a6af78bc615af", size = 16094100 }, + { url = "https://files.pythonhosted.org/packages/0c/2c/a79d24f364788386d85899dd280a94f30b0950be4b4a545f4fa4ed1d4ca7/numpy-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:53c09385ff0b72ba79d8715683c1168c12e0b6e84fb0372e97553d1ea91efe51", size = 15239691 }, + { url = "https://files.pythonhosted.org/packages/cf/79/1e20fd1c9ce5a932111f964b544facc5bb9bde7865f5b42f00b4a6a9192b/numpy-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f3eac17d9ec51be534685ba877b6ab5edc3ab7ec95c8f163e5d7b39859524716", size = 17856571 }, + { url = "https://files.pythonhosted.org/packages/be/5b/cc155e107f75d694f562bdc84a26cc930569f3dfdfbccb3420b626065777/numpy-2.2.1-cp313-cp313-win32.whl", hash = "sha256:9ad014faa93dbb52c80d8f4d3dcf855865c876c9660cb9bd7553843dd03a4b1e", size = 6270841 }, + { url = "https://files.pythonhosted.org/packages/44/be/0e5cd009d2162e4138d79a5afb3b5d2341f0fe4777ab6e675aa3d4a42e21/numpy-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:164a829b6aacf79ca47ba4814b130c4020b202522a93d7bff2202bfb33b61c60", size = 12606618 }, + { url = "https://files.pythonhosted.org/packages/a8/87/04ddf02dd86fb17c7485a5f87b605c4437966d53de1e3745d450343a6f56/numpy-2.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4dfda918a13cc4f81e9118dea249e192ab167a0bb1966272d5503e39234d694e", size = 20921004 }, + { url = "https://files.pythonhosted.org/packages/6e/3e/d0e9e32ab14005425d180ef950badf31b862f3839c5b927796648b11f88a/numpy-2.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:733585f9f4b62e9b3528dd1070ec4f52b8acf64215b60a845fa13ebd73cd0712", size = 14119910 }, + { url = "https://files.pythonhosted.org/packages/b5/5b/aa2d1905b04a8fb681e08742bb79a7bddfc160c7ce8e1ff6d5c821be0236/numpy-2.2.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:89b16a18e7bba224ce5114db863e7029803c179979e1af6ad6a6b11f70545008", size = 5153612 }, + { url = "https://files.pythonhosted.org/packages/ce/35/6831808028df0648d9b43c5df7e1051129aa0d562525bacb70019c5f5030/numpy-2.2.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:676f4eebf6b2d430300f1f4f4c2461685f8269f94c89698d832cdf9277f30b84", size = 6668401 }, + { url = "https://files.pythonhosted.org/packages/b1/38/10ef509ad63a5946cc042f98d838daebfe7eaf45b9daaf13df2086b15ff9/numpy-2.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27f5cdf9f493b35f7e41e8368e7d7b4bbafaf9660cba53fb21d2cd174ec09631", size = 14014198 }, + { url = "https://files.pythonhosted.org/packages/df/f8/c80968ae01df23e249ee0a4487fae55a4c0fe2f838dfe9cc907aa8aea0fa/numpy-2.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1ad395cf254c4fbb5b2132fee391f361a6e8c1adbd28f2cd8e79308a615fe9d", size = 16076211 }, + { url = "https://files.pythonhosted.org/packages/09/69/05c169376016a0b614b432967ac46ff14269eaffab80040ec03ae1ae8e2c/numpy-2.2.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:08ef779aed40dbc52729d6ffe7dd51df85796a702afbf68a4f4e41fafdc8bda5", size = 15220266 }, + { url = "https://files.pythonhosted.org/packages/f1/ff/94a4ce67ea909f41cf7ea712aebbe832dc67decad22944a1020bb398a5ee/numpy-2.2.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:26c9c4382b19fcfbbed3238a14abf7ff223890ea1936b8890f058e7ba35e8d71", size = 17852844 }, + { url = "https://files.pythonhosted.org/packages/46/72/8a5dbce4020dfc595592333ef2fbb0a187d084ca243b67766d29d03e0096/numpy-2.2.1-cp313-cp313t-win32.whl", hash = "sha256:93cf4e045bae74c90ca833cba583c14b62cb4ba2cba0abd2b141ab52548247e2", size = 6326007 }, + { url = "https://files.pythonhosted.org/packages/7b/9c/4fce9cf39dde2562584e4cfd351a0140240f82c0e3569ce25a250f47037d/numpy-2.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bff7d8ec20f5f42607599f9994770fa65d76edca264a87b5e4ea5629bce12268", size = 12693107 }, +] + +[[package]] +name = "overrides" +version = "7.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/36/86/b585f53236dec60aba864e050778b25045f857e17f6e5ea0ae95fe80edd2/overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a", size = 22812 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/ab/fc8290c6a4c722e5514d80f62b2dc4c4df1a68a41d1364e625c35990fcf3/overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49", size = 17832 }, +] + +[[package]] +name = "packaging" +version = "24.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, +] + +[[package]] +name = "pandas" +version = "2.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "pytz" }, + { name = "tzdata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9c/d6/9f8431bacc2e19dca897724cd097b1bb224a6ad5433784a44b587c7c13af/pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667", size = 4399213 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/22/3b8f4e0ed70644e85cfdcd57454686b9057c6c38d2f74fe4b8bc2527214a/pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015", size = 12477643 }, + { url = "https://files.pythonhosted.org/packages/e4/93/b3f5d1838500e22c8d793625da672f3eec046b1a99257666c94446969282/pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28", size = 11281573 }, + { url = "https://files.pythonhosted.org/packages/f5/94/6c79b07f0e5aab1dcfa35a75f4817f5c4f677931d4234afcd75f0e6a66ca/pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0", size = 15196085 }, + { url = "https://files.pythonhosted.org/packages/e8/31/aa8da88ca0eadbabd0a639788a6da13bb2ff6edbbb9f29aa786450a30a91/pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24", size = 12711809 }, + { url = "https://files.pythonhosted.org/packages/ee/7c/c6dbdb0cb2a4344cacfb8de1c5808ca885b2e4dcfde8008266608f9372af/pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659", size = 16356316 }, + { url = "https://files.pythonhosted.org/packages/57/b7/8b757e7d92023b832869fa8881a992696a0bfe2e26f72c9ae9f255988d42/pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb", size = 14022055 }, + { url = "https://files.pythonhosted.org/packages/3b/bc/4b18e2b8c002572c5a441a64826252ce5da2aa738855747247a971988043/pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d", size = 11481175 }, + { url = "https://files.pythonhosted.org/packages/76/a3/a5d88146815e972d40d19247b2c162e88213ef51c7c25993942c39dbf41d/pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468", size = 12615650 }, + { url = "https://files.pythonhosted.org/packages/9c/8c/f0fd18f6140ddafc0c24122c8a964e48294acc579d47def376fef12bcb4a/pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18", size = 11290177 }, + { url = "https://files.pythonhosted.org/packages/ed/f9/e995754eab9c0f14c6777401f7eece0943840b7a9fc932221c19d1abee9f/pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2", size = 14651526 }, + { url = "https://files.pythonhosted.org/packages/25/b0/98d6ae2e1abac4f35230aa756005e8654649d305df9a28b16b9ae4353bff/pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4", size = 11871013 }, + { url = "https://files.pythonhosted.org/packages/cc/57/0f72a10f9db6a4628744c8e8f0df4e6e21de01212c7c981d31e50ffc8328/pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d", size = 15711620 }, + { url = "https://files.pythonhosted.org/packages/ab/5f/b38085618b950b79d2d9164a711c52b10aefc0ae6833b96f626b7021b2ed/pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", size = 13098436 }, +] + +[[package]] +name = "pandocfilters" +version = "1.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/6f/3dd4940bbe001c06a65f88e36bad298bc7a0de5036115639926b0c5c0458/pandocfilters-1.5.1.tar.gz", hash = "sha256:002b4a555ee4ebc03f8b66307e287fa492e4a77b4ea14d3f934328297bb4939e", size = 8454 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/af/4fbc8cab944db5d21b7e2a5b8e9211a03a79852b1157e2c102fcc61ac440/pandocfilters-1.5.1-py2.py3-none-any.whl", hash = "sha256:93be382804a9cdb0a7267585f157e5d1731bbe5545a85b268d6f5fe6232de2bc", size = 8663 }, +] + +[[package]] +name = "parso" +version = "0.8.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/66/94/68e2e17afaa9169cf6412ab0f28623903be73d1b32e208d9e8e541bb086d/parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d", size = 400609 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/ac/dac4a63f978e4dcb3c6d3a78c4d8e0192a113d288502a1216950c41b1027/parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18", size = 103650 }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772 }, +] + +[[package]] +name = "pillow" +version = "11.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/af/c097e544e7bd278333db77933e535098c259609c4eb3b85381109602fb5b/pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20", size = 46742715 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/31/9ca79cafdce364fd5c980cd3416c20ce1bebd235b470d262f9d24d810184/pillow-11.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ae98e14432d458fc3de11a77ccb3ae65ddce70f730e7c76140653048c71bfcbc", size = 3226640 }, + { url = "https://files.pythonhosted.org/packages/ac/0f/ff07ad45a1f172a497aa393b13a9d81a32e1477ef0e869d030e3c1532521/pillow-11.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cc1331b6d5a6e144aeb5e626f4375f5b7ae9934ba620c0ac6b3e43d5e683a0f0", size = 3101437 }, + { url = "https://files.pythonhosted.org/packages/08/2f/9906fca87a68d29ec4530be1f893149e0cb64a86d1f9f70a7cfcdfe8ae44/pillow-11.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:758e9d4ef15d3560214cddbc97b8ef3ef86ce04d62ddac17ad39ba87e89bd3b1", size = 4326605 }, + { url = "https://files.pythonhosted.org/packages/b0/0f/f3547ee15b145bc5c8b336401b2d4c9d9da67da9dcb572d7c0d4103d2c69/pillow-11.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b523466b1a31d0dcef7c5be1f20b942919b62fd6e9a9be199d035509cbefc0ec", size = 4411173 }, + { url = "https://files.pythonhosted.org/packages/b1/df/bf8176aa5db515c5de584c5e00df9bab0713548fd780c82a86cba2c2fedb/pillow-11.1.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:9044b5e4f7083f209c4e35aa5dd54b1dd5b112b108648f5c902ad586d4f945c5", size = 4369145 }, + { url = "https://files.pythonhosted.org/packages/de/7c/7433122d1cfadc740f577cb55526fdc39129a648ac65ce64db2eb7209277/pillow-11.1.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:3764d53e09cdedd91bee65c2527815d315c6b90d7b8b79759cc48d7bf5d4f114", size = 4496340 }, + { url = "https://files.pythonhosted.org/packages/25/46/dd94b93ca6bd555588835f2504bd90c00d5438fe131cf01cfa0c5131a19d/pillow-11.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:31eba6bbdd27dde97b0174ddf0297d7a9c3a507a8a1480e1e60ef914fe23d352", size = 4296906 }, + { url = "https://files.pythonhosted.org/packages/a8/28/2f9d32014dfc7753e586db9add35b8a41b7a3b46540e965cb6d6bc607bd2/pillow-11.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b5d658fbd9f0d6eea113aea286b21d3cd4d3fd978157cbf2447a6035916506d3", size = 4431759 }, + { url = "https://files.pythonhosted.org/packages/33/48/19c2cbe7403870fbe8b7737d19eb013f46299cdfe4501573367f6396c775/pillow-11.1.0-cp313-cp313-win32.whl", hash = "sha256:f86d3a7a9af5d826744fabf4afd15b9dfef44fe69a98541f666f66fbb8d3fef9", size = 2291657 }, + { url = "https://files.pythonhosted.org/packages/3b/ad/285c556747d34c399f332ba7c1a595ba245796ef3e22eae190f5364bb62b/pillow-11.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:593c5fd6be85da83656b93ffcccc2312d2d149d251e98588b14fbc288fd8909c", size = 2626304 }, + { url = "https://files.pythonhosted.org/packages/e5/7b/ef35a71163bf36db06e9c8729608f78dedf032fc8313d19bd4be5c2588f3/pillow-11.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:11633d58b6ee5733bde153a8dafd25e505ea3d32e261accd388827ee987baf65", size = 2375117 }, + { url = "https://files.pythonhosted.org/packages/79/30/77f54228401e84d6791354888549b45824ab0ffde659bafa67956303a09f/pillow-11.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:70ca5ef3b3b1c4a0812b5c63c57c23b63e53bc38e758b37a951e5bc466449861", size = 3230060 }, + { url = "https://files.pythonhosted.org/packages/ce/b1/56723b74b07dd64c1010fee011951ea9c35a43d8020acd03111f14298225/pillow-11.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8000376f139d4d38d6851eb149b321a52bb8893a88dae8ee7d95840431977081", size = 3106192 }, + { url = "https://files.pythonhosted.org/packages/e1/cd/7bf7180e08f80a4dcc6b4c3a0aa9e0b0ae57168562726a05dc8aa8fa66b0/pillow-11.1.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ee85f0696a17dd28fbcfceb59f9510aa71934b483d1f5601d1030c3c8304f3c", size = 4446805 }, + { url = "https://files.pythonhosted.org/packages/97/42/87c856ea30c8ed97e8efbe672b58c8304dee0573f8c7cab62ae9e31db6ae/pillow-11.1.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:dd0e081319328928531df7a0e63621caf67652c8464303fd102141b785ef9547", size = 4530623 }, + { url = "https://files.pythonhosted.org/packages/ff/41/026879e90c84a88e33fb00cc6bd915ac2743c67e87a18f80270dfe3c2041/pillow-11.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e63e4e5081de46517099dc30abe418122f54531a6ae2ebc8680bcd7096860eab", size = 4465191 }, + { url = "https://files.pythonhosted.org/packages/e5/fb/a7960e838bc5df57a2ce23183bfd2290d97c33028b96bde332a9057834d3/pillow-11.1.0-cp313-cp313t-win32.whl", hash = "sha256:dda60aa465b861324e65a78c9f5cf0f4bc713e4309f83bc387be158b077963d9", size = 2295494 }, + { url = "https://files.pythonhosted.org/packages/d7/6c/6ec83ee2f6f0fda8d4cf89045c6be4b0373ebfc363ba8538f8c999f63fcd/pillow-11.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ad5db5781c774ab9a9b2c4302bbf0c1014960a0a7be63278d13ae6fdf88126fe", size = 2631595 }, + { url = "https://files.pythonhosted.org/packages/cf/6c/41c21c6c8af92b9fea313aa47c75de49e2f9a467964ee33eb0135d47eb64/pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756", size = 2377651 }, +] + +[[package]] +name = "platformdirs" +version = "4.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/fc/128cc9cb8f03208bdbf93d3aa862e16d376844a14f9a0ce5cf4507372de4/platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907", size = 21302 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/a6/bc1012356d8ece4d66dd75c4b9fc6c1f6650ddd5991e421177d9f8f671be/platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb", size = 18439 }, +] + +[[package]] +name = "prometheus-client" +version = "0.21.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/62/14/7d0f567991f3a9af8d1cd4f619040c93b68f09a02b6d0b6ab1b2d1ded5fe/prometheus_client-0.21.1.tar.gz", hash = "sha256:252505a722ac04b0456be05c05f75f45d760c2911ffc45f2a06bcaed9f3ae3fb", size = 78551 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/c2/ab7d37426c179ceb9aeb109a85cda8948bb269b7561a0be870cc656eefe4/prometheus_client-0.21.1-py3-none-any.whl", hash = "sha256:594b45c410d6f4f8888940fe80b5cc2521b305a1fafe1c58609ef715a001f301", size = 54682 }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.48" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2d/4f/feb5e137aff82f7c7f3248267b97451da3644f6cdc218edfe549fb354127/prompt_toolkit-3.0.48.tar.gz", hash = "sha256:d6623ab0477a80df74e646bdbc93621143f5caf104206aa29294d53de1a03d90", size = 424684 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/6a/fd08d94654f7e67c52ca30523a178b3f8ccc4237fce4be90d39c938a831a/prompt_toolkit-3.0.48-py3-none-any.whl", hash = "sha256:f49a827f90062e411f1ce1f854f2aedb3c23353244f8108b89283587397ac10e", size = 386595 }, +] + +[[package]] +name = "psutil" +version = "6.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1f/5a/07871137bb752428aa4b659f910b399ba6f291156bdea939be3e96cae7cb/psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5", size = 508502 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/99/ca79d302be46f7bdd8321089762dd4476ee725fce16fc2b2e1dbba8cac17/psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8", size = 247511 }, + { url = "https://files.pythonhosted.org/packages/0b/6b/73dbde0dd38f3782905d4587049b9be64d76671042fdcaf60e2430c6796d/psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377", size = 248985 }, + { url = "https://files.pythonhosted.org/packages/17/38/c319d31a1d3f88c5b79c68b3116c129e5133f1822157dd6da34043e32ed6/psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003", size = 284488 }, + { url = "https://files.pythonhosted.org/packages/9c/39/0f88a830a1c8a3aba27fededc642da37613c57cbff143412e3536f89784f/psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160", size = 287477 }, + { url = "https://files.pythonhosted.org/packages/47/da/99f4345d4ddf2845cb5b5bd0d93d554e84542d116934fde07a0c50bd4e9f/psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3", size = 289017 }, + { url = "https://files.pythonhosted.org/packages/38/53/bd755c2896f4461fd4f36fa6a6dcb66a88a9e4b9fd4e5b66a77cf9d4a584/psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53", size = 250602 }, + { url = "https://files.pythonhosted.org/packages/7b/d7/7831438e6c3ebbfa6e01a927127a6cb42ad3ab844247f3c5b96bea25d73d/psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649", size = 254444 }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993 }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842 }, +] + +[[package]] +name = "pycparser" +version = "2.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/b2/31537cf4b1ca988837256c910a668b553fceb8f069bedc4b1c826024b52c/pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6", size = 172736 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc", size = 117552 }, +] + +[[package]] +name = "pydantic" +version = "2.10.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/c7/ca334c2ef6f2e046b1144fe4bb2a5da8a4c574e7f2ebf7e16b34a6a2fa92/pydantic-2.10.5.tar.gz", hash = "sha256:278b38dbbaec562011d659ee05f63346951b3a248a6f3642e1bc68894ea2b4ff", size = 761287 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/26/82663c79010b28eddf29dcdd0ea723439535fa917fce5905885c0e9ba562/pydantic-2.10.5-py3-none-any.whl", hash = "sha256:4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53", size = 431426 }, +] + +[[package]] +name = "pydantic-core" +version = "2.27.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fc/01/f3e5ac5e7c25833db5eb555f7b7ab24cd6f8c322d3a3ad2d67a952dc0abc/pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39", size = 413443 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/b1/9bc383f48f8002f99104e3acff6cba1231b29ef76cfa45d1506a5cad1f84/pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b", size = 1892709 }, + { url = "https://files.pythonhosted.org/packages/10/6c/e62b8657b834f3eb2961b49ec8e301eb99946245e70bf42c8817350cbefc/pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154", size = 1811273 }, + { url = "https://files.pythonhosted.org/packages/ba/15/52cfe49c8c986e081b863b102d6b859d9defc63446b642ccbbb3742bf371/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9", size = 1823027 }, + { url = "https://files.pythonhosted.org/packages/b1/1c/b6f402cfc18ec0024120602bdbcebc7bdd5b856528c013bd4d13865ca473/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9", size = 1868888 }, + { url = "https://files.pythonhosted.org/packages/bd/7b/8cb75b66ac37bc2975a3b7de99f3c6f355fcc4d89820b61dffa8f1e81677/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1", size = 2037738 }, + { url = "https://files.pythonhosted.org/packages/c8/f1/786d8fe78970a06f61df22cba58e365ce304bf9b9f46cc71c8c424e0c334/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a", size = 2685138 }, + { url = "https://files.pythonhosted.org/packages/a6/74/d12b2cd841d8724dc8ffb13fc5cef86566a53ed358103150209ecd5d1999/pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e", size = 1997025 }, + { url = "https://files.pythonhosted.org/packages/a0/6e/940bcd631bc4d9a06c9539b51f070b66e8f370ed0933f392db6ff350d873/pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4", size = 2004633 }, + { url = "https://files.pythonhosted.org/packages/50/cc/a46b34f1708d82498c227d5d80ce615b2dd502ddcfd8376fc14a36655af1/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27", size = 1999404 }, + { url = "https://files.pythonhosted.org/packages/ca/2d/c365cfa930ed23bc58c41463bae347d1005537dc8db79e998af8ba28d35e/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee", size = 2130130 }, + { url = "https://files.pythonhosted.org/packages/f4/d7/eb64d015c350b7cdb371145b54d96c919d4db516817f31cd1c650cae3b21/pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1", size = 2157946 }, + { url = "https://files.pythonhosted.org/packages/a4/99/bddde3ddde76c03b65dfd5a66ab436c4e58ffc42927d4ff1198ffbf96f5f/pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130", size = 1834387 }, + { url = "https://files.pythonhosted.org/packages/71/47/82b5e846e01b26ac6f1893d3c5f9f3a2eb6ba79be26eef0b759b4fe72946/pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee", size = 1990453 }, + { url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186 }, +] + +[[package]] +name = "pygments" +version = "2.19.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7c/2d/c3338d48ea6cc0feb8446d8e6937e1408088a72a39937982cc6111d17f84/pygments-2.19.1.tar.gz", hash = "sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f", size = 4968581 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/0b/9fcc47d19c48b59121088dd6da2488a49d5f72dacf8262e2790a1d2c7d15/pygments-2.19.1-py3-none-any.whl", hash = "sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c", size = 1225293 }, +] + +[[package]] +name = "pyparsing" +version = "3.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8b/1a/3544f4f299a47911c2ab3710f534e52fea62a633c96806995da5d25be4b2/pyparsing-3.2.1.tar.gz", hash = "sha256:61980854fd66de3a90028d679a954d5f2623e83144b5afe5ee86f43d762e5f0a", size = 1067694 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1", size = 107716 }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, +] + +[[package]] +name = "python-dotenv" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", size = 39115 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 }, +] + +[[package]] +name = "python-json-logger" +version = "3.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/c4/358cd13daa1d912ef795010897a483ab2f0b41c9ea1b35235a8b2f7d15a7/python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008", size = 16287 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/72/2f30cf26664fcfa0bd8ec5ee62ec90c03bd485e4a294d92aabc76c5203a5/python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090", size = 14924 }, +] + +[[package]] +name = "python-multipart" +version = "0.0.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/87/f44d7c9f274c7ee665a29b885ec97089ec5dc034c7f3fafa03da9e39a09e/python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13", size = 37158 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/58/38b5afbc1a800eeea951b9285d3912613f2603bdf897a4ab0f4bd7f405fc/python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104", size = 24546 }, +] + +[[package]] +name = "pytz" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 }, +] + +[[package]] +name = "pywin32" +version = "308" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/a4/aa562d8935e3df5e49c161b427a3a2efad2ed4e9cf81c3de636f1fdddfd0/pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed", size = 5938579 }, + { url = "https://files.pythonhosted.org/packages/c7/50/b0efb8bb66210da67a53ab95fd7a98826a97ee21f1d22949863e6d588b22/pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4", size = 6542056 }, + { url = "https://files.pythonhosted.org/packages/26/df/2b63e3e4f2df0224f8aaf6d131f54fe4e8c96400eb9df563e2aae2e1a1f9/pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd", size = 7974986 }, +] + +[[package]] +name = "pywinpty" +version = "2.0.14" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/82/90f8750423cba4b9b6c842df227609fb60704482d7abf6dd47e2babc055a/pywinpty-2.0.14.tar.gz", hash = "sha256:18bd9529e4a5daf2d9719aa17788ba6013e594ae94c5a0c27e83df3278b0660e", size = 27769 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/34/b77b3c209bf2eaa6455390c8d5449241637f5957f41636a2204065d52bfa/pywinpty-2.0.14-cp313-none-win_amd64.whl", hash = "sha256:074fb988a56ec79ca90ed03a896d40707131897cefb8f76f926e3834227f2819", size = 1396698 }, +] + +[[package]] +name = "pyyaml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 }, + { url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 }, + { url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 }, + { url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 }, + { url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 }, + { url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 }, + { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, + { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, + { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, +] + +[[package]] +name = "pyzmq" +version = "26.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "implementation_name == 'pypy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/05/bed626b9f7bb2322cdbbf7b4bd8f54b1b617b0d2ab2d3547d6e39428a48e/pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f", size = 271975 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/a7/0f7e2f6c126fe6e62dbae0bc93b1bd3f1099cf7fea47a5468defebe3f39d/pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726", size = 1006564 }, + { url = "https://files.pythonhosted.org/packages/31/b6/a187165c852c5d49f826a690857684333a6a4a065af0a6015572d2284f6a/pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3", size = 1340447 }, + { url = "https://files.pythonhosted.org/packages/68/ba/f4280c58ff71f321602a6e24fd19879b7e79793fb8ab14027027c0fb58ef/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50", size = 665485 }, + { url = "https://files.pythonhosted.org/packages/77/b5/c987a5c53c7d8704216f29fc3d810b32f156bcea488a940e330e1bcbb88d/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb", size = 903484 }, + { url = "https://files.pythonhosted.org/packages/29/c9/07da157d2db18c72a7eccef8e684cefc155b712a88e3d479d930aa9eceba/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187", size = 859981 }, + { url = "https://files.pythonhosted.org/packages/43/09/e12501bd0b8394b7d02c41efd35c537a1988da67fc9c745cae9c6c776d31/pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b", size = 860334 }, + { url = "https://files.pythonhosted.org/packages/eb/ff/f5ec1d455f8f7385cc0a8b2acd8c807d7fade875c14c44b85c1bddabae21/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18", size = 1196179 }, + { url = "https://files.pythonhosted.org/packages/ec/8a/bb2ac43295b1950fe436a81fc5b298be0b96ac76fb029b514d3ed58f7b27/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115", size = 1507668 }, + { url = "https://files.pythonhosted.org/packages/a9/49/dbc284ebcfd2dca23f6349227ff1616a7ee2c4a35fe0a5d6c3deff2b4fed/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e", size = 1406539 }, + { url = "https://files.pythonhosted.org/packages/00/68/093cdce3fe31e30a341d8e52a1ad86392e13c57970d722c1f62a1d1a54b6/pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5", size = 575567 }, + { url = "https://files.pythonhosted.org/packages/92/ae/6cc4657148143412b5819b05e362ae7dd09fb9fe76e2a539dcff3d0386bc/pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad", size = 637551 }, + { url = "https://files.pythonhosted.org/packages/6c/67/fbff102e201688f97c8092e4c3445d1c1068c2f27bbd45a578df97ed5f94/pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797", size = 540378 }, + { url = "https://files.pythonhosted.org/packages/3f/fe/2d998380b6e0122c6c4bdf9b6caf490831e5f5e2d08a203b5adff060c226/pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a", size = 1007378 }, + { url = "https://files.pythonhosted.org/packages/4a/f4/30d6e7157f12b3a0390bde94d6a8567cdb88846ed068a6e17238a4ccf600/pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc", size = 1329532 }, + { url = "https://files.pythonhosted.org/packages/82/86/3fe917870e15ee1c3ad48229a2a64458e36036e64b4afa9659045d82bfa8/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5", size = 653242 }, + { url = "https://files.pythonhosted.org/packages/50/2d/242e7e6ef6c8c19e6cb52d095834508cd581ffb925699fd3c640cdc758f1/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672", size = 888404 }, + { url = "https://files.pythonhosted.org/packages/ac/11/7270566e1f31e4ea73c81ec821a4b1688fd551009a3d2bab11ec66cb1e8f/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797", size = 845858 }, + { url = "https://files.pythonhosted.org/packages/91/d5/72b38fbc69867795c8711bdd735312f9fef1e3d9204e2f63ab57085434b9/pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386", size = 847375 }, + { url = "https://files.pythonhosted.org/packages/dd/9a/10ed3c7f72b4c24e719c59359fbadd1a27556a28b36cdf1cd9e4fb7845d5/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306", size = 1183489 }, + { url = "https://files.pythonhosted.org/packages/72/2d/8660892543fabf1fe41861efa222455811adac9f3c0818d6c3170a1153e3/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6", size = 1492932 }, + { url = "https://files.pythonhosted.org/packages/7b/d6/32fd69744afb53995619bc5effa2a405ae0d343cd3e747d0fbc43fe894ee/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0", size = 1392485 }, +] + +[[package]] +name = "referencing" +version = "0.36.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/27/32/fd98246df7a0f309b58cae68b10b6b219ef2eb66747f00dfb34422687087/referencing-0.36.1.tar.gz", hash = "sha256:ca2e6492769e3602957e9b831b94211599d2aade9477f5d44110d2530cf9aade", size = 74661 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/fa/9f193ef0c9074b659009f06d7cbacc6f25b072044815bcf799b76533dbb8/referencing-0.36.1-py3-none-any.whl", hash = "sha256:363d9c65f080d0d70bc41c721dce3c7f3e77fc09f269cd5c8813da18069a6794", size = 26777 }, +] + +[[package]] +name = "requests" +version = "2.32.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/63/70/2bf7780ad2d390a8d301ad0b550f1581eadbd9a20f896afe06353c2a2913/requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760", size = 131218 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f9/9b/335f9764261e915ed497fcdeb11df5dfd6f7bf257d4a6a2a686d80da4d54/requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6", size = 64928 }, +] + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490 }, +] + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/88/f270de456dd7d11dcc808abfa291ecdd3f45ff44e3b549ffa01b126464d0/rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055", size = 6760 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/51/17023c0f8f1869d8806b979a2bffa3f861f26a3f1a66b094288323fba52f/rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", size = 4242 }, +] + +[[package]] +name = "rich" +version = "13.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ab/3a/0316b28d0761c6734d6bc14e770d85506c986c85ffb239e688eeaab2c2bc/rich-13.9.4.tar.gz", hash = "sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098", size = 223149 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/71/39c7c0d87f8d4e6c020a393182060eaefeeae6c01dab6a84ec346f2567df/rich-13.9.4-py3-none-any.whl", hash = "sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90", size = 242424 }, +] + +[[package]] +name = "rich-toolkit" +version = "0.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d2/88/58c193e2e353b0ef8b4b9a91031bbcf8a9a3b431f5ebb4f55c3f3b1992e8/rich_toolkit-0.12.0.tar.gz", hash = "sha256:facb0b40418010309f77abd44e2583b4936656f6ee5c8625da807564806a6c40", size = 71673 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ac/3c/3b66696fc8a6c980674851108d7d57fbcbfedbefb3d8b61a64166dc9b18e/rich_toolkit-0.12.0-py3-none-any.whl", hash = "sha256:a2da4416384410ae871e890db7edf8623e1f5e983341dbbc8cc03603ce24f0ab", size = 13012 }, +] + +[[package]] +name = "rpds-py" +version = "0.22.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/80/cce854d0921ff2f0a9fa831ba3ad3c65cee3a46711addf39a2af52df2cfd/rpds_py-0.22.3.tar.gz", hash = "sha256:e32fee8ab45d3c2db6da19a5323bc3362237c8b653c70194414b892fd06a080d", size = 26771 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/bf/36d5cc1f2c609ae6e8bf0fc35949355ca9d8790eceb66e6385680c951e60/rpds_py-0.22.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ea7433ce7e4bfc3a85654aeb6747babe3f66eaf9a1d0c1e7a4435bbdf27fea84", size = 351657 }, + { url = "https://files.pythonhosted.org/packages/24/2a/f1e0fa124e300c26ea9382e59b2d582cba71cedd340f32d1447f4f29fa4e/rpds_py-0.22.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6dd9412824c4ce1aca56c47b0991e65bebb7ac3f4edccfd3f156150c96a7bf25", size = 341829 }, + { url = "https://files.pythonhosted.org/packages/cf/c2/0da1231dd16953845bed60d1a586fcd6b15ceaeb965f4d35cdc71f70f606/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20070c65396f7373f5df4005862fa162db5d25d56150bddd0b3e8214e8ef45b4", size = 384220 }, + { url = "https://files.pythonhosted.org/packages/c7/73/a4407f4e3a00a9d4b68c532bf2d873d6b562854a8eaff8faa6133b3588ec/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b09865a9abc0ddff4e50b5ef65467cd94176bf1e0004184eb915cbc10fc05c5", size = 391009 }, + { url = "https://files.pythonhosted.org/packages/a9/c3/04b7353477ab360fe2563f5f0b176d2105982f97cd9ae80a9c5a18f1ae0f/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3453e8d41fe5f17d1f8e9c383a7473cd46a63661628ec58e07777c2fff7196dc", size = 426989 }, + { url = "https://files.pythonhosted.org/packages/8d/e6/e4b85b722bcf11398e17d59c0f6049d19cd606d35363221951e6d625fcb0/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5d36399a1b96e1a5fdc91e0522544580dbebeb1f77f27b2b0ab25559e103b8b", size = 441544 }, + { url = "https://files.pythonhosted.org/packages/27/fc/403e65e56f65fff25f2973216974976d3f0a5c3f30e53758589b6dc9b79b/rpds_py-0.22.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:009de23c9c9ee54bf11303a966edf4d9087cd43a6003672e6aa7def643d06518", size = 385179 }, + { url = "https://files.pythonhosted.org/packages/57/9b/2be9ff9700d664d51fd96b33d6595791c496d2778cb0b2a634f048437a55/rpds_py-0.22.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1aef18820ef3e4587ebe8b3bc9ba6e55892a6d7b93bac6d29d9f631a3b4befbd", size = 415103 }, + { url = "https://files.pythonhosted.org/packages/bb/a5/03c2ad8ca10994fcf22dd2150dd1d653bc974fa82d9a590494c84c10c641/rpds_py-0.22.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f60bd8423be1d9d833f230fdbccf8f57af322d96bcad6599e5a771b151398eb2", size = 560916 }, + { url = "https://files.pythonhosted.org/packages/ba/2e/be4fdfc8b5b576e588782b56978c5b702c5a2307024120d8aeec1ab818f0/rpds_py-0.22.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62d9cfcf4948683a18a9aff0ab7e1474d407b7bab2ca03116109f8464698ab16", size = 587062 }, + { url = "https://files.pythonhosted.org/packages/67/e0/2034c221937709bf9c542603d25ad43a68b4b0a9a0c0b06a742f2756eb66/rpds_py-0.22.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9253fc214112405f0afa7db88739294295f0e08466987f1d70e29930262b4c8f", size = 555734 }, + { url = "https://files.pythonhosted.org/packages/ea/ce/240bae07b5401a22482b58e18cfbabaa392409b2797da60223cca10d7367/rpds_py-0.22.3-cp313-cp313-win32.whl", hash = "sha256:fb0ba113b4983beac1a2eb16faffd76cb41e176bf58c4afe3e14b9c681f702de", size = 220663 }, + { url = "https://files.pythonhosted.org/packages/cb/f0/d330d08f51126330467edae2fa4efa5cec8923c87551a79299380fdea30d/rpds_py-0.22.3-cp313-cp313-win_amd64.whl", hash = "sha256:c58e2339def52ef6b71b8f36d13c3688ea23fa093353f3a4fee2556e62086ec9", size = 235503 }, + { url = "https://files.pythonhosted.org/packages/f7/c4/dbe1cc03df013bf2feb5ad00615038050e7859f381e96fb5b7b4572cd814/rpds_py-0.22.3-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f82a116a1d03628a8ace4859556fb39fd1424c933341a08ea3ed6de1edb0283b", size = 347698 }, + { url = "https://files.pythonhosted.org/packages/a4/3a/684f66dd6b0f37499cad24cd1c0e523541fd768576fa5ce2d0a8799c3cba/rpds_py-0.22.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3dfcbc95bd7992b16f3f7ba05af8a64ca694331bd24f9157b49dadeeb287493b", size = 337330 }, + { url = "https://files.pythonhosted.org/packages/82/eb/e022c08c2ce2e8f7683baa313476492c0e2c1ca97227fe8a75d9f0181e95/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59259dc58e57b10e7e18ce02c311804c10c5a793e6568f8af4dead03264584d1", size = 380022 }, + { url = "https://files.pythonhosted.org/packages/e4/21/5a80e653e4c86aeb28eb4fea4add1f72e1787a3299687a9187105c3ee966/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5725dd9cc02068996d4438d397e255dcb1df776b7ceea3b9cb972bdb11260a83", size = 390754 }, + { url = "https://files.pythonhosted.org/packages/37/a4/d320a04ae90f72d080b3d74597074e62be0a8ecad7d7321312dfe2dc5a6a/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99b37292234e61325e7a5bb9689e55e48c3f5f603af88b1642666277a81f1fbd", size = 423840 }, + { url = "https://files.pythonhosted.org/packages/87/70/674dc47d93db30a6624279284e5631be4c3a12a0340e8e4f349153546728/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:27b1d3b3915a99208fee9ab092b8184c420f2905b7d7feb4aeb5e4a9c509b8a1", size = 438970 }, + { url = "https://files.pythonhosted.org/packages/3f/64/9500f4d66601d55cadd21e90784cfd5d5f4560e129d72e4339823129171c/rpds_py-0.22.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f612463ac081803f243ff13cccc648578e2279295048f2a8d5eb430af2bae6e3", size = 383146 }, + { url = "https://files.pythonhosted.org/packages/4d/45/630327addb1d17173adcf4af01336fd0ee030c04798027dfcb50106001e0/rpds_py-0.22.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f73d3fef726b3243a811121de45193c0ca75f6407fe66f3f4e183c983573e130", size = 408294 }, + { url = "https://files.pythonhosted.org/packages/5f/ef/8efb3373cee54ea9d9980b772e5690a0c9e9214045a4e7fa35046e399fee/rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3f21f0495edea7fdbaaa87e633a8689cd285f8f4af5c869f27bc8074638ad69c", size = 556345 }, + { url = "https://files.pythonhosted.org/packages/54/01/151d3b9ef4925fc8f15bfb131086c12ec3c3d6dd4a4f7589c335bf8e85ba/rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:1e9663daaf7a63ceccbbb8e3808fe90415b0757e2abddbfc2e06c857bf8c5e2b", size = 582292 }, + { url = "https://files.pythonhosted.org/packages/30/89/35fc7a6cdf3477d441c7aca5e9bbf5a14e0f25152aed7f63f4e0b141045d/rpds_py-0.22.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a76e42402542b1fae59798fab64432b2d015ab9d0c8c47ba7addddbaf7952333", size = 553855 }, + { url = "https://files.pythonhosted.org/packages/8f/e0/830c02b2457c4bd20a8c5bb394d31d81f57fbefce2dbdd2e31feff4f7003/rpds_py-0.22.3-cp313-cp313t-win32.whl", hash = "sha256:69803198097467ee7282750acb507fba35ca22cc3b85f16cf45fb01cb9097730", size = 219100 }, + { url = "https://files.pythonhosted.org/packages/f8/30/7ac943f69855c2db77407ae363484b915d861702dbba1aa82d68d57f42be/rpds_py-0.22.3-cp313-cp313t-win_amd64.whl", hash = "sha256:f5cf2a0c2bdadf3791b5c205d55a37a54025c6e18a71c71f82bb536cf9a454bf", size = 233794 }, +] + +[[package]] +name = "scikit-learn" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9e/a5/4ae3b3a0755f7b35a280ac90b28817d1f380318973cff14075ab41ef50d9/scikit_learn-1.6.1.tar.gz", hash = "sha256:b4fc2525eca2c69a59260f583c56a7557c6ccdf8deafdba6e060f94c1c59738e", size = 7068312 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/59/8eb1872ca87009bdcdb7f3cdc679ad557b992c12f4b61f9250659e592c63/scikit_learn-1.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2ffa1e9e25b3d93990e74a4be2c2fc61ee5af85811562f1288d5d055880c4322", size = 12010001 }, + { url = "https://files.pythonhosted.org/packages/9d/05/f2fc4effc5b32e525408524c982c468c29d22f828834f0625c5ef3d601be/scikit_learn-1.6.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dc5cf3d68c5a20ad6d571584c0750ec641cc46aeef1c1507be51300e6003a7e1", size = 11096360 }, + { url = "https://files.pythonhosted.org/packages/c8/e4/4195d52cf4f113573fb8ebc44ed5a81bd511a92c0228889125fac2f4c3d1/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c06beb2e839ecc641366000ca84f3cf6fa9faa1777e29cf0c04be6e4d096a348", size = 12209004 }, + { url = "https://files.pythonhosted.org/packages/94/be/47e16cdd1e7fcf97d95b3cb08bde1abb13e627861af427a3651fcb80b517/scikit_learn-1.6.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8ca8cb270fee8f1f76fa9bfd5c3507d60c6438bbee5687f81042e2bb98e5a97", size = 13171776 }, + { url = "https://files.pythonhosted.org/packages/34/b0/ca92b90859070a1487827dbc672f998da95ce83edce1270fc23f96f1f61a/scikit_learn-1.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:7a1c43c8ec9fde528d664d947dc4c0789be4077a3647f232869f41d9bf50e0fb", size = 11071865 }, + { url = "https://files.pythonhosted.org/packages/12/ae/993b0fb24a356e71e9a894e42b8a9eec528d4c70217353a1cd7a48bc25d4/scikit_learn-1.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a17c1dea1d56dcda2fac315712f3651a1fea86565b64b48fa1bc090249cbf236", size = 11955804 }, + { url = "https://files.pythonhosted.org/packages/d6/54/32fa2ee591af44507eac86406fa6bba968d1eb22831494470d0a2e4a1eb1/scikit_learn-1.6.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6a7aa5f9908f0f28f4edaa6963c0a6183f1911e63a69aa03782f0d924c830a35", size = 11100530 }, + { url = "https://files.pythonhosted.org/packages/3f/58/55856da1adec655bdce77b502e94a267bf40a8c0b89f8622837f89503b5a/scikit_learn-1.6.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0650e730afb87402baa88afbf31c07b84c98272622aaba002559b614600ca691", size = 12433852 }, + { url = "https://files.pythonhosted.org/packages/ff/4f/c83853af13901a574f8f13b645467285a48940f185b690936bb700a50863/scikit_learn-1.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:3f59fe08dc03ea158605170eb52b22a105f238a5d512c4470ddeca71feae8e5f", size = 11337256 }, +] + +[[package]] +name = "scipy" +version = "1.15.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/7b/2b8ac283cf32465ed08bc20a83d559fe7b174a484781702ba8accea001d6/scipy-1.15.0.tar.gz", hash = "sha256:300742e2cc94e36a2880ebe464a1c8b4352a7b0f3e36ec3d2ac006cdbe0219ac", size = 59407226 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/46/2fa07d5b53092b73c4bb416954d07d883b53be4a5bd6282c67e03c051225/scipy-1.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0fcb16eb04d84670722ce8d93b05257df471704c913cb0ff9dc5a1c31d1e9422", size = 41438080 }, + { url = "https://files.pythonhosted.org/packages/55/05/77778b1127e170ffb484614691fdd8f9d2640dcf951d515f513debe5d0e0/scipy-1.15.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:767e8cf6562931f8312f4faa7ddea412cb783d8df49e62c44d00d89f41f9bbe8", size = 32532932 }, + { url = "https://files.pythonhosted.org/packages/2b/9f/6de4970a2f524785d94a85f423a53b8c53d84917f2df702733ccdc9afd54/scipy-1.15.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:37ce9394cdcd7c5f437583fc6ef91bd290014993900643fdfc7af9b052d1613b", size = 24806488 }, + { url = "https://files.pythonhosted.org/packages/65/ef/b1c1e2499189bbea109a6b022a6147dd4552d72bed19289b4d4e411c4ce7/scipy-1.15.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:6d26f17c64abd6c6c2dfb39920f61518cc9e213d034b45b2380e32ba78fde4c0", size = 27930055 }, + { url = "https://files.pythonhosted.org/packages/24/ec/6e4fe2a34a91102c806ecf9f45426f66bd604a5b5f48e951ce2bd770b2fe/scipy-1.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e2448acd79c6374583581a1ded32ac71a00c2b9c62dfa87a40e1dd2520be111", size = 38031212 }, + { url = "https://files.pythonhosted.org/packages/82/4d/ecef655956ce332edbc411ab64ab843d767dd86e646898ac721dbcc7910e/scipy-1.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36be480e512d38db67f377add5b759fb117edd987f4791cdf58e59b26962bee4", size = 40209536 }, + { url = "https://files.pythonhosted.org/packages/c5/ec/3af823fcd86e3155ad7ed2b684634391e4524ff82735c26abed522fc5405/scipy-1.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ccb6248a9987193fe74363a2d73b93bc2c546e0728bd786050b7aef6e17db03c", size = 42584473 }, + { url = "https://files.pythonhosted.org/packages/23/01/f0ec4236ba8a96353e56694160041d7d9bebd9a0231a1c9beedc6e75cd50/scipy-1.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:952d2e9eaa787f0a9e95b6e85da3654791b57a156c3e6609e65cc5176ccfe6f2", size = 43639460 }, + { url = "https://files.pythonhosted.org/packages/e9/02/c8bccc5c4813eccfeeef6ed0effe42e2cf98199d350ca476c22029569edc/scipy-1.15.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b1432102254b6dc7766d081fa92df87832ac25ff0b3d3a940f37276e63eb74ff", size = 41642304 }, + { url = "https://files.pythonhosted.org/packages/27/7a/9191a8b61f5826f08932b6ae47d44fbf4f473beb307d8ca3ed96a216929f/scipy-1.15.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:4e08c6a36f46abaedf765dd2dfcd3698fa4bd7e311a9abb2d80e33d9b2d72c34", size = 32620019 }, + { url = "https://files.pythonhosted.org/packages/e6/17/9c8452c8a59f1ede4a7ba6ba03b8b44703cdd1f1217b649f470c216f3095/scipy-1.15.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:ec915cd26d76f6fc7ae8522f74f5b2accf39546f341c771bb2297f3871934a52", size = 24893299 }, + { url = "https://files.pythonhosted.org/packages/db/73/45c8566538bf9252be1e3e36b149714619c6f4d015a901cd76e257f88a37/scipy-1.15.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:351899dd2a801edd3691622172bc8ea01064b1cada794f8641b89a7dc5418db6", size = 27955764 }, + { url = "https://files.pythonhosted.org/packages/9f/4e/8822a2cafcea8727430e9a0bf785e8f0e81aaaac1048dad764d522f0f1ec/scipy-1.15.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9baff912ea4f78a543d183ed6f5b3bea9784509b948227daaf6f10727a0e2e5", size = 39879164 }, + { url = "https://files.pythonhosted.org/packages/b1/27/b55549a4aba515d9a19b6384c2c2f976725cd19d5d41c58ffac9a4d98892/scipy-1.15.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cd9d9198a7fd9a77f0eb5105ea9734df26f41faeb2a88a0e62e5245506f7b6df", size = 42091406 }, + { url = "https://files.pythonhosted.org/packages/79/df/989b2fd3f8ead6bcf89fc683fde94741eb3b291e41a3ce70cec08c80aa36/scipy-1.15.0-cp313-cp313t-win_amd64.whl", hash = "sha256:129f899ed275c0515d553b8d31696924e2ca87d1972421e46c376b9eb87de3d2", size = 43188844 }, +] + +[[package]] +name = "seaborn" +version = "0.13.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "matplotlib" }, + { name = "numpy" }, + { name = "pandas" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/86/59/a451d7420a77ab0b98f7affa3a1d78a313d2f7281a57afb1a34bae8ab412/seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7", size = 1457696 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/11/00d3c3dfc25ad54e731d91449895a79e4bf2384dc3ac01809010ba88f6d5/seaborn-0.13.2-py3-none-any.whl", hash = "sha256:636f8336facf092165e27924f223d3c62ca560b1f2bb5dff7ab7fad265361987", size = 294914 }, +] + +[[package]] +name = "send2trash" +version = "1.8.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/3a/aec9b02217bb79b87bbc1a21bc6abc51e3d5dcf65c30487ac96c0908c722/Send2Trash-1.8.3.tar.gz", hash = "sha256:b18e7a3966d99871aefeb00cfbcfdced55ce4871194810fc71f4aa484b953abf", size = 17394 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/b0/4562db6223154aa4e22f939003cb92514c79f3d4dccca3444253fd17f902/Send2Trash-1.8.3-py3-none-any.whl", hash = "sha256:0c31227e0bd08961c7665474a3d1ef7193929fedda4233843689baa056be46c9", size = 18072 }, +] + +[[package]] +name = "setuptools" +version = "75.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/92/ec/089608b791d210aec4e7f97488e67ab0d33add3efccb83a056cbafe3a2a6/setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6", size = 1343222 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/8a/b9dc7678803429e4a3bc9ba462fa3dd9066824d3c607490235c6a796be5a/setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3", size = 1228782 }, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235 }, +] + +[[package]] +name = "soupsieve" +version = "2.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/ce/fbaeed4f9fb8b2daa961f90591662df6a86c1abf25c548329a86920aedfb/soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb", size = 101569 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/c2/fe97d779f3ef3b15f05c94a2f1e3d21732574ed441687474db9d342a7315/soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9", size = 36186 }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521 }, +] + +[[package]] +name = "starlette" +version = "0.41.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1a/4c/9b5764bd22eec91c4039ef4c55334e9187085da2d8a2df7bd570869aae18/starlette-0.41.3.tar.gz", hash = "sha256:0e4ab3d16522a255be6b28260b938eae2482f98ce5cc934cb08dce8dc3ba5835", size = 2574159 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/00/2b325970b3060c7cecebab6d295afe763365822b1306a12eeab198f74323/starlette-0.41.3-py3-none-any.whl", hash = "sha256:44cedb2b7c77a9de33a8b74b2b90e9f50d11fcf25d8270ea525ad71a25374ff7", size = 73225 }, +] + +[[package]] +name = "terminado" +version = "0.18.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess", marker = "os_name != 'nt'" }, + { name = "pywinpty", marker = "os_name == 'nt'" }, + { name = "tornado" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/11/965c6fd8e5cc254f1fe142d547387da17a8ebfd75a3455f637c663fb38a0/terminado-0.18.1.tar.gz", hash = "sha256:de09f2c4b85de4765f7714688fff57d3e75bad1f909b589fde880460c753fd2e", size = 32701 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/9e/2064975477fdc887e47ad42157e214526dcad8f317a948dee17e1659a62f/terminado-0.18.1-py3-none-any.whl", hash = "sha256:a4468e1b37bb318f8a86514f65814e1afc977cf29b3992a4500d9dd305dcceb0", size = 14154 }, +] + +[[package]] +name = "threadpoolctl" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/55/b5148dcbf72f5cde221f8bfe3b6a540da7aa1842f6b491ad979a6c8b84af/threadpoolctl-3.5.0.tar.gz", hash = "sha256:082433502dd922bf738de0d8bcc4fdcbf0979ff44c42bd40f5af8a282f6fa107", size = 41936 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4b/2c/ffbf7a134b9ab11a67b0cf0726453cedd9c5043a4fe7a35d1cefa9a1bcfb/threadpoolctl-3.5.0-py3-none-any.whl", hash = "sha256:56c1e26c150397e58c4926da8eeee87533b1e32bef131bd4bf6a2f45f3185467", size = 18414 }, +] + +[[package]] +name = "tinycss2" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/fd/7a5ee21fd08ff70d3d33a5781c255cbe779659bd03278feb98b19ee550f4/tinycss2-1.4.0.tar.gz", hash = "sha256:10c0972f6fc0fbee87c3edb76549357415e94548c1ae10ebccdea16fb404a9b7", size = 87085 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/34/ebdc18bae6aa14fbee1a08b63c015c72b64868ff7dae68808ab500c492e2/tinycss2-1.4.0-py3-none-any.whl", hash = "sha256:3a49cf47b7675da0b15d0c6e1df8df4ebd96e9394bb905a5775adb0d884c5289", size = 26610 }, +] + +[[package]] +name = "tornado" +version = "6.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/59/45/a0daf161f7d6f36c3ea5fc0c2de619746cc3dd4c76402e9db545bd920f63/tornado-6.4.2.tar.gz", hash = "sha256:92bad5b4746e9879fd7bf1eb21dce4e3fc5128d71601f80005afa39237ad620b", size = 501135 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/7e/71f604d8cea1b58f82ba3590290b66da1e72d840aeb37e0d5f7291bd30db/tornado-6.4.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e828cce1123e9e44ae2a50a9de3055497ab1d0aeb440c5ac23064d9e44880da1", size = 436299 }, + { url = "https://files.pythonhosted.org/packages/96/44/87543a3b99016d0bf54fdaab30d24bf0af2e848f1d13d34a3a5380aabe16/tornado-6.4.2-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:072ce12ada169c5b00b7d92a99ba089447ccc993ea2143c9ede887e0937aa803", size = 434253 }, + { url = "https://files.pythonhosted.org/packages/cb/fb/fdf679b4ce51bcb7210801ef4f11fdac96e9885daa402861751353beea6e/tornado-6.4.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a017d239bd1bb0919f72af256a970624241f070496635784d9bf0db640d3fec", size = 437602 }, + { url = "https://files.pythonhosted.org/packages/4f/3b/e31aeffffc22b475a64dbeb273026a21b5b566f74dee48742817626c47dc/tornado-6.4.2-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36e62ce8f63409301537222faffcef7dfc5284f27eec227389f2ad11b09d946", size = 436972 }, + { url = "https://files.pythonhosted.org/packages/22/55/b78a464de78051a30599ceb6983b01d8f732e6f69bf37b4ed07f642ac0fc/tornado-6.4.2-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca9eb02196e789c9cb5c3c7c0f04fb447dc2adffd95265b2c7223a8a615ccbf", size = 437173 }, + { url = "https://files.pythonhosted.org/packages/79/5e/be4fb0d1684eb822c9a62fb18a3e44a06188f78aa466b2ad991d2ee31104/tornado-6.4.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:304463bd0772442ff4d0f5149c6f1c2135a1fae045adf070821c6cdc76980634", size = 437892 }, + { url = "https://files.pythonhosted.org/packages/f5/33/4f91fdd94ea36e1d796147003b490fe60a0215ac5737b6f9c65e160d4fe0/tornado-6.4.2-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:c82c46813ba483a385ab2a99caeaedf92585a1f90defb5693351fa7e4ea0bf73", size = 437334 }, + { url = "https://files.pythonhosted.org/packages/2b/ae/c1b22d4524b0e10da2f29a176fb2890386f7bd1f63aacf186444873a88a0/tornado-6.4.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:932d195ca9015956fa502c6b56af9eb06106140d844a335590c1ec7f5277d10c", size = 437261 }, + { url = "https://files.pythonhosted.org/packages/b5/25/36dbd49ab6d179bcfc4c6c093a51795a4f3bed380543a8242ac3517a1751/tornado-6.4.2-cp38-abi3-win32.whl", hash = "sha256:2876cef82e6c5978fde1e0d5b1f919d756968d5b4282418f3146b79b58556482", size = 438463 }, + { url = "https://files.pythonhosted.org/packages/61/cc/58b1adeb1bb46228442081e746fcdbc4540905c87e8add7c277540934edb/tornado-6.4.2-cp38-abi3-win_amd64.whl", hash = "sha256:908b71bf3ff37d81073356a5fadcc660eb10c1476ee6e2725588626ce7e5ca38", size = 438907 }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359 }, +] + +[[package]] +name = "typer" +version = "0.15.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/ce/dca7b219718afd37a0068f4f2530a727c2b74a8b6e8e0c0080a4c0de4fcd/typer-0.15.1.tar.gz", hash = "sha256:a0588c0a7fa68a1978a069818657778f86abe6ff5ea6abf472f940a08bfe4f0a", size = 99789 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/cc/0a838ba5ca64dc832aa43f727bd586309846b0ffb2ce52422543e6075e8a/typer-0.15.1-py3-none-any.whl", hash = "sha256:7994fb7b8155b64d3402518560648446072864beefd44aa2dc36972a5972e847", size = 44908 }, +] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20241206" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/60/47d92293d9bc521cd2301e423a358abfac0ad409b3a1606d8fbae1321961/types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb", size = 13802 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0f/b3/ca41df24db5eb99b00d97f89d7674a90cb6b3134c52fb8121b6d8d30f15c/types_python_dateutil-2.9.0.20241206-py3-none-any.whl", hash = "sha256:e248a4bc70a486d3e3ec84d0dc30eec3a5f979d6e7ee4123ae043eedbb987f53", size = 14384 }, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/db/f35a00659bc03fec321ba8bce9420de607a1d37f8342eee1863174c69557/typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8", size = 85321 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/9f/ad63fc0248c5379346306f8668cda6e2e2e9c95e01216d2b8ffd9ff037d0/typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", size = 37438 }, +] + +[[package]] +name = "tzdata" +version = "2024.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/34/943888654477a574a86a98e9896bae89c7aa15078ec29f490fef2f1e5384/tzdata-2024.2.tar.gz", hash = "sha256:7d85cc416e9382e69095b7bdf4afd9e3880418a2413feec7069d533d6b4e31cc", size = 193282 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/ab/7e5f53c3b9d14972843a647d8d7a853969a58aecc7559cb3267302c94774/tzdata-2024.2-py2.py3-none-any.whl", hash = "sha256:a48093786cdcde33cad18c2555e8532f34422074448fbc874186f0abd79565cd", size = 346586 }, +] + +[[package]] +name = "uri-template" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140 }, +] + +[[package]] +name = "urllib3" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/63/e53da845320b757bf29ef6a9062f5c669fe997973f966045cb019c3f4b66/urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d", size = 307268 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c8/19/4ec628951a74043532ca2cf5d97b7b14863931476d117c471e8e2b1eb39f/urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df", size = 128369 }, +] + +[[package]] +name = "uvicorn" +version = "0.34.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4b/4d/938bd85e5bf2edeec766267a5015ad969730bb91e31b44021dfe8b22df6c/uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9", size = 76568 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4", size = 62315 }, +] + +[package.optional-dependencies] +standard = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "httptools" }, + { name = "python-dotenv" }, + { name = "pyyaml" }, + { name = "uvloop", marker = "platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'" }, + { name = "watchfiles" }, + { name = "websockets" }, +] + +[[package]] +name = "uvloop" +version = "0.21.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/c0/854216d09d33c543f12a44b393c402e89a920b1a0a7dc634c42de91b9cf6/uvloop-0.21.0.tar.gz", hash = "sha256:3bf12b0fda68447806a7ad847bfa591613177275d35b6724b1ee573faa3704e3", size = 2492741 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/8d/2cbef610ca21539f0f36e2b34da49302029e7c9f09acef0b1c3b5839412b/uvloop-0.21.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bfd55dfcc2a512316e65f16e503e9e450cab148ef11df4e4e679b5e8253a5281", size = 1468123 }, + { url = "https://files.pythonhosted.org/packages/93/0d/b0038d5a469f94ed8f2b2fce2434a18396d8fbfb5da85a0a9781ebbdec14/uvloop-0.21.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787ae31ad8a2856fc4e7c095341cccc7209bd657d0e71ad0dc2ea83c4a6fa8af", size = 819325 }, + { url = "https://files.pythonhosted.org/packages/50/94/0a687f39e78c4c1e02e3272c6b2ccdb4e0085fda3b8352fecd0410ccf915/uvloop-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ee4d4ef48036ff6e5cfffb09dd192c7a5027153948d85b8da7ff705065bacc6", size = 4582806 }, + { url = "https://files.pythonhosted.org/packages/d2/19/f5b78616566ea68edd42aacaf645adbf71fbd83fc52281fba555dc27e3f1/uvloop-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3df876acd7ec037a3d005b3ab85a7e4110422e4d9c1571d4fc89b0fc41b6816", size = 4701068 }, + { url = "https://files.pythonhosted.org/packages/47/57/66f061ee118f413cd22a656de622925097170b9380b30091b78ea0c6ea75/uvloop-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bd53ecc9a0f3d87ab847503c2e1552b690362e005ab54e8a48ba97da3924c0dc", size = 4454428 }, + { url = "https://files.pythonhosted.org/packages/63/9a/0962b05b308494e3202d3f794a6e85abe471fe3cafdbcf95c2e8c713aabd/uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553", size = 4660018 }, +] + +[[package]] +name = "watchfiles" +version = "1.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/26/c705fc77d0a9ecdb9b66f1e2976d95b81df3cae518967431e7dbf9b5e219/watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205", size = 94625 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/98/f03efabec64b5b1fa58c0daab25c68ef815b0f320e54adcacd0d6847c339/watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9", size = 390954 }, + { url = "https://files.pythonhosted.org/packages/16/09/4dd49ba0a32a45813debe5fb3897955541351ee8142f586303b271a02b40/watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60", size = 381133 }, + { url = "https://files.pythonhosted.org/packages/76/59/5aa6fc93553cd8d8ee75c6247763d77c02631aed21551a97d94998bf1dae/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407", size = 449516 }, + { url = "https://files.pythonhosted.org/packages/4c/aa/df4b6fe14b6317290b91335b23c96b488d365d65549587434817e06895ea/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d", size = 454820 }, + { url = "https://files.pythonhosted.org/packages/5e/71/185f8672f1094ce48af33252c73e39b48be93b761273872d9312087245f6/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d", size = 481550 }, + { url = "https://files.pythonhosted.org/packages/85/d7/50ebba2c426ef1a5cb17f02158222911a2e005d401caf5d911bfca58f4c4/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b", size = 518647 }, + { url = "https://files.pythonhosted.org/packages/f0/7a/4c009342e393c545d68987e8010b937f72f47937731225b2b29b7231428f/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590", size = 497547 }, + { url = "https://files.pythonhosted.org/packages/0f/7c/1cf50b35412d5c72d63b2bf9a4fffee2e1549a245924960dd087eb6a6de4/watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902", size = 452179 }, + { url = "https://files.pythonhosted.org/packages/d6/a9/3db1410e1c1413735a9a472380e4f431ad9a9e81711cda2aaf02b7f62693/watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1", size = 614125 }, + { url = "https://files.pythonhosted.org/packages/f2/e1/0025d365cf6248c4d1ee4c3d2e3d373bdd3f6aff78ba4298f97b4fad2740/watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303", size = 611911 }, + { url = "https://files.pythonhosted.org/packages/55/55/035838277d8c98fc8c917ac9beeb0cd6c59d675dc2421df5f9fcf44a0070/watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80", size = 271152 }, + { url = "https://files.pythonhosted.org/packages/f0/e5/96b8e55271685ddbadc50ce8bc53aa2dff278fb7ac4c2e473df890def2dc/watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc", size = 285216 }, +] + +[[package]] +name = "wcwidth" +version = "0.2.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166 }, +] + +[[package]] +name = "webcolors" +version = "24.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/29/061ec845fb58521848f3739e466efd8250b4b7b98c1b6c5bf4d40b419b7e/webcolors-24.11.1.tar.gz", hash = "sha256:ecb3d768f32202af770477b8b65f318fa4f566c22948673a977b00d589dd80f6", size = 45064 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/e8/c0e05e4684d13459f93d312077a9a2efbe04d59c393bc2b8802248c908d4/webcolors-24.11.1-py3-none-any.whl", hash = "sha256:515291393b4cdf0eb19c155749a096f779f7d909f7cceea072791cb9095b92e9", size = 14934 }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774 }, +] + +[[package]] +name = "websocket-client" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e6/30/fba0d96b4b5fbf5948ed3f4681f7da2f9f64512e1d303f94b4cc174c24a5/websocket_client-1.8.0.tar.gz", hash = "sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da", size = 54648 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/84/44687a29792a70e111c5c477230a72c4b957d88d16141199bf9acb7537a3/websocket_client-1.8.0-py3-none-any.whl", hash = "sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526", size = 58826 }, +] + +[[package]] +name = "websockets" +version = "14.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f4/1b/380b883ce05bb5f45a905b61790319a28958a9ab1e4b6b95ff5464b60ca1/websockets-14.1.tar.gz", hash = "sha256:398b10c77d471c0aab20a845e7a60076b6390bfdaac7a6d2edb0d2c59d75e8d8", size = 162840 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/77/812b3ba5110ed8726eddf9257ab55ce9e85d97d4aa016805fdbecc5e5d48/websockets-14.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3630b670d5057cd9e08b9c4dab6493670e8e762a24c2c94ef312783870736ab9", size = 161966 }, + { url = "https://files.pythonhosted.org/packages/8d/24/4fcb7aa6986ae7d9f6d083d9d53d580af1483c5ec24bdec0978307a0f6ac/websockets-14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36ebd71db3b89e1f7b1a5deaa341a654852c3518ea7a8ddfdf69cc66acc2db1b", size = 159625 }, + { url = "https://files.pythonhosted.org/packages/f8/47/2a0a3a2fc4965ff5b9ce9324d63220156bd8bedf7f90824ab92a822e65fd/websockets-14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5b918d288958dc3fa1c5a0b9aa3256cb2b2b84c54407f4813c45d52267600cd3", size = 159857 }, + { url = "https://files.pythonhosted.org/packages/dd/c8/d7b425011a15e35e17757e4df75b25e1d0df64c0c315a44550454eaf88fc/websockets-14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00fe5da3f037041da1ee0cf8e308374e236883f9842c7c465aa65098b1c9af59", size = 169635 }, + { url = "https://files.pythonhosted.org/packages/93/39/6e3b5cffa11036c40bd2f13aba2e8e691ab2e01595532c46437b56575678/websockets-14.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8149a0f5a72ca36720981418eeffeb5c2729ea55fa179091c81a0910a114a5d2", size = 168578 }, + { url = "https://files.pythonhosted.org/packages/cf/03/8faa5c9576299b2adf34dcccf278fc6bbbcda8a3efcc4d817369026be421/websockets-14.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77569d19a13015e840b81550922056acabc25e3f52782625bc6843cfa034e1da", size = 169018 }, + { url = "https://files.pythonhosted.org/packages/8c/05/ea1fec05cc3a60defcdf0bb9f760c3c6bd2dd2710eff7ac7f891864a22ba/websockets-14.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cf5201a04550136ef870aa60ad3d29d2a59e452a7f96b94193bee6d73b8ad9a9", size = 169383 }, + { url = "https://files.pythonhosted.org/packages/21/1d/eac1d9ed787f80754e51228e78855f879ede1172c8b6185aca8cef494911/websockets-14.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:88cf9163ef674b5be5736a584c999e98daf3aabac6e536e43286eb74c126b9c7", size = 168773 }, + { url = "https://files.pythonhosted.org/packages/0e/1b/e808685530185915299740d82b3a4af3f2b44e56ccf4389397c7a5d95d39/websockets-14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:836bef7ae338a072e9d1863502026f01b14027250a4545672673057997d5c05a", size = 168757 }, + { url = "https://files.pythonhosted.org/packages/b6/19/6ab716d02a3b068fbbeb6face8a7423156e12c446975312f1c7c0f4badab/websockets-14.1-cp313-cp313-win32.whl", hash = "sha256:0d4290d559d68288da9f444089fd82490c8d2744309113fc26e2da6e48b65da6", size = 162834 }, + { url = "https://files.pythonhosted.org/packages/6c/fd/ab6b7676ba712f2fc89d1347a4b5bdc6aa130de10404071f2b2606450209/websockets-14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8621a07991add373c3c5c2cf89e1d277e49dc82ed72c75e3afc74bd0acc446f0", size = 163277 }, + { url = "https://files.pythonhosted.org/packages/b0/0b/c7e5d11020242984d9d37990310520ed663b942333b83a033c2f20191113/websockets-14.1-py3-none-any.whl", hash = "sha256:4d4fc827a20abe6d544a119896f6b78ee13fe81cbfef416f3f2ddf09a03f0e2e", size = 156277 }, +] diff --git a/ems-sense/.editorconfig b/ems-sense/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/ems-sense/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/ems-sense/.env.example b/ems-sense/.env.example new file mode 100644 index 0000000..1c15364 --- /dev/null +++ b/ems-sense/.env.example @@ -0,0 +1,66 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_TIMEZONE=UTC +APP_URL=http://localhost + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +# APP_MAINTENANCE_STORE=database + +PHP_CLI_SERVER_WORKERS=4 + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=mariadb +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=ems_sense +DB_USERNAME=root +DB_PASSWORD= + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=log +MAIL_SCHEME=null +MAIL_HOST=127.0.0.1 +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +VITE_APP_NAME="${APP_NAME}" diff --git a/ems-sense/.gitattributes b/ems-sense/.gitattributes new file mode 100644 index 0000000..fcb21d3 --- /dev/null +++ b/ems-sense/.gitattributes @@ -0,0 +1,11 @@ +* text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore +.styleci.yml export-ignore diff --git a/ems-sense/.gitignore b/ems-sense/.gitignore new file mode 100644 index 0000000..bec2973 --- /dev/null +++ b/ems-sense/.gitignore @@ -0,0 +1,23 @@ +/.phpunit.cache +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/storage/pail +/vendor +.env +.env.backup +.env.production +.phpactor.json +.phpunit.result.cache +Homestead.json +Homestead.yaml +auth.json +npm-debug.log +yarn-error.log +/.fleet +/.idea +/.nova +/.vscode +/.zed diff --git a/ems-sense/README.md b/ems-sense/README.md new file mode 100644 index 0000000..3c86252 --- /dev/null +++ b/ems-sense/README.md @@ -0,0 +1,33 @@ +## Overview +This is the web app for the EMS-Sense project. + +## How to install +Built simply using Laravel, Breeze, and just Livewire. + +- Setup Laravel Project + ```bash + composer install && pnpm install && php artisan key:generate && php artisan storage:link + ``` + - composer install + - pnpm install + - php artisan key:generate + - php artisan storage:link + +- Setup .env + ```bash + mv .env.example .env + ``` + - rename the template to .env + - sesuaiin aja sih sesuai keinginan + +
+ +## How to run +- Serve with + ```bash + php artisan serve + ``` + or + ```bash + composer dev + ``` diff --git a/ems-sense/app/Http/Controllers/Auth/VerifyEmailController.php b/ems-sense/app/Http/Controllers/Auth/VerifyEmailController.php new file mode 100644 index 0000000..784765e --- /dev/null +++ b/ems-sense/app/Http/Controllers/Auth/VerifyEmailController.php @@ -0,0 +1,27 @@ +user()->hasVerifiedEmail()) { + return redirect()->intended(route('dashboard', absolute: false).'?verified=1'); + } + + if ($request->user()->markEmailAsVerified()) { + event(new Verified($request->user())); + } + + return redirect()->intended(route('dashboard', absolute: false).'?verified=1'); + } +} diff --git a/ems-sense/app/Http/Controllers/Controller.php b/ems-sense/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..8677cd5 --- /dev/null +++ b/ems-sense/app/Http/Controllers/Controller.php @@ -0,0 +1,8 @@ +logout(); + + Session::invalidate(); + Session::regenerateToken(); + } +} diff --git a/ems-sense/app/Livewire/Forms/LoginForm.php b/ems-sense/app/Livewire/Forms/LoginForm.php new file mode 100644 index 0000000..3c20c37 --- /dev/null +++ b/ems-sense/app/Livewire/Forms/LoginForm.php @@ -0,0 +1,72 @@ +ensureIsNotRateLimited(); + + if (! Auth::attempt($this->only(['email', 'password']), $this->remember)) { + RateLimiter::hit($this->throttleKey()); + + throw ValidationException::withMessages([ + 'form.email' => trans('auth.failed'), + ]); + } + + RateLimiter::clear($this->throttleKey()); + } + + /** + * Ensure the authentication request is not rate limited. + */ + protected function ensureIsNotRateLimited(): void + { + if (! RateLimiter::tooManyAttempts($this->throttleKey(), 5)) { + return; + } + + event(new Lockout(request())); + + $seconds = RateLimiter::availableIn($this->throttleKey()); + + throw ValidationException::withMessages([ + 'form.email' => trans('auth.throttle', [ + 'seconds' => $seconds, + 'minutes' => ceil($seconds / 60), + ]), + ]); + } + + /** + * Get the authentication rate limiting throttle key. + */ + protected function throttleKey(): string + { + return Str::transliterate(Str::lower($this->email).'|'.request()->ip()); + } +} diff --git a/ems-sense/app/Models/Species.php b/ems-sense/app/Models/Species.php new file mode 100644 index 0000000..ecee7b7 --- /dev/null +++ b/ems-sense/app/Models/Species.php @@ -0,0 +1,16 @@ +hasMany(Treatment::class); + } +} diff --git a/ems-sense/app/Models/Treatment.php b/ems-sense/app/Models/Treatment.php new file mode 100644 index 0000000..da1df68 --- /dev/null +++ b/ems-sense/app/Models/Treatment.php @@ -0,0 +1,21 @@ +belongsTo(User::class); + } + + public function species(): BelongsTo + { + return $this->belongsTo(Species::class); + } +} diff --git a/ems-sense/app/Models/User.php b/ems-sense/app/Models/User.php new file mode 100644 index 0000000..c7b02b7 --- /dev/null +++ b/ems-sense/app/Models/User.php @@ -0,0 +1,53 @@ + */ + use HasFactory, Notifiable; + + /** + * The attributes that are mass assignable. + * + * @var list + */ + protected $fillable = [ + 'name', + 'email', + 'password', + ]; + + /** + * The attributes that should be hidden for serialization. + * + * @var list + */ + protected $hidden = [ + 'password', + 'remember_token', + ]; + + /** + * Get the attributes that should be cast. + * + * @return array + */ + protected function casts(): array + { + return [ + 'email_verified_at' => 'datetime', + 'password' => 'hashed', + ]; + } + + public function is_curator() + { + return $this->role === 'curator'; + } +} diff --git a/ems-sense/app/Policies/ModelSettingsPolicy.php b/ems-sense/app/Policies/ModelSettingsPolicy.php new file mode 100644 index 0000000..03e5265 --- /dev/null +++ b/ems-sense/app/Policies/ModelSettingsPolicy.php @@ -0,0 +1,32 @@ +is_curator(); + } + + /** + * Determine if the user can manage the model settings. + */ + public function manage(User $user): bool + { + return $user->is_curator(); + } +} diff --git a/ems-sense/app/Providers/AppServiceProvider.php b/ems-sense/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..f5b76ee --- /dev/null +++ b/ems-sense/app/Providers/AppServiceProvider.php @@ -0,0 +1,27 @@ +is_curator(); + }); + } +} diff --git a/ems-sense/app/Providers/VoltServiceProvider.php b/ems-sense/app/Providers/VoltServiceProvider.php new file mode 100644 index 0000000..e61d984 --- /dev/null +++ b/ems-sense/app/Providers/VoltServiceProvider.php @@ -0,0 +1,28 @@ +handleCommand(new ArgvInput); + +exit($status); diff --git a/ems-sense/bootstrap/app.php b/ems-sense/bootstrap/app.php new file mode 100644 index 0000000..7b162da --- /dev/null +++ b/ems-sense/bootstrap/app.php @@ -0,0 +1,18 @@ +withRouting( + web: __DIR__.'/../routes/web.php', + commands: __DIR__.'/../routes/console.php', + health: '/up', + ) + ->withMiddleware(function (Middleware $middleware) { + // + }) + ->withExceptions(function (Exceptions $exceptions) { + // + })->create(); diff --git a/ems-sense/bootstrap/cache/.gitignore b/ems-sense/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/ems-sense/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/ems-sense/bootstrap/providers.php b/ems-sense/bootstrap/providers.php new file mode 100644 index 0000000..7d50f93 --- /dev/null +++ b/ems-sense/bootstrap/providers.php @@ -0,0 +1,6 @@ +=5.0.0" + }, + "require-dev": { + "doctrine/dbal": "^4.0.0", + "nesbot/carbon": "^2.71.0 || ^3.0.0", + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "KyleKatarn", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Types to use Carbon in Doctrine", + "keywords": [ + "carbon", + "date", + "datetime", + "doctrine", + "time" + ], + "support": { + "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2024-02-09T16:56:22+00:00" + }, + { + "name": "danharrin/date-format-converter", + "version": "v0.3.1", + "source": { + "type": "git", + "url": "https://github.com/danharrin/date-format-converter.git", + "reference": "7c31171bc981e48726729a5f3a05a2d2b63f0b1e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/danharrin/date-format-converter/zipball/7c31171bc981e48726729a5f3a05a2d2b63f0b1e", + "reference": "7c31171bc981e48726729a5f3a05a2d2b63f0b1e", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/helpers.php", + "src/standards.php" + ], + "psr-4": { + "DanHarrin\\DateFormatConverter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dan Harrin", + "email": "dan@danharrin.com" + } + ], + "description": "Convert token-based date formats between standards.", + "homepage": "https://github.com/danharrin/date-format-converter", + "support": { + "issues": "https://github.com/danharrin/date-format-converter/issues", + "source": "https://github.com/danharrin/date-format-converter" + }, + "funding": [ + { + "url": "https://github.com/danharrin", + "type": "github" + } + ], + "time": "2024-06-13T09:38:44+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.3", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" + }, + "time": "2024-07-08T12:26:09+00:00" + }, + { + "name": "doctrine/dbal", + "version": "4.2.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "dadd35300837a3a2184bd47d403333b15d0a9bd0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/dadd35300837a3a2184bd47d403333b15d0a9bd0", + "reference": "dadd35300837a3a2184bd47d403333b15d0a9bd0", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^0.5.3|^1", + "php": "^8.1", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" + }, + "require-dev": { + "doctrine/coding-standard": "12.0.0", + "fig/log-test": "^1", + "jetbrains/phpstorm-stubs": "2023.2", + "phpstan/phpstan": "1.12.6", + "phpstan/phpstan-phpunit": "1.4.0", + "phpstan/phpstan-strict-rules": "^1.6", + "phpunit/phpunit": "10.5.30", + "psalm/plugin-phpunit": "0.19.0", + "slevomat/coding-standard": "8.13.1", + "squizlabs/php_codesniffer": "3.10.2", + "symfony/cache": "^6.3.8|^7.0", + "symfony/console": "^5.4|^6.3|^7.0", + "vimeo/psalm": "5.25.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/4.2.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2024-10-10T18:01:27+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9", + "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "1.4.10 || 2.0.3", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/log": "^1 || ^2 || ^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.4" + }, + "time": "2024-12-07T21:18:45+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.10", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^11.0", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25 || ^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.10" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2024-02-18T20:23:39+00:00" + }, + { + "name": "doctrine/lexer", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/3.0.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2024-02-05T11:56:58+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "8c784d071debd117328803d86b2097615b457500" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", + "reference": "8c784d071debd117328803d86b2097615b457500", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2024-10-09T13:47:03+00:00" + }, + { + "name": "egulias/email-validator", + "version": "4.0.3", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "b115554301161fa21467629f1e1391c1936de517" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517", + "reference": "b115554301161fa21467629f1e1391c1936de517", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" + }, + "require-dev": { + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/4.0.3" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2024-12-27T00:36:43+00:00" + }, + { + "name": "filament/actions", + "version": "v3.2.133", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/actions.git", + "reference": "33464f1583217b5eb12364b617b27abe5315eb88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/33464f1583217b5eb12364b617b27abe5315eb88", + "reference": "33464f1583217b5eb12364b617b27abe5315eb88", + "shasum": "" + }, + "require": { + "anourvalar/eloquent-serialize": "^1.2", + "filament/forms": "self.version", + "filament/infolists": "self.version", + "filament/notifications": "self.version", + "filament/support": "self.version", + "illuminate/contracts": "^10.45|^11.0", + "illuminate/database": "^10.45|^11.0", + "illuminate/support": "^10.45|^11.0", + "league/csv": "^9.16", + "openspout/openspout": "^4.23", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Actions\\ActionsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\Actions\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful action modals to any Livewire component.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2025-01-10T12:47:49+00:00" + }, + { + "name": "filament/forms", + "version": "v3.2.133", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/forms.git", + "reference": "20473c9eec7afa3ee618d2f86c7c449b3723d9fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/20473c9eec7afa3ee618d2f86c7c449b3723d9fb", + "reference": "20473c9eec7afa3ee618d2f86c7c449b3723d9fb", + "shasum": "" + }, + "require": { + "danharrin/date-format-converter": "^0.3", + "filament/actions": "self.version", + "filament/support": "self.version", + "illuminate/console": "^10.45|^11.0", + "illuminate/contracts": "^10.45|^11.0", + "illuminate/database": "^10.45|^11.0", + "illuminate/filesystem": "^10.45|^11.0", + "illuminate/support": "^10.45|^11.0", + "illuminate/validation": "^10.45|^11.0", + "illuminate/view": "^10.45|^11.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Forms\\FormsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Filament\\Forms\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful forms to any Livewire component.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2025-01-10T12:47:50+00:00" + }, + { + "name": "filament/infolists", + "version": "v3.2.133", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/infolists.git", + "reference": "d3ee1eb508561f2b101c69cdb45c309539948d86" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/d3ee1eb508561f2b101c69cdb45c309539948d86", + "reference": "d3ee1eb508561f2b101c69cdb45c309539948d86", + "shasum": "" + }, + "require": { + "filament/actions": "self.version", + "filament/support": "self.version", + "illuminate/console": "^10.45|^11.0", + "illuminate/contracts": "^10.45|^11.0", + "illuminate/database": "^10.45|^11.0", + "illuminate/filesystem": "^10.45|^11.0", + "illuminate/support": "^10.45|^11.0", + "illuminate/view": "^10.45|^11.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Infolists\\InfolistsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\Infolists\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful read-only infolists to any Livewire component.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2025-01-10T12:48:11+00:00" + }, + { + "name": "filament/notifications", + "version": "v3.2.133", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/notifications.git", + "reference": "16cf5dbcbaf88cd9fff8d06aad866cb314b8bb64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/16cf5dbcbaf88cd9fff8d06aad866cb314b8bb64", + "reference": "16cf5dbcbaf88cd9fff8d06aad866cb314b8bb64", + "shasum": "" + }, + "require": { + "filament/actions": "self.version", + "filament/support": "self.version", + "illuminate/contracts": "^10.45|^11.0", + "illuminate/filesystem": "^10.45|^11.0", + "illuminate/notifications": "^10.45|^11.0", + "illuminate/support": "^10.45|^11.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Notifications\\NotificationsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Testing/Autoload.php" + ], + "psr-4": { + "Filament\\Notifications\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful notifications to any Livewire app.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2025-01-10T12:48:23+00:00" + }, + { + "name": "filament/support", + "version": "v3.2.133", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/support.git", + "reference": "38fd76ae4f96b53e6f98cbb7bad3f05ad5032cee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/support/zipball/38fd76ae4f96b53e6f98cbb7bad3f05ad5032cee", + "reference": "38fd76ae4f96b53e6f98cbb7bad3f05ad5032cee", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-heroicons": "^2.5", + "doctrine/dbal": "^3.2|^4.0", + "ext-intl": "*", + "illuminate/contracts": "^10.45|^11.0", + "illuminate/support": "^10.45|^11.0", + "illuminate/view": "^10.45|^11.0", + "kirschbaum-development/eloquent-power-joins": "^3.0|^4.0", + "livewire/livewire": "3.5.12", + "php": "^8.1", + "ryangjchandler/blade-capture-directive": "^0.2|^0.3|^1.0", + "spatie/color": "^1.5", + "spatie/invade": "^1.0|^2.0", + "spatie/laravel-package-tools": "^1.9", + "symfony/console": "^6.0|^7.0", + "symfony/html-sanitizer": "^6.1|^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Support\\SupportServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Filament\\Support\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Core helper methods and foundation code for all Filament packages.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2025-01-10T12:48:52+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6|^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" + } + ], + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", + "keywords": [ + "cors", + "laravel", + "symfony" + ], + "support": { + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2023-10-12T05:21:21+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.3", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.3" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2024-07-20T21:45:45+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.9.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.9.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2024-07-24T11:22:20+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2024-10-17T10:06:22+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.7.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2024-07-18T11:15:46+00:00" + }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/uri-template.git", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", + "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\UriTemplate\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + } + ], + "description": "A polyfill class for uri_template of PHP", + "keywords": [ + "guzzlehttp", + "uri-template" + ], + "support": { + "issues": "https://github.com/guzzle/uri-template/issues", + "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template", + "type": "tidelift" + } + ], + "time": "2023-12-03T19:50:20+00:00" + }, + { + "name": "kirschbaum-development/eloquent-power-joins", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git", + "reference": "3c1af9b86b02f1e39219849c1d2fee7cf77e8638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/3c1af9b86b02f1e39219849c1d2fee7cf77e8638", + "reference": "3c1af9b86b02f1e39219849c1d2fee7cf77e8638", + "shasum": "" + }, + "require": { + "illuminate/database": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", + "php": "^8.1" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "dev-master", + "laravel/legacy-factories": "^1.0@dev", + "orchestra/testbench": "^8.0|^9.0", + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Kirschbaum\\PowerJoins\\PowerJoinsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Kirschbaum\\PowerJoins\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Luis Dalmolin", + "email": "luis.nh@gmail.com", + "role": "Developer" + } + ], + "description": "The Laravel magic applied to joins.", + "homepage": "https://github.com/kirschbaum-development/eloquent-power-joins", + "keywords": [ + "eloquent", + "join", + "laravel", + "mysql" + ], + "support": { + "issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues", + "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.0.1" + }, + "time": "2024-11-26T13:22:08+00:00" + }, + { + "name": "laravel/framework", + "version": "v11.38.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "9d290aa90fcad44048bedca5219d2b872e98772a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/9d290aa90fcad44048bedca5219d2b872e98772a", + "reference": "9d290aa90fcad44048bedca5219d2b872e98772a", + "shasum": "" + }, + "require": { + "brick/math": "^0.9.3|^0.10.2|^0.11|^0.12", + "composer-runtime-api": "^2.2", + "doctrine/inflector": "^2.0.5", + "dragonmantank/cron-expression": "^3.4", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-session": "*", + "ext-tokenizer": "*", + "fruitcake/php-cors": "^1.3", + "guzzlehttp/guzzle": "^7.8.2", + "guzzlehttp/uri-template": "^1.0", + "laravel/prompts": "^0.1.18|^0.2.0|^0.3.0", + "laravel/serializable-closure": "^1.3|^2.0", + "league/commonmark": "^2.6", + "league/flysystem": "^3.25.1", + "league/flysystem-local": "^3.25.1", + "league/uri": "^7.5.1", + "monolog/monolog": "^3.0", + "nesbot/carbon": "^2.72.2|^3.4", + "nunomaduro/termwind": "^2.0", + "php": "^8.2", + "psr/container": "^1.1.1|^2.0.1", + "psr/log": "^1.0|^2.0|^3.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "ramsey/uuid": "^4.7", + "symfony/console": "^7.0.3", + "symfony/error-handler": "^7.0.3", + "symfony/finder": "^7.0.3", + "symfony/http-foundation": "^7.2.0", + "symfony/http-kernel": "^7.0.3", + "symfony/mailer": "^7.0.3", + "symfony/mime": "^7.0.3", + "symfony/polyfill-php83": "^1.31", + "symfony/process": "^7.0.3", + "symfony/routing": "^7.0.3", + "symfony/uid": "^7.0.3", + "symfony/var-dumper": "^7.0.3", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", + "vlucas/phpdotenv": "^5.6.1", + "voku/portable-ascii": "^2.0.2" + }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "psr/log-implementation": "1.0|2.0|3.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/concurrency": "self.version", + "illuminate/conditionable": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/process": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version", + "spatie/once": "*" + }, + "require-dev": { + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.322.9", + "ext-gmp": "*", + "fakerphp/faker": "^1.24", + "guzzlehttp/promises": "^2.0.3", + "guzzlehttp/psr7": "^2.4", + "league/flysystem-aws-s3-v3": "^3.25.1", + "league/flysystem-ftp": "^3.25.1", + "league/flysystem-path-prefixing": "^3.25.1", + "league/flysystem-read-only": "^3.25.1", + "league/flysystem-sftp-v3": "^3.25.1", + "mockery/mockery": "^1.6.10", + "orchestra/testbench-core": "^9.6", + "pda/pheanstalk": "^5.0.6", + "php-http/discovery": "^1.15", + "phpstan/phpstan": "^1.11.5", + "phpunit/phpunit": "^10.5.35|^11.3.6", + "predis/predis": "^2.3", + "resend/resend-php": "^0.10.0", + "symfony/cache": "^7.0.3", + "symfony/http-client": "^7.0.3", + "symfony/psr-http-message-bridge": "^7.0.3", + "symfony/translation": "^7.0.3" + }, + "suggest": { + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).", + "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", + "ext-apcu": "Required to use the APC cache driver.", + "ext-fileinfo": "Required to use the Filesystem class.", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", + "ext-pdo": "Required to use all database features.", + "ext-posix": "Required to use all features of the queue worker.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "laravel/tinker": "Required to use the tinker console command (^2.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.25.1).", + "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", + "mockery/mockery": "Required to use mocking (^1.6).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", + "phpunit/phpunit": "Required to use assertions and run tests (^10.5|^11.0).", + "predis/predis": "Required to use the predis connector (^2.3).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.0).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.0).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.0).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "11.x-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Collections/functions.php", + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Log/functions.php", + "src/Illuminate/Support/functions.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2025-01-15T00:06:46+00:00" + }, + { + "name": "laravel/prompts", + "version": "v0.3.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/prompts.git", + "reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/prompts/zipball/749395fcd5f8f7530fe1f00dfa84eb22c83d94ea", + "reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.2", + "ext-mbstring": "*", + "php": "^8.1", + "symfony/console": "^6.2|^7.0" + }, + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" + }, + "require-dev": { + "illuminate/collections": "^10.0|^11.0", + "mockery/mockery": "^1.5", + "pestphp/pest": "^2.3|^3.4", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-mockery": "^1.1" + }, + "suggest": { + "ext-pcntl": "Required for the spinner to be animated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.3.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Laravel\\Prompts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Add beautiful and user-friendly forms to your command-line applications.", + "support": { + "issues": "https://github.com/laravel/prompts/issues", + "source": "https://github.com/laravel/prompts/tree/v0.3.3" + }, + "time": "2024-12-30T15:53:31+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/613b2d4998f85564d40497e05e89cb6d9bd1cbe8", + "reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "illuminate/support": "^10.0|^11.0", + "nesbot/carbon": "^2.67|^3.0", + "pestphp/pest": "^2.36", + "phpstan/phpstan": "^2.0", + "symfony/var-dumper": "^6.2.0|^7.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2024-12-16T15:26:28+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.10.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/ba4d51eb56de7711b3a37d63aa0643e99a339ae5", + "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.8|^9.3.3" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.10.0" + }, + "time": "2024-09-23T13:32:56+00:00" + }, + { + "name": "league/commonmark", + "version": "2.6.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "d990688c91cedfb69753ffc2512727ec646df2ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d990688c91cedfb69753ffc2512727ec646df2ad", + "reference": "d990688c91cedfb69753ffc2512727ec646df2ad", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.31.1", + "commonmark/commonmark.js": "0.31.1", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0 | ^7.0", + "symfony/process": "^5.4 | ^6.0 | ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2024-12-29T14:10:59+00:00" + }, + { + "name": "league/config", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2022-12-11T20:36:23+00:00" + }, + { + "name": "league/csv", + "version": "9.21.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/csv.git", + "reference": "72196d11ebba22d868954cb39c0c7346207430cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/72196d11ebba22d868954cb39c0c7346207430cc", + "reference": "72196d11ebba22d868954cb39c0c7346207430cc", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^8.1.2" + }, + "require-dev": { + "ext-dom": "*", + "ext-xdebug": "*", + "friendsofphp/php-cs-fixer": "^3.64.0", + "phpbench/phpbench": "^1.3.1", + "phpstan/phpstan": "^1.12.11", + "phpstan/phpstan-deprecation-rules": "^1.2.1", + "phpstan/phpstan-phpunit": "^1.4.1", + "phpstan/phpstan-strict-rules": "^1.6.1", + "phpunit/phpunit": "^10.5.16 || ^11.4.3", + "symfony/var-dumper": "^6.4.8 || ^7.1.8" + }, + "suggest": { + "ext-dom": "Required to use the XMLConverter and the HTMLConverter classes", + "ext-iconv": "Needed to ease transcoding CSV using iconv stream filters", + "ext-mbstring": "Needed to ease transcoding CSV using mb stream filters" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "League\\Csv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://github.com/nyamsprod/", + "role": "Developer" + } + ], + "description": "CSV data manipulation made easy in PHP", + "homepage": "https://csv.thephpleague.com", + "keywords": [ + "convert", + "csv", + "export", + "filter", + "import", + "read", + "transform", + "write" + ], + "support": { + "docs": "https://csv.thephpleague.com", + "issues": "https://github.com/thephpleague/csv/issues", + "rss": "https://github.com/thephpleague/csv/releases.atom", + "source": "https://github.com/thephpleague/csv" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2025-01-08T19:27:58+00:00" + }, + { + "name": "league/flysystem", + "version": "3.29.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319", + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319", + "shasum": "" + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-mongodb": "^1.3", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", + "microsoft/azure-storage-blob": "^1.1", + "mongodb/mongodb": "^1.2", + "phpseclib/phpseclib": "^3.0.36", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.29.1" + }, + "time": "2024-10-08T08:58:34+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.29.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/e0e8d52ce4b2ed154148453d321e97c8e931bd27", + "reference": "e0e8d52ce4b2ed154148453d321e97c8e931bd27", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "source": "https://github.com/thephpleague/flysystem-local/tree/3.29.0" + }, + "time": "2024-08-09T21:24:39+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.16.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2024-09-21T08:32:55+00:00" + }, + { + "name": "league/uri", + "version": "7.5.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri.git", + "reference": "81fb5145d2644324614cc532b28efd0215bda430" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/81fb5145d2644324614cc532b28efd0215bda430", + "reference": "81fb5145d2644324614cc532b28efd0215bda430", + "shasum": "" + }, + "require": { + "league/uri-interfaces": "^7.5", + "php": "^8.1" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", + "league/uri-components": "Needed to easily manipulate URI objects components", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri/tree/7.5.1" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-12-08T08:40:02+00:00" + }, + { + "name": "league/uri-interfaces", + "version": "7.5.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "reference": "08cfc6c4f3d811584fb09c37e2849e6a7f9b0742", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^8.1", + "psr/http-factory": "^1", + "psr/http-message": "^1.1 || ^2.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common interfaces and classes for URI representation and interaction", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.5.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2024-12-08T08:18:47+00:00" + }, + { + "name": "livewire/livewire", + "version": "v3.5.12", + "source": { + "type": "git", + "url": "https://github.com/livewire/livewire.git", + "reference": "3c8d1f9d7d9098aaea663093ae168f2d5d2ae73d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/livewire/livewire/zipball/3c8d1f9d7d9098aaea663093ae168f2d5d2ae73d", + "reference": "3c8d1f9d7d9098aaea663093ae168f2d5d2ae73d", + "shasum": "" + }, + "require": { + "illuminate/database": "^10.0|^11.0", + "illuminate/routing": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0", + "illuminate/validation": "^10.0|^11.0", + "laravel/prompts": "^0.1.24|^0.2|^0.3", + "league/mime-type-detection": "^1.9", + "php": "^8.1", + "symfony/console": "^6.0|^7.0", + "symfony/http-kernel": "^6.2|^7.0" + }, + "require-dev": { + "calebporzio/sushi": "^2.1", + "laravel/framework": "^10.15.0|^11.0", + "mockery/mockery": "^1.3.1", + "orchestra/testbench": "^8.21.0|^9.0", + "orchestra/testbench-dusk": "^8.24|^9.1", + "phpunit/phpunit": "^10.4", + "psy/psysh": "^0.11.22|^0.12" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Livewire": "Livewire\\Livewire" + }, + "providers": [ + "Livewire\\LivewireServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Livewire\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Caleb Porzio", + "email": "calebporzio@gmail.com" + } + ], + "description": "A front-end framework for Laravel.", + "support": { + "issues": "https://github.com/livewire/livewire/issues", + "source": "https://github.com/livewire/livewire/tree/v3.5.12" + }, + "funding": [ + { + "url": "https://github.com/livewire", + "type": "github" + } + ], + "time": "2024-10-15T19:35:06+00:00" + }, + { + "name": "livewire/volt", + "version": "v1.6.6", + "source": { + "type": "git", + "url": "https://github.com/livewire/volt.git", + "reference": "9efa7bd50a71ad166ac44ed9322d2c004e0ece5f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/livewire/volt/zipball/9efa7bd50a71ad166ac44ed9322d2c004e0ece5f", + "reference": "9efa7bd50a71ad166ac44ed9322d2c004e0ece5f", + "shasum": "" + }, + "require": { + "laravel/framework": "^10.38.2|^11.0", + "livewire/livewire": "^3.0", + "php": "^8.1" + }, + "require-dev": { + "laravel/folio": "^1.1", + "mockery/mockery": "^1.6", + "orchestra/testbench": "^8.15.0|^9.0", + "pestphp/pest": "^2.9.5", + "phpstan/phpstan": "^1.10" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Livewire\\Volt\\VoltServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "functions.php" + ], + "psr-4": { + "Livewire\\Volt\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "An elegantly crafted functional API for Laravel Livewire.", + "homepage": "https://github.com/livewire/volt", + "keywords": [ + "laravel", + "livewire", + "volt" + ], + "support": { + "issues": "https://github.com/livewire/volt/issues", + "source": "https://github.com/livewire/volt" + }, + "time": "2024-11-12T14:51:01+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.9.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.9.0" + }, + "time": "2024-03-31T07:05:07+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.8.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4", + "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "php-console/php-console": "^3.1.8", + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^10.5.17 || ^11.0.7", + "predis/predis": "^1.1 || ^2", + "rollbar/rollbar": "^4.0", + "ruflin/elastica": "^7 || ^8", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.8.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2024-12-05T17:15:07+00:00" + }, + { + "name": "nesbot/carbon", + "version": "3.8.4", + "source": { + "type": "git", + "url": "https://github.com/CarbonPHP/carbon.git", + "reference": "129700ed449b1f02d70272d2ac802357c8c30c58" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/129700ed449b1f02d70272d2ac802357c8c30c58", + "reference": "129700ed449b1f02d70272d2ac802357c8c30c58", + "shasum": "" + }, + "require": { + "carbonphp/carbon-doctrine-types": "<100.0", + "ext-json": "*", + "php": "^8.1", + "psr/clock": "^1.0", + "symfony/clock": "^6.3 || ^7.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "require-dev": { + "doctrine/dbal": "^3.6.3 || ^4.0", + "doctrine/orm": "^2.15.2 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.57.2", + "kylekatarnls/multi-tester": "^2.5.3", + "ondrejmirtes/better-reflection": "^6.25.0.4", + "phpmd/phpmd": "^2.15.0", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^1.11.2", + "phpunit/phpunit": "^10.5.20", + "squizlabs/php_codesniffer": "^3.9.0" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "time": "2024-12-27T09:25:35+00:00" + }, + { + "name": "nette/schema", + "version": "v1.3.2", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d", + "shasum": "" + }, + "require": { + "nette/utils": "^4.0", + "php": "8.1 - 8.4" + }, + "require-dev": { + "nette/tester": "^2.5.2", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.3.2" + }, + "time": "2024-10-06T23:10:23+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.5", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", + "reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96", + "shasum": "" + }, + "require": { + "php": "8.0 - 8.4" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "dev-master", + "nette/tester": "^2.5", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.0.5" + }, + "time": "2024-08-07T15:39:19+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.4.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" + }, + "time": "2024-12-30T11:07:19+00:00" + }, + { + "name": "nunomaduro/termwind", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/52915afe6a1044e8b9cee1bcff836fb63acf9cda", + "reference": "52915afe6a1044e8b9cee1bcff836fb63acf9cda", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.2", + "symfony/console": "^7.1.8" + }, + "require-dev": { + "illuminate/console": "^11.33.2", + "laravel/pint": "^1.18.2", + "mockery/mockery": "^1.6.12", + "pestphp/pest": "^2.36.0", + "phpstan/phpstan": "^1.12.11", + "phpstan/phpstan-strict-rules": "^1.6.1", + "symfony/var-dumper": "^7.1.8", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "Termwind\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], + "support": { + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v2.3.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" + } + ], + "time": "2024-11-21T10:39:51+00:00" + }, + { + "name": "openspout/openspout", + "version": "v4.28.4", + "source": { + "type": "git", + "url": "https://github.com/openspout/openspout.git", + "reference": "68d58235c7c1164b3d231b798975b9b0b2b79b15" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/openspout/openspout/zipball/68d58235c7c1164b3d231b798975b9b0b2b79b15", + "reference": "68d58235c7c1164b3d231b798975b9b0b2b79b15", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-fileinfo": "*", + "ext-filter": "*", + "ext-libxml": "*", + "ext-xmlreader": "*", + "ext-zip": "*", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0" + }, + "require-dev": { + "ext-zlib": "*", + "friendsofphp/php-cs-fixer": "^3.66.1", + "infection/infection": "^0.29.10", + "phpbench/phpbench": "^1.3.1", + "phpstan/phpstan": "^2.1.1", + "phpstan/phpstan-phpunit": "^2.0.3", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^11.5.2" + }, + "suggest": { + "ext-iconv": "To handle non UTF-8 CSV files (if \"php-mbstring\" is not already installed or is too limited)", + "ext-mbstring": "To handle non UTF-8 CSV files (if \"iconv\" is not already installed)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "OpenSpout\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Adrien Loison", + "email": "adrien@box.com" + } + ], + "description": "PHP Library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way", + "homepage": "https://github.com/openspout/openspout", + "keywords": [ + "OOXML", + "csv", + "excel", + "memory", + "odf", + "ods", + "office", + "open", + "php", + "read", + "scale", + "spreadsheet", + "stream", + "write", + "xlsx" + ], + "support": { + "issues": "https://github.com/openspout/openspout/issues", + "source": "https://github.com/openspout/openspout/tree/v4.28.4" + }, + "funding": [ + { + "url": "https://paypal.me/filippotessarotto", + "type": "custom" + }, + { + "url": "https://github.com/Slamdunk", + "type": "github" + } + ], + "time": "2025-01-07T11:48:34+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.3", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/e3fac8b24f56113f7cb96af14958c0dd16330f54", + "reference": "e3fac8b24f56113f7cb96af14958c0dd16330f54", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2024-07-20T21:41:07+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.12.7", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", + "reference": "d73fa3c74918ef4522bb8a3bf9cab39161c4b57c", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, + "branch-alias": { + "dev-main": "0.12.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.7" + }, + "time": "2024-12-10T01:58:33+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.28.3", + "fakerphp/faker": "^1.21", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^1.0", + "mockery/mockery": "^1.5", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcsstandards/phpcsutils": "^1.0.0-rc1", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5", + "psalm/plugin-mockery": "^1.1", + "psalm/plugin-phpunit": "^0.18.4", + "ramsey/coding-standard": "^2.0.3", + "ramsey/conventional-commits": "^1.3", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2022-12-31T21:50:55+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.7.6", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/91039bc1faa45ba123c4328958e620d382ec7088", + "reference": "91039bc1faa45ba123c4328958e620d382ec7088", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12", + "ext-json": "*", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.8", + "ergebnis/composer-normalize": "^2.15", + "mockery/mockery": "^1.3", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", + "php-mock/php-mock-mockery": "^1.3", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.9" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.7.6" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2024-04-27T21:32:50+00:00" + }, + { + "name": "ryangjchandler/blade-capture-directive", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/ryangjchandler/blade-capture-directive.git", + "reference": "cb6f58663d97f17bece176295240b740835e14f1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ryangjchandler/blade-capture-directive/zipball/cb6f58663d97f17bece176295240b740835e14f1", + "reference": "cb6f58663d97f17bece176295240b740835e14f1", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^10.0|^11.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9.2" + }, + "require-dev": { + "nunomaduro/collision": "^7.0|^8.0", + "nunomaduro/larastan": "^2.0", + "orchestra/testbench": "^8.0|^9.0", + "pestphp/pest": "^2.0", + "pestphp/pest-plugin-laravel": "^2.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^10.0", + "spatie/laravel-ray": "^1.26" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "BladeCaptureDirective": "RyanChandler\\BladeCaptureDirective\\Facades\\BladeCaptureDirective" + }, + "providers": [ + "RyanChandler\\BladeCaptureDirective\\BladeCaptureDirectiveServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "RyanChandler\\BladeCaptureDirective\\": "src", + "RyanChandler\\BladeCaptureDirective\\Database\\Factories\\": "database/factories" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ryan Chandler", + "email": "support@ryangjchandler.co.uk", + "role": "Developer" + } + ], + "description": "Create inline partials in your Blade templates with ease.", + "homepage": "https://github.com/ryangjchandler/blade-capture-directive", + "keywords": [ + "blade-capture-directive", + "laravel", + "ryangjchandler" + ], + "support": { + "issues": "https://github.com/ryangjchandler/blade-capture-directive/issues", + "source": "https://github.com/ryangjchandler/blade-capture-directive/tree/v1.0.0" + }, + "funding": [ + { + "url": "https://github.com/ryangjchandler", + "type": "github" + } + ], + "time": "2024-02-26T18:08:49+00:00" + }, + { + "name": "spatie/color", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/color.git", + "reference": "614f1e0674262c620db908998a11eacd16494835" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/color/zipball/614f1e0674262c620db908998a11eacd16494835", + "reference": "614f1e0674262c620db908998a11eacd16494835", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "pestphp/pest": "^1.22", + "phpunit/phpunit": "^6.5||^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Color\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A little library to handle color conversions", + "homepage": "https://github.com/spatie/color", + "keywords": [ + "color", + "conversion", + "rgb", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/color/issues", + "source": "https://github.com/spatie/color/tree/1.7.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-12-30T14:23:15+00:00" + }, + { + "name": "spatie/invade", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/invade.git", + "reference": "b920f6411d21df4e8610a138e2e87ae4957d7f63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/invade/zipball/b920f6411d21df4e8610a138e2e87ae4957d7f63", + "reference": "b920f6411d21df4e8610a138e2e87ae4957d7f63", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "pestphp/pest": "^1.20", + "phpstan/phpstan": "^1.4", + "spatie/ray": "^1.28" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Spatie\\Invade\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "A PHP function to work with private properties and methods", + "homepage": "https://github.com/spatie/invade", + "keywords": [ + "invade", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/invade/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-05-17T09:06:10+00:00" + }, + { + "name": "spatie/laravel-package-tools", + "version": "1.18.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "8332205b90d17164913244f4a8e13ab7e6761d29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/8332205b90d17164913244f4a8e13ab7e6761d29", + "reference": "8332205b90d17164913244f4a8e13ab7e6761d29", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0|^11.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0|^9.0", + "pestphp/pest": "^1.22|^2", + "phpunit/phpunit": "^9.5.24|^10.5", + "spatie/pest-plugin-test-time": "^1.1|^2.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.18.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2024-12-30T13:13:39+00:00" + }, + { + "name": "symfony/clock", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/clock.git", + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/clock": "^1.0", + "symfony/polyfill-php83": "^1.28" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/now.php" + ], + "psr-4": { + "Symfony\\Component\\Clock\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Decouples applications from the system clock", + "homepage": "https://symfony.com", + "keywords": [ + "clock", + "psr20", + "time" + ], + "support": { + "source": "https://github.com/symfony/clock/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/console", + "version": "v7.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "reference": "fefcc18c0f5d0efe3ab3152f15857298868dc2c3", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^6.4|^7.0" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v7.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-11T03:49:26+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.5-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:20:29+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v7.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "6150b89186573046167796fa5f3f76601d5145f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/6150b89186573046167796fa5f3f76601d5145f8", + "reference": "6150b89186573046167796fa5f3f76601d5145f8", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^6.4|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v7.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-07T08:50:44+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1", + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.5-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:20:29+00:00" + }, + { + "name": "symfony/finder", + "version": "v7.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "87a71856f2f56e4100373e92529eed3171695cfb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb", + "reference": "87a71856f2f56e4100373e92529eed3171695cfb", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "symfony/filesystem": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v7.2.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-30T19:00:17+00:00" + }, + { + "name": "symfony/html-sanitizer", + "version": "v7.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/html-sanitizer.git", + "reference": "f6bc679b024e30f27e33815930a5b8b304c79813" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/f6bc679b024e30f27e33815930a5b8b304c79813", + "reference": "f6bc679b024e30f27e33815930a5b8b304c79813", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "league/uri": "^6.5|^7.0", + "masterminds/html5": "^2.7.2", + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HtmlSanitizer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to sanitize untrusted HTML input for safe insertion into a document's DOM.", + "homepage": "https://symfony.com", + "keywords": [ + "Purifier", + "html", + "sanitizer" + ], + "support": { + "source": "https://github.com/symfony/html-sanitizer/tree/v7.2.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-30T18:35:15+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v7.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/62d1a43796ca3fea3f83a8470dfe63a4af3bc588", + "reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "doctrine/dbal": "<3.6", + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" + }, + "require-dev": { + "doctrine/dbal": "^3.6|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.4.12|^7.1.5", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v7.2.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-30T19:00:17+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v7.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3c432966bd8c7ec7429663105f5a02d7e75b4306", + "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<6.4", + "symfony/cache": "<6.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<6.4", + "symfony/form": "<6.4", + "symfony/http-client": "<6.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4", + "symfony/translation": "<6.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<6.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.4", + "twig/twig": "<3.12" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/clock": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/css-selector": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^7.1", + "symfony/routing": "^6.4|^7.0", + "symfony/serializer": "^7.1", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0", + "symfony/var-exporter": "^6.4|^7.0", + "twig/twig": "^3.12" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v7.2.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-31T14:59:40+00:00" + }, + { + "name": "symfony/mailer", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/e4d358702fb66e4c8a2af08e90e7271a62de39cc", + "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.2", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/mime": "^7.2", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<6.4", + "symfony/messenger": "<6.4", + "symfony/mime": "<6.4", + "symfony/twig-bridge": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/twig-bridge": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-25T15:21:05+00:00" + }, + { + "name": "symfony/mime", + "version": "v7.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283", + "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<6.4", + "symfony/serializer": "<6.4.3|>7.0,<7.0.3" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/serializer": "^6.4.3|^7.0.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v7.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-07T08:50:44+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773", + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "3833d7255cc303546435cb650316bff708a1c75c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.31.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.31.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/process", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-06T14:24:19+00:00" + }, + { + "name": "symfony/routing", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/e10a2450fa957af6c448b9b93c9010a4e4c0725e", + "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/config": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/yaml": "<6.4" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-25T11:08:51+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.5-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:20:29+00:00" + }, + { + "name": "symfony/string", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.1", + "symfony/error-handler": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-13T13:31:26+00:00" + }, + { + "name": "symfony/translation", + "version": "v7.2.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "e2674a30132b7cc4d74540d6c2573aa363f05923" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/e2674a30132b7cc4d74540d6c2573aa363f05923", + "reference": "e2674a30132b7cc4d74540d6c2573aa363f05923", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "conflict": { + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<6.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<6.4", + "symfony/yaml": "<6.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^4.18|^5.0", + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v7.2.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-07T08:18:10+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c", + "reference": "4667ff3bd513750603a09c8dedbea942487fb07c", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.5-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:20:29+00:00" + }, + { + "name": "symfony/uid", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/uid.git", + "reference": "2d294d0c48df244c71c105a169d0190bfb080426" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/uid/zipball/2d294d0c48df244c71c105a169d0190bfb080426", + "reference": "2d294d0c48df244c71c105a169d0190bfb080426", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/uid/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6a22929407dec8765d6e2b6ff85b800b245879c", + "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.12" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-11-08T15:48:14+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "0d72ac1c00084279c1816675284073c5a337c20d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d", + "reference": "0d72ac1c00084279c1816675284073c5a337c20d", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^7.4 || ^8.0", + "symfony/css-selector": "^5.4 || ^6.0 || ^7.0" + }, + "require-dev": { + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^8.5.21 || ^9.5.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "support": { + "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0" + }, + "time": "2024-12-21T16:25:41+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.6.1", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "reference": "a59a13791077fe3d44f90e7133eb68e7d22eaff2", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.1.3", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.3", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2024-07-20T21:52:34+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "https://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.3" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "time": "2024-11-21T01:49:47+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "brianium/paratest", + "version": "v7.7.0", + "source": { + "type": "git", + "url": "https://github.com/paratestphp/paratest.git", + "reference": "4fb3f73bc5a4c3146bac2850af7dc72435a32daf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/4fb3f73bc5a4c3146bac2850af7dc72435a32daf", + "reference": "4fb3f73bc5a4c3146bac2850af7dc72435a32daf", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-simplexml": "*", + "fidry/cpu-core-counter": "^1.2.0", + "jean85/pretty-package-versions": "^2.1.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", + "phpunit/php-code-coverage": "^11.0.8", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-timer": "^7.0.1", + "phpunit/phpunit": "^11.5.1", + "sebastian/environment": "^7.2.0", + "symfony/console": "^6.4.14 || ^7.2.1", + "symfony/process": "^6.4.14 || ^7.2.0" + }, + "require-dev": { + "doctrine/coding-standard": "^12.0.0", + "ext-pcov": "*", + "ext-posix": "*", + "phpstan/phpstan": "^2.0.3", + "phpstan/phpstan-deprecation-rules": "^2.0.1", + "phpstan/phpstan-phpunit": "^2.0.1", + "phpstan/phpstan-strict-rules": "^2", + "squizlabs/php_codesniffer": "^3.11.1", + "symfony/filesystem": "^6.4.13 || ^7.2.0" + }, + "bin": [ + "bin/paratest", + "bin/paratest_for_phpstorm" + ], + "type": "library", + "autoload": { + "psr-4": { + "ParaTest\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Scaturro", + "email": "scaturrob@gmail.com", + "role": "Developer" + }, + { + "name": "Filippo Tessarotto", + "email": "zoeslam@gmail.com", + "role": "Developer" + } + ], + "description": "Parallel testing for PHP", + "homepage": "https://github.com/paratestphp/paratest", + "keywords": [ + "concurrent", + "parallel", + "phpunit", + "testing" + ], + "support": { + "issues": "https://github.com/paratestphp/paratest/issues", + "source": "https://github.com/paratestphp/paratest/tree/v7.7.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/Slamdunk", + "type": "github" + }, + { + "url": "https://paypal.me/filippotessarotto", + "type": "paypal" + } + ], + "time": "2024-12-11T14:50:44+00:00" + }, + { + "name": "fakerphp/faker", + "version": "v1.24.1", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" + }, + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" + }, + "time": "2024-11-21T13:46:39+00:00" + }, + { + "name": "fidry/cpu-core-counter", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "8520451a140d3f46ac33042715115e290cf5785f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2024-08-06T10:04:20+00:00" + }, + { + "name": "filp/whoops", + "version": "2.16.0", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "befcdc0e5dce67252aa6322d82424be928214fa2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/befcdc0e5dce67252aa6322d82424be928214fa2", + "reference": "befcdc0e5dce67252aa6322d82424be928214fa2", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.16.0" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2024-09-25T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" + }, + { + "name": "jean85/pretty-package-versions", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", + "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.1.0", + "php": "^7.4|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "jean85/composer-provided-replaced-stub-package": "^1.0", + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^7.5|^8.5|^9.6", + "vimeo/psalm": "^4.3 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Jean85\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" + } + ], + "description": "A library to get pretty versions strings of installed dependencies", + "keywords": [ + "composer", + "package", + "release", + "versions" + ], + "support": { + "issues": "https://github.com/Jean85/pretty-package-versions/issues", + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.0" + }, + "time": "2024-11-18T16:19:46+00:00" + }, + { + "name": "laravel/breeze", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/breeze.git", + "reference": "d59702967b9ae21879df905d691a50132966c4ff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/breeze/zipball/d59702967b9ae21879df905d691a50132966c4ff", + "reference": "d59702967b9ae21879df905d691a50132966c4ff", + "shasum": "" + }, + "require": { + "illuminate/console": "^11.0", + "illuminate/filesystem": "^11.0", + "illuminate/support": "^11.0", + "illuminate/validation": "^11.0", + "php": "^8.2.0", + "symfony/console": "^7.0" + }, + "require-dev": { + "laravel/framework": "^11.0", + "orchestra/testbench-core": "^9.0", + "phpstan/phpstan": "^2.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Breeze\\BreezeServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Breeze\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Minimal Laravel authentication scaffolding with Blade and Tailwind.", + "keywords": [ + "auth", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/breeze/issues", + "source": "https://github.com/laravel/breeze" + }, + "time": "2024-12-14T21:21:42+00:00" + }, + { + "name": "laravel/pail", + "version": "v1.2.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/pail.git", + "reference": "353ac12134b98e2e7c3333d916bd3e523931e583" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pail/zipball/353ac12134b98e2e7c3333d916bd3e523931e583", + "reference": "353ac12134b98e2e7c3333d916bd3e523931e583", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/console": "^10.24|^11.0", + "illuminate/contracts": "^10.24|^11.0", + "illuminate/log": "^10.24|^11.0", + "illuminate/process": "^10.24|^11.0", + "illuminate/support": "^10.24|^11.0", + "nunomaduro/termwind": "^1.15|^2.0", + "php": "^8.2", + "symfony/console": "^6.0|^7.0" + }, + "require-dev": { + "laravel/framework": "^10.24|^11.0", + "laravel/pint": "^1.13", + "orchestra/testbench-core": "^8.12|^9.0", + "pestphp/pest": "^2.20", + "pestphp/pest-plugin-type-coverage": "^2.3", + "phpstan/phpstan": "^1.10", + "symfony/var-dumper": "^6.3|^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Pail\\PailServiceProvider" + ] + }, + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\Pail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Easily delve into your Laravel application's log files directly from the command line.", + "homepage": "https://github.com/laravel/pail", + "keywords": [ + "laravel", + "logs", + "php", + "tail" + ], + "support": { + "issues": "https://github.com/laravel/pail/issues", + "source": "https://github.com/laravel/pail" + }, + "time": "2024-10-23T12:56:23+00:00" + }, + { + "name": "laravel/pint", + "version": "v1.19.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/pint.git", + "reference": "8169513746e1bac70c85d6ea1524d9225d4886f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pint/zipball/8169513746e1bac70c85d6ea1524d9225d4886f0", + "reference": "8169513746e1bac70c85d6ea1524d9225d4886f0", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.1.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.66.0", + "illuminate/view": "^10.48.25", + "larastan/larastan": "^2.9.12", + "laravel-zero/framework": "^10.48.25", + "mockery/mockery": "^1.6.12", + "nunomaduro/termwind": "^1.17.0", + "pestphp/pest": "^2.36.0" + }, + "bin": [ + "builds/pint" + ], + "type": "project", + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], + "support": { + "issues": "https://github.com/laravel/pint/issues", + "source": "https://github.com/laravel/pint" + }, + "time": "2024-12-30T16:20:10+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.39.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "1a3c7291bc88de983b66688919a4d298d68ddec7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/1a3c7291bc88de983b66688919a4d298d68ddec7", + "reference": "1a3c7291bc88de983b66688919a4d298d68ddec7", + "shasum": "" + }, + "require": { + "illuminate/console": "^9.52.16|^10.0|^11.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0", + "illuminate/support": "^9.52.16|^10.0|^11.0", + "php": "^8.0", + "symfony/console": "^6.0|^7.0", + "symfony/yaml": "^6.0|^7.0" + }, + "require-dev": { + "orchestra/testbench": "^7.0|^8.0|^9.0", + "phpstan/phpstan": "^1.10" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2024-11-27T15:42:28+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.6.12", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" + }, + "type": "library", + "autoload": { + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "https://github.com/padraic", + "role": "Author" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "docs": "https://docs.mockery.io/", + "issues": "https://github.com/mockery/mockery/issues", + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" + }, + "time": "2024-05-16T03:13:13+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2024-11-08T17:47:46+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v8.5.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "f5c101b929c958e849a633283adff296ed5f38f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5", + "reference": "f5c101b929c958e849a633283adff296ed5f38f5", + "shasum": "" + }, + "require": { + "filp/whoops": "^2.16.0", + "nunomaduro/termwind": "^2.1.0", + "php": "^8.2.0", + "symfony/console": "^7.1.5" + }, + "conflict": { + "laravel/framework": "<11.0.0 || >=12.0.0", + "phpunit/phpunit": "<10.5.1 || >=12.0.0" + }, + "require-dev": { + "larastan/larastan": "^2.9.8", + "laravel/framework": "^11.28.0", + "laravel/pint": "^1.18.1", + "laravel/sail": "^1.36.0", + "laravel/sanctum": "^4.0.3", + "laravel/tinker": "^2.10.0", + "orchestra/testbench-core": "^9.5.3", + "pestphp/pest": "^2.36.0 || ^3.4.0", + "sebastian/environment": "^6.1.0 || ^7.2.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + }, + "branch-alias": { + "dev-8.x": "8.x-dev" + } + }, + "autoload": { + "files": [ + "./src/Adapters/Phpunit/Autoload.php" + ], + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2024-10-15T16:06:32+00:00" + }, + { + "name": "pestphp/pest", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest.git", + "reference": "bf3178473dcaa53b0458f21dfdb271306ea62512" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest/zipball/bf3178473dcaa53b0458f21dfdb271306ea62512", + "reference": "bf3178473dcaa53b0458f21dfdb271306ea62512", + "shasum": "" + }, + "require": { + "brianium/paratest": "^7.7.0", + "nunomaduro/collision": "^8.5.0", + "nunomaduro/termwind": "^2.3.0", + "pestphp/pest-plugin": "^3.0.0", + "pestphp/pest-plugin-arch": "^3.0.0", + "pestphp/pest-plugin-mutate": "^3.0.5", + "php": "^8.2.0", + "phpunit/phpunit": "^11.5.1" + }, + "conflict": { + "filp/whoops": "<2.16.0", + "phpunit/phpunit": ">11.5.1", + "sebastian/exporter": "<6.0.0", + "webmozart/assert": "<1.11.0" + }, + "require-dev": { + "pestphp/pest-dev-tools": "^3.3.0", + "pestphp/pest-plugin-type-coverage": "^3.2.0", + "symfony/process": "^7.2.0" + }, + "bin": [ + "bin/pest" + ], + "type": "library", + "extra": { + "pest": { + "plugins": [ + "Pest\\Mutate\\Plugins\\Mutate", + "Pest\\Plugins\\Configuration", + "Pest\\Plugins\\Bail", + "Pest\\Plugins\\Cache", + "Pest\\Plugins\\Coverage", + "Pest\\Plugins\\Init", + "Pest\\Plugins\\Environment", + "Pest\\Plugins\\Help", + "Pest\\Plugins\\Memory", + "Pest\\Plugins\\Only", + "Pest\\Plugins\\Printer", + "Pest\\Plugins\\ProcessIsolation", + "Pest\\Plugins\\Profile", + "Pest\\Plugins\\Retry", + "Pest\\Plugins\\Snapshot", + "Pest\\Plugins\\Verbose", + "Pest\\Plugins\\Version", + "Pest\\Plugins\\Parallel" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "files": [ + "src/Functions.php", + "src/Pest.php" + ], + "psr-4": { + "Pest\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "The elegant PHP Testing Framework.", + "keywords": [ + "framework", + "pest", + "php", + "test", + "testing", + "unit" + ], + "support": { + "issues": "https://github.com/pestphp/pest/issues", + "source": "https://github.com/pestphp/pest/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2024-12-12T11:52:01+00:00" + }, + { + "name": "pestphp/pest-plugin", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin.git", + "reference": "e79b26c65bc11c41093b10150c1341cc5cdbea83" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/e79b26c65bc11c41093b10150c1341cc5cdbea83", + "reference": "e79b26c65bc11c41093b10150c1341cc5cdbea83", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0.0", + "composer-runtime-api": "^2.2.2", + "php": "^8.2" + }, + "conflict": { + "pestphp/pest": "<3.0.0" + }, + "require-dev": { + "composer/composer": "^2.7.9", + "pestphp/pest": "^3.0.0", + "pestphp/pest-dev-tools": "^3.0.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Pest\\Plugin\\Manager" + }, + "autoload": { + "psr-4": { + "Pest\\Plugin\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Pest plugin manager", + "keywords": [ + "framework", + "manager", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin/tree/v3.0.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2024-09-08T23:21:41+00:00" + }, + { + "name": "pestphp/pest-plugin-arch", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin-arch.git", + "reference": "0a27e55a270cfe73d8cb70551b91002ee2cb64b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/0a27e55a270cfe73d8cb70551b91002ee2cb64b0", + "reference": "0a27e55a270cfe73d8cb70551b91002ee2cb64b0", + "shasum": "" + }, + "require": { + "pestphp/pest-plugin": "^3.0.0", + "php": "^8.2", + "ta-tikoma/phpunit-architecture-test": "^0.8.4" + }, + "require-dev": { + "pestphp/pest": "^3.0.0", + "pestphp/pest-dev-tools": "^3.0.0" + }, + "type": "library", + "extra": { + "pest": { + "plugins": [ + "Pest\\Arch\\Plugin" + ] + } + }, + "autoload": { + "files": [ + "src/Autoload.php" + ], + "psr-4": { + "Pest\\Arch\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Arch plugin for Pest PHP.", + "keywords": [ + "arch", + "architecture", + "framework", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin-arch/tree/v3.0.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2024-09-08T23:23:55+00:00" + }, + { + "name": "pestphp/pest-plugin-laravel", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin-laravel.git", + "reference": "7dd98c0c3b3542970ec21fce80ec5c88916ac469" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/7dd98c0c3b3542970ec21fce80ec5c88916ac469", + "reference": "7dd98c0c3b3542970ec21fce80ec5c88916ac469", + "shasum": "" + }, + "require": { + "laravel/framework": "^11.22.0", + "pestphp/pest": "^3.0.0", + "php": "^8.2.0" + }, + "require-dev": { + "laravel/dusk": "^8.2.5", + "orchestra/testbench": "^9.4.0", + "pestphp/pest-dev-tools": "^3.0.0" + }, + "type": "library", + "extra": { + "pest": { + "plugins": [ + "Pest\\Laravel\\Plugin" + ] + }, + "laravel": { + "providers": [ + "Pest\\Laravel\\PestServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Autoload.php" + ], + "psr-4": { + "Pest\\Laravel\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Pest Laravel Plugin", + "keywords": [ + "framework", + "laravel", + "pest", + "php", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v3.0.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2024-09-08T23:32:52+00:00" + }, + { + "name": "pestphp/pest-plugin-mutate", + "version": "v3.0.5", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin-mutate.git", + "reference": "e10dbdc98c9e2f3890095b4fe2144f63a5717e08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin-mutate/zipball/e10dbdc98c9e2f3890095b4fe2144f63a5717e08", + "reference": "e10dbdc98c9e2f3890095b4fe2144f63a5717e08", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.2.0", + "pestphp/pest-plugin": "^3.0.0", + "php": "^8.2", + "psr/simple-cache": "^3.0.0" + }, + "require-dev": { + "pestphp/pest": "^3.0.8", + "pestphp/pest-dev-tools": "^3.0.0", + "pestphp/pest-plugin-type-coverage": "^3.0.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Pest\\Mutate\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sandro Gehri", + "email": "sandrogehri@gmail.com" + } + ], + "description": "Mutates your code to find untested cases", + "keywords": [ + "framework", + "mutate", + "mutation", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin-mutate/tree/v3.0.5" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/gehrisandro", + "type": "github" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2024-09-22T07:54:40+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.6.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", + "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.1", + "ext-filter": "*", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.5 || ~1.6.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "psalm/phar": "^5.26" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1" + }, + "time": "2024-12-07T09:39:29+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.18|^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" + }, + "time": "2024-11-09T15:12:26+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299", + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^5.3.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0" + }, + "time": "2024-10-13T11:29:49+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "11.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "418c59fd080954f8c4aa5631d9502ecda2387118" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/418c59fd080954f8c4aa5631d9502ecda2387118", + "reference": "418c59fd080954f8c4aa5631d9502ecda2387118", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^5.3.1", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.0", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", + "theseer/tokenizer": "^1.2.3" + }, + "require-dev": { + "phpunit/phpunit": "^11.5.0" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "11.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-12-11T12:34:27+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "5.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-08-27T05:02:59+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "5.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^11.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:07:44+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:08:43+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "7.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:09:35+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "11.5.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "2b94d4f2450b9869fa64a46fd8a6a41997aef56a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2b94d4f2450b9869fa64a46fd8a6a41997aef56a", + "reference": "2b94d4f2450b9869fa64a46fd8a6a41997aef56a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.12.1", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.7", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.1", + "sebastian/comparator": "^6.2.1", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.0", + "sebastian/exporter": "^6.3.0", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/type": "^5.1.0", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "11.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.1" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2024-12-11T10:52:48+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:41:36+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca", + "reference": "ee88b0cdbe74cf8dd3b54940ff17643c0d6543ca", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-12-12T09:59:06+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:45:54+00:00" + }, + { + "name": "sebastian/comparator", + "version": "6.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/43d129d6a0f81c78bee378b46688293eb7ea3739", + "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/6.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-10-31T05:30:08+00:00" + }, + { + "name": "sebastian/complexity", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.0", + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:49:50+00:00" + }, + { + "name": "sebastian/diff", + "version": "6.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:53:05+00:00" + }, + { + "name": "sebastian/environment", + "version": "7.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", + "reference": "855f3ae0ab316bbafe1ba4e16e9f3c078d24a0c5", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:54:44+00:00" + }, + { + "name": "sebastian/exporter", + "version": "6.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/3473f61172093b2da7de1fb5782e1f24cc036dc3", + "reference": "3473f61172093b2da7de1fb5782e1f24cc036dc3", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-12-05T09:17:50+00:00" + }, + { + "name": "sebastian/global-state", + "version": "7.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:57:36+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.0", + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:58:38+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "6.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:00:13+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:01:32+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "6.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/694d156164372abbd149a4b85ccda2e4670c0e16", + "reference": "694d156164372abbd149a4b85ccda2e4670c0e16", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:10:34+00:00" + }, + { + "name": "sebastian/type", + "version": "5.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/461b9c5da241511a2a0e8f240814fb23ce5c0aac", + "reference": "461b9c5da241511a2a0e8f240814fb23ce5c0aac", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-09-17T13:12:04+00:00" + }, + { + "name": "sebastian/version", + "version": "5.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-10-09T05:16:32+00:00" + }, + { + "name": "staabm/side-effects-detector", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" + ], + "support": { + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" + }, + "funding": [ + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2024-10-20T05:08:20+00:00" + }, + { + "name": "symfony/yaml", + "version": "v7.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "099581e99f557e9f16b43c5916c26380b54abb22" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22", + "reference": "099581e99f557e9f16b43c5916c26380b54abb22", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v7.2.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-10-23T06:56:12+00:00" + }, + { + "name": "ta-tikoma/phpunit-architecture-test", + "version": "0.8.4", + "source": { + "type": "git", + "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", + "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/89f0dea1cb0f0d5744d3ec1764a286af5e006636", + "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18.0 || ^5.0.0", + "php": "^8.1.0", + "phpdocumentor/reflection-docblock": "^5.3.0", + "phpunit/phpunit": "^10.5.5 || ^11.0.0", + "symfony/finder": "^6.4.0 || ^7.0.0" + }, + "require-dev": { + "laravel/pint": "^1.13.7", + "phpstan/phpstan": "^1.10.52" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPUnit\\Architecture\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ni Shi", + "email": "futik0ma011@gmail.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Methods for testing application architecture", + "keywords": [ + "architecture", + "phpunit", + "stucture", + "test", + "testing" + ], + "support": { + "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", + "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.4" + }, + "time": "2024-01-05T14:10:56+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:36:25+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.2" + }, + "platform-dev": {}, + "plugin-api-version": "2.6.0" +} diff --git a/ems-sense/config/app.php b/ems-sense/config/app.php new file mode 100644 index 0000000..f467267 --- /dev/null +++ b/ems-sense/config/app.php @@ -0,0 +1,126 @@ + env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => (bool) env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | the application so that it's available within Artisan commands. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. The timezone + | is set to "UTC" by default as it is suitable for most use cases. + | + */ + + 'timezone' => env('APP_TIMEZONE', 'UTC'), + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by Laravel's translation / localization methods. This option can be + | set to any locale for which you plan to have translation strings. + | + */ + + 'locale' => env('APP_LOCALE', 'en'), + + 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), + + 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is utilized by Laravel's encryption services and should be set + | to a random, 32 character string to ensure that all encrypted values + | are secure. You should do this prior to deploying the application. + | + */ + + 'cipher' => 'AES-256-CBC', + + 'key' => env('APP_KEY'), + + 'previous_keys' => [ + ...array_filter( + explode(',', env('APP_PREVIOUS_KEYS', '')) + ), + ], + + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), + 'store' => env('APP_MAINTENANCE_STORE', 'database'), + ], + +]; diff --git a/ems-sense/config/auth.php b/ems-sense/config/auth.php new file mode 100644 index 0000000..0ba5d5d --- /dev/null +++ b/ems-sense/config/auth.php @@ -0,0 +1,115 @@ + [ + 'guard' => env('AUTH_GUARD', 'web'), + 'passwords' => env('AUTH_PASSWORD_BROKER', 'users'), + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | which utilizes session storage plus the Eloquent user provider. + | + | All authentication guards have a user provider, which defines how the + | users are actually retrieved out of your database or other storage + | system used by the application. Typically, Eloquent is utilized. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication guards have a user provider, which defines how the + | users are actually retrieved out of your database or other storage + | system used by the application. Typically, Eloquent is utilized. + | + | If you have multiple user tables or models you may configure multiple + | providers to represent the model / table. These providers may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => env('AUTH_MODEL', App\Models\User::class), + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | These configuration options specify the behavior of Laravel's password + | reset functionality, including the table utilized for token storage + | and the user provider that is invoked to actually retrieve users. + | + | The expiry time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + | The throttle setting is the number of seconds a user must wait before + | generating more password reset tokens. This prevents the user from + | quickly generating a very large amount of password reset tokens. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => env('AUTH_PASSWORD_RESET_TOKEN_TABLE', 'password_reset_tokens'), + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | window expires and users are asked to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => env('AUTH_PASSWORD_TIMEOUT', 10800), + +]; diff --git a/ems-sense/config/cache.php b/ems-sense/config/cache.php new file mode 100644 index 0000000..925f7d2 --- /dev/null +++ b/ems-sense/config/cache.php @@ -0,0 +1,108 @@ + env('CACHE_STORE', 'database'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "array", "database", "file", "memcached", + | "redis", "dynamodb", "octane", "null" + | + */ + + 'stores' => [ + + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], + + 'database' => [ + 'driver' => 'database', + 'connection' => env('DB_CACHE_CONNECTION'), + 'table' => env('DB_CACHE_TABLE', 'cache'), + 'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'), + 'lock_table' => env('DB_CACHE_LOCK_TABLE'), + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + 'lock_path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => env('REDIS_CACHE_CONNECTION', 'cache'), + 'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'), + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + 'octane' => [ + 'driver' => 'octane', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing the APC, database, memcached, Redis, and DynamoDB cache + | stores, there might be other applications using the same cache. For + | that reason, you may prefix every cache key to avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'), + +]; diff --git a/ems-sense/config/database.php b/ems-sense/config/database.php new file mode 100644 index 0000000..125949e --- /dev/null +++ b/ems-sense/config/database.php @@ -0,0 +1,173 @@ + env('DB_CONNECTION', 'sqlite'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Below are all of the database connections defined for your application. + | An example configuration is provided for each database system which + | is supported by Laravel. You're free to add / remove connections. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DB_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + 'busy_timeout' => null, + 'journal_mode' => null, + 'synchronous' => null, + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'mariadb' => [ + 'driver' => 'mariadb', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => env('DB_CHARSET', 'utf8'), + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => env('DB_CHARSET', 'utf8'), + 'prefix' => '', + 'prefix_indexes' => true, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run on the database. + | + */ + + 'migrations' => [ + 'table' => 'migrations', + 'update_date_on_publish' => true, + ], + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as Memcached. You may define your connection settings here. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/ems-sense/config/filament.php b/ems-sense/config/filament.php new file mode 100644 index 0000000..b163047 --- /dev/null +++ b/ems-sense/config/filament.php @@ -0,0 +1,91 @@ + [ + + // 'echo' => [ + // 'broadcaster' => 'pusher', + // 'key' => env('VITE_PUSHER_APP_KEY'), + // 'cluster' => env('VITE_PUSHER_APP_CLUSTER'), + // 'wsHost' => env('VITE_PUSHER_HOST'), + // 'wsPort' => env('VITE_PUSHER_PORT'), + // 'wssPort' => env('VITE_PUSHER_PORT'), + // 'authEndpoint' => '/broadcasting/auth', + // 'disableStats' => true, + // 'encrypted' => true, + // 'forceTLS' => true, + // ], + + ], + + /* + |-------------------------------------------------------------------------- + | Default Filesystem Disk + |-------------------------------------------------------------------------- + | + | This is the storage disk Filament will use to store files. You may use + | any of the disks defined in the `config/filesystems.php`. + | + */ + + 'default_filesystem_disk' => env('FILAMENT_FILESYSTEM_DISK', 'public'), + + /* + |-------------------------------------------------------------------------- + | Assets Path + |-------------------------------------------------------------------------- + | + | This is the directory where Filament's assets will be published to. It + | is relative to the `public` directory of your Laravel application. + | + | After changing the path, you should run `php artisan filament:assets`. + | + */ + + 'assets_path' => null, + + /* + |-------------------------------------------------------------------------- + | Cache Path + |-------------------------------------------------------------------------- + | + | This is the directory that Filament will use to store cache files that + | are used to optimize the registration of components. + | + | After changing the path, you should run `php artisan filament:cache-components`. + | + */ + + 'cache_path' => base_path('bootstrap/cache/filament'), + + /* + |-------------------------------------------------------------------------- + | Livewire Loading Delay + |-------------------------------------------------------------------------- + | + | This sets the delay before loading indicators appear. + | + | Setting this to 'none' makes indicators appear immediately, which can be + | desirable for high-latency connections. Setting it to 'default' applies + | Livewire's standard 200ms delay. + | + */ + + 'livewire_loading_delay' => 'default', + + 'dark_mode' => false, + +]; diff --git a/ems-sense/config/filesystems.php b/ems-sense/config/filesystems.php new file mode 100644 index 0000000..b564035 --- /dev/null +++ b/ems-sense/config/filesystems.php @@ -0,0 +1,77 @@ + env('FILESYSTEM_DISK', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Below you may configure as many filesystem disks as necessary, and you + | may even configure multiple disks for the same driver. Examples for + | most supported storage drivers are configured here for reference. + | + | Supported drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app/private'), + 'serve' => true, + 'throw' => false, + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + 'throw' => false, + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + 'throw' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/ems-sense/config/logging.php b/ems-sense/config/logging.php new file mode 100644 index 0000000..8d94292 --- /dev/null +++ b/ems-sense/config/logging.php @@ -0,0 +1,132 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => env('LOG_DEPRECATIONS_TRACE', false), + ], + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Laravel + | utilizes the Monolog PHP logging library, which includes a variety + | of powerful log handlers and formatters that you're free to use. + | + | Available drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", "custom", "stack" + | + */ + + 'channels' => [ + + 'stack' => [ + 'driver' => 'stack', + 'channels' => explode(',', env('LOG_STACK', 'single')), + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'days' => env('LOG_DAILY_DAYS', 14), + 'replace_placeholders' => true, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => env('LOG_SLACK_USERNAME', 'Laravel Log'), + 'emoji' => env('LOG_SLACK_EMOJI', ':boom:'), + 'level' => env('LOG_LEVEL', 'critical'), + 'replace_placeholders' => true, + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class), + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'with' => [ + 'stream' => 'php://stderr', + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + 'facility' => env('LOG_SYSLOG_FACILITY', LOG_USER), + 'replace_placeholders' => true, + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + + ], + +]; diff --git a/ems-sense/config/mail.php b/ems-sense/config/mail.php new file mode 100644 index 0000000..756305b --- /dev/null +++ b/ems-sense/config/mail.php @@ -0,0 +1,116 @@ + env('MAIL_MAILER', 'log'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers that can be used + | when delivering an email. You may specify which one you're using for + | your mailers below. You may also add additional mailers if needed. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", + | "postmark", "resend", "log", "array", + | "failover", "roundrobin" + | + */ + + 'mailers' => [ + + 'smtp' => [ + 'transport' => 'smtp', + 'scheme' => env('MAIL_SCHEME'), + 'url' => env('MAIL_URL'), + 'host' => env('MAIL_HOST', '127.0.0.1'), + 'port' => env('MAIL_PORT', 2525), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'postmark' => [ + 'transport' => 'postmark', + // 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'), + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'resend' => [ + 'transport' => 'resend', + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], + + 'roundrobin' => [ + 'transport' => 'roundrobin', + 'mailers' => [ + 'ses', + 'postmark', + ], + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all emails sent by your application to be sent from + | the same address. Here you may specify a name and address that is + | used globally for all emails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + +]; diff --git a/ems-sense/config/queue.php b/ems-sense/config/queue.php new file mode 100644 index 0000000..116bd8d --- /dev/null +++ b/ems-sense/config/queue.php @@ -0,0 +1,112 @@ + env('QUEUE_CONNECTION', 'database'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection options for every queue backend + | used by your application. An example configuration is provided for + | each backend supported by Laravel. You're also free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'connection' => env('DB_QUEUE_CONNECTION'), + 'table' => env('DB_QUEUE_TABLE', 'jobs'), + 'queue' => env('DB_QUEUE', 'default'), + 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90), + 'after_commit' => false, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'), + 'queue' => env('BEANSTALKD_QUEUE', 'default'), + 'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90), + 'block_for' => 0, + 'after_commit' => false, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90), + 'block_for' => null, + 'after_commit' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Job Batching + |-------------------------------------------------------------------------- + | + | The following options configure the database and table that store job + | batching information. These options can be updated to any database + | connection and table which has been defined by your application. + | + */ + + 'batching' => [ + 'database' => env('DB_CONNECTION', 'sqlite'), + 'table' => 'job_batches', + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control how and where failed jobs are stored. Laravel ships with + | support for storing failed jobs in a simple file or in a database. + | + | Supported drivers: "database-uuids", "dynamodb", "file", "null" + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'sqlite'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/ems-sense/config/services.php b/ems-sense/config/services.php new file mode 100644 index 0000000..27a3617 --- /dev/null +++ b/ems-sense/config/services.php @@ -0,0 +1,38 @@ + [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + + 'resend' => [ + 'key' => env('RESEND_KEY'), + ], + + 'slack' => [ + 'notifications' => [ + 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'), + 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'), + ], + ], + +]; diff --git a/ems-sense/config/session.php b/ems-sense/config/session.php new file mode 100644 index 0000000..f0b6541 --- /dev/null +++ b/ems-sense/config/session.php @@ -0,0 +1,217 @@ + env('SESSION_DRIVER', 'database'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to expire immediately when the browser is closed then you may + | indicate that via the expire_on_close configuration option. + | + */ + + 'lifetime' => env('SESSION_LIFETIME', 120), + + 'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false), + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it's stored. All encryption is performed + | automatically by Laravel and you may use the session like normal. + | + */ + + 'encrypt' => env('SESSION_ENCRYPT', false), + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When utilizing the "file" session driver, the session files are placed + | on disk. The default storage location is defined here; however, you + | are free to provide another location where they should be stored. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION'), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table to + | be used to store sessions. Of course, a sensible default is defined + | for you; however, you're welcome to change this to another table. + | + */ + + 'table' => env('SESSION_TABLE', 'sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | When using one of the framework's cache driven session backends, you may + | define the cache store which should be used to store the session data + | between requests. This must match one of your defined cache stores. + | + | Affects: "apc", "dynamodb", "memcached", "redis" + | + */ + + 'store' => env('SESSION_STORE'), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the session cookie that is created by + | the framework. Typically, you should not need to change this value + | since doing so does not grant a meaningful security improvement. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application, but you're free to change this when necessary. + | + */ + + 'path' => env('SESSION_PATH', '/'), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | This value determines the domain and subdomains the session cookie is + | available to. By default, the cookie will be available to the root + | domain and all subdomains. Typically, this shouldn't be changed. + | + */ + + 'domain' => env('SESSION_DOMAIN'), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE'), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. It's unlikely you should disable this option. + | + */ + + 'http_only' => env('SESSION_HTTP_ONLY', true), + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" to permit secure cross-site requests. + | + | See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value + | + | Supported: "lax", "strict", "none", null + | + */ + + 'same_site' => env('SESSION_SAME_SITE', 'lax'), + + /* + |-------------------------------------------------------------------------- + | Partitioned Cookies + |-------------------------------------------------------------------------- + | + | Setting this value to true will tie the cookie to the top-level site for + | a cross-site context. Partitioned cookies are accepted by the browser + | when flagged "secure" and the Same-Site attribute is set to "none". + | + */ + + 'partitioned' => env('SESSION_PARTITIONED_COOKIE', false), + +]; diff --git a/ems-sense/database/.gitignore b/ems-sense/database/.gitignore new file mode 100644 index 0000000..9b19b93 --- /dev/null +++ b/ems-sense/database/.gitignore @@ -0,0 +1 @@ +*.sqlite* diff --git a/ems-sense/database/factories/UserFactory.php b/ems-sense/database/factories/UserFactory.php new file mode 100644 index 0000000..584104c --- /dev/null +++ b/ems-sense/database/factories/UserFactory.php @@ -0,0 +1,44 @@ + + */ +class UserFactory extends Factory +{ + /** + * The current password being used by the factory. + */ + protected static ?string $password; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'name' => fake()->name(), + 'email' => fake()->unique()->safeEmail(), + 'email_verified_at' => now(), + 'password' => static::$password ??= Hash::make('password'), + 'remember_token' => Str::random(10), + ]; + } + + /** + * Indicate that the model's email address should be unverified. + */ + public function unverified(): static + { + return $this->state(fn (array $attributes) => [ + 'email_verified_at' => null, + ]); + } +} diff --git a/ems-sense/database/migrations/0001_01_01_000000_create_users_table.php b/ems-sense/database/migrations/0001_01_01_000000_create_users_table.php new file mode 100644 index 0000000..05fb5d9 --- /dev/null +++ b/ems-sense/database/migrations/0001_01_01_000000_create_users_table.php @@ -0,0 +1,49 @@ +id(); + $table->string('name'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + + Schema::create('password_reset_tokens', function (Blueprint $table) { + $table->string('email')->primary(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + + Schema::create('sessions', function (Blueprint $table) { + $table->string('id')->primary(); + $table->foreignId('user_id')->nullable()->index(); + $table->string('ip_address', 45)->nullable(); + $table->text('user_agent')->nullable(); + $table->longText('payload'); + $table->integer('last_activity')->index(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('users'); + Schema::dropIfExists('password_reset_tokens'); + Schema::dropIfExists('sessions'); + } +}; diff --git a/ems-sense/database/migrations/0001_01_01_000001_create_cache_table.php b/ems-sense/database/migrations/0001_01_01_000001_create_cache_table.php new file mode 100644 index 0000000..b9c106b --- /dev/null +++ b/ems-sense/database/migrations/0001_01_01_000001_create_cache_table.php @@ -0,0 +1,35 @@ +string('key')->primary(); + $table->mediumText('value'); + $table->integer('expiration'); + }); + + Schema::create('cache_locks', function (Blueprint $table) { + $table->string('key')->primary(); + $table->string('owner'); + $table->integer('expiration'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cache'); + Schema::dropIfExists('cache_locks'); + } +}; diff --git a/ems-sense/database/migrations/0001_01_01_000002_create_jobs_table.php b/ems-sense/database/migrations/0001_01_01_000002_create_jobs_table.php new file mode 100644 index 0000000..425e705 --- /dev/null +++ b/ems-sense/database/migrations/0001_01_01_000002_create_jobs_table.php @@ -0,0 +1,57 @@ +id(); + $table->string('queue')->index(); + $table->longText('payload'); + $table->unsignedTinyInteger('attempts'); + $table->unsignedInteger('reserved_at')->nullable(); + $table->unsignedInteger('available_at'); + $table->unsignedInteger('created_at'); + }); + + Schema::create('job_batches', function (Blueprint $table) { + $table->string('id')->primary(); + $table->string('name'); + $table->integer('total_jobs'); + $table->integer('pending_jobs'); + $table->integer('failed_jobs'); + $table->longText('failed_job_ids'); + $table->mediumText('options')->nullable(); + $table->integer('cancelled_at')->nullable(); + $table->integer('created_at'); + $table->integer('finished_at')->nullable(); + }); + + Schema::create('failed_jobs', function (Blueprint $table) { + $table->id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('jobs'); + Schema::dropIfExists('job_batches'); + Schema::dropIfExists('failed_jobs'); + } +}; diff --git a/ems-sense/database/migrations/2025_01_13_100520_create_species_table.php b/ems-sense/database/migrations/2025_01_13_100520_create_species_table.php new file mode 100644 index 0000000..8986c26 --- /dev/null +++ b/ems-sense/database/migrations/2025_01_13_100520_create_species_table.php @@ -0,0 +1,28 @@ +id(); + $table->string('name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('species'); + } +}; diff --git a/ems-sense/database/migrations/2025_01_13_100524_create_treatments_table.php b/ems-sense/database/migrations/2025_01_13_100524_create_treatments_table.php new file mode 100644 index 0000000..2bcfbf8 --- /dev/null +++ b/ems-sense/database/migrations/2025_01_13_100524_create_treatments_table.php @@ -0,0 +1,37 @@ +id(); + $table->foreignIdFor(Species::class)->constrained()->cascadeOnDelete(); + $table->foreignIdFor(User::class)->constrained()->cascadeOnDelete(); + $table->float('emsConcentration')->unsigned(); + $table->unsignedInteger('soakDuration'); + $table->float('lowestTemp')->unsigned(); + $table->float('highestTemp')->unsigned(); + $table->boolean('result'); + $table->unsignedMediumInteger('successRate'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('treatments'); + } +}; diff --git a/ems-sense/database/migrations/2025_01_14_162731_add_is_verified_column_to_treatments_table.php b/ems-sense/database/migrations/2025_01_14_162731_add_is_verified_column_to_treatments_table.php new file mode 100644 index 0000000..c8b3899 --- /dev/null +++ b/ems-sense/database/migrations/2025_01_14_162731_add_is_verified_column_to_treatments_table.php @@ -0,0 +1,28 @@ +boolean('is_verified')->default(0); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('treatments', function (Blueprint $table) { + $table->dropColumn('is_verified'); + }); + } +}; diff --git a/ems-sense/database/migrations/2025_01_14_164943_add_role_column_to_users_table.php b/ems-sense/database/migrations/2025_01_14_164943_add_role_column_to_users_table.php new file mode 100644 index 0000000..ac373ae --- /dev/null +++ b/ems-sense/database/migrations/2025_01_14_164943_add_role_column_to_users_table.php @@ -0,0 +1,28 @@ +enum('role', ['user', 'curator'])->default('user'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('role'); + }); + } +}; diff --git a/ems-sense/database/migrations/2025_01_15_095514_add_is_added_column_to_treatments_table.php b/ems-sense/database/migrations/2025_01_15_095514_add_is_added_column_to_treatments_table.php new file mode 100644 index 0000000..e4cc880 --- /dev/null +++ b/ems-sense/database/migrations/2025_01_15_095514_add_is_added_column_to_treatments_table.php @@ -0,0 +1,28 @@ +boolean('is_added')->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('treatments', function (Blueprint $table) { + $table->dropColumn('is_added'); + }); + } +}; diff --git a/ems-sense/database/migrations/2025_02_20_043320_add_note_column_for_treatments_table.php b/ems-sense/database/migrations/2025_02_20_043320_add_note_column_for_treatments_table.php new file mode 100644 index 0000000..a91451f --- /dev/null +++ b/ems-sense/database/migrations/2025_02_20_043320_add_note_column_for_treatments_table.php @@ -0,0 +1,28 @@ +string('note', 500); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('treatments', function (Blueprint $table) { + $table->dropColumn('note'); + }); + } +}; diff --git a/ems-sense/database/seeders/DatabaseSeeder.php b/ems-sense/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..ea86e44 --- /dev/null +++ b/ems-sense/database/seeders/DatabaseSeeder.php @@ -0,0 +1,35 @@ +create(); + + User::factory()->create([ + 'name' => 'Raihan', + 'email' => 'r@r.com', + 'password' => '$2y$12$T7yfjVsZLLbsQVYAd4s5tumQoDWpImOB.iwaZ4BDy.mYdNOZfXyQ.', + 'role' => 'curator', + ]); + + User::factory()->create([ + 'name' => 'Irfan', + 'email' => 'i@i.com', + 'password' => '$2y$12$T7yfjVsZLLbsQVYAd4s5tumQoDWpImOB.iwaZ4BDy.mYdNOZfXyQ.', + ]); + + $this->call([ + SpeciesSeeder::class, + ]); + } +} diff --git a/ems-sense/database/seeders/SpeciesSeeder.php b/ems-sense/database/seeders/SpeciesSeeder.php new file mode 100644 index 0000000..6792b00 --- /dev/null +++ b/ems-sense/database/seeders/SpeciesSeeder.php @@ -0,0 +1,44 @@ +getSpecies(); + } + + public function getSpecies(): void + { + try { + // get species from API + $response = Http::get('http://127.0.0.1:8000/species'); + + if ($response->successful()) { + $species = $response->json(); + + // loop through the species from the API + foreach ($species as $speciesName) { + // check if the species already exists in the database + if (!Species::where('name', $speciesName)->exists()) { + // insert the species if it does not exist + Species::create(['name' => $speciesName]); + } + } + } else { + throw new \Exception('Failed to fetch species from API'); + } + } catch (\Exception $e) { + print_r("\n\n\n !!! Make sure your API is running !!! \n\n\n"); + throw $e; + } + } +} diff --git a/ems-sense/package.json b/ems-sense/package.json new file mode 100644 index 0000000..1f5ab2a --- /dev/null +++ b/ems-sense/package.json @@ -0,0 +1,20 @@ +{ + "private": true, + "type": "module", + "scripts": { + "build": "vite build", + "dev": "vite" + }, + "devDependencies": { + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/typography": "^0.5.16", + "autoprefixer": "^10.4.20", + "axios": "^1.7.4", + "concurrently": "^9.0.1", + "laravel-vite-plugin": "^1.0", + "postcss": "^8.4.49", + "postcss-nesting": "^13.0.1", + "tailwindcss": "^3.4.17", + "vite": "^6.0" + } +} diff --git a/ems-sense/phpunit.xml b/ems-sense/phpunit.xml new file mode 100644 index 0000000..506b9a3 --- /dev/null +++ b/ems-sense/phpunit.xml @@ -0,0 +1,33 @@ + + + + + tests/Unit + + + tests/Feature + + + + + app + + + + + + + + + + + + + + + + diff --git a/ems-sense/pnpm-lock.yaml b/ems-sense/pnpm-lock.yaml new file mode 100644 index 0000000..a74bf34 --- /dev/null +++ b/ems-sense/pnpm-lock.yaml @@ -0,0 +1,1741 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@tailwindcss/forms': + specifier: ^0.5.10 + version: 0.5.10(tailwindcss@3.4.17) + '@tailwindcss/typography': + specifier: ^0.5.16 + version: 0.5.16(tailwindcss@3.4.17) + autoprefixer: + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.49) + axios: + specifier: ^1.7.4 + version: 1.7.9 + concurrently: + specifier: ^9.0.1 + version: 9.1.2 + laravel-vite-plugin: + specifier: ^1.0 + version: 1.1.1(vite@6.0.7(jiti@1.21.7)(yaml@2.7.0)) + postcss: + specifier: ^8.4.49 + version: 8.4.49 + postcss-nesting: + specifier: ^13.0.1 + version: 13.0.1(postcss@8.4.49) + tailwindcss: + specifier: ^3.4.17 + version: 3.4.17 + vite: + specifier: ^6.0 + version: 6.0.7(jiti@1.21.7)(yaml@2.7.0) + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@csstools/selector-resolve-nested@3.0.0': + resolution: {integrity: sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + + '@csstools/selector-specificity@5.0.0': + resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} + engines: {node: '>=18'} + peerDependencies: + postcss-selector-parser: ^7.0.0 + + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rollup/rollup-android-arm-eabi@4.29.1': + resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.29.1': + resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.29.1': + resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.29.1': + resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.29.1': + resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.29.1': + resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.29.1': + resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.29.1': + resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.29.1': + resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.29.1': + resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.29.1': + resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.29.1': + resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.29.1': + resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.29.1': + resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} + cpu: [x64] + os: [win32] + + '@tailwindcss/forms@0.5.10': + resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==} + peerDependencies: + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' + + '@tailwindcss/typography@0.5.16': + resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + axios@1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.3: + resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + caniuse-lite@1.0.30001690: + resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + concurrently@9.1.2: + resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==} + engines: {node: '>=18'} + hasBin: true + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.76: + resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + laravel-vite-plugin@1.1.1: + resolution: {integrity: sha512-HMZXpoSs1OR+7Lw1+g4Iy/s3HF3Ldl8KxxYT2Ot8pEB4XB/QRuZeWgDYJdu552UN03YRSRNK84CLC9NzYRtncA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-nesting@13.0.1: + resolution: {integrity: sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-selector-parser@7.0.0: + resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup@4.29.1: + resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vite-plugin-full-reload@1.2.0: + resolution: {integrity: sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==} + + vite@6.0.7: + resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.0.0)': + dependencies: + postcss-selector-parser: 7.0.0 + + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.0.0)': + dependencies: + postcss-selector-parser: 7.0.0 + + '@esbuild/aix-ppc64@0.24.2': + optional: true + + '@esbuild/android-arm64@0.24.2': + optional: true + + '@esbuild/android-arm@0.24.2': + optional: true + + '@esbuild/android-x64@0.24.2': + optional: true + + '@esbuild/darwin-arm64@0.24.2': + optional: true + + '@esbuild/darwin-x64@0.24.2': + optional: true + + '@esbuild/freebsd-arm64@0.24.2': + optional: true + + '@esbuild/freebsd-x64@0.24.2': + optional: true + + '@esbuild/linux-arm64@0.24.2': + optional: true + + '@esbuild/linux-arm@0.24.2': + optional: true + + '@esbuild/linux-ia32@0.24.2': + optional: true + + '@esbuild/linux-loong64@0.24.2': + optional: true + + '@esbuild/linux-mips64el@0.24.2': + optional: true + + '@esbuild/linux-ppc64@0.24.2': + optional: true + + '@esbuild/linux-riscv64@0.24.2': + optional: true + + '@esbuild/linux-s390x@0.24.2': + optional: true + + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': + optional: true + + '@esbuild/openbsd-x64@0.24.2': + optional: true + + '@esbuild/sunos-x64@0.24.2': + optional: true + + '@esbuild/win32-arm64@0.24.2': + optional: true + + '@esbuild/win32-ia32@0.24.2': + optional: true + + '@esbuild/win32-x64@0.24.2': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.18.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.29.1': + optional: true + + '@rollup/rollup-android-arm64@4.29.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.29.1': + optional: true + + '@rollup/rollup-darwin-x64@4.29.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.29.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.29.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.29.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.29.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.29.1': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.29.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.29.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.29.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.29.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.29.1': + optional: true + + '@tailwindcss/forms@0.5.10(tailwindcss@3.4.17)': + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 3.4.17 + + '@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)': + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.17 + + '@types/estree@1.0.6': {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + asynckit@0.4.0: {} + + autoprefixer@10.4.20(postcss@8.4.49): + dependencies: + browserslist: 4.24.3 + caniuse-lite: 1.0.30001690 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + + axios@1.7.9: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + binary-extensions@2.3.0: {} + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.3: + dependencies: + caniuse-lite: 1.0.30001690 + electron-to-chromium: 1.5.76 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.3) + + camelcase-css@2.0.1: {} + + caniuse-lite@1.0.30001690: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@4.1.1: {} + + concurrently@9.1.2: + dependencies: + chalk: 4.1.2 + lodash: 4.17.21 + rxjs: 7.8.1 + shell-quote: 1.8.2 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.7.2 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + delayed-stream@1.0.0: {} + + didyoumean@1.2.2: {} + + dlv@1.1.3: {} + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.76: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + + escalade@3.2.0: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fastq@1.18.0: + dependencies: + reusify: 1.0.4 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + follow-redirects@1.15.9: {} + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fraction.js@4.3.7: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + has-flag@4.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + isexe@2.0.0: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.7: {} + + laravel-vite-plugin@1.1.1(vite@6.0.7(jiti@1.21.7)(yaml@2.7.0)): + dependencies: + picocolors: 1.1.1 + vite: 6.0.7(jiti@1.21.7)(yaml@2.7.0) + vite-plugin-full-reload: 1.2.0 + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + lodash.castarray@4.4.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + lru-cache@10.4.3: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mini-svg-data-uri@1.4.4: {} + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minipass@7.1.2: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.8: {} + + node-releases@2.0.19: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + package-json-from-dist@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pify@2.3.0: {} + + pirates@4.0.6: {} + + postcss-import@15.1.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.10 + + postcss-js@4.0.1(postcss@8.4.49): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.49 + + postcss-load-config@4.0.2(postcss@8.4.49): + dependencies: + lilconfig: 3.1.3 + yaml: 2.7.0 + optionalDependencies: + postcss: 8.4.49 + + postcss-nested@6.2.0(postcss@8.4.49): + dependencies: + postcss: 8.4.49 + postcss-selector-parser: 6.1.2 + + postcss-nesting@13.0.1(postcss@8.4.49): + dependencies: + '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.0.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) + postcss: 8.4.49 + postcss-selector-parser: 7.0.0 + + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@7.0.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.49: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + proxy-from-env@1.1.0: {} + + queue-microtask@1.2.3: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + require-directory@2.1.1: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + + rollup@4.29.1: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.29.1 + '@rollup/rollup-android-arm64': 4.29.1 + '@rollup/rollup-darwin-arm64': 4.29.1 + '@rollup/rollup-darwin-x64': 4.29.1 + '@rollup/rollup-freebsd-arm64': 4.29.1 + '@rollup/rollup-freebsd-x64': 4.29.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 + '@rollup/rollup-linux-arm-musleabihf': 4.29.1 + '@rollup/rollup-linux-arm64-gnu': 4.29.1 + '@rollup/rollup-linux-arm64-musl': 4.29.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 + '@rollup/rollup-linux-riscv64-gnu': 4.29.1 + '@rollup/rollup-linux-s390x-gnu': 4.29.1 + '@rollup/rollup-linux-x64-gnu': 4.29.1 + '@rollup/rollup-linux-x64-musl': 4.29.1 + '@rollup/rollup-win32-arm64-msvc': 4.29.1 + '@rollup/rollup-win32-ia32-msvc': 4.29.1 + '@rollup/rollup-win32-x64-msvc': 4.29.1 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.8.1 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.2: {} + + signal-exit@4.1.0: {} + + source-map-js@1.2.1: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tailwindcss@3.4.17: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.4.49 + postcss-import: 15.1.0(postcss@8.4.49) + postcss-js: 4.0.1(postcss@8.4.49) + postcss-load-config: 4.0.2(postcss@8.4.49) + postcss-nested: 6.2.0(postcss@8.4.49) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tree-kill@1.2.2: {} + + ts-interface-checker@0.1.13: {} + + tslib@2.8.1: {} + + update-browserslist-db@1.1.1(browserslist@4.24.3): + dependencies: + browserslist: 4.24.3 + escalade: 3.2.0 + picocolors: 1.1.1 + + util-deprecate@1.0.2: {} + + vite-plugin-full-reload@1.2.0: + dependencies: + picocolors: 1.1.1 + picomatch: 2.3.1 + + vite@6.0.7(jiti@1.21.7)(yaml@2.7.0): + dependencies: + esbuild: 0.24.2 + postcss: 8.4.49 + rollup: 4.29.1 + optionalDependencies: + fsevents: 2.3.3 + jiti: 1.21.7 + yaml: 2.7.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + y18n@5.0.8: {} + + yaml@2.7.0: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 diff --git a/ems-sense/postcss.config.js b/ems-sense/postcss.config.js new file mode 100644 index 0000000..b9508a1 --- /dev/null +++ b/ems-sense/postcss.config.js @@ -0,0 +1,7 @@ +export default { + plugins: { + 'tailwindcss/nesting': 'postcss-nesting', + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/ems-sense/public/.htaccess b/ems-sense/public/.htaccess new file mode 100644 index 0000000..3aec5e2 --- /dev/null +++ b/ems-sense/public/.htaccess @@ -0,0 +1,21 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/ems-sense/public/css/filament/forms/forms.css b/ems-sense/public/css/filament/forms/forms.css new file mode 100644 index 0000000..0e252f2 --- /dev/null +++ b/ems-sense/public/css/filament/forms/forms.css @@ -0,0 +1,49 @@ +input::-webkit-datetime-edit{display:block;padding:0}.cropper-container{-webkit-touch-callout:none;direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{inset:0;position:absolute}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.filepond--assistant{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--browser.filepond--browser{font-size:0;left:1em;margin:0;opacity:0;padding:0;position:absolute;top:1.75em;width:calc(100% - 2em)}.filepond--data{border:none;contain:strict;height:0;margin:0;padding:0;visibility:hidden;width:0}.filepond--data,.filepond--drip{pointer-events:none;position:absolute}.filepond--drip{background:rgba(0,0,0,.01);border-radius:.5em;inset:0;opacity:.1;overflow:hidden}.filepond--drip-blob{background:#292625;border-radius:50%;height:8em;margin-left:-4em;margin-top:-4em;transform-origin:center center;width:8em}.filepond--drip-blob,.filepond--drop-label{left:0;position:absolute;top:0;will-change:transform,opacity}.filepond--drop-label{align-items:center;color:#4f4f4f;display:flex;height:0;justify-content:center;margin:0;right:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.filepond--drop-label.filepond--drop-label label{display:block;margin:0;padding:.5em}.filepond--drop-label label{cursor:default;font-size:.875em;font-weight:400;line-height:1.5;text-align:center}.filepond--label-action{-webkit-text-decoration-skip:ink;cursor:pointer;text-decoration:underline;text-decoration-color:#a7a4a4;text-decoration-skip-ink:auto}.filepond--root[data-disabled] .filepond--drop-label label{opacity:.5}.filepond--file-action-button.filepond--file-action-button{border:none;font-family:inherit;font-size:1em;height:1.625em;line-height:inherit;margin:0;outline:none;padding:0;width:1.625em;will-change:transform,opacity}.filepond--file-action-button.filepond--file-action-button span{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--file-action-button.filepond--file-action-button svg{height:100%;width:100%}.filepond--file-action-button.filepond--file-action-button:after{content:"";inset:-.75em;position:absolute}.filepond--file-action-button{background-color:#00000080;background-image:none;border-radius:50%;box-shadow:0 0 #fff0;color:#fff;cursor:auto;transition:box-shadow .25s ease-in}.filepond--file-action-button:focus,.filepond--file-action-button:hover{box-shadow:0 0 0 .125em #ffffffe6}.filepond--file-action-button[disabled]{background-color:#00000040;color:#ffffff80}.filepond--file-action-button[hidden]{display:none}.filepond--file-info{align-items:flex-start;display:flex;flex:1;flex-direction:column;margin:0 .5em 0 0;min-width:0;pointer-events:none;position:static;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform,opacity}.filepond--file-info *{margin:0}.filepond--file-info .filepond--file-info-main{font-size:.75em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.filepond--file-info .filepond--file-info-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out;white-space:nowrap}.filepond--file-info .filepond--file-info-sub:empty{display:none}.filepond--file-status{align-items:flex-end;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;margin:0;min-width:2.25em;pointer-events:none;position:static;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform,opacity}.filepond--file-status *{margin:0;white-space:nowrap}.filepond--file-status .filepond--file-status-main{font-size:.75em;line-height:1.2}.filepond--file-status .filepond--file-status-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out}.filepond--file-wrapper.filepond--file-wrapper{border:none;height:100%;margin:0;min-width:0;padding:0}.filepond--file-wrapper.filepond--file-wrapper>legend{clip:rect(1px,1px,1px,1px);border:0;clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.filepond--file{align-items:flex-start;border-radius:.5em;color:#fff;display:flex;height:100%;padding:.5625em;position:static}.filepond--file .filepond--file-status{margin-left:auto;margin-right:2.25em}.filepond--file .filepond--processing-complete-indicator{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3}.filepond--file .filepond--file-action-button,.filepond--file .filepond--processing-complete-indicator,.filepond--file .filepond--progress-indicator{position:absolute}.filepond--file [data-align*=left]{left:.5625em}.filepond--file [data-align*=right]{right:.5625em}.filepond--file [data-align*=center]{left:calc(50% - .8125em)}.filepond--file [data-align*=bottom]{bottom:1.125em}.filepond--file [data-align=center]{top:calc(50% - .8125em)}.filepond--file .filepond--progress-indicator{margin-top:.1875em}.filepond--file .filepond--progress-indicator[data-align*=right]{margin-right:.1875em}.filepond--file .filepond--progress-indicator[data-align*=left]{margin-left:.1875em}[data-filepond-item-state*=error] .filepond--file-info,[data-filepond-item-state*=invalid] .filepond--file-info,[data-filepond-item-state=cancelled] .filepond--file-info{margin-right:2.25em}[data-filepond-item-state~=processing] .filepond--file-status-sub{opacity:0}[data-filepond-item-state~=processing] .filepond--action-abort-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-error] .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-error] .filepond--action-retry-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing svg{animation:fall .5s linear .125s both}[data-filepond-item-state=processing-complete] .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--file-info-sub,[data-filepond-item-state=processing-complete] .filepond--processing-complete-indicator:not([style*=hidden])~.filepond--file-status .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing~.filepond--file-info .filepond--file-info-sub{opacity:.5}[data-filepond-item-state*=error] .filepond--file-wrapper,[data-filepond-item-state*=error] .filepond--panel,[data-filepond-item-state*=invalid] .filepond--file-wrapper,[data-filepond-item-state*=invalid] .filepond--panel{animation:shake .65s linear both}[data-filepond-item-state*=busy] .filepond--progress-indicator svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes shake{10%,90%{transform:translate(-.0625em)}20%,80%{transform:translate(.125em)}30%,50%,70%{transform:translate(-.25em)}40%,60%{transform:translate(.25em)}}@keyframes fall{0%{animation-timing-function:ease-out;opacity:0;transform:scale(.5)}70%{animation-timing-function:ease-in-out;opacity:1;transform:scale(1.1)}to{animation-timing-function:ease-out;transform:scale(1)}}.filepond--hopper[data-hopper-state=drag-over]>*{pointer-events:none}.filepond--hopper[data-hopper-state=drag-over]:after{content:"";inset:0;position:absolute;z-index:100}.filepond--progress-indicator{z-index:103}.filepond--file-action-button{z-index:102}.filepond--file-status{z-index:101}.filepond--file-info{z-index:100}.filepond--item{left:0;margin:.25em;padding:0;position:absolute;right:0;top:0;touch-action:auto;will-change:transform,opacity;z-index:1}.filepond--item>.filepond--panel{z-index:-1}.filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:0 .0625em .125em -.0625em #00000040}.filepond--item>.filepond--file-wrapper,.filepond--item>.filepond--panel{transition:opacity .15s ease-out}.filepond--item[data-drag-state]{cursor:grab}.filepond--item[data-drag-state]>.filepond--panel{box-shadow:0 0 0 transparent;transition:box-shadow .125s ease-in-out}.filepond--item[data-drag-state=drag]{cursor:grabbing}.filepond--item[data-drag-state=drag]>.filepond--panel{box-shadow:0 .125em .3125em #00000053}.filepond--item[data-drag-state]:not([data-drag-state=idle]){z-index:2}.filepond--item-panel{background-color:#64605e}[data-filepond-item-state=processing-complete] .filepond--item-panel{background-color:#369763}[data-filepond-item-state*=error] .filepond--item-panel,[data-filepond-item-state*=invalid] .filepond--item-panel{background-color:#c44e47}.filepond--item-panel{border-radius:.5em;transition:background-color .25s}.filepond--list-scroller{left:0;margin:0;position:absolute;right:0;top:0;will-change:transform}.filepond--list-scroller[data-state=overflow] .filepond--list{bottom:0;right:0}.filepond--list-scroller[data-state=overflow]{-webkit-overflow-scrolling:touch;-webkit-mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);overflow-x:hidden;overflow-y:scroll}.filepond--list-scroller::-webkit-scrollbar{background:transparent}.filepond--list-scroller::-webkit-scrollbar:vertical{width:1em}.filepond--list-scroller::-webkit-scrollbar:horizontal{height:0}.filepond--list-scroller::-webkit-scrollbar-thumb{background-clip:content-box;background-color:#0000004d;border:.3125em solid transparent;border-radius:99999px}.filepond--list.filepond--list{list-style-type:none;margin:0;padding:0;position:absolute;top:0;will-change:transform}.filepond--list{left:.75em;right:.75em}.filepond--root[data-style-panel-layout~=integrated]{height:100%;margin:0;max-width:none;width:100%}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root{border-radius:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root>*,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{align-items:center;bottom:0;display:flex;height:auto;justify-content:center;z-index:7}.filepond--root[data-style-panel-layout~=circle] .filepond--item-panel,.filepond--root[data-style-panel-layout~=integrated] .filepond--item-panel{display:none}.filepond--root[data-style-panel-layout~=compact] .filepond--list-scroller,.filepond--root[data-style-panel-layout~=integrated] .filepond--list-scroller{height:100%;margin-bottom:0;margin-top:0;overflow:hidden}.filepond--root[data-style-panel-layout~=compact] .filepond--list,.filepond--root[data-style-panel-layout~=integrated] .filepond--list{height:100%;left:0;right:0}.filepond--root[data-style-panel-layout~=compact] .filepond--item,.filepond--root[data-style-panel-layout~=integrated] .filepond--item{margin:0}.filepond--root[data-style-panel-layout~=compact] .filepond--file-wrapper,.filepond--root[data-style-panel-layout~=integrated] .filepond--file-wrapper{height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{z-index:7}.filepond--root[data-style-panel-layout~=circle]{border-radius:99999rem;overflow:hidden}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel{border-radius:inherit}.filepond--root[data-style-panel-layout~=circle] .filepond--file-info,.filepond--root[data-style-panel-layout~=circle] .filepond--file-status,.filepond--root[data-style-panel-layout~=circle]>.filepond--panel>*{display:none}@media not all and (-webkit-min-device-pixel-ratio:0),not all and (min-resolution:.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.filepond--root[data-style-panel-layout~=circle]{will-change:transform}}}.filepond--panel-root{background-color:#f1f0ef;border-radius:.5em}.filepond--panel{height:100%!important;left:0;margin:0;pointer-events:none;position:absolute;right:0;top:0}.filepond-panel:not([data-scalable=false]){height:auto!important}.filepond--panel[data-scalable=false]>div{display:none}.filepond--panel[data-scalable=true]{background-color:transparent!important;border:none!important;transform-style:preserve-3d}.filepond--panel-bottom,.filepond--panel-center,.filepond--panel-top{left:0;margin:0;padding:0;position:absolute;right:0;top:0}.filepond--panel-bottom,.filepond--panel-top{height:.5em}.filepond--panel-top{border-bottom:none!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.filepond--panel-top:after{background-color:inherit;bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0}.filepond--panel-bottom,.filepond--panel-center{backface-visibility:hidden;transform:translate3d(0,.5em,0);transform-origin:left top;will-change:transform}.filepond--panel-bottom{border-top:none!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.filepond--panel-bottom:before{background-color:inherit;content:"";height:2px;left:0;position:absolute;right:0;top:-1px}.filepond--panel-center{border-bottom:none!important;border-radius:0!important;border-top:none!important;height:100px!important}.filepond--panel-center:not([style]){visibility:hidden}.filepond--progress-indicator{color:#fff;height:1.25em;margin:0;pointer-events:none;position:static;width:1.25em;will-change:transform,opacity}.filepond--progress-indicator svg{height:100%;transform-box:fill-box;vertical-align:top;width:100%}.filepond--progress-indicator path{fill:none;stroke:currentColor}.filepond--list-scroller{z-index:6}.filepond--drop-label{z-index:5}.filepond--drip{z-index:3}.filepond--root>.filepond--panel{z-index:2}.filepond--browser{z-index:1}.filepond--root{box-sizing:border-box;contain:layout style size;direction:ltr;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1rem;font-weight:450;line-height:normal;margin-bottom:1em;position:relative;text-align:left;text-rendering:optimizeLegibility}.filepond--root *{box-sizing:inherit;line-height:inherit}.filepond--root :not(text){font-size:inherit}.filepond--root[data-disabled]{pointer-events:none}.filepond--root[data-disabled] .filepond--list-scroller{pointer-events:all}.filepond--root[data-disabled] .filepond--list{pointer-events:none}.filepond--root .filepond--drop-label{min-height:4.75em}.filepond--root .filepond--list-scroller{margin-bottom:1em;margin-top:1em}.filepond--root .filepond--credits{bottom:-14px;color:inherit;font-size:11px;line-height:.85;opacity:.4;position:absolute;right:0;text-decoration:none;z-index:3}.filepond--root .filepond--credits[style]{bottom:auto;margin-top:14px;top:0}.filepond--action-edit-item.filepond--action-edit-item{height:2em;padding:.1875em;width:2em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=center]{margin-left:-.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=bottom]{margin-bottom:-.1875em}.filepond--action-edit-item-alt{background:transparent;border:none;color:inherit;font-family:inherit;line-height:inherit;margin:0 0 0 .25em;outline:none;padding:0;pointer-events:all;position:absolute}.filepond--action-edit-item-alt svg{height:1.3125em;width:1.3125em}.filepond--action-edit-item-alt span{font-size:0;opacity:0}.filepond--root[data-style-panel-layout~=circle] .filepond--action-edit-item{opacity:1!important;visibility:visible!important}.filepond--image-preview-markup{left:0;position:absolute;top:0}.filepond--image-preview-wrapper{z-index:2}.filepond--image-preview-overlay{display:block;left:0;margin:0;max-height:7rem;min-height:5rem;opacity:0;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;z-index:2}.filepond--image-preview-overlay svg{color:inherit;height:auto;max-height:inherit;width:100%}.filepond--image-preview-overlay-idle{color:#282828d9;mix-blend-mode:multiply}.filepond--image-preview-overlay-success{color:#369763;mix-blend-mode:normal}.filepond--image-preview-overlay-failure{color:#c44e47;mix-blend-mode:normal}@supports (-webkit-marquee-repetition:infinite) and ((-o-object-fit:fill) or (object-fit:fill)){.filepond--image-preview-overlay-idle{mix-blend-mode:normal}}.filepond--image-preview-wrapper{background:rgba(0,0,0,.01);border-radius:.45em;height:100%;left:0;margin:0;overflow:hidden;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.filepond--image-preview{align-items:center;background:#222;display:flex;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;will-change:transform,opacity;z-index:1}.filepond--image-clip{margin:0 auto;overflow:hidden;position:relative}.filepond--image-clip[data-transparency-indicator=grid] canvas,.filepond--image-clip[data-transparency-indicator=grid] img{background-color:#fff;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' fill='%23eee'%3E%3Cpath d='M0 0h50v50H0M50 50h50v50H50'/%3E%3C/svg%3E");background-size:1.25em 1.25em}.filepond--image-bitmap,.filepond--image-vector{left:0;position:absolute;top:0;will-change:transform}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview-wrapper{border-radius:0}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview{align-items:center;display:flex;height:100%;justify-content:center}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-wrapper{border-radius:99999rem}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-overlay{bottom:0;top:auto;transform:scaleY(-1)}.filepond--root[data-style-panel-layout~=circle] .filepond--file .filepond--file-action-button[data-align*=bottom]:not([data-align*=center]){margin-bottom:.325em}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=left]{left:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=right]{right:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=left],.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=right]{margin-bottom:.5125em}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=center]{margin-bottom:.1875em;margin-left:.1875em;margin-top:0}.filepond--media-preview audio{display:none}.filepond--media-preview .audioplayer{margin:2.3em auto auto;width:calc(100% - 1.4em)}.filepond--media-preview .playpausebtn{background-position:50%;background-repeat:no-repeat;border:none;border-radius:25px;cursor:pointer;float:left;height:25px;margin-right:.3em;margin-top:.3em;outline:none;width:25px}.filepond--media-preview .playpausebtn:hover{background-color:#00000080}.filepond--media-preview .play{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAyElEQVQ4T9XUsWoCQRRG4XPaFL5SfIy8gKYKBCysrax8Ahs7qzQ2qVIFOwsrsbEWLEK6EBFGBrIQhN2d3dnGgalm+Jh7789Ix8uOPe4YDCH0gZ66atKW0pJDCE/AEngDXtRjCpwCRucbGANzNVTBqWBhfAJDdV+GNgWj8wtM41bPt3AbsDB2f69d/0dzwC0wUDe54A8wAWbqJbfkD+BZPeQO5QsYqYu6LKb0MIb7VT3VYfG8CnwEHtT3FKi4c8e/TZMyk3LYFrwCgMdHFbRDKS8AAAAASUVORK5CYII=)}.filepond--media-preview .pause{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAh0lEQVQ4T+2UsQkCURBE30PLMbAMMResQrAPsQ0TK9AqDKxGZeTLD74aGNwlhzfZssvADDMrPcOe+RggYZIJcG2s2KinMidZAvu6u6uzT8u+JCeZArfmcKUeK+EaONTdQy23bxgJX8aPHvIHsSnVuzTx36rn2pQFsGuqN//ZlK7vbIDvq6vkJ9yteBXzecYbAAAAAElFTkSuQmCC)}.filepond--media-preview .timeline{background:hsla(0,0%,100%,.3);border-radius:15px;float:left;height:3px;margin-top:1em;width:calc(100% - 2.5em)}.filepond--media-preview .playhead{background:#fff;border-radius:50%;height:13px;margin-top:-5px;width:13px}.filepond--media-preview-wrapper{background:rgba(0,0,0,.01);border-radius:.45em;height:100%;left:0;margin:0;overflow:hidden;pointer-events:auto;position:absolute;right:0;top:0}.filepond--media-preview-wrapper:before{background:linear-gradient(180deg,#000 0,transparent);content:" ";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000",endColorstr="#00000000",GradientType=0);height:2em;position:absolute;width:100%;z-index:3}.filepond--media-preview{display:block;height:100%;position:relative;transform-origin:center center;width:100%;will-change:transform,opacity;z-index:1}.filepond--media-preview audio,.filepond--media-preview video{width:100%;will-change:transform}.filepond--root{--tw-bg-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.1);background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);margin-bottom:0}.filepond--root:is(.dark *){--tw-ring-color:hsla(0,0%,100%,.2);background-color:hsla(0,0%,100%,.05)}.filepond--root[data-disabled=disabled]{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity,1))}.filepond--root[data-disabled=disabled]:is(.dark *){--tw-ring-color:hsla(0,0%,100%,.1);background-color:transparent}.filepond--panel-root{background-color:transparent}.filepond--drop-label label{--tw-text-opacity:1;color:rgba(var(--gray-600),var(--tw-text-opacity,1));font-size:.875rem;line-height:1.25rem;padding:.75rem!important}.filepond--drop-label label:is(.dark *){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.filepond--label-action{--tw-text-opacity:1;color:rgba(var(--primary-600),var(--tw-text-opacity,1));font-weight:500;text-decoration-line:none;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.filepond--label-action:hover{--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity,1))}.filepond--label-action:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.filepond--label-action:hover:is(.dark *){--tw-text-opacity:1;color:rgba(var(--primary-500),var(--tw-text-opacity,1))}.filepond--drip-blob{--tw-bg-opacity:1;background-color:rgba(var(--gray-400),var(--tw-bg-opacity,1))}.filepond--drip-blob:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--gray-500),var(--tw-bg-opacity,1))}.filepond--root[data-style-panel-layout=grid] .filepond--item{display:inline;width:calc(50% - .5rem)}@media (min-width:1024px){.filepond--root[data-style-panel-layout=grid] .filepond--item{width:calc(33.33% - .5rem)}}.filepond--download-icon{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));display:inline-block;height:1rem;margin-inline-end:.25rem;pointer-events:auto;vertical-align:bottom;width:1rem}.filepond--download-icon:hover{background-color:hsla(0,0%,100%,.7)}.filepond--download-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWRvd25sb2FkIj48cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNE03IDEwbDUgNSA1LTVNMTIgMTVWMyIvPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLWRvd25sb2FkIj48cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNE03IDEwbDUgNSA1LTVNMTIgMTVWMyIvPjwvc3ZnPg==);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}.filepond--open-icon{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));display:inline-block;height:1rem;margin-inline-end:.25rem;pointer-events:auto;vertical-align:bottom;width:1rem}.filepond--open-icon:hover{background-color:hsla(0,0%,100%,.7)}.filepond--open-icon{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMnYtNE0xNCA0aDZtMCAwdjZtMC02TDEwIDE0Ii8+PC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJoLTYgdy02IiBmaWxsPSJub25lIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTEwIDZINmEyIDIgMCAwIDAtMiAydjEwYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMnYtNE0xNCA0aDZtMCAwdjZtMC02TDEwIDE0Ii8+PC9zdmc+);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100%;mask-size:100%}.filepond--file-action-button.filepond--action-edit-item{background-color:rgba(0,0,0,.5)}.cropper-drag-box.cropper-crop.cropper-modal{background-color:rgba(var(--gray-100),.5);opacity:1}.cropper-drag-box.cropper-crop.cropper-modal:is(.dark *){background-color:rgba(var(--gray-900),.8)}.fi-fo-file-upload-circle-cropper .cropper-face,.fi-fo-file-upload-circle-cropper .cropper-view-box{border-radius:50%}.CodeMirror{color:#000;direction:ltr;font-family:monospace;height:300px}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{background-color:#f7f7f7;border-right:1px solid #ddd;white-space:nowrap}.CodeMirror-linenumber{color:#999;min-width:20px;padding:0 3px 0 5px;text-align:right;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{background:#7e7;border:0!important;width:auto}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:0 0}.cm-fat-cursor{caret-color:transparent}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{inset:-50px 0 0;overflow:hidden;position:absolute}.CodeMirror-ruler{border-left:1px solid #ccc;bottom:0;position:absolute;top:0}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{background:#fff;overflow:hidden;position:relative}.CodeMirror-scroll{height:100%;margin-bottom:-50px;margin-right:-50px;outline:0;overflow:scroll!important;padding-bottom:50px;position:relative;z-index:0}.CodeMirror-sizer{border-right:50px solid transparent;position:relative}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{display:none;outline:0;position:absolute;z-index:6}.CodeMirror-vscrollbar{overflow-x:hidden;overflow-y:scroll;right:0;top:0}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-x:scroll;overflow-y:hidden}.CodeMirror-scrollbar-filler{bottom:0;right:0}.CodeMirror-gutter-filler{bottom:0;left:0}.CodeMirror-gutters{left:0;min-height:100%;position:absolute;top:0;z-index:3}.CodeMirror-gutter{display:inline-block;height:100%;margin-bottom:-50px;vertical-align:top;white-space:normal}.CodeMirror-gutter-wrapper{background:0 0!important;border:none!important;position:absolute;z-index:4}.CodeMirror-gutter-background{bottom:0;position:absolute;top:0;z-index:4}.CodeMirror-gutter-elt{cursor:default;position:absolute;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{word-wrap:normal;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:0;border-width:0;color:inherit;font-family:inherit;font-size:inherit;font-variant-ligatures:contextual;line-height:inherit;margin:0;overflow:visible;position:relative;white-space:pre;z-index:2}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{inset:0;position:absolute;z-index:0}.CodeMirror-linewidget{padding:.1px;position:relative;z-index:2}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{height:0;overflow:hidden;position:absolute;visibility:hidden;width:100%}.CodeMirror-cursor{pointer-events:none;position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{position:relative;visibility:hidden;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:0 0}.EasyMDEContainer{display:block}.CodeMirror-rtl pre{direction:rtl}.EasyMDEContainer.sided--no-fullscreen{display:flex;flex-direction:row;flex-wrap:wrap}.EasyMDEContainer .CodeMirror{word-wrap:break-word;border:1px solid #ced4da;border-bottom-left-radius:4px;border-bottom-right-radius:4px;box-sizing:border-box;font:inherit;height:auto;padding:10px;z-index:0}.EasyMDEContainer .CodeMirror-scroll{cursor:text}.EasyMDEContainer .CodeMirror-fullscreen{background:#fff;border-bottom-right-radius:0!important;border-right:none!important;height:auto;inset:50px 0 0;position:fixed!important;z-index:8}.EasyMDEContainer .CodeMirror-sided{width:50%!important}.EasyMDEContainer.sided--no-fullscreen .CodeMirror-sided{border-bottom-right-radius:0;border-right:none!important;flex:1 1 auto;position:relative}.EasyMDEContainer .CodeMirror-placeholder{opacity:.5}.EasyMDEContainer .CodeMirror-focused .CodeMirror-selected{background:#d9d9d9}.editor-toolbar{border-left:1px solid #ced4da;border-right:1px solid #ced4da;border-top:1px solid #ced4da;border-top-left-radius:4px;border-top-right-radius:4px;padding:9px 10px;position:relative;-webkit-user-select:none;-moz-user-select:none;-o-user-select:none;user-select:none}.editor-toolbar.fullscreen{background:#fff;border:0;box-sizing:border-box;height:50px;left:0;opacity:1;padding-bottom:10px;padding-top:10px;position:fixed;top:0;width:100%;z-index:9}.editor-toolbar.fullscreen:before{background:linear-gradient(90deg,#fff 0,hsla(0,0%,100%,0));height:50px;left:0;margin:0;padding:0;position:fixed;top:0;width:20px}.editor-toolbar.fullscreen:after{background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:50px;margin:0;padding:0;position:fixed;right:0;top:0;width:20px}.EasyMDEContainer.sided--no-fullscreen .editor-toolbar{width:100%}.editor-toolbar .easymde-dropdown,.editor-toolbar button{background:0 0;border:1px solid transparent;border-radius:3px;cursor:pointer;display:inline-block;height:30px;margin:0;padding:0;text-align:center;text-decoration:none!important}.editor-toolbar button{font-weight:700;min-width:30px;padding:0 6px;white-space:nowrap}.editor-toolbar button.active,.editor-toolbar button:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar i.separator{border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;display:inline-block;margin:0 6px;text-indent:-10px;width:0}.editor-toolbar button:after{font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:65%;position:relative;top:2px;vertical-align:text-bottom}.editor-toolbar button.heading-1:after{content:"1"}.editor-toolbar button.heading-2:after{content:"2"}.editor-toolbar button.heading-3:after{content:"3"}.editor-toolbar button.heading-bigger:after{content:"\25b2"}.editor-toolbar button.heading-smaller:after{content:"\25bc"}.editor-toolbar.disabled-for-preview button:not(.no-disable){opacity:.6;pointer-events:none}@media only screen and (max-width:700px){.editor-toolbar i.no-mobile{display:none}}.editor-statusbar{color:#959694;font-size:12px;padding:8px 10px;text-align:right}.EasyMDEContainer.sided--no-fullscreen .editor-statusbar{width:100%}.editor-statusbar span{display:inline-block;margin-left:1em;min-width:4em}.editor-statusbar .lines:before{content:"lines: "}.editor-statusbar .words:before{content:"words: "}.editor-statusbar .characters:before{content:"characters: "}.editor-preview-full{height:100%;left:0;position:absolute;top:0;width:100%;z-index:7}.editor-preview-full,.editor-preview-side{box-sizing:border-box;display:none;overflow:auto}.editor-preview-side{word-wrap:break-word;border:1px solid #ddd;bottom:0;position:fixed;right:0;top:50px;width:50%;z-index:9}.editor-preview-active-side{display:block}.EasyMDEContainer.sided--no-fullscreen .editor-preview-active-side{flex:1 1 auto;height:auto;position:static}.editor-preview-active{display:block}.editor-preview{background:#fafafa;padding:10px}.editor-preview>p{margin-top:0}.editor-preview pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th{border:1px solid #ddd;padding:5px}.cm-s-easymde .cm-tag{color:#63a35c}.cm-s-easymde .cm-attribute{color:#795da3}.cm-s-easymde .cm-string{color:#183691}.cm-s-easymde .cm-header-1{font-size:calc(1.375rem + 1.5vw)}.cm-s-easymde .cm-header-2{font-size:calc(1.325rem + .9vw)}.cm-s-easymde .cm-header-3{font-size:calc(1.3rem + .6vw)}.cm-s-easymde .cm-header-4{font-size:calc(1.275rem + .3vw)}.cm-s-easymde .cm-header-5{font-size:1.25rem}.cm-s-easymde .cm-header-6{font-size:1rem}.cm-s-easymde .cm-header-1,.cm-s-easymde .cm-header-2,.cm-s-easymde .cm-header-3,.cm-s-easymde .cm-header-4,.cm-s-easymde .cm-header-5,.cm-s-easymde .cm-header-6{line-height:1.2;margin-bottom:.5rem}.cm-s-easymde .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.cm-s-easymde .cm-link{color:#7f8c8d}.cm-s-easymde .cm-url{color:#aab2b3}.cm-s-easymde .cm-quote{color:#7f8c8d;font-style:italic}.editor-toolbar .easymde-dropdown{border:1px solid #fff;border-radius:0;position:relative}.editor-toolbar .easymde-dropdown,.editor-toolbar .easymde-dropdown:hover{background:linear-gradient(to bottom right,#fff,#fff 84%,#333 0,#333)}.easymde-dropdown-content{background-color:#f9f9f9;box-shadow:0 8px 16px #0003;display:block;padding:8px;position:absolute;top:30px;visibility:hidden;z-index:2}.easymde-dropdown:active .easymde-dropdown-content,.easymde-dropdown:focus .easymde-dropdown-content,.easymde-dropdown:focus-within .easymde-dropdown-content{visibility:visible}.easymde-dropdown-content button{display:block}span[data-img-src]:after{background-image:var(--bg-image);background-repeat:no-repeat;background-size:contain;content:"";display:block;height:0;max-height:100%;max-width:100%;padding-top:var(--height);width:var(--width)}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}:root{--color-cm-red:#991b1b;--color-cm-orange:#9a3412;--color-cm-amber:#92400e;--color-cm-yellow:#854d0e;--color-cm-lime:#3f6212;--color-cm-green:#166534;--color-cm-emerald:#065f46;--color-cm-teal:#115e59;--color-cm-cyan:#155e75;--color-cm-sky:#075985;--color-cm-blue:#1e40af;--color-cm-indigo:#3730a3;--color-cm-violet:#5b21b6;--color-cm-purple:#6b21a8;--color-cm-fuchsia:#86198f;--color-cm-pink:#9d174d;--color-cm-rose:#9f1239;--color-cm-gray:#18181b;--color-cm-gray-muted:#71717a;--color-cm-gray-background:#e4e4e7}.dark{--color-cm-red:#f87171;--color-cm-orange:#fb923c;--color-cm-amber:#fbbf24;--color-cm-yellow:#facc15;--color-cm-lime:#a3e635;--color-cm-green:#4ade80;--color-cm-emerald:#4ade80;--color-cm-teal:#2dd4bf;--color-cm-cyan:#22d3ee;--color-cm-sky:#38bdf8;--color-cm-blue:#60a5fa;--color-cm-indigo:#818cf8;--color-cm-violet:#a78bfa;--color-cm-purple:#c084fc;--color-cm-fuchsia:#e879f9;--color-cm-pink:#f472b6;--color-cm-rose:#fb7185;--color-cm-gray:#fafafa;--color-cm-gray-muted:#a1a1aa;--color-cm-gray-background:#52525b}.cm-s-easymde .cm-comment{background-color:transparent;color:var(--color-cm-gray-muted)}.EasyMDEContainer .CodeMirror-cursor{border-color:currentColor}.dark .EasyMDEContainer .cm-s-easymde span.CodeMirror-selectedtext{filter:invert(100%)}.EasyMDEContainer .cm-s-easymde .cm-keyword{color:var(--color-cm-violet)}.EasyMDEContainer .cm-s-easymde .cm-atom{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-number{color:var(--color-cm-green)}.EasyMDEContainer .cm-s-easymde .cm-def{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-variable{color:var(--color-cm-yellow)}.EasyMDEContainer .cm-s-easymde .cm-variable-2{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-variable-3{color:var(--color-cm-emerald)}.EasyMDEContainer .cm-s-easymde .cm-operator,.EasyMDEContainer .cm-s-easymde .cm-property{color:var(--color-cm-gray)}.EasyMDEContainer .cm-s-easymde .cm-string,.EasyMDEContainer .cm-s-easymde .cm-string-2{color:var(--color-cm-rose)}.EasyMDEContainer .cm-s-easymde .cm-meta{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-error{color:var(--color-cm-red)}.EasyMDEContainer .cm-s-easymde .cm-qualifier{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-builtin{color:var(--color-cm-violet)}.EasyMDEContainer .cm-s-easymde .cm-bracket{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-tag{color:var(--color-cm-green)}.EasyMDEContainer .cm-s-easymde .cm-attribute{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-hr{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-formatting-quote{color:var(--color-cm-sky)}.EasyMDEContainer .cm-s-easymde .cm-formatting-quote+.cm-quote{color:var(--color-cm-gray-muted)}.EasyMDEContainer .cm-s-easymde .cm-formatting-list,.EasyMDEContainer .cm-s-easymde .cm-formatting-list+.cm-variable-2,.EasyMDEContainer .cm-s-easymde .cm-tab+.cm-variable-2{color:var(--color-cm-gray)}.EasyMDEContainer .cm-s-easymde .cm-link{color:var(--color-cm-blue)}.EasyMDEContainer .cm-s-easymde .cm-tag{color:var(--color-cm-red)}.EasyMDEContainer .cm-s-easymde .cm-attribute{color:var(--color-cm-amber)}.EasyMDEContainer .cm-s-easymde .cm-attribute+.cm-string{color:var(--color-cm-green)}.EasyMDEContainer .cm-s-easymde .cm-formatting-code+.cm-comment:not(.cm-formatting-code){background-color:var(--color-cm-gray-background);color:var(--color-cm-gray)}.EasyMDEContainer .cm-s-easymde .cm-header-1{font-size:1.875rem;line-height:2.25rem}.EasyMDEContainer .cm-s-easymde .cm-header-2{font-size:1.5rem;line-height:2rem}.EasyMDEContainer .cm-s-easymde .cm-header-3{font-size:1.25rem;line-height:1.75rem}.EasyMDEContainer .cm-s-easymde .cm-header-4{font-size:1.125rem;line-height:1.75rem}.EasyMDEContainer .cm-s-easymde .cm-header-5{font-size:1rem;line-height:1.5rem}.EasyMDEContainer .cm-s-easymde .cm-header-6{font-size:.875rem;line-height:1.25rem}.EasyMDEContainer .cm-s-easymde .cm-comment{background-image:none}.EasyMDEContainer .CodeMirror,.EasyMDEContainer .cm-s-easymde .cm-formatting-code-block,.EasyMDEContainer .cm-s-easymde .cm-tab+.cm-comment{background-color:transparent;color:inherit}.EasyMDEContainer .CodeMirror{border-style:none;padding:.375rem .75rem}.EasyMDEContainer .CodeMirror-scroll{height:auto}.EasyMDEContainer .editor-toolbar{--tw-border-opacity:1;border-color:rgba(var(--gray-200),var(--tw-border-opacity,1));border-radius:0;border-width:0 0 1px;-moz-column-gap:.25rem;column-gap:.25rem;display:flex;overflow-x:auto;padding:.5rem .625rem}.EasyMDEContainer .editor-toolbar:is(.dark *){border-color:hsla(0,0%,100%,.1)}.EasyMDEContainer .editor-toolbar button{border-radius:.5rem;border-style:none;cursor:pointer;display:grid;height:2rem;padding:0;place-content:center;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:2rem}.EasyMDEContainer .editor-toolbar button:hover{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity,1))}.EasyMDEContainer .editor-toolbar button:focus-visible{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity,1))}.EasyMDEContainer .editor-toolbar button:hover:is(.dark *){background-color:hsla(0,0%,100%,.05)}.EasyMDEContainer .editor-toolbar button:focus-visible:is(.dark *){background-color:hsla(0,0%,100%,.05)}.EasyMDEContainer .editor-toolbar button.active{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity,1))}.EasyMDEContainer .editor-toolbar button.active:is(.dark *){background-color:hsla(0,0%,100%,.05)}.EasyMDEContainer .editor-toolbar button:before{--tw-bg-opacity:1;background-color:rgba(var(--gray-700),var(--tw-bg-opacity,1));display:block;height:1.25rem;width:1.25rem}.EasyMDEContainer .editor-toolbar button:is(.dark *):before{--tw-bg-opacity:1;background-color:rgba(var(--gray-300),var(--tw-bg-opacity,1))}.EasyMDEContainer .editor-toolbar button:before{content:"";-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.EasyMDEContainer .editor-toolbar button.active:before{--tw-bg-opacity:1;background-color:rgba(var(--primary-600),var(--tw-bg-opacity,1))}.EasyMDEContainer .editor-toolbar button.active:is(.dark *):before{--tw-bg-opacity:1;background-color:rgba(var(--primary-400),var(--tw-bg-opacity,1))}.EasyMDEContainer .editor-toolbar .separator{border-style:none;margin:0!important;width:.25rem}.EasyMDEContainer .editor-toolbar .bold:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M4 3a1 1 0 0 1 1-1h6a4.5 4.5 0 0 1 3.274 7.587A4.75 4.75 0 0 1 11.25 18H5a1 1 0 0 1-1-1V3Zm2.5 5.5v-4H11a2 2 0 1 1 0 4H6.5Zm0 2.5v4.5h4.75a2.25 2.25 0 0 0 0-4.5H6.5Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M4 3a1 1 0 0 1 1-1h6a4.5 4.5 0 0 1 3.274 7.587A4.75 4.75 0 0 1 11.25 18H5a1 1 0 0 1-1-1V3Zm2.5 5.5v-4H11a2 2 0 1 1 0 4H6.5Zm0 2.5v4.5h4.75a2.25 2.25 0 0 0 0-4.5H6.5Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .italic:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M8 2.75A.75.75 0 0 1 8.75 2h7.5a.75.75 0 0 1 0 1.5h-3.215l-4.483 13h2.698a.75.75 0 0 1 0 1.5h-7.5a.75.75 0 0 1 0-1.5h3.215l4.483-13H8.75A.75.75 0 0 1 8 2.75Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M8 2.75A.75.75 0 0 1 8.75 2h7.5a.75.75 0 0 1 0 1.5h-3.215l-4.483 13h2.698a.75.75 0 0 1 0 1.5h-7.5a.75.75 0 0 1 0-1.5h3.215l4.483-13H8.75A.75.75 0 0 1 8 2.75Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .strikethrough:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M11.617 3.963c-1.186-.318-2.418-.323-3.416.015-.992.336-1.49.91-1.642 1.476-.152.566-.007 1.313.684 2.1.528.6 1.273 1.1 2.128 1.446h7.879a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5h3.813a5.976 5.976 0 0 1-.447-.456C5.18 7.479 4.798 6.231 5.11 5.066c.312-1.164 1.268-2.055 2.61-2.509 1.336-.451 2.877-.42 4.286-.043.856.23 1.684.592 2.409 1.074a.75.75 0 1 1-.83 1.25 6.723 6.723 0 0 0-1.968-.875Zm1.909 8.123a.75.75 0 0 1 1.015.309c.53.99.607 2.062.18 3.01-.421.94-1.289 1.648-2.441 2.038-1.336.452-2.877.42-4.286.043-1.409-.377-2.759-1.121-3.69-2.18a.75.75 0 1 1 1.127-.99c.696.791 1.765 1.403 2.952 1.721 1.186.318 2.418.323 3.416-.015.853-.288 1.34-.756 1.555-1.232.21-.467.205-1.049-.136-1.69a.75.75 0 0 1 .308-1.014Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M11.617 3.963c-1.186-.318-2.418-.323-3.416.015-.992.336-1.49.91-1.642 1.476-.152.566-.007 1.313.684 2.1.528.6 1.273 1.1 2.128 1.446h7.879a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5h3.813a5.976 5.976 0 0 1-.447-.456C5.18 7.479 4.798 6.231 5.11 5.066c.312-1.164 1.268-2.055 2.61-2.509 1.336-.451 2.877-.42 4.286-.043.856.23 1.684.592 2.409 1.074a.75.75 0 1 1-.83 1.25 6.723 6.723 0 0 0-1.968-.875Zm1.909 8.123a.75.75 0 0 1 1.015.309c.53.99.607 2.062.18 3.01-.421.94-1.289 1.648-2.441 2.038-1.336.452-2.877.42-4.286.043-1.409-.377-2.759-1.121-3.69-2.18a.75.75 0 1 1 1.127-.99c.696.791 1.765 1.403 2.952 1.721 1.186.318 2.418.323 3.416-.015.853-.288 1.34-.756 1.555-1.232.21-.467.205-1.049-.136-1.69a.75.75 0 0 1 .308-1.014Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .link:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath d='M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z'/%3E%3Cpath d='M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath d='M12.232 4.232a2.5 2.5 0 0 1 3.536 3.536l-1.225 1.224a.75.75 0 0 0 1.061 1.06l1.224-1.224a4 4 0 0 0-5.656-5.656l-3 3a4 4 0 0 0 .225 5.865.75.75 0 0 0 .977-1.138 2.5 2.5 0 0 1-.142-3.667l3-3Z'/%3E%3Cpath d='M11.603 7.963a.75.75 0 0 0-.977 1.138 2.5 2.5 0 0 1 .142 3.667l-3 3a2.5 2.5 0 0 1-3.536-3.536l1.225-1.224a.75.75 0 0 0-1.061-1.06l-1.224 1.224a4 4 0 1 0 5.656 5.656l3-3a4 4 0 0 0-.225-5.865Z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .heading:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M2.75 4a.75.75 0 0 1 .75.75v4.5h5v-4.5a.75.75 0 0 1 1.5 0v10.5a.75.75 0 0 1-1.5 0v-4.5h-5v4.5a.75.75 0 0 1-1.5 0V4.75A.75.75 0 0 1 2.75 4ZM13 8.75a.75.75 0 0 1 .75-.75h1.75a.75.75 0 0 1 .75.75v5.75h1a.75.75 0 0 1 0 1.5h-3.5a.75.75 0 0 1 0-1.5h1v-5h-1a.75.75 0 0 1-.75-.75Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M2.75 4a.75.75 0 0 1 .75.75v4.5h5v-4.5a.75.75 0 0 1 1.5 0v10.5a.75.75 0 0 1-1.5 0v-4.5h-5v4.5a.75.75 0 0 1-1.5 0V4.75A.75.75 0 0 1 2.75 4ZM13 8.75a.75.75 0 0 1 .75-.75h1.75a.75.75 0 0 1 .75.75v5.75h1a.75.75 0 0 1 0 1.5h-3.5a.75.75 0 0 1 0-1.5h1v-5h-1a.75.75 0 0 1-.75-.75Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .quote:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M10 2c-2.236 0-4.43.18-6.57.524C1.993 2.755 1 4.014 1 5.426v5.148c0 1.413.993 2.67 2.43 2.902 1.168.188 2.352.327 3.55.414.28.02.521.18.642.413l1.713 3.293a.75.75 0 0 0 1.33 0l1.713-3.293a.783.783 0 0 1 .642-.413 41.102 41.102 0 0 0 3.55-.414c1.437-.231 2.43-1.49 2.43-2.902V5.426c0-1.413-.993-2.67-2.43-2.902A41.289 41.289 0 0 0 10 2ZM6.75 6a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5h-6.5Zm0 2.5a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5h-3.5Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M10 2c-2.236 0-4.43.18-6.57.524C1.993 2.755 1 4.014 1 5.426v5.148c0 1.413.993 2.67 2.43 2.902 1.168.188 2.352.327 3.55.414.28.02.521.18.642.413l1.713 3.293a.75.75 0 0 0 1.33 0l1.713-3.293a.783.783 0 0 1 .642-.413 41.102 41.102 0 0 0 3.55-.414c1.437-.231 2.43-1.49 2.43-2.902V5.426c0-1.413-.993-2.67-2.43-2.902A41.289 41.289 0 0 0 10 2ZM6.75 6a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5h-6.5Zm0 2.5a.75.75 0 0 0 0 1.5h3.5a.75.75 0 0 0 0-1.5h-3.5Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .code:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M6.28 5.22a.75.75 0 0 1 0 1.06L2.56 10l3.72 3.72a.75.75 0 0 1-1.06 1.06L.97 10.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Zm7.44 0a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L17.44 10l-3.72-3.72a.75.75 0 0 1 0-1.06Zm-2.343-3.209a.75.75 0 0 1 .612.867l-2.5 14.5a.75.75 0 0 1-1.478-.255l2.5-14.5a.75.75 0 0 1 .866-.612Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M6.28 5.22a.75.75 0 0 1 0 1.06L2.56 10l3.72 3.72a.75.75 0 0 1-1.06 1.06L.97 10.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Zm7.44 0a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L17.44 10l-3.72-3.72a.75.75 0 0 1 0-1.06Zm-2.343-3.209a.75.75 0 0 1 .612.867l-2.5 14.5a.75.75 0 0 1-1.478-.255l2.5-14.5a.75.75 0 0 1 .866-.612Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .unordered-list:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M6 4.75A.75.75 0 0 1 6.75 4h10.5a.75.75 0 0 1 0 1.5H6.75A.75.75 0 0 1 6 4.75ZM6 10a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H6.75A.75.75 0 0 1 6 10Zm0 5.25a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H6.75a.75.75 0 0 1-.75-.75ZM1.99 4.75a1 1 0 0 1 1-1H3a1 1 0 0 1 1 1v.01a1 1 0 0 1-1 1h-.01a1 1 0 0 1-1-1v-.01Zm0 10.5a1 1 0 0 1 1-1H3a1 1 0 0 1 1 1v.01a1 1 0 0 1-1 1h-.01a1 1 0 0 1-1-1v-.01Zm0-5.25a1 1 0 0 1 1-1H3a1 1 0 0 1 1 1v.01a1 1 0 0 1-1 1h-.01a1 1 0 0 1-1-1V10Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M6 4.75A.75.75 0 0 1 6.75 4h10.5a.75.75 0 0 1 0 1.5H6.75A.75.75 0 0 1 6 4.75ZM6 10a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H6.75A.75.75 0 0 1 6 10Zm0 5.25a.75.75 0 0 1 .75-.75h10.5a.75.75 0 0 1 0 1.5H6.75a.75.75 0 0 1-.75-.75ZM1.99 4.75a1 1 0 0 1 1-1H3a1 1 0 0 1 1 1v.01a1 1 0 0 1-1 1h-.01a1 1 0 0 1-1-1v-.01Zm0 10.5a1 1 0 0 1 1-1H3a1 1 0 0 1 1 1v.01a1 1 0 0 1-1 1h-.01a1 1 0 0 1-1-1v-.01Zm0-5.25a1 1 0 0 1 1-1H3a1 1 0 0 1 1 1v.01a1 1 0 0 1-1 1h-.01a1 1 0 0 1-1-1V10Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .ordered-list:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath d='M3 1.25a.75.75 0 0 0 0 1.5h.25v2.5a.75.75 0 0 0 1.5 0V2A.75.75 0 0 0 4 1.25H3Zm-.03 7.404a3.5 3.5 0 0 1 1.524-.12.034.034 0 0 1-.012.012L2.415 9.579A.75.75 0 0 0 2 10.25v1c0 .414.336.75.75.75h2.5a.75.75 0 0 0 0-1.5H3.927l1.225-.613c.52-.26.848-.79.848-1.371 0-.647-.429-1.327-1.193-1.451a5.03 5.03 0 0 0-2.277.155.75.75 0 0 0 .44 1.434ZM7.75 3a.75.75 0 0 0 0 1.5h9.5a.75.75 0 0 0 0-1.5h-9.5Zm0 6.25a.75.75 0 0 0 0 1.5h9.5a.75.75 0 0 0 0-1.5h-9.5Zm0 6.25a.75.75 0 0 0 0 1.5h9.5a.75.75 0 0 0 0-1.5h-9.5Zm-5.125-1.625a.75.75 0 0 0 0 1.5h1.5a.125.125 0 0 1 0 .25H3.5a.75.75 0 0 0 0 1.5h.625a.125.125 0 0 1 0 .25h-1.5a.75.75 0 0 0 0 1.5h1.5a1.625 1.625 0 0 0 1.37-2.5 1.625 1.625 0 0 0-1.37-2.5h-1.5Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath d='M3 1.25a.75.75 0 0 0 0 1.5h.25v2.5a.75.75 0 0 0 1.5 0V2A.75.75 0 0 0 4 1.25H3Zm-.03 7.404a3.5 3.5 0 0 1 1.524-.12.034.034 0 0 1-.012.012L2.415 9.579A.75.75 0 0 0 2 10.25v1c0 .414.336.75.75.75h2.5a.75.75 0 0 0 0-1.5H3.927l1.225-.613c.52-.26.848-.79.848-1.371 0-.647-.429-1.327-1.193-1.451a5.03 5.03 0 0 0-2.277.155.75.75 0 0 0 .44 1.434ZM7.75 3a.75.75 0 0 0 0 1.5h9.5a.75.75 0 0 0 0-1.5h-9.5Zm0 6.25a.75.75 0 0 0 0 1.5h9.5a.75.75 0 0 0 0-1.5h-9.5Zm0 6.25a.75.75 0 0 0 0 1.5h9.5a.75.75 0 0 0 0-1.5h-9.5Zm-5.125-1.625a.75.75 0 0 0 0 1.5h1.5a.125.125 0 0 1 0 .25H3.5a.75.75 0 0 0 0 1.5h.625a.125.125 0 0 1 0 .25h-1.5a.75.75 0 0 0 0 1.5h1.5a1.625 1.625 0 0 0 1.37-2.5 1.625 1.625 0 0 0-1.37-2.5h-1.5Z'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .table:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M.99 5.24A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25l.01 9.5A2.25 2.25 0 0 1 16.76 17H3.26A2.267 2.267 0 0 1 1 14.74l-.01-9.5Zm8.26 9.52v-.625a.75.75 0 0 0-.75-.75H3.25a.75.75 0 0 0-.75.75v.615c0 .414.336.75.75.75h5.373a.75.75 0 0 0 .627-.74Zm1.5 0a.75.75 0 0 0 .627.74h5.373a.75.75 0 0 0 .75-.75v-.615a.75.75 0 0 0-.75-.75H11.5a.75.75 0 0 0-.75.75v.625Zm6.75-3.63v-.625a.75.75 0 0 0-.75-.75H11.5a.75.75 0 0 0-.75.75v.625c0 .414.336.75.75.75h5.25a.75.75 0 0 0 .75-.75Zm-8.25 0v-.625a.75.75 0 0 0-.75-.75H3.25a.75.75 0 0 0-.75.75v.625c0 .414.336.75.75.75H8.5a.75.75 0 0 0 .75-.75ZM17.5 7.5v-.625a.75.75 0 0 0-.75-.75H11.5a.75.75 0 0 0-.75.75V7.5c0 .414.336.75.75.75h5.25a.75.75 0 0 0 .75-.75Zm-8.25 0v-.625a.75.75 0 0 0-.75-.75H3.25a.75.75 0 0 0-.75.75V7.5c0 .414.336.75.75.75H8.5a.75.75 0 0 0 .75-.75Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M.99 5.24A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25l.01 9.5A2.25 2.25 0 0 1 16.76 17H3.26A2.267 2.267 0 0 1 1 14.74l-.01-9.5Zm8.26 9.52v-.625a.75.75 0 0 0-.75-.75H3.25a.75.75 0 0 0-.75.75v.615c0 .414.336.75.75.75h5.373a.75.75 0 0 0 .627-.74Zm1.5 0a.75.75 0 0 0 .627.74h5.373a.75.75 0 0 0 .75-.75v-.615a.75.75 0 0 0-.75-.75H11.5a.75.75 0 0 0-.75.75v.625Zm6.75-3.63v-.625a.75.75 0 0 0-.75-.75H11.5a.75.75 0 0 0-.75.75v.625c0 .414.336.75.75.75h5.25a.75.75 0 0 0 .75-.75Zm-8.25 0v-.625a.75.75 0 0 0-.75-.75H3.25a.75.75 0 0 0-.75.75v.625c0 .414.336.75.75.75H8.5a.75.75 0 0 0 .75-.75ZM17.5 7.5v-.625a.75.75 0 0 0-.75-.75H11.5a.75.75 0 0 0-.75.75V7.5c0 .414.336.75.75.75h5.25a.75.75 0 0 0 .75-.75Zm-8.25 0v-.625a.75.75 0 0 0-.75-.75H3.25a.75.75 0 0 0-.75.75V7.5c0 .414.336.75.75.75H8.5a.75.75 0 0 0 .75-.75Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .upload-image:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M1 5.25A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25v9.5A2.25 2.25 0 0 1 16.75 17H3.25A2.25 2.25 0 0 1 1 14.75v-9.5Zm1.5 5.81v3.69c0 .414.336.75.75.75h13.5a.75.75 0 0 0 .75-.75v-2.69l-2.22-2.219a.75.75 0 0 0-1.06 0l-1.91 1.909.47.47a.75.75 0 1 1-1.06 1.06L6.53 8.091a.75.75 0 0 0-1.06 0l-2.97 2.97ZM12 7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M1 5.25A2.25 2.25 0 0 1 3.25 3h13.5A2.25 2.25 0 0 1 19 5.25v9.5A2.25 2.25 0 0 1 16.75 17H3.25A2.25 2.25 0 0 1 1 14.75v-9.5Zm1.5 5.81v3.69c0 .414.336.75.75.75h13.5a.75.75 0 0 0 .75-.75v-2.69l-2.22-2.219a.75.75 0 0 0-1.06 0l-1.91 1.909.47.47a.75.75 0 1 1-1.06 1.06L6.53 8.091a.75.75 0 0 0-1.06 0l-2.97 2.97ZM12 7a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .undo:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M7.793 2.232a.75.75 0 0 1-.025 1.06L3.622 7.25h10.003a5.375 5.375 0 0 1 0 10.75H10.75a.75.75 0 0 1 0-1.5h2.875a3.875 3.875 0 0 0 0-7.75H3.622l4.146 3.957a.75.75 0 0 1-1.036 1.085l-5.5-5.25a.75.75 0 0 1 0-1.085l5.5-5.25a.75.75 0 0 1 1.06.025Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M7.793 2.232a.75.75 0 0 1-.025 1.06L3.622 7.25h10.003a5.375 5.375 0 0 1 0 10.75H10.75a.75.75 0 0 1 0-1.5h2.875a3.875 3.875 0 0 0 0-7.75H3.622l4.146 3.957a.75.75 0 0 1-1.036 1.085l-5.5-5.25a.75.75 0 0 1 0-1.085l5.5-5.25a.75.75 0 0 1 1.06.025Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-toolbar .redo:before{-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M12.207 2.232a.75.75 0 0 0 .025 1.06l4.146 3.958H6.375a5.375 5.375 0 0 0 0 10.75H9.25a.75.75 0 0 0 0-1.5H6.375a3.875 3.875 0 0 1 0-7.75h10.003l-4.146 3.957a.75.75 0 0 0 1.036 1.085l5.5-5.25a.75.75 0 0 0 0-1.085l-5.5-5.25a.75.75 0 0 0-1.06.025Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor' class='size-5'%3E%3Cpath fill-rule='evenodd' d='M12.207 2.232a.75.75 0 0 0 .025 1.06l4.146 3.958H6.375a5.375 5.375 0 0 0 0 10.75H9.25a.75.75 0 0 0 0-1.5H6.375a3.875 3.875 0 0 1 0-7.75h10.003l-4.146 3.957a.75.75 0 0 0 1.036 1.085l5.5-5.25a.75.75 0 0 0 0-1.085l-5.5-5.25a.75.75 0 0 0-1.06.025Z' clip-rule='evenodd'/%3E%3C/svg%3E")}.EasyMDEContainer .editor-statusbar{display:none}.fi-fo-rich-editor trix-toolbar .trix-dialogs{position:relative}.fi-fo-rich-editor trix-toolbar .trix-dialog{--tw-bg-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);background-color:rgba(var(--gray-50),var(--tw-bg-opacity,1));border-radius:.5rem;bottom:auto;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);left:0;padding:.5rem;position:absolute;right:0;top:1rem}.fi-fo-rich-editor trix-toolbar .trix-dialog:is(.dark *){--tw-bg-opacity:1;background-color:rgba(var(--gray-800),var(--tw-bg-opacity,1))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields{display:flex;flex-direction:column;gap:.5rem;width:100%}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group{display:flex;gap:.5rem}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.1);background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-radius:.375rem;border-style:none;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--gray-950),var(--tw-text-opacity,1));display:block;font-size:.875rem;line-height:1.25rem;outline:2px solid transparent;outline-offset:2px;padding-bottom:.375rem;padding-inline-end:.75rem;padding-top:.375rem;padding-inline-start:.75rem;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity,1))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:is(.dark *){--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-color:hsla(0,0%,100%,.2);background-color:rgba(var(--gray-700),var(--tw-bg-opacity,1));color:rgb(255 255 255/var(--tw-text-opacity,1))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1))}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input:focus-within:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgba(var(--primary-600),var(--tw-ring-opacity,1))}@media (min-width:640px){.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-input{font-size:.875rem;line-height:1.5rem}}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group .trix-button{--tw-bg-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-200),var(--tw-ring-opacity,1));background-color:rgba(var(--gray-50),var(--tw-bg-opacity,1));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);font-size:.75rem;line-height:1rem;padding:.125rem .5rem}.fi-fo-rich-editor trix-toolbar .trix-dialog__link-fields .trix-button-group .trix-button:is(.dark *){--tw-bg-opacity:1;--tw-ring-opacity:1;--tw-ring-color:rgba(var(--gray-600),var(--tw-ring-opacity,1));background-color:rgba(var(--gray-700),var(--tw-bg-opacity,1))}.fi-fo-rich-editor trix-editor:empty:before{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.fi-fo-rich-editor trix-editor:empty:is(.dark *):before{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1))}.fi-fo-rich-editor trix-editor:empty:before{content:attr(placeholder)}.fi-fo-rich-editor trix-editor.prose :where(ol):not(:where([class~=not-prose] *)),.fi-fo-rich-editor trix-editor.prose :where(ul):not(:where([class~=not-prose] *)){padding-inline-end:0!important;padding-inline-start:1.625em!important}.fi-fo-rich-editor trix-editor.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-inline-end:0!important;padding-inline-start:.375em!important}select:not(.choices){background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}[dir=rtl] select{background-position:left .5rem center!important}.choices{outline:2px solid transparent;outline-offset:2px;position:relative}.choices [hidden]{display:none!important}.choices[data-type*=select-one] .has-no-choices{display:none}.choices[data-type*=select-one] .choices__input{display:block;margin:0;width:100%}.choices__inner{background-repeat:no-repeat;outline:2px solid transparent;outline-offset:2px;padding-bottom:.375rem;padding-inline-end:2rem;padding-top:.375rem;padding-inline-start:.75rem}@media (min-width:640px){.choices__inner{font-size:.875rem;line-height:1.5rem}}.choices__inner{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-size:1.5em 1.5em}.choices.is-disabled .choices__inner{cursor:default}[dir=rtl] .choices__inner{background-position:left .5rem center}.choices__list--single{display:inline-block}.choices__list--single .choices__item{--tw-text-opacity:1;color:rgba(var(--gray-950),var(--tw-text-opacity,1))}.choices__list--single .choices__item:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.choices.is-disabled .choices__list--single .choices__item{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1))}.choices.is-disabled .choices__list--single .choices__item:is(.dark *){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.choices__list--multiple{display:flex;flex-wrap:wrap;gap:.375rem}.choices__list--multiple:not(:empty){margin-bottom:.25rem;margin-left:-.25rem;margin-right:-.25rem;padding-bottom:.125rem;padding-top:.125rem}.choices__list--multiple .choices__item{--tw-bg-opacity:1;--tw-text-opacity:1;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-inset:inset;--tw-ring-color:rgba(var(--primary-600),0.1);align-items:center;background-color:rgba(var(--primary-50),var(--tw-bg-opacity,1));border-radius:.375rem;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:rgba(var(--primary-600),var(--tw-text-opacity,1));display:inline-flex;font-size:.75rem;font-weight:500;gap:.25rem;line-height:1rem;padding:.25rem .5rem;word-break:break-all}.choices__list--multiple .choices__item:is(.dark *){--tw-text-opacity:1;--tw-ring-color:rgba(var(--primary-400),0.3);background-color:rgba(var(--primary-400),.1);color:rgba(var(--primary-400),var(--tw-text-opacity,1))}.choices__list--dropdown,.choices__list[aria-expanded]{--tw-bg-opacity:1;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:rgba(var(--gray-950),0.05);background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);display:none;font-size:.875rem;line-height:1.25rem;margin-top:.5rem;overflow:hidden;overflow-wrap:break-word;position:absolute;top:100%;width:100%;will-change:visibility;z-index:10}.choices__list--dropdown:is(.dark *),.choices__list[aria-expanded]:is(.dark *){--tw-bg-opacity:1;--tw-ring-color:hsla(0,0%,100%,.1);background-color:rgba(var(--gray-900),var(--tw-bg-opacity,1))}.is-active.choices__list--dropdown,.is-active.choices__list[aria-expanded]{display:block;padding:.25rem}.choices__list--dropdown .choices__list,.choices__list[aria-expanded] .choices__list{max-height:15rem;overflow:auto;will-change:scroll-position}.choices__item--choice{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1));padding:.5rem;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.choices__item--choice:is(.dark *){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.choices__item--choice.choices__item--selectable{--tw-text-opacity:1;border-radius:.375rem;color:rgba(var(--gray-950),var(--tw-text-opacity,1))}.choices__item--choice.choices__item--selectable:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted{--tw-bg-opacity:1;background-color:rgba(var(--gray-50),var(--tw-bg-opacity,1))}.choices__list--dropdown .choices__item--selectable.is-highlighted:is(.dark *),.choices__list[aria-expanded] .choices__item--selectable.is-highlighted:is(.dark *){background-color:hsla(0,0%,100%,.05)}.choices__item{cursor:default}.choices__item--disabled{pointer-events:none}.choices__item--disabled:disabled{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1))}.choices__item--disabled:disabled:is(.dark *){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.choices.is-disabled .choices__placeholder.choices__item,.choices__placeholder.choices__item{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1));cursor:default}.choices.is-disabled .choices__placeholder.choices__item:is(.dark *),.choices__placeholder.choices__item:is(.dark *){--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1))}.choices__button{background-color:transparent;background-position:50%;background-repeat:no-repeat;border-width:0;outline:2px solid transparent;outline-offset:2px;text-indent:-9999px}.choices[data-type*=select-one] .choices__button{height:1rem;inset-inline-end:0;margin-inline-end:2.25rem;opacity:.5;padding:0;position:absolute;transition-duration:75ms;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);width:1rem}.choices[data-type*=select-one] .choices__button:is(.dark *){opacity:.4}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:.7142em .7142em;top:calc(50% - .5714em)}.dark .choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=)}.choices[data-type*=select-multiple] .choices__button{height:1rem;opacity:.5;width:1rem}.choices[data-type*=select-multiple] .choices__button:is(.dark *){opacity:.4}.choices[data-type*=select-multiple] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=);background-size:.7142em .7142em}.dark .choices[data-type*=select-multiple] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJtMi41OTIuMDQ0IDE4LjM2NCAxOC4zNjQtMi41NDggMi41NDhMLjA0NCAyLjU5MnoiLz48cGF0aCBkPSJNMCAxOC4zNjQgMTguMzY0IDBsMi41NDggMi41NDhMMi41NDggMjAuOTEyeiIvPjwvZz48L3N2Zz4=)}.choices[data-type*=select-multiple] .choices__button:focus-visible,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=select-one] .choices__button:focus-visible,.choices[data-type*=select-one] .choices__button:hover{opacity:.7}.choices[data-type*=select-multiple] .choices__button:focus-visible:is(.dark *),.choices[data-type*=select-multiple] .choices__button:hover:is(.dark *),.choices[data-type*=select-one] .choices__button:focus-visible:is(.dark *),.choices[data-type*=select-one] .choices__button:hover:is(.dark *){opacity:.6}.choices.is-disabled .choices__button,.choices[data-type*=select-one] .choices__item[data-value=""] .choices__button{display:none}.choices__input{--tw-text-opacity:1;background-color:transparent!important;border-style:none;color:rgba(var(--gray-950),var(--tw-text-opacity,1));font-size:1rem!important;line-height:1.5rem!important;padding:0!important;transition-duration:75ms;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.choices__input::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.choices__input::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.choices__input:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}.choices__input:disabled{--tw-text-opacity:1;-webkit-text-fill-color:rgba(var(--gray-500),1);color:rgba(var(--gray-500),var(--tw-text-opacity,1))}.choices__input:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.choices__input:is(.dark *)::-moz-placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1))}.choices__input:is(.dark *)::placeholder{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1))}.choices__input:disabled:is(.dark *){--tw-text-opacity:1;-webkit-text-fill-color:rgba(var(--gray-400),1);color:rgba(var(--gray-400),var(--tw-text-opacity,1))}@media (min-width:640px){.choices__input{font-size:.875rem!important;line-height:1.5rem}}.choices__list--dropdown .choices__input{padding:.5rem!important}.choices__input::-webkit-search-cancel-button,.choices__input::-webkit-search-decoration,.choices__input::-webkit-search-results-button,.choices__input::-webkit-search-results-decoration{display:none}.choices__input::-ms-clear,.choices__input::-ms-reveal{display:none;height:0;width:0}.choices__group{--tw-text-opacity:1;color:rgba(var(--gray-500),var(--tw-text-opacity,1));padding:1rem .5rem .5rem}.choices__group:first-child{padding-top:.5rem}.choices__group:is(.dark *){--tw-text-opacity:1;color:rgba(var(--gray-400),var(--tw-text-opacity,1))}.webkit-calendar-picker-indicator\:opacity-0::-webkit-calendar-picker-indicator{opacity:0}/*! Bundled license information: + +cropperjs/dist/cropper.min.css: + (*! + * Cropper.js v1.6.2 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2024-04-21T07:43:02.731Z + *) + +filepond/dist/filepond.min.css: + (*! + * FilePond 4.32.6 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-edit/dist/filepond-plugin-image-edit.css: + (*! + * FilePondPluginImageEdit 1.6.3 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-preview/dist/filepond-plugin-image-preview.css: + (*! + * FilePondPluginImagePreview 4.6.12 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-media-preview/dist/filepond-plugin-media-preview.css: + (*! + * FilePondPluginmediaPreview 1.0.11 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit undefined for details. + *) + +easymde/dist/easymde.min.css: + (** + * easymde v2.18.0 + * Copyright Jeroen Akkerman + * @link https://github.com/ionaru/easy-markdown-editor + * @license MIT + *) +*/ \ No newline at end of file diff --git a/ems-sense/public/css/filament/support/support.css b/ems-sense/public/css/filament/support/support.css new file mode 100644 index 0000000..a80d070 --- /dev/null +++ b/ems-sense/public/css/filament/support/support.css @@ -0,0 +1 @@ +.fi-pagination-items,.fi-pagination-overview,.fi-pagination-records-per-page-select:not(.fi-compact){display:none}@supports (container-type:inline-size){.fi-pagination{container-type:inline-size}@container (min-width: 28rem){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@container (min-width: 56rem){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}@supports not (container-type:inline-size){@media (min-width:640px){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@media (min-width:768px){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{background-color:#333;border-radius:4px;color:#fff;font-size:14px;line-height:1.4;outline:0;position:relative;transition-property:transform,visibility,opacity;white-space:normal}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=light]{background-color:#fff;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;color:#26323d}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.fi-sortable-ghost{opacity:.3} \ No newline at end of file diff --git a/ems-sense/public/images/favicon.png b/ems-sense/public/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..91c48ea68066e30cb66f92c3e6bd68aac092e660 GIT binary patch literal 165749 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 B%q9Q; literal 0 HcmV?d00001 diff --git a/ems-sense/public/images/plant_logo.png b/ems-sense/public/images/plant_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..afdc70ec88f17470b7221010590977aa25d7d2b5 GIT binary patch literal 73718 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 B%q9Q; literal 0 HcmV?d00001 diff --git a/ems-sense/public/index.php b/ems-sense/public/index.php new file mode 100644 index 0000000..947d989 --- /dev/null +++ b/ems-sense/public/index.php @@ -0,0 +1,17 @@ +handleRequest(Request::capture()); diff --git a/ems-sense/public/js/filament/forms/components/color-picker.js b/ems-sense/public/js/filament/forms/components/color-picker.js new file mode 100644 index 0000000..6d80712 --- /dev/null +++ b/ems-sense/public/js/filament/forms/components/color-picker.js @@ -0,0 +1 @@ +var c=(e,t=0,r=1)=>e>r?r:eMath.round(r*e)/r;var nt={grad:360/400,turn:360,rad:360/(Math.PI*2)},F=e=>G(v(e)),v=e=>(e[0]==="#"&&(e=e.substring(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:e.length===4?n(parseInt(e[3]+e[3],16)/255,2):1}:{r:parseInt(e.substring(0,2),16),g:parseInt(e.substring(2,4),16),b:parseInt(e.substring(4,6),16),a:e.length===8?n(parseInt(e.substring(6,8),16)/255,2):1}),at=(e,t="deg")=>Number(e)*(nt[t]||1),it=e=>{let r=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?lt({h:at(r[1],r[2]),s:Number(r[3]),l:Number(r[4]),a:r[5]===void 0?1:Number(r[5])/(r[6]?100:1)}):{h:0,s:0,v:0,a:1}},J=it,lt=({h:e,s:t,l:r,a:o})=>(t*=(r<50?r:100-r)/100,{h:e,s:t>0?2*t/(r+t)*100:0,v:r+t,a:o}),X=e=>ct(A(e)),Y=({h:e,s:t,v:r,a:o})=>{let s=(200-t)*r/100;return{h:n(e),s:n(s>0&&s<200?t*r/100/(s<=100?s:200-s)*100:0),l:n(s/2),a:n(o,2)}};var d=e=>{let{h:t,s:r,l:o}=Y(e);return`hsl(${t}, ${r}%, ${o}%)`},$=e=>{let{h:t,s:r,l:o,a:s}=Y(e);return`hsla(${t}, ${r}%, ${o}%, ${s})`},A=({h:e,s:t,v:r,a:o})=>{e=e/360*6,t=t/100,r=r/100;let s=Math.floor(e),a=r*(1-t),i=r*(1-(e-s)*t),l=r*(1-(1-e+s)*t),q=s%6;return{r:n([r,i,a,a,l,r][q]*255),g:n([l,r,r,i,a,a][q]*255),b:n([a,a,l,r,r,i][q]*255),a:n(o,2)}},B=e=>{let{r:t,g:r,b:o}=A(e);return`rgb(${t}, ${r}, ${o})`},D=e=>{let{r:t,g:r,b:o,a:s}=A(e);return`rgba(${t}, ${r}, ${o}, ${s})`};var I=e=>{let r=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(e);return r?G({r:Number(r[1])/(r[2]?100/255:1),g:Number(r[3])/(r[4]?100/255:1),b:Number(r[5])/(r[6]?100/255:1),a:r[7]===void 0?1:Number(r[7])/(r[8]?100:1)}):{h:0,s:0,v:0,a:1}},U=I,b=e=>{let t=e.toString(16);return t.length<2?"0"+t:t},ct=({r:e,g:t,b:r,a:o})=>{let s=o<1?b(n(o*255)):"";return"#"+b(e)+b(t)+b(r)+s},G=({r:e,g:t,b:r,a:o})=>{let s=Math.max(e,t,r),a=s-Math.min(e,t,r),i=a?s===e?(t-r)/a:s===t?2+(r-e)/a:4+(e-t)/a:0;return{h:n(60*(i<0?i+6:i)),s:n(s?a/s*100:0),v:n(s/255*100),a:o}};var L=(e,t)=>{if(e===t)return!0;for(let r in e)if(e[r]!==t[r])return!1;return!0},h=(e,t)=>e.replace(/\s/g,"")===t.replace(/\s/g,""),K=(e,t)=>e.toLowerCase()===t.toLowerCase()?!0:L(v(e),v(t));var Q={},H=e=>{let t=Q[e];return t||(t=document.createElement("template"),t.innerHTML=e,Q[e]=t),t},f=(e,t,r)=>{e.dispatchEvent(new CustomEvent(t,{bubbles:!0,detail:r}))};var m=!1,O=e=>"touches"in e,pt=e=>m&&!O(e)?!1:(m||(m=O(e)),!0),W=(e,t)=>{let r=O(t)?t.touches[0]:t,o=e.el.getBoundingClientRect();f(e.el,"move",e.getMove({x:c((r.pageX-(o.left+window.pageXOffset))/o.width),y:c((r.pageY-(o.top+window.pageYOffset))/o.height)}))},ut=(e,t)=>{let r=t.keyCode;r>40||e.xy&&r<37||r<33||(t.preventDefault(),f(e.el,"move",e.getMove({x:r===39?.01:r===37?-.01:r===34?.05:r===33?-.05:r===35?1:r===36?-1:0,y:r===40?.01:r===38?-.01:0},!0)))},u=class{constructor(t,r,o,s){let a=H(`

`);t.appendChild(a.content.cloneNode(!0));let i=t.querySelector(`[part=${r}]`);i.addEventListener("mousedown",this),i.addEventListener("touchstart",this),i.addEventListener("keydown",this),this.el=i,this.xy=s,this.nodes=[i.firstChild,i]}set dragging(t){let r=t?document.addEventListener:document.removeEventListener;r(m?"touchmove":"mousemove",this),r(m?"touchend":"mouseup",this)}handleEvent(t){switch(t.type){case"mousedown":case"touchstart":if(t.preventDefault(),!pt(t)||!m&&t.button!=0)return;this.el.focus(),W(this,t),this.dragging=!0;break;case"mousemove":case"touchmove":t.preventDefault(),W(this,t);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":ut(this,t);break}}style(t){t.forEach((r,o)=>{for(let s in r)this.nodes[o].style.setProperty(s,r[s])})}};var S=class extends u{constructor(t){super(t,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:t}){this.h=t,this.style([{left:`${t/360*100}%`,color:d({h:t,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${n(t)}`)}getMove(t,r){return{h:r?c(this.h+t.x*360,0,360):360*t.x}}};var T=class extends u{constructor(t){super(t,"saturation",'aria-label="Color"',!0)}update(t){this.hsva=t,this.style([{top:`${100-t.v}%`,left:`${t.s}%`,color:d(t)},{"background-color":d({h:t.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${n(t.s)}%, Brightness ${n(t.v)}%`)}getMove(t,r){return{s:r?c(this.hsva.s+t.x*100,0,100):t.x*100,v:r?c(this.hsva.v-t.y*100,0,100):Math.round(100-t.y*100)}}};var Z=':host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;display:flex;place-content:center center;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{content:"";width:100%;height:100%;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}';var tt="[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}";var rt="[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}";var w=Symbol("same"),R=Symbol("color"),et=Symbol("hsva"),_=Symbol("update"),ot=Symbol("parts"),g=Symbol("css"),x=Symbol("sliders"),p=class extends HTMLElement{static get observedAttributes(){return["color"]}get[g](){return[Z,tt,rt]}get[x](){return[T,S]}get color(){return this[R]}set color(t){if(!this[w](t)){let r=this.colorModel.toHsva(t);this[_](r),this[R]=t}}constructor(){super();let t=H(``),r=this.attachShadow({mode:"open"});r.appendChild(t.content.cloneNode(!0)),r.addEventListener("move",this),this[ot]=this[x].map(o=>new o(r))}connectedCallback(){if(this.hasOwnProperty("color")){let t=this.color;delete this.color,this.color=t}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(t,r,o){let s=this.colorModel.fromAttr(o);this[w](s)||(this.color=s)}handleEvent(t){let r=this[et],o={...r,...t.detail};this[_](o);let s;!L(o,r)&&!this[w](s=this.colorModel.fromHsva(o))&&(this[R]=s,f(this,"color-changed",{value:s}))}[w](t){return this.color&&this.colorModel.equal(t,this.color)}[_](t){this[et]=t,this[ot].forEach(r=>r.update(t))}};var dt={defaultColor:"#000",toHsva:F,fromHsva:({h:e,s:t,v:r})=>X({h:e,s:t,v:r,a:1}),equal:K,fromAttr:e=>e},y=class extends p{get colorModel(){return dt}};var P=class extends y{};customElements.define("hex-color-picker",P);var ht={defaultColor:"hsl(0, 0%, 0%)",toHsva:J,fromHsva:d,equal:h,fromAttr:e=>e},M=class extends p{get colorModel(){return ht}};var z=class extends M{};customElements.define("hsl-string-color-picker",z);var mt={defaultColor:"rgb(0, 0, 0)",toHsva:U,fromHsva:B,equal:h,fromAttr:e=>e},C=class extends p{get colorModel(){return mt}};var V=class extends C{};customElements.define("rgb-string-color-picker",V);var k=class extends u{constructor(t){super(t,"alpha",'aria-label="Alpha" aria-valuemin="0" aria-valuemax="1"',!1)}update(t){this.hsva=t;let r=$({...t,a:0}),o=$({...t,a:1}),s=t.a*100;this.style([{left:`${s}%`,color:$(t)},{"--gradient":`linear-gradient(90deg, ${r}, ${o}`}]);let a=n(s);this.el.setAttribute("aria-valuenow",`${a}`),this.el.setAttribute("aria-valuetext",`${a}%`)}getMove(t,r){return{a:r?c(this.hsva.a+t.x):t.x}}};var st=`[part=alpha]{flex:0 0 24px}[part=alpha]::after{display:block;content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;background-image:var(--gradient);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part^=alpha]{background-color:#fff;background-image:url('data:image/svg+xml,')}[part=alpha-pointer]{top:50%}`;var E=class extends p{get[g](){return[...super[g],st]}get[x](){return[...super[x],k]}};var ft={defaultColor:"rgba(0, 0, 0, 1)",toHsva:I,fromHsva:D,equal:h,fromAttr:e=>e},N=class extends E{get colorModel(){return ft}};var j=class extends N{};customElements.define("rgba-string-color-picker",j);function gt({isAutofocused:e,isDisabled:t,isLive:r,isLiveDebounced:o,isLiveOnBlur:s,liveDebounce:a,state:i}){return{state:i,init:function(){this.state===null||this.state===""||this.setState(this.state),e&&this.togglePanelVisibility(this.$refs.input),this.$refs.input.addEventListener("change",l=>{this.setState(l.target.value)}),this.$refs.panel.addEventListener("color-changed",l=>{this.setState(l.detail.value),!(s||!(r||o))&&setTimeout(()=>{this.state===l.detail.value&&this.commitState()},o?a:250)}),(r||o||s)&&new MutationObserver(()=>this.isOpen()?null:this.commitState()).observe(this.$refs.panel,{attributes:!0,childList:!0})},togglePanelVisibility:function(){t||this.$refs.panel.toggle(this.$refs.input)},setState:function(l){this.state=l,this.$refs.input.value=l,this.$refs.panel.color=l},isOpen:function(){return this.$refs.panel.style.display==="block"},commitState:function(){JSON.stringify(this.$wire.__instance.canonical)!==JSON.stringify(this.$wire.__instance.ephemeral)&&this.$wire.$commit()}}}export{gt as default}; diff --git a/ems-sense/public/js/filament/forms/components/date-time-picker.js b/ems-sense/public/js/filament/forms/components/date-time-picker.js new file mode 100644 index 0000000..b4e38cd --- /dev/null +++ b/ems-sense/public/js/filament/forms/components/date-time-picker.js @@ -0,0 +1 @@ +var vi=Object.create;var fn=Object.defineProperty;var gi=Object.getOwnPropertyDescriptor;var Si=Object.getOwnPropertyNames;var bi=Object.getPrototypeOf,ki=Object.prototype.hasOwnProperty;var k=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var Hi=(n,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of Si(t))!ki.call(n,e)&&e!==s&&fn(n,e,{get:()=>t[e],enumerable:!(i=gi(t,e))||i.enumerable});return n};var de=(n,t,s)=>(s=n!=null?vi(bi(n)):{},Hi(t||!n||!n.__esModule?fn(s,"default",{value:n,enumerable:!0}):s,n));var bn=k((He,je)=>{(function(n,t){typeof He=="object"&&typeof je<"u"?je.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_plugin_advancedFormat=t()})(He,function(){"use strict";return function(n,t){var s=t.prototype,i=s.format;s.format=function(e){var r=this,a=this.$locale();if(!this.isValid())return i.bind(this)(e);var u=this.$utils(),o=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(d){switch(d){case"Q":return Math.ceil((r.$M+1)/3);case"Do":return a.ordinal(r.$D);case"gggg":return r.weekYear();case"GGGG":return r.isoWeekYear();case"wo":return a.ordinal(r.week(),"W");case"w":case"ww":return u.s(r.week(),d==="w"?1:2,"0");case"W":case"WW":return u.s(r.isoWeek(),d==="W"?1:2,"0");case"k":case"kk":return u.s(String(r.$H===0?24:r.$H),d==="k"?1:2,"0");case"X":return Math.floor(r.$d.getTime()/1e3);case"x":return r.$d.getTime();case"z":return"["+r.offsetName()+"]";case"zzz":return"["+r.offsetName("long")+"]";default:return d}});return i.bind(this)(o)}}})});var kn=k((Te,we)=>{(function(n,t){typeof Te=="object"&&typeof we<"u"?we.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_plugin_customParseFormat=t()})(Te,function(){"use strict";var n={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,s=/\d/,i=/\d\d/,e=/\d\d?/,r=/\d*[^-_:/,()\s\d]+/,a={},u=function(m){return(m=+m)+(m>68?1900:2e3)},o=function(m){return function(Y){this[m]=+Y}},d=[/[+-]\d\d:?(\d\d)?|Z/,function(m){(this.zone||(this.zone={})).offset=function(Y){if(!Y||Y==="Z")return 0;var L=Y.match(/([+-]|\d\d)/g),D=60*L[1]+(+L[2]||0);return D===0?0:L[0]==="+"?-D:D}(m)}],_=function(m){var Y=a[m];return Y&&(Y.indexOf?Y:Y.s.concat(Y.f))},y=function(m,Y){var L,D=a.meridiem;if(D){for(var w=1;w<=24;w+=1)if(m.indexOf(D(w,0,Y))>-1){L=w>12;break}}else L=m===(Y?"pm":"PM");return L},l={A:[r,function(m){this.afternoon=y(m,!1)}],a:[r,function(m){this.afternoon=y(m,!0)}],Q:[s,function(m){this.month=3*(m-1)+1}],S:[s,function(m){this.milliseconds=100*+m}],SS:[i,function(m){this.milliseconds=10*+m}],SSS:[/\d{3}/,function(m){this.milliseconds=+m}],s:[e,o("seconds")],ss:[e,o("seconds")],m:[e,o("minutes")],mm:[e,o("minutes")],H:[e,o("hours")],h:[e,o("hours")],HH:[e,o("hours")],hh:[e,o("hours")],D:[e,o("day")],DD:[i,o("day")],Do:[r,function(m){var Y=a.ordinal,L=m.match(/\d+/);if(this.day=L[0],Y)for(var D=1;D<=31;D+=1)Y(D).replace(/\[|\]/g,"")===m&&(this.day=D)}],w:[e,o("week")],ww:[i,o("week")],M:[e,o("month")],MM:[i,o("month")],MMM:[r,function(m){var Y=_("months"),L=(_("monthsShort")||Y.map(function(D){return D.slice(0,3)})).indexOf(m)+1;if(L<1)throw new Error;this.month=L%12||L}],MMMM:[r,function(m){var Y=_("months").indexOf(m)+1;if(Y<1)throw new Error;this.month=Y%12||Y}],Y:[/[+-]?\d+/,o("year")],YY:[i,function(m){this.year=u(m)}],YYYY:[/\d{4}/,o("year")],Z:d,ZZ:d};function f(m){var Y,L;Y=m,L=a&&a.formats;for(var D=(m=Y.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function($,H,W){var U=W&&W.toUpperCase();return H||L[W]||n[W]||L[U].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(v,h,c){return h||c.slice(1)})})).match(t),w=D.length,g=0;g-1)return new Date((M==="X"?1e3:1)*p);var T=f(M)(p),I=T.year,N=T.month,E=T.day,P=T.hours,B=T.minutes,Q=T.seconds,re=T.milliseconds,Z=T.zone,J=T.week,G=new Date,X=E||(I||N?1:G.getDate()),ee=I||G.getFullYear(),le=0;I&&!N||(le=N>0?N-1:G.getMonth());var me,pe=P||0,De=B||0,Le=Q||0,ve=re||0;return Z?new Date(Date.UTC(ee,le,X,pe,De,Le,ve+60*Z.offset*1e3)):S?new Date(Date.UTC(ee,le,X,pe,De,Le,ve)):(me=new Date(ee,le,X,pe,De,Le,ve),J&&(me=b(me).week(J).toDate()),me)}catch{return new Date("")}}(C,x,A,L),this.init(),U&&U!==!0&&(this.$L=this.locale(U).$L),W&&C!=this.format(x)&&(this.$d=new Date("")),a={}}else if(x instanceof Array)for(var v=x.length,h=1;h<=v;h+=1){q[1]=x[h-1];var c=L.apply(this,q);if(c.isValid()){this.$d=c.$d,this.$L=c.$L,this.init();break}h===v&&(this.$d=new Date(""))}else w.call(this,g)}}})});var Hn=k(($e,Ce)=>{(function(n,t){typeof $e=="object"&&typeof Ce<"u"?Ce.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_plugin_localeData=t()})($e,function(){"use strict";return function(n,t,s){var i=t.prototype,e=function(d){return d&&(d.indexOf?d:d.s)},r=function(d,_,y,l,f){var m=d.name?d:d.$locale(),Y=e(m[_]),L=e(m[y]),D=Y||L.map(function(g){return g.slice(0,l)});if(!f)return D;var w=m.weekStart;return D.map(function(g,C){return D[(C+(w||0))%7]})},a=function(){return s.Ls[s.locale()]},u=function(d,_){return d.formats[_]||function(y){return y.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(l,f,m){return f||m.slice(1)})}(d.formats[_.toUpperCase()])},o=function(){var d=this;return{months:function(_){return _?_.format("MMMM"):r(d,"months")},monthsShort:function(_){return _?_.format("MMM"):r(d,"monthsShort","months",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(_){return _?_.format("dddd"):r(d,"weekdays")},weekdaysMin:function(_){return _?_.format("dd"):r(d,"weekdaysMin","weekdays",2)},weekdaysShort:function(_){return _?_.format("ddd"):r(d,"weekdaysShort","weekdays",3)},longDateFormat:function(_){return u(d.$locale(),_)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};i.localeData=function(){return o.bind(this)()},s.localeData=function(){var d=a();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return s.weekdays()},weekdaysShort:function(){return s.weekdaysShort()},weekdaysMin:function(){return s.weekdaysMin()},months:function(){return s.months()},monthsShort:function(){return s.monthsShort()},longDateFormat:function(_){return u(d,_)},meridiem:d.meridiem,ordinal:d.ordinal}},s.months=function(){return r(a(),"months")},s.monthsShort=function(){return r(a(),"monthsShort","months",3)},s.weekdays=function(d){return r(a(),"weekdays",null,null,d)},s.weekdaysShort=function(d){return r(a(),"weekdaysShort","weekdays",3,d)},s.weekdaysMin=function(d){return r(a(),"weekdaysMin","weekdays",2,d)}}})});var jn=k((Oe,ze)=>{(function(n,t){typeof Oe=="object"&&typeof ze<"u"?ze.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_plugin_timezone=t()})(Oe,function(){"use strict";var n={year:0,month:1,day:2,hour:3,minute:4,second:5},t={};return function(s,i,e){var r,a=function(_,y,l){l===void 0&&(l={});var f=new Date(_),m=function(Y,L){L===void 0&&(L={});var D=L.timeZoneName||"short",w=Y+"|"+D,g=t[w];return g||(g=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:Y,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:D}),t[w]=g),g}(y,l);return m.formatToParts(f)},u=function(_,y){for(var l=a(_,y),f=[],m=0;m=0&&(f[w]=parseInt(D,10))}var g=f[3],C=g===24?0:g,A=f[0]+"-"+f[1]+"-"+f[2]+" "+C+":"+f[4]+":"+f[5]+":000",q=+_;return(e.utc(A).valueOf()-(q-=q%1e3))/6e4},o=i.prototype;o.tz=function(_,y){_===void 0&&(_=r);var l,f=this.utcOffset(),m=this.toDate(),Y=m.toLocaleString("en-US",{timeZone:_}),L=Math.round((m-new Date(Y))/1e3/60),D=15*-Math.round(m.getTimezoneOffset()/15)-L;if(!Number(D))l=this.utcOffset(0,y);else if(l=e(Y,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(D,!0),y){var w=l.utcOffset();l=l.add(f-w,"minute")}return l.$x.$timezone=_,l},o.offsetName=function(_){var y=this.$x.$timezone||e.tz.guess(),l=a(this.valueOf(),y,{timeZoneName:_}).find(function(f){return f.type.toLowerCase()==="timezonename"});return l&&l.value};var d=o.startOf;o.startOf=function(_,y){if(!this.$x||!this.$x.$timezone)return d.call(this,_,y);var l=e(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return d.call(l,_,y).tz(this.$x.$timezone,!0)},e.tz=function(_,y,l){var f=l&&y,m=l||y||r,Y=u(+e(),m);if(typeof _!="string")return e(_).tz(m);var L=function(C,A,q){var x=C-60*A*1e3,$=u(x,q);if(A===$)return[x,A];var H=u(x-=60*($-A)*1e3,q);return $===H?[x,$]:[C-60*Math.min($,H)*1e3,Math.max($,H)]}(e.utc(_,f).valueOf(),Y,m),D=L[0],w=L[1],g=e(D).utcOffset(w);return g.$x.$timezone=m,g},e.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},e.tz.setDefault=function(_){r=_}}})});var Tn=k((Ae,Ie)=>{(function(n,t){typeof Ae=="object"&&typeof Ie<"u"?Ie.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_plugin_utc=t()})(Ae,function(){"use strict";var n="minute",t=/[+-]\d\d(?::?\d\d)?/g,s=/([+-]|\d\d)/g;return function(i,e,r){var a=e.prototype;r.utc=function(f){var m={date:f,utc:!0,args:arguments};return new e(m)},a.utc=function(f){var m=r(this.toDate(),{locale:this.$L,utc:!0});return f?m.add(this.utcOffset(),n):m},a.local=function(){return r(this.toDate(),{locale:this.$L,utc:!1})};var u=a.parse;a.parse=function(f){f.utc&&(this.$u=!0),this.$utils().u(f.$offset)||(this.$offset=f.$offset),u.call(this,f)};var o=a.init;a.init=function(){if(this.$u){var f=this.$d;this.$y=f.getUTCFullYear(),this.$M=f.getUTCMonth(),this.$D=f.getUTCDate(),this.$W=f.getUTCDay(),this.$H=f.getUTCHours(),this.$m=f.getUTCMinutes(),this.$s=f.getUTCSeconds(),this.$ms=f.getUTCMilliseconds()}else o.call(this)};var d=a.utcOffset;a.utcOffset=function(f,m){var Y=this.$utils().u;if(Y(f))return this.$u?0:Y(this.$offset)?d.call(this):this.$offset;if(typeof f=="string"&&(f=function(g){g===void 0&&(g="");var C=g.match(t);if(!C)return null;var A=(""+C[0]).match(s)||["-",0,0],q=A[0],x=60*+A[1]+ +A[2];return x===0?0:q==="+"?x:-x}(f),f===null))return this;var L=Math.abs(f)<=16?60*f:f,D=this;if(m)return D.$offset=L,D.$u=f===0,D;if(f!==0){var w=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(D=this.local().add(L+w,n)).$offset=L,D.$x.$localOffset=w}else D=this.utc();return D};var _=a.format;a.format=function(f){var m=f||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return _.call(this,m)},a.valueOf=function(){var f=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*f},a.isUTC=function(){return!!this.$u},a.toISOString=function(){return this.toDate().toISOString()},a.toString=function(){return this.toDate().toUTCString()};var y=a.toDate;a.toDate=function(f){return f==="s"&&this.$offset?r(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():y.call(this)};var l=a.diff;a.diff=function(f,m,Y){if(f&&this.$u===f.$u)return l.call(this,f,m,Y);var L=this.local(),D=r(f).local();return l.call(L,D,m,Y)}}})});var j=k((qe,xe)=>{(function(n,t){typeof qe=="object"&&typeof xe<"u"?xe.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs=t()})(qe,function(){"use strict";var n=1e3,t=6e4,s=36e5,i="millisecond",e="second",r="minute",a="hour",u="day",o="week",d="month",_="quarter",y="year",l="date",f="Invalid Date",m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,Y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,L={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(v){var h=["th","st","nd","rd"],c=v%100;return"["+v+(h[(c-20)%10]||h[c]||h[0])+"]"}},D=function(v,h,c){var p=String(v);return!p||p.length>=h?v:""+Array(h+1-p.length).join(c)+v},w={s:D,z:function(v){var h=-v.utcOffset(),c=Math.abs(h),p=Math.floor(c/60),M=c%60;return(h<=0?"+":"-")+D(p,2,"0")+":"+D(M,2,"0")},m:function v(h,c){if(h.date()1)return v(b[0])}else{var T=h.name;C[T]=h,M=T}return!p&&M&&(g=M),M||!p&&g},$=function(v,h){if(q(v))return v.clone();var c=typeof h=="object"?h:{};return c.date=v,c.args=arguments,new W(c)},H=w;H.l=x,H.i=q,H.w=function(v,h){return $(v,{locale:h.$L,utc:h.$u,x:h.$x,$offset:h.$offset})};var W=function(){function v(c){this.$L=x(c.locale,null,!0),this.parse(c),this.$x=this.$x||c.x||{},this[A]=!0}var h=v.prototype;return h.parse=function(c){this.$d=function(p){var M=p.date,S=p.utc;if(M===null)return new Date(NaN);if(H.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var b=M.match(m);if(b){var T=b[2]-1||0,I=(b[7]||"0").substring(0,3);return S?new Date(Date.UTC(b[1],T,b[3]||1,b[4]||0,b[5]||0,b[6]||0,I)):new Date(b[1],T,b[3]||1,b[4]||0,b[5]||0,b[6]||0,I)}}return new Date(M)}(c),this.init()},h.init=function(){var c=this.$d;this.$y=c.getFullYear(),this.$M=c.getMonth(),this.$D=c.getDate(),this.$W=c.getDay(),this.$H=c.getHours(),this.$m=c.getMinutes(),this.$s=c.getSeconds(),this.$ms=c.getMilliseconds()},h.$utils=function(){return H},h.isValid=function(){return this.$d.toString()!==f},h.isSame=function(c,p){var M=$(c);return this.startOf(p)<=M&&M<=this.endOf(p)},h.isAfter=function(c,p){return $(c){(function(n,t){typeof Ne=="object"&&typeof Ee<"u"?Ee.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ar=t(n.dayjs)})(Ne,function(n){"use strict";function t(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var s=t(n),i="\u064A\u0646\u0627\u064A\u0631_\u0641\u0628\u0631\u0627\u064A\u0631_\u0645\u0627\u0631\u0633_\u0623\u0628\u0631\u064A\u0644_\u0645\u0627\u064A\u0648_\u064A\u0648\u0646\u064A\u0648_\u064A\u0648\u0644\u064A\u0648_\u0623\u063A\u0633\u0637\u0633_\u0633\u0628\u062A\u0645\u0628\u0631_\u0623\u0643\u062A\u0648\u0628\u0631_\u0646\u0648\u0641\u0645\u0628\u0631_\u062F\u064A\u0633\u0645\u0628\u0631".split("_"),e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},r={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},a={name:"ar",weekdays:"\u0627\u0644\u0623\u062D\u062F_\u0627\u0644\u0625\u062B\u0646\u064A\u0646_\u0627\u0644\u062B\u0644\u0627\u062B\u0627\u0621_\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621_\u0627\u0644\u062E\u0645\u064A\u0633_\u0627\u0644\u062C\u0645\u0639\u0629_\u0627\u0644\u0633\u0628\u062A".split("_"),weekdaysShort:"\u0623\u062D\u062F_\u0625\u062B\u0646\u064A\u0646_\u062B\u0644\u0627\u062B\u0627\u0621_\u0623\u0631\u0628\u0639\u0627\u0621_\u062E\u0645\u064A\u0633_\u062C\u0645\u0639\u0629_\u0633\u0628\u062A".split("_"),weekdaysMin:"\u062D_\u0646_\u062B_\u0631_\u062E_\u062C_\u0633".split("_"),months:i,monthsShort:i,weekStart:6,meridiem:function(u){return u>12?"\u0645":"\u0635"},relativeTime:{future:"\u0628\u0639\u062F %s",past:"\u0645\u0646\u0630 %s",s:"\u062B\u0627\u0646\u064A\u0629 \u0648\u0627\u062D\u062F\u0629",m:"\u062F\u0642\u064A\u0642\u0629 \u0648\u0627\u062D\u062F\u0629",mm:"%d \u062F\u0642\u0627\u0626\u0642",h:"\u0633\u0627\u0639\u0629 \u0648\u0627\u062D\u062F\u0629",hh:"%d \u0633\u0627\u0639\u0627\u062A",d:"\u064A\u0648\u0645 \u0648\u0627\u062D\u062F",dd:"%d \u0623\u064A\u0627\u0645",M:"\u0634\u0647\u0631 \u0648\u0627\u062D\u062F",MM:"%d \u0623\u0634\u0647\u0631",y:"\u0639\u0627\u0645 \u0648\u0627\u062D\u062F",yy:"%d \u0623\u0639\u0648\u0627\u0645"},preparse:function(u){return u.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(o){return r[o]}).replace(/،/g,",")},postformat:function(u){return u.replace(/\d/g,function(o){return e[o]}).replace(/,/g,"\u060C")},ordinal:function(u){return u},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/\u200FM/\u200FYYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"}};return s.default.locale(a,null,!0),a})});var $n=k((Fe,Je)=>{(function(n,t){typeof Fe=="object"&&typeof Je<"u"?Je.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_bs=t(n.dayjs)})(Fe,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"bs",weekdays:"nedjelja_ponedjeljak_utorak_srijeda_\u010Detvrtak_petak_subota".split("_"),months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),weekStart:1,weekdaysShort:"ned._pon._uto._sri._\u010Det._pet._sub.".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),weekdaysMin:"ne_po_ut_sr_\u010De_pe_su".split("_"),ordinal:function(e){return e},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return s.default.locale(i,null,!0),i})});var Cn=k((We,Ue)=>{(function(n,t){typeof We=="object"&&typeof Ue<"u"?Ue.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ca=t(n.dayjs)})(We,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ca",weekdays:"Diumenge_Dilluns_Dimarts_Dimecres_Dijous_Divendres_Dissabte".split("_"),weekdaysShort:"Dg._Dl._Dt._Dc._Dj._Dv._Ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),months:"Gener_Febrer_Mar\xE7_Abril_Maig_Juny_Juliol_Agost_Setembre_Octubre_Novembre_Desembre".split("_"),monthsShort:"Gen._Febr._Mar\xE7_Abr._Maig_Juny_Jul._Ag._Set._Oct._Nov._Des.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",ll:"D MMM YYYY",lll:"D MMM YYYY, H:mm",llll:"ddd D MMM YYYY, H:mm"},relativeTime:{future:"d'aqu\xED %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinal:function(e){return""+e+(e===1||e===3?"r":e===2?"n":e===4?"t":"\xE8")}};return s.default.locale(i,null,!0),i})});var Pe=k((Ye,On)=>{(function(n,t){typeof Ye=="object"&&typeof On<"u"?t(Ye,j()):typeof define=="function"&&define.amd?define(["exports","dayjs"],t):t((n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ku={},n.dayjs)})(Ye,function(n,t){"use strict";function s(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var i=s(t),e={1:"\u0661",2:"\u0662",3:"\u0663",4:"\u0664",5:"\u0665",6:"\u0666",7:"\u0667",8:"\u0668",9:"\u0669",0:"\u0660"},r={"\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u0660":"0"},a=["\u06A9\u0627\u0646\u0648\u0648\u0646\u06CC \u062F\u0648\u0648\u06D5\u0645","\u0634\u0648\u0628\u0627\u062A","\u0626\u0627\u062F\u0627\u0631","\u0646\u06CC\u0633\u0627\u0646","\u0626\u0627\u06CC\u0627\u0631","\u062D\u0648\u0632\u06D5\u06CC\u0631\u0627\u0646","\u062A\u06D5\u0645\u0645\u0648\u0648\u0632","\u0626\u0627\u0628","\u0626\u06D5\u06CC\u0644\u0648\u0648\u0644","\u062A\u0634\u0631\u06CC\u0646\u06CC \u06CC\u06D5\u06A9\u06D5\u0645","\u062A\u0634\u0631\u06CC\u0646\u06CC \u062F\u0648\u0648\u06D5\u0645","\u06A9\u0627\u0646\u0648\u0648\u0646\u06CC \u06CC\u06D5\u06A9\u06D5\u0645"],u={name:"ku",months:a,monthsShort:a,weekdays:"\u06CC\u06D5\u06A9\u0634\u06D5\u0645\u0645\u06D5_\u062F\u0648\u0648\u0634\u06D5\u0645\u0645\u06D5_\u0633\u06CE\u0634\u06D5\u0645\u0645\u06D5_\u0686\u0648\u0627\u0631\u0634\u06D5\u0645\u0645\u06D5_\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645\u0645\u06D5_\u0647\u06D5\u06CC\u0646\u06CC_\u0634\u06D5\u0645\u0645\u06D5".split("_"),weekdaysShort:"\u06CC\u06D5\u06A9\u0634\u06D5\u0645_\u062F\u0648\u0648\u0634\u06D5\u0645_\u0633\u06CE\u0634\u06D5\u0645_\u0686\u0648\u0627\u0631\u0634\u06D5\u0645_\u067E\u06CE\u0646\u062C\u0634\u06D5\u0645_\u0647\u06D5\u06CC\u0646\u06CC_\u0634\u06D5\u0645\u0645\u06D5".split("_"),weekStart:6,weekdaysMin:"\u06CC_\u062F_\u0633_\u0686_\u067E_\u0647\u0640_\u0634".split("_"),preparse:function(o){return o.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(d){return r[d]}).replace(/،/g,",")},postformat:function(o){return o.replace(/\d/g,function(d){return e[d]}).replace(/,/g,"\u060C")},ordinal:function(o){return o},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiem:function(o){return o<12?"\u067E.\u0646":"\u062F.\u0646"},relativeTime:{future:"\u0644\u06D5 %s",past:"\u0644\u06D5\u0645\u06D5\u0648\u067E\u06CE\u0634 %s",s:"\u0686\u06D5\u0646\u062F \u0686\u0631\u06A9\u06D5\u06CC\u06D5\u06A9",m:"\u06CC\u06D5\u06A9 \u062E\u0648\u0644\u06D5\u06A9",mm:"%d \u062E\u0648\u0644\u06D5\u06A9",h:"\u06CC\u06D5\u06A9 \u06A9\u0627\u062A\u0698\u0645\u06CE\u0631",hh:"%d \u06A9\u0627\u062A\u0698\u0645\u06CE\u0631",d:"\u06CC\u06D5\u06A9 \u0695\u06C6\u0698",dd:"%d \u0695\u06C6\u0698",M:"\u06CC\u06D5\u06A9 \u0645\u0627\u0646\u06AF",MM:"%d \u0645\u0627\u0646\u06AF",y:"\u06CC\u06D5\u06A9 \u0633\u0627\u06B5",yy:"%d \u0633\u0627\u06B5"}};i.default.locale(u,null,!0),n.default=u,n.englishToArabicNumbersMap=e,Object.defineProperty(n,"__esModule",{value:!0})})});var zn=k((Re,Ge)=>{(function(n,t){typeof Re=="object"&&typeof Ge<"u"?Ge.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_cs=t(n.dayjs)})(Re,function(n){"use strict";function t(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var s=t(n);function i(a){return a>1&&a<5&&~~(a/10)!=1}function e(a,u,o,d){var _=a+" ";switch(o){case"s":return u||d?"p\xE1r sekund":"p\xE1r sekundami";case"m":return u?"minuta":d?"minutu":"minutou";case"mm":return u||d?_+(i(a)?"minuty":"minut"):_+"minutami";case"h":return u?"hodina":d?"hodinu":"hodinou";case"hh":return u||d?_+(i(a)?"hodiny":"hodin"):_+"hodinami";case"d":return u||d?"den":"dnem";case"dd":return u||d?_+(i(a)?"dny":"dn\xED"):_+"dny";case"M":return u||d?"m\u011Bs\xEDc":"m\u011Bs\xEDcem";case"MM":return u||d?_+(i(a)?"m\u011Bs\xEDce":"m\u011Bs\xEDc\u016F"):_+"m\u011Bs\xEDci";case"y":return u||d?"rok":"rokem";case"yy":return u||d?_+(i(a)?"roky":"let"):_+"lety"}}var r={name:"cs",weekdays:"ned\u011Ble_pond\u011Bl\xED_\xFAter\xFD_st\u0159eda_\u010Dtvrtek_p\xE1tek_sobota".split("_"),weekdaysShort:"ne_po_\xFAt_st_\u010Dt_p\xE1_so".split("_"),weekdaysMin:"ne_po_\xFAt_st_\u010Dt_p\xE1_so".split("_"),months:"leden_\xFAnor_b\u0159ezen_duben_kv\u011Bten_\u010Derven_\u010Dervenec_srpen_z\xE1\u0159\xED_\u0159\xEDjen_listopad_prosinec".split("_"),monthsShort:"led_\xFAno_b\u0159e_dub_kv\u011B_\u010Dvn_\u010Dvc_srp_z\xE1\u0159_\u0159\xEDj_lis_pro".split("_"),weekStart:1,yearStart:4,ordinal:function(a){return a+"."},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},relativeTime:{future:"za %s",past:"p\u0159ed %s",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e}};return s.default.locale(r,null,!0),r})});var An=k((Ze,Ve)=>{(function(n,t){typeof Ze=="object"&&typeof Ve<"u"?Ve.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_cy=t(n.dayjs)})(Ze,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"cy",weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),weekStart:1,weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"mewn %s",past:"%s yn \xF4l",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"}};return s.default.locale(i,null,!0),i})});var In=k((Ke,Qe)=>{(function(n,t){typeof Ke=="object"&&typeof Qe<"u"?Qe.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_da=t(n.dayjs)})(Ke,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"da",weekdays:"s\xF8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xF8rdag".split("_"),weekdaysShort:"s\xF8n._man._tirs._ons._tors._fre._l\xF8r.".split("_"),weekdaysMin:"s\xF8._ma._ti._on._to._fr._l\xF8.".split("_"),months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj_juni_juli_aug._sept._okt._nov._dec.".split("_"),weekStart:1,yearStart:4,ordinal:function(e){return e+"."},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},relativeTime:{future:"om %s",past:"%s siden",s:"f\xE5 sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en m\xE5ned",MM:"%d m\xE5neder",y:"et \xE5r",yy:"%d \xE5r"}};return s.default.locale(i,null,!0),i})});var qn=k((Xe,Be)=>{(function(n,t){typeof Xe=="object"&&typeof Be<"u"?Be.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_de=t(n.dayjs)})(Xe,function(n){"use strict";function t(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var s=t(n),i={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function e(a,u,o){var d=i[o];return Array.isArray(d)&&(d=d[u?0:1]),d.replace("%d",a)}var r={name:"de",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_M\xE4rz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._M\xE4rz_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),ordinal:function(a){return a+"."},weekStart:1,yearStart:4,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e}};return s.default.locale(r,null,!0),r})});var xn=k((et,tt)=>{(function(n,t){typeof et=="object"&&typeof tt<"u"?tt.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_en=t()})(et,function(){"use strict";return{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(n){var t=["th","st","nd","rd"],s=n%100;return"["+n+(t[(s-20)%10]||t[s]||t[0])+"]"}}})});var Nn=k((nt,it)=>{(function(n,t){typeof nt=="object"&&typeof it<"u"?it.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_es=t(n.dayjs)})(nt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"es",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekdays:"domingo_lunes_martes_mi\xE9rcoles_jueves_viernes_s\xE1bado".split("_"),weekdaysShort:"dom._lun._mar._mi\xE9._jue._vie._s\xE1b.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_s\xE1".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un d\xEDa",dd:"%d d\xEDas",M:"un mes",MM:"%d meses",y:"un a\xF1o",yy:"%d a\xF1os"},ordinal:function(e){return e+"\xBA"}};return s.default.locale(i,null,!0),i})});var En=k((st,rt)=>{(function(n,t){typeof st=="object"&&typeof rt<"u"?rt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_et=t(n.dayjs)})(st,function(n){"use strict";function t(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var s=t(n);function i(r,a,u,o){var d={s:["m\xF5ne sekundi","m\xF5ni sekund","paar sekundit"],m:["\xFChe minuti","\xFCks minut"],mm:["%d minuti","%d minutit"],h:["\xFChe tunni","tund aega","\xFCks tund"],hh:["%d tunni","%d tundi"],d:["\xFChe p\xE4eva","\xFCks p\xE4ev"],M:["kuu aja","kuu aega","\xFCks kuu"],MM:["%d kuu","%d kuud"],y:["\xFChe aasta","aasta","\xFCks aasta"],yy:["%d aasta","%d aastat"]};return a?(d[u][2]?d[u][2]:d[u][1]).replace("%d",r):(o?d[u][0]:d[u][1]).replace("%d",r)}var e={name:"et",weekdays:"p\xFChap\xE4ev_esmasp\xE4ev_teisip\xE4ev_kolmap\xE4ev_neljap\xE4ev_reede_laup\xE4ev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),months:"jaanuar_veebruar_m\xE4rts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_m\xE4rts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),ordinal:function(r){return r+"."},weekStart:1,relativeTime:{future:"%s p\xE4rast",past:"%s tagasi",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:"%d p\xE4eva",M:i,MM:i,y:i,yy:i},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"}};return s.default.locale(e,null,!0),e})});var Fn=k((at,ut)=>{(function(n,t){typeof at=="object"&&typeof ut<"u"?ut.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_fa=t(n.dayjs)})(at,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"fa",weekdays:"\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysShort:"\u06CC\u06A9\u200C\u0634\u0646\u0628\u0647_\u062F\u0648\u0634\u0646\u0628\u0647_\u0633\u0647\u200C\u0634\u0646\u0628\u0647_\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647_\u067E\u0646\u062C\u200C\u0634\u0646\u0628\u0647_\u062C\u0645\u0639\u0647_\u0634\u0646\u0628\u0647".split("_"),weekdaysMin:"\u06CC_\u062F_\u0633_\u0686_\u067E_\u062C_\u0634".split("_"),weekStart:6,months:"\u0698\u0627\u0646\u0648\u06CC\u0647_\u0641\u0648\u0631\u06CC\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06CC\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06CC\u0647_\u0627\u0648\u062A_\u0633\u067E\u062A\u0627\u0645\u0628\u0631_\u0627\u06A9\u062A\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062F\u0633\u0627\u0645\u0628\u0631".split("_"),monthsShort:"\u0698\u0627\u0646\u0648\u06CC\u0647_\u0641\u0648\u0631\u06CC\u0647_\u0645\u0627\u0631\u0633_\u0622\u0648\u0631\u06CC\u0644_\u0645\u0647_\u0698\u0648\u0626\u0646_\u0698\u0648\u0626\u06CC\u0647_\u0627\u0648\u062A_\u0633\u067E\u062A\u0627\u0645\u0628\u0631_\u0627\u06A9\u062A\u0628\u0631_\u0646\u0648\u0627\u0645\u0628\u0631_\u062F\u0633\u0627\u0645\u0628\u0631".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"\u062F\u0631 %s",past:"%s \u067E\u06CC\u0634",s:"\u0686\u0646\u062F \u062B\u0627\u0646\u06CC\u0647",m:"\u06CC\u06A9 \u062F\u0642\u06CC\u0642\u0647",mm:"%d \u062F\u0642\u06CC\u0642\u0647",h:"\u06CC\u06A9 \u0633\u0627\u0639\u062A",hh:"%d \u0633\u0627\u0639\u062A",d:"\u06CC\u06A9 \u0631\u0648\u0632",dd:"%d \u0631\u0648\u0632",M:"\u06CC\u06A9 \u0645\u0627\u0647",MM:"%d \u0645\u0627\u0647",y:"\u06CC\u06A9 \u0633\u0627\u0644",yy:"%d \u0633\u0627\u0644"}};return s.default.locale(i,null,!0),i})});var Jn=k((ot,dt)=>{(function(n,t){typeof ot=="object"&&typeof dt<"u"?dt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_fi=t(n.dayjs)})(ot,function(n){"use strict";function t(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var s=t(n);function i(r,a,u,o){var d={s:"muutama sekunti",m:"minuutti",mm:"%d minuuttia",h:"tunti",hh:"%d tuntia",d:"p\xE4iv\xE4",dd:"%d p\xE4iv\xE4\xE4",M:"kuukausi",MM:"%d kuukautta",y:"vuosi",yy:"%d vuotta",numbers:"nolla_yksi_kaksi_kolme_nelj\xE4_viisi_kuusi_seitsem\xE4n_kahdeksan_yhdeks\xE4n".split("_")},_={s:"muutaman sekunnin",m:"minuutin",mm:"%d minuutin",h:"tunnin",hh:"%d tunnin",d:"p\xE4iv\xE4n",dd:"%d p\xE4iv\xE4n",M:"kuukauden",MM:"%d kuukauden",y:"vuoden",yy:"%d vuoden",numbers:"nollan_yhden_kahden_kolmen_nelj\xE4n_viiden_kuuden_seitsem\xE4n_kahdeksan_yhdeks\xE4n".split("_")},y=o&&!a?_:d,l=y[u];return r<10?l.replace("%d",y.numbers[r]):l.replace("%d",r)}var e={name:"fi",weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kes\xE4kuu_hein\xE4kuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kes\xE4_hein\xE4_elo_syys_loka_marras_joulu".split("_"),ordinal:function(r){return r+"."},weekStart:1,yearStart:4,relativeTime:{future:"%s p\xE4\xE4st\xE4",past:"%s sitten",s:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM[ta] YYYY",LLL:"D. MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, D. MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"D. MMM YYYY",lll:"D. MMM YYYY, [klo] HH.mm",llll:"ddd, D. MMM YYYY, [klo] HH.mm"}};return s.default.locale(e,null,!0),e})});var Wn=k((_t,ft)=>{(function(n,t){typeof _t=="object"&&typeof ft<"u"?ft.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_fr=t(n.dayjs)})(_t,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"fr",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),months:"janvier_f\xE9vrier_mars_avril_mai_juin_juillet_ao\xFBt_septembre_octobre_novembre_d\xE9cembre".split("_"),monthsShort:"janv._f\xE9vr._mars_avr._mai_juin_juil._ao\xFBt_sept._oct._nov._d\xE9c.".split("_"),weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(e){return""+e+(e===1?"er":"")}};return s.default.locale(i,null,!0),i})});var Un=k((lt,mt)=>{(function(n,t){typeof lt=="object"&&typeof mt<"u"?mt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_hi=t(n.dayjs)})(lt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"hi",weekdays:"\u0930\u0935\u093F\u0935\u093E\u0930_\u0938\u094B\u092E\u0935\u093E\u0930_\u092E\u0902\u0917\u0932\u0935\u093E\u0930_\u092C\u0941\u0927\u0935\u093E\u0930_\u0917\u0941\u0930\u0942\u0935\u093E\u0930_\u0936\u0941\u0915\u094D\u0930\u0935\u093E\u0930_\u0936\u0928\u093F\u0935\u093E\u0930".split("_"),months:"\u091C\u0928\u0935\u0930\u0940_\u092B\u093C\u0930\u0935\u0930\u0940_\u092E\u093E\u0930\u094D\u091A_\u0905\u092A\u094D\u0930\u0948\u0932_\u092E\u0908_\u091C\u0942\u0928_\u091C\u0941\u0932\u093E\u0908_\u0905\u0917\u0938\u094D\u0924_\u0938\u093F\u0924\u092E\u094D\u092C\u0930_\u0905\u0915\u094D\u091F\u0942\u092C\u0930_\u0928\u0935\u092E\u094D\u092C\u0930_\u0926\u093F\u0938\u092E\u094D\u092C\u0930".split("_"),weekdaysShort:"\u0930\u0935\u093F_\u0938\u094B\u092E_\u092E\u0902\u0917\u0932_\u092C\u0941\u0927_\u0917\u0941\u0930\u0942_\u0936\u0941\u0915\u094D\u0930_\u0936\u0928\u093F".split("_"),monthsShort:"\u091C\u0928._\u092B\u093C\u0930._\u092E\u093E\u0930\u094D\u091A_\u0905\u092A\u094D\u0930\u0948._\u092E\u0908_\u091C\u0942\u0928_\u091C\u0941\u0932._\u0905\u0917._\u0938\u093F\u0924._\u0905\u0915\u094D\u091F\u0942._\u0928\u0935._\u0926\u093F\u0938.".split("_"),weekdaysMin:"\u0930_\u0938\u094B_\u092E\u0902_\u092C\u0941_\u0917\u0941_\u0936\u0941_\u0936".split("_"),ordinal:function(e){return e},formats:{LT:"A h:mm \u092C\u091C\u0947",LTS:"A h:mm:ss \u092C\u091C\u0947",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm \u092C\u091C\u0947",LLLL:"dddd, D MMMM YYYY, A h:mm \u092C\u091C\u0947"},relativeTime:{future:"%s \u092E\u0947\u0902",past:"%s \u092A\u0939\u0932\u0947",s:"\u0915\u0941\u091B \u0939\u0940 \u0915\u094D\u0937\u0923",m:"\u090F\u0915 \u092E\u093F\u0928\u091F",mm:"%d \u092E\u093F\u0928\u091F",h:"\u090F\u0915 \u0918\u0902\u091F\u093E",hh:"%d \u0918\u0902\u091F\u0947",d:"\u090F\u0915 \u0926\u093F\u0928",dd:"%d \u0926\u093F\u0928",M:"\u090F\u0915 \u092E\u0939\u0940\u0928\u0947",MM:"%d \u092E\u0939\u0940\u0928\u0947",y:"\u090F\u0915 \u0935\u0930\u094D\u0937",yy:"%d \u0935\u0930\u094D\u0937"}};return s.default.locale(i,null,!0),i})});var Pn=k((ct,ht)=>{(function(n,t){typeof ct=="object"&&typeof ht<"u"?ht.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_hu=t(n.dayjs)})(ct,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"hu",weekdays:"vas\xE1rnap_h\xE9tf\u0151_kedd_szerda_cs\xFCt\xF6rt\xF6k_p\xE9ntek_szombat".split("_"),weekdaysShort:"vas_h\xE9t_kedd_sze_cs\xFCt_p\xE9n_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),months:"janu\xE1r_febru\xE1r_m\xE1rcius_\xE1prilis_m\xE1jus_j\xFAnius_j\xFAlius_augusztus_szeptember_okt\xF3ber_november_december".split("_"),monthsShort:"jan_feb_m\xE1rc_\xE1pr_m\xE1j_j\xFAn_j\xFAl_aug_szept_okt_nov_dec".split("_"),ordinal:function(e){return e+"."},weekStart:1,relativeTime:{future:"%s m\xFAlva",past:"%s",s:function(e,r,a,u){return"n\xE9h\xE1ny m\xE1sodperc"+(u||r?"":"e")},m:function(e,r,a,u){return"egy perc"+(u||r?"":"e")},mm:function(e,r,a,u){return e+" perc"+(u||r?"":"e")},h:function(e,r,a,u){return"egy "+(u||r?"\xF3ra":"\xF3r\xE1ja")},hh:function(e,r,a,u){return e+" "+(u||r?"\xF3ra":"\xF3r\xE1ja")},d:function(e,r,a,u){return"egy "+(u||r?"nap":"napja")},dd:function(e,r,a,u){return e+" "+(u||r?"nap":"napja")},M:function(e,r,a,u){return"egy "+(u||r?"h\xF3nap":"h\xF3napja")},MM:function(e,r,a,u){return e+" "+(u||r?"h\xF3nap":"h\xF3napja")},y:function(e,r,a,u){return"egy "+(u||r?"\xE9v":"\xE9ve")},yy:function(e,r,a,u){return e+" "+(u||r?"\xE9v":"\xE9ve")}},formats:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"}};return s.default.locale(i,null,!0),i})});var Rn=k((Mt,yt)=>{(function(n,t){typeof Mt=="object"&&typeof yt<"u"?yt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_hy_am=t(n.dayjs)})(Mt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"hy-am",weekdays:"\u056F\u056B\u0580\u0561\u056F\u056B_\u0565\u0580\u056F\u0578\u0582\u0577\u0561\u0562\u0569\u056B_\u0565\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B_\u0579\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056B_\u0570\u056B\u0576\u0563\u0577\u0561\u0562\u0569\u056B_\u0578\u0582\u0580\u0562\u0561\u0569_\u0577\u0561\u0562\u0561\u0569".split("_"),months:"\u0570\u0578\u0582\u0576\u057E\u0561\u0580\u056B_\u0583\u0565\u057F\u0580\u057E\u0561\u0580\u056B_\u0574\u0561\u0580\u057F\u056B_\u0561\u057A\u0580\u056B\u056C\u056B_\u0574\u0561\u0575\u056B\u057D\u056B_\u0570\u0578\u0582\u0576\u056B\u057D\u056B_\u0570\u0578\u0582\u056C\u056B\u057D\u056B_\u0585\u0563\u0578\u057D\u057F\u0578\u057D\u056B_\u057D\u0565\u057A\u057F\u0565\u0574\u0562\u0565\u0580\u056B_\u0570\u0578\u056F\u057F\u0565\u0574\u0562\u0565\u0580\u056B_\u0576\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u056B_\u0564\u0565\u056F\u057F\u0565\u0574\u0562\u0565\u0580\u056B".split("_"),weekStart:1,weekdaysShort:"\u056F\u0580\u056F_\u0565\u0580\u056F_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),monthsShort:"\u0570\u0576\u057E_\u0583\u057F\u0580_\u0574\u0580\u057F_\u0561\u057A\u0580_\u0574\u0575\u057D_\u0570\u0576\u057D_\u0570\u056C\u057D_\u0585\u0563\u057D_\u057D\u057A\u057F_\u0570\u056F\u057F_\u0576\u0574\u0562_\u0564\u056F\u057F".split("_"),weekdaysMin:"\u056F\u0580\u056F_\u0565\u0580\u056F_\u0565\u0580\u0584_\u0579\u0580\u0584_\u0570\u0576\u0563_\u0578\u0582\u0580\u0562_\u0577\u0562\u0569".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0569.",LLL:"D MMMM YYYY \u0569., HH:mm",LLLL:"dddd, D MMMM YYYY \u0569., HH:mm"},relativeTime:{future:"%s \u0570\u0565\u057F\u0578",past:"%s \u0561\u057C\u0561\u057B",s:"\u0574\u056B \u0584\u0561\u0576\u056B \u057E\u0561\u0575\u0580\u056F\u0575\u0561\u0576",m:"\u0580\u0578\u057A\u0565",mm:"%d \u0580\u0578\u057A\u0565",h:"\u056A\u0561\u0574",hh:"%d \u056A\u0561\u0574",d:"\u0585\u0580",dd:"%d \u0585\u0580",M:"\u0561\u0574\u056B\u057D",MM:"%d \u0561\u0574\u056B\u057D",y:"\u057F\u0561\u0580\u056B",yy:"%d \u057F\u0561\u0580\u056B"}};return s.default.locale(i,null,!0),i})});var Gn=k((Yt,pt)=>{(function(n,t){typeof Yt=="object"&&typeof pt<"u"?pt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_id=t(n.dayjs)})(Yt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"id",weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},ordinal:function(e){return e+"."}};return s.default.locale(i,null,!0),i})});var Zn=k((Dt,Lt)=>{(function(n,t){typeof Dt=="object"&&typeof Lt<"u"?Lt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_it=t(n.dayjs)})(Dt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"it",weekdays:"domenica_luned\xEC_marted\xEC_mercoled\xEC_gioved\xEC_venerd\xEC_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),weekStart:1,monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"tra %s",past:"%s fa",s:"qualche secondo",m:"un minuto",mm:"%d minuti",h:"un' ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinal:function(e){return e+"\xBA"}};return s.default.locale(i,null,!0),i})});var Vn=k((vt,gt)=>{(function(n,t){typeof vt=="object"&&typeof gt<"u"?gt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ja=t(n.dayjs)})(vt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ja",weekdays:"\u65E5\u66DC\u65E5_\u6708\u66DC\u65E5_\u706B\u66DC\u65E5_\u6C34\u66DC\u65E5_\u6728\u66DC\u65E5_\u91D1\u66DC\u65E5_\u571F\u66DC\u65E5".split("_"),weekdaysShort:"\u65E5_\u6708_\u706B_\u6C34_\u6728_\u91D1_\u571F".split("_"),weekdaysMin:"\u65E5_\u6708_\u706B_\u6C34_\u6728_\u91D1_\u571F".split("_"),months:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e){return e+"\u65E5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5E74M\u6708D\u65E5",LLL:"YYYY\u5E74M\u6708D\u65E5 HH:mm",LLLL:"YYYY\u5E74M\u6708D\u65E5 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY\u5E74M\u6708D\u65E5",lll:"YYYY\u5E74M\u6708D\u65E5 HH:mm",llll:"YYYY\u5E74M\u6708D\u65E5(ddd) HH:mm"},meridiem:function(e){return e<12?"\u5348\u524D":"\u5348\u5F8C"},relativeTime:{future:"%s\u5F8C",past:"%s\u524D",s:"\u6570\u79D2",m:"1\u5206",mm:"%d\u5206",h:"1\u6642\u9593",hh:"%d\u6642\u9593",d:"1\u65E5",dd:"%d\u65E5",M:"1\u30F6\u6708",MM:"%d\u30F6\u6708",y:"1\u5E74",yy:"%d\u5E74"}};return s.default.locale(i,null,!0),i})});var Kn=k((St,bt)=>{(function(n,t){typeof St=="object"&&typeof bt<"u"?bt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ka=t(n.dayjs)})(St,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ka",weekdays:"\u10D9\u10D5\u10D8\u10E0\u10D0_\u10DD\u10E0\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8_\u10E1\u10D0\u10DB\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8_\u10DD\u10D7\u10EE\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8_\u10EE\u10E3\u10D7\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8_\u10DE\u10D0\u10E0\u10D0\u10E1\u10D9\u10D4\u10D5\u10D8_\u10E8\u10D0\u10D1\u10D0\u10D7\u10D8".split("_"),weekdaysShort:"\u10D9\u10D5\u10D8_\u10DD\u10E0\u10E8_\u10E1\u10D0\u10DB_\u10DD\u10D7\u10EE_\u10EE\u10E3\u10D7_\u10DE\u10D0\u10E0_\u10E8\u10D0\u10D1".split("_"),weekdaysMin:"\u10D9\u10D5_\u10DD\u10E0_\u10E1\u10D0_\u10DD\u10D7_\u10EE\u10E3_\u10DE\u10D0_\u10E8\u10D0".split("_"),months:"\u10D8\u10D0\u10DC\u10D5\u10D0\u10E0\u10D8_\u10D7\u10D4\u10D1\u10D4\u10E0\u10D5\u10D0\u10DA\u10D8_\u10DB\u10D0\u10E0\u10E2\u10D8_\u10D0\u10DE\u10E0\u10D8\u10DA\u10D8_\u10DB\u10D0\u10D8\u10E1\u10D8_\u10D8\u10D5\u10DC\u10D8\u10E1\u10D8_\u10D8\u10D5\u10DA\u10D8\u10E1\u10D8_\u10D0\u10D2\u10D5\u10D8\u10E1\u10E2\u10DD_\u10E1\u10D4\u10E5\u10E2\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8_\u10DD\u10E5\u10E2\u10DD\u10DB\u10D1\u10D4\u10E0\u10D8_\u10DC\u10DD\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8_\u10D3\u10D4\u10D9\u10D4\u10DB\u10D1\u10D4\u10E0\u10D8".split("_"),monthsShort:"\u10D8\u10D0\u10DC_\u10D7\u10D4\u10D1_\u10DB\u10D0\u10E0_\u10D0\u10DE\u10E0_\u10DB\u10D0\u10D8_\u10D8\u10D5\u10DC_\u10D8\u10D5\u10DA_\u10D0\u10D2\u10D5_\u10E1\u10D4\u10E5_\u10DD\u10E5\u10E2_\u10DC\u10DD\u10D4_\u10D3\u10D4\u10D9".split("_"),weekStart:1,formats:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},relativeTime:{future:"%s \u10E8\u10D4\u10DB\u10D3\u10D4\u10D2",past:"%s \u10EC\u10D8\u10DC",s:"\u10EC\u10D0\u10DB\u10D8",m:"\u10EC\u10E3\u10D7\u10D8",mm:"%d \u10EC\u10E3\u10D7\u10D8",h:"\u10E1\u10D0\u10D0\u10D7\u10D8",hh:"%d \u10E1\u10D0\u10D0\u10D7\u10D8\u10E1",d:"\u10D3\u10E6\u10D4\u10E1",dd:"%d \u10D3\u10E6\u10D8\u10E1 \u10D2\u10D0\u10DC\u10DB\u10D0\u10D5\u10DA\u10DD\u10D1\u10D0\u10E8\u10D8",M:"\u10D7\u10D5\u10D8\u10E1",MM:"%d \u10D7\u10D5\u10D8\u10E1",y:"\u10EC\u10D4\u10DA\u10D8",yy:"%d \u10EC\u10DA\u10D8\u10E1"},ordinal:function(e){return e}};return s.default.locale(i,null,!0),i})});var Qn=k((kt,Ht)=>{(function(n,t){typeof kt=="object"&&typeof Ht<"u"?Ht.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_km=t(n.dayjs)})(kt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"km",weekdays:"\u17A2\u17B6\u1791\u17B7\u178F\u17D2\u1799_\u1785\u17D0\u1793\u17D2\u1791_\u17A2\u1784\u17D2\u1782\u17B6\u179A_\u1796\u17BB\u1792_\u1796\u17D2\u179A\u17A0\u179F\u17D2\u1794\u178F\u17B7\u17CD_\u179F\u17BB\u1780\u17D2\u179A_\u179F\u17C5\u179A\u17CD".split("_"),months:"\u1798\u1780\u179A\u17B6_\u1780\u17BB\u1798\u17D2\u1797\u17C8_\u1798\u17B8\u1793\u17B6_\u1798\u17C1\u179F\u17B6_\u17A7\u179F\u1797\u17B6_\u1798\u17B7\u1790\u17BB\u1793\u17B6_\u1780\u1780\u17D2\u1780\u178A\u17B6_\u179F\u17B8\u17A0\u17B6_\u1780\u1789\u17D2\u1789\u17B6_\u178F\u17BB\u179B\u17B6_\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6_\u1792\u17D2\u1793\u17BC".split("_"),weekStart:1,weekdaysShort:"\u17A2\u17B6_\u1785_\u17A2_\u1796_\u1796\u17D2\u179A_\u179F\u17BB_\u179F".split("_"),monthsShort:"\u1798\u1780\u179A\u17B6_\u1780\u17BB\u1798\u17D2\u1797\u17C8_\u1798\u17B8\u1793\u17B6_\u1798\u17C1\u179F\u17B6_\u17A7\u179F\u1797\u17B6_\u1798\u17B7\u1790\u17BB\u1793\u17B6_\u1780\u1780\u17D2\u1780\u178A\u17B6_\u179F\u17B8\u17A0\u17B6_\u1780\u1789\u17D2\u1789\u17B6_\u178F\u17BB\u179B\u17B6_\u179C\u17B7\u1785\u17D2\u1786\u17B7\u1780\u17B6_\u1792\u17D2\u1793\u17BC".split("_"),weekdaysMin:"\u17A2\u17B6_\u1785_\u17A2_\u1796_\u1796\u17D2\u179A_\u179F\u17BB_\u179F".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s\u1791\u17C0\u178F",past:"%s\u1798\u17BB\u1793",s:"\u1794\u17C9\u17BB\u1793\u17D2\u1798\u17B6\u1793\u179C\u17B7\u1793\u17B6\u1791\u17B8",m:"\u1798\u17BD\u1799\u1793\u17B6\u1791\u17B8",mm:"%d \u1793\u17B6\u1791\u17B8",h:"\u1798\u17BD\u1799\u1798\u17C9\u17C4\u1784",hh:"%d \u1798\u17C9\u17C4\u1784",d:"\u1798\u17BD\u1799\u1790\u17D2\u1784\u17C3",dd:"%d \u1790\u17D2\u1784\u17C3",M:"\u1798\u17BD\u1799\u1781\u17C2",MM:"%d \u1781\u17C2",y:"\u1798\u17BD\u1799\u1786\u17D2\u1793\u17B6\u17C6",yy:"%d \u1786\u17D2\u1793\u17B6\u17C6"}};return s.default.locale(i,null,!0),i})});var Xn=k((jt,Tt)=>{(function(n,t){typeof jt=="object"&&typeof Tt<"u"?Tt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_lt=t(n.dayjs)})(jt,function(n){"use strict";function t(o){return o&&typeof o=="object"&&"default"in o?o:{default:o}}var s=t(n),i="sausio_vasario_kovo_baland\u017Eio_gegu\u017E\u0117s_bir\u017Eelio_liepos_rugpj\u016B\u010Dio_rugs\u0117jo_spalio_lapkri\u010Dio_gruod\u017Eio".split("_"),e="sausis_vasaris_kovas_balandis_gegu\u017E\u0117_bir\u017Eelis_liepa_rugpj\u016Btis_rugs\u0117jis_spalis_lapkritis_gruodis".split("_"),r=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,a=function(o,d){return r.test(d)?i[o.month()]:e[o.month()]};a.s=e,a.f=i;var u={name:"lt",weekdays:"sekmadienis_pirmadienis_antradienis_tre\u010Diadienis_ketvirtadienis_penktadienis_\u0161e\u0161tadienis".split("_"),weekdaysShort:"sek_pir_ant_tre_ket_pen_\u0161e\u0161".split("_"),weekdaysMin:"s_p_a_t_k_pn_\u0161".split("_"),months:a,monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),ordinal:function(o){return o+"."},weekStart:1,relativeTime:{future:"u\u017E %s",past:"prie\u0161 %s",s:"kelias sekundes",m:"minut\u0119",mm:"%d minutes",h:"valand\u0105",hh:"%d valandas",d:"dien\u0105",dd:"%d dienas",M:"m\u0117nes\u012F",MM:"%d m\u0117nesius",y:"metus",yy:"%d metus"},format:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"}};return s.default.locale(u,null,!0),u})});var Bn=k((wt,$t)=>{(function(n,t){typeof wt=="object"&&typeof $t<"u"?$t.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_lv=t(n.dayjs)})(wt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"lv",weekdays:"sv\u0113tdiena_pirmdiena_otrdiena_tre\u0161diena_ceturtdiena_piektdiena_sestdiena".split("_"),months:"janv\u0101ris_febru\u0101ris_marts_apr\u012Blis_maijs_j\u016Bnijs_j\u016Blijs_augusts_septembris_oktobris_novembris_decembris".split("_"),weekStart:1,weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),monthsShort:"jan_feb_mar_apr_mai_j\u016Bn_j\u016Bl_aug_sep_okt_nov_dec".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},relativeTime:{future:"p\u0113c %s",past:"pirms %s",s:"da\u017E\u0101m sekund\u0113m",m:"min\u016Btes",mm:"%d min\u016Bt\u0113m",h:"stundas",hh:"%d stund\u0101m",d:"dienas",dd:"%d dien\u0101m",M:"m\u0113ne\u0161a",MM:"%d m\u0113ne\u0161iem",y:"gada",yy:"%d gadiem"}};return s.default.locale(i,null,!0),i})});var ei=k((Ct,Ot)=>{(function(n,t){typeof Ct=="object"&&typeof Ot<"u"?Ot.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ms=t(n.dayjs)})(Ct,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ms",weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekStart:1,formats:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH.mm",LLLL:"dddd, D MMMM YYYY HH.mm"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},ordinal:function(e){return e+"."}};return s.default.locale(i,null,!0),i})});var ti=k((zt,At)=>{(function(n,t){typeof zt=="object"&&typeof At<"u"?At.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_my=t(n.dayjs)})(zt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"my",weekdays:"\u1010\u1014\u1004\u103A\u1039\u1002\u1014\u103D\u1031_\u1010\u1014\u1004\u103A\u1039\u101C\u102C_\u1021\u1004\u103A\u1039\u1002\u102B_\u1017\u102F\u1012\u1039\u1013\u101F\u1030\u1038_\u1000\u103C\u102C\u101E\u1015\u1010\u1031\u1038_\u101E\u1031\u102C\u1000\u103C\u102C_\u1005\u1014\u1031".split("_"),months:"\u1007\u1014\u103A\u1014\u101D\u102B\u101B\u102E_\u1016\u1031\u1016\u1031\u102C\u103A\u101D\u102B\u101B\u102E_\u1019\u1010\u103A_\u1027\u1015\u103C\u102E_\u1019\u1031_\u1007\u103D\u1014\u103A_\u1007\u1030\u101C\u102D\u102F\u1004\u103A_\u101E\u103C\u1002\u102F\u1010\u103A_\u1005\u1000\u103A\u1010\u1004\u103A\u1018\u102C_\u1021\u1031\u102C\u1000\u103A\u1010\u102D\u102F\u1018\u102C_\u1014\u102D\u102F\u101D\u1004\u103A\u1018\u102C_\u1012\u102E\u1007\u1004\u103A\u1018\u102C".split("_"),weekStart:1,weekdaysShort:"\u1014\u103D\u1031_\u101C\u102C_\u1002\u102B_\u101F\u1030\u1038_\u1000\u103C\u102C_\u101E\u1031\u102C_\u1014\u1031".split("_"),monthsShort:"\u1007\u1014\u103A_\u1016\u1031_\u1019\u1010\u103A_\u1015\u103C\u102E_\u1019\u1031_\u1007\u103D\u1014\u103A_\u101C\u102D\u102F\u1004\u103A_\u101E\u103C_\u1005\u1000\u103A_\u1021\u1031\u102C\u1000\u103A_\u1014\u102D\u102F_\u1012\u102E".split("_"),weekdaysMin:"\u1014\u103D\u1031_\u101C\u102C_\u1002\u102B_\u101F\u1030\u1038_\u1000\u103C\u102C_\u101E\u1031\u102C_\u1014\u1031".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"\u101C\u102C\u1019\u100A\u103A\u1037 %s \u1019\u103E\u102C",past:"\u101C\u103D\u1014\u103A\u1001\u1032\u1037\u101E\u1031\u102C %s \u1000",s:"\u1005\u1000\u1039\u1000\u1014\u103A.\u1021\u1014\u100A\u103A\u1038\u1004\u101A\u103A",m:"\u1010\u1005\u103A\u1019\u102D\u1014\u1005\u103A",mm:"%d \u1019\u102D\u1014\u1005\u103A",h:"\u1010\u1005\u103A\u1014\u102C\u101B\u102E",hh:"%d \u1014\u102C\u101B\u102E",d:"\u1010\u1005\u103A\u101B\u1000\u103A",dd:"%d \u101B\u1000\u103A",M:"\u1010\u1005\u103A\u101C",MM:"%d \u101C",y:"\u1010\u1005\u103A\u1014\u103E\u1005\u103A",yy:"%d \u1014\u103E\u1005\u103A"}};return s.default.locale(i,null,!0),i})});var ni=k((It,qt)=>{(function(n,t){typeof It=="object"&&typeof qt<"u"?qt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_nl=t(n.dayjs)})(It,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"nl",weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),ordinal:function(e){return"["+e+(e===1||e===8||e>=20?"ste":"de")+"]"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"een minuut",mm:"%d minuten",h:"een uur",hh:"%d uur",d:"een dag",dd:"%d dagen",M:"een maand",MM:"%d maanden",y:"een jaar",yy:"%d jaar"}};return s.default.locale(i,null,!0),i})});var ii=k((xt,Nt)=>{(function(n,t){typeof xt=="object"&&typeof Nt<"u"?Nt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_nb=t(n.dayjs)})(xt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"nb",weekdays:"s\xF8ndag_mandag_tirsdag_onsdag_torsdag_fredag_l\xF8rdag".split("_"),weekdaysShort:"s\xF8._ma._ti._on._to._fr._l\xF8.".split("_"),weekdaysMin:"s\xF8_ma_ti_on_to_fr_l\xF8".split("_"),months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),ordinal:function(e){return e+"."},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en m\xE5ned",MM:"%d m\xE5neder",y:"ett \xE5r",yy:"%d \xE5r"}};return s.default.locale(i,null,!0),i})});var si=k((Et,Ft)=>{(function(n,t){typeof Et=="object"&&typeof Ft<"u"?Ft.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_pl=t(n.dayjs)})(Et,function(n){"use strict";function t(_){return _&&typeof _=="object"&&"default"in _?_:{default:_}}var s=t(n);function i(_){return _%10<5&&_%10>1&&~~(_/10)%10!=1}function e(_,y,l){var f=_+" ";switch(l){case"m":return y?"minuta":"minut\u0119";case"mm":return f+(i(_)?"minuty":"minut");case"h":return y?"godzina":"godzin\u0119";case"hh":return f+(i(_)?"godziny":"godzin");case"MM":return f+(i(_)?"miesi\u0105ce":"miesi\u0119cy");case"yy":return f+(i(_)?"lata":"lat")}}var r="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrze\u015Bnia_pa\u017Adziernika_listopada_grudnia".split("_"),a="stycze\u0144_luty_marzec_kwiecie\u0144_maj_czerwiec_lipiec_sierpie\u0144_wrzesie\u0144_pa\u017Adziernik_listopad_grudzie\u0144".split("_"),u=/D MMMM/,o=function(_,y){return u.test(y)?r[_.month()]:a[_.month()]};o.s=a,o.f=r;var d={name:"pl",weekdays:"niedziela_poniedzia\u0142ek_wtorek_\u015Broda_czwartek_pi\u0105tek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_\u015Br_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_\u015Ar_Cz_Pt_So".split("_"),months:o,monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_pa\u017A_lis_gru".split("_"),ordinal:function(_){return _+"."},weekStart:1,yearStart:4,relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:e,mm:e,h:e,hh:e,d:"1 dzie\u0144",dd:"%d dni",M:"miesi\u0105c",MM:e,y:"rok",yy:e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"}};return s.default.locale(d,null,!0),d})});var ri=k((Jt,Wt)=>{(function(n,t){typeof Jt=="object"&&typeof Wt<"u"?Wt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_pt_br=t(n.dayjs)})(Jt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"pt-br",weekdays:"domingo_segunda-feira_ter\xE7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xE1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_s\xE1b".split("_"),weekdaysMin:"Do_2\xAA_3\xAA_4\xAA_5\xAA_6\xAA_S\xE1".split("_"),months:"janeiro_fevereiro_mar\xE7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),ordinal:function(e){return e+"\xBA"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xE0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xE0s] HH:mm"},relativeTime:{future:"em %s",past:"h\xE1 %s",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xEAs",MM:"%d meses",y:"um ano",yy:"%d anos"}};return s.default.locale(i,null,!0),i})});var ai=k((Ut,Pt)=>{(function(n,t){typeof Ut=="object"&&typeof Pt<"u"?Pt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_pt=t(n.dayjs)})(Ut,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"pt",weekdays:"domingo_segunda-feira_ter\xE7a-feira_quarta-feira_quinta-feira_sexta-feira_s\xE1bado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sab".split("_"),weekdaysMin:"Do_2\xAA_3\xAA_4\xAA_5\xAA_6\xAA_Sa".split("_"),months:"janeiro_fevereiro_mar\xE7o_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),ordinal:function(e){return e+"\xBA"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [\xE0s] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [\xE0s] HH:mm"},relativeTime:{future:"em %s",past:"h\xE1 %s",s:"alguns segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um m\xEAs",MM:"%d meses",y:"um ano",yy:"%d anos"}};return s.default.locale(i,null,!0),i})});var ui=k((Rt,Gt)=>{(function(n,t){typeof Rt=="object"&&typeof Gt<"u"?Gt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ro=t(n.dayjs)})(Rt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"ro",weekdays:"Duminic\u0103_Luni_Mar\u021Bi_Miercuri_Joi_Vineri_S\xE2mb\u0103t\u0103".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_S\xE2m".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_S\xE2".split("_"),months:"Ianuarie_Februarie_Martie_Aprilie_Mai_Iunie_Iulie_August_Septembrie_Octombrie_Noiembrie_Decembrie".split("_"),monthsShort:"Ian._Febr._Mart._Apr._Mai_Iun._Iul._Aug._Sept._Oct._Nov._Dec.".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},relativeTime:{future:"peste %s",past:"acum %s",s:"c\xE2teva secunde",m:"un minut",mm:"%d minute",h:"o or\u0103",hh:"%d ore",d:"o zi",dd:"%d zile",M:"o lun\u0103",MM:"%d luni",y:"un an",yy:"%d ani"},ordinal:function(e){return e}};return s.default.locale(i,null,!0),i})});var oi=k((Zt,Vt)=>{(function(n,t){typeof Zt=="object"&&typeof Vt<"u"?Vt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_ru=t(n.dayjs)})(Zt,function(n){"use strict";function t(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var s=t(n),i="\u044F\u043D\u0432\u0430\u0440\u044F_\u0444\u0435\u0432\u0440\u0430\u043B\u044F_\u043C\u0430\u0440\u0442\u0430_\u0430\u043F\u0440\u0435\u043B\u044F_\u043C\u0430\u044F_\u0438\u044E\u043D\u044F_\u0438\u044E\u043B\u044F_\u0430\u0432\u0433\u0443\u0441\u0442\u0430_\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044F_\u043E\u043A\u0442\u044F\u0431\u0440\u044F_\u043D\u043E\u044F\u0431\u0440\u044F_\u0434\u0435\u043A\u0430\u0431\u0440\u044F".split("_"),e="\u044F\u043D\u0432\u0430\u0440\u044C_\u0444\u0435\u0432\u0440\u0430\u043B\u044C_\u043C\u0430\u0440\u0442_\u0430\u043F\u0440\u0435\u043B\u044C_\u043C\u0430\u0439_\u0438\u044E\u043D\u044C_\u0438\u044E\u043B\u044C_\u0430\u0432\u0433\u0443\u0441\u0442_\u0441\u0435\u043D\u0442\u044F\u0431\u0440\u044C_\u043E\u043A\u0442\u044F\u0431\u0440\u044C_\u043D\u043E\u044F\u0431\u0440\u044C_\u0434\u0435\u043A\u0430\u0431\u0440\u044C".split("_"),r="\u044F\u043D\u0432._\u0444\u0435\u0432\u0440._\u043C\u0430\u0440._\u0430\u043F\u0440._\u043C\u0430\u044F_\u0438\u044E\u043D\u044F_\u0438\u044E\u043B\u044F_\u0430\u0432\u0433._\u0441\u0435\u043D\u0442._\u043E\u043A\u0442._\u043D\u043E\u044F\u0431._\u0434\u0435\u043A.".split("_"),a="\u044F\u043D\u0432._\u0444\u0435\u0432\u0440._\u043C\u0430\u0440\u0442_\u0430\u043F\u0440._\u043C\u0430\u0439_\u0438\u044E\u043D\u044C_\u0438\u044E\u043B\u044C_\u0430\u0432\u0433._\u0441\u0435\u043D\u0442._\u043E\u043A\u0442._\u043D\u043E\u044F\u0431._\u0434\u0435\u043A.".split("_"),u=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function o(l,f,m){var Y,L;return m==="m"?f?"\u043C\u0438\u043D\u0443\u0442\u0430":"\u043C\u0438\u043D\u0443\u0442\u0443":l+" "+(Y=+l,L={mm:f?"\u043C\u0438\u043D\u0443\u0442\u0430_\u043C\u0438\u043D\u0443\u0442\u044B_\u043C\u0438\u043D\u0443\u0442":"\u043C\u0438\u043D\u0443\u0442\u0443_\u043C\u0438\u043D\u0443\u0442\u044B_\u043C\u0438\u043D\u0443\u0442",hh:"\u0447\u0430\u0441_\u0447\u0430\u0441\u0430_\u0447\u0430\u0441\u043E\u0432",dd:"\u0434\u0435\u043D\u044C_\u0434\u043D\u044F_\u0434\u043D\u0435\u0439",MM:"\u043C\u0435\u0441\u044F\u0446_\u043C\u0435\u0441\u044F\u0446\u0430_\u043C\u0435\u0441\u044F\u0446\u0435\u0432",yy:"\u0433\u043E\u0434_\u0433\u043E\u0434\u0430_\u043B\u0435\u0442"}[m].split("_"),Y%10==1&&Y%100!=11?L[0]:Y%10>=2&&Y%10<=4&&(Y%100<10||Y%100>=20)?L[1]:L[2])}var d=function(l,f){return u.test(f)?i[l.month()]:e[l.month()]};d.s=e,d.f=i;var _=function(l,f){return u.test(f)?r[l.month()]:a[l.month()]};_.s=a,_.f=r;var y={name:"ru",weekdays:"\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435_\u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A_\u0432\u0442\u043E\u0440\u043D\u0438\u043A_\u0441\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440\u0433_\u043F\u044F\u0442\u043D\u0438\u0446\u0430_\u0441\u0443\u0431\u0431\u043E\u0442\u0430".split("_"),weekdaysShort:"\u0432\u0441\u043A_\u043F\u043D\u0434_\u0432\u0442\u0440_\u0441\u0440\u0434_\u0447\u0442\u0432_\u043F\u0442\u043D_\u0441\u0431\u0442".split("_"),weekdaysMin:"\u0432\u0441_\u043F\u043D_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043F\u0442_\u0441\u0431".split("_"),months:d,monthsShort:_,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0433.",LLL:"D MMMM YYYY \u0433., H:mm",LLLL:"dddd, D MMMM YYYY \u0433., H:mm"},relativeTime:{future:"\u0447\u0435\u0440\u0435\u0437 %s",past:"%s \u043D\u0430\u0437\u0430\u0434",s:"\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0435\u043A\u0443\u043D\u0434",m:o,mm:o,h:"\u0447\u0430\u0441",hh:o,d:"\u0434\u0435\u043D\u044C",dd:o,M:"\u043C\u0435\u0441\u044F\u0446",MM:o,y:"\u0433\u043E\u0434",yy:o},ordinal:function(l){return l},meridiem:function(l){return l<4?"\u043D\u043E\u0447\u0438":l<12?"\u0443\u0442\u0440\u0430":l<17?"\u0434\u043D\u044F":"\u0432\u0435\u0447\u0435\u0440\u0430"}};return s.default.locale(y,null,!0),y})});var di=k((Kt,Qt)=>{(function(n,t){typeof Kt=="object"&&typeof Qt<"u"?Qt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_sv=t(n.dayjs)})(Kt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"sv",weekdays:"s\xF6ndag_m\xE5ndag_tisdag_onsdag_torsdag_fredag_l\xF6rdag".split("_"),weekdaysShort:"s\xF6n_m\xE5n_tis_ons_tor_fre_l\xF6r".split("_"),weekdaysMin:"s\xF6_m\xE5_ti_on_to_fr_l\xF6".split("_"),months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekStart:1,yearStart:4,ordinal:function(e){var r=e%10;return"["+e+(r===1||r===2?"a":"e")+"]"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},relativeTime:{future:"om %s",past:"f\xF6r %s sedan",s:"n\xE5gra sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en m\xE5nad",MM:"%d m\xE5nader",y:"ett \xE5r",yy:"%d \xE5r"}};return s.default.locale(i,null,!0),i})});var _i=k((Xt,Bt)=>{(function(n,t){typeof Xt=="object"&&typeof Bt<"u"?Bt.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_th=t(n.dayjs)})(Xt,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"th",weekdays:"\u0E2D\u0E32\u0E17\u0E34\u0E15\u0E22\u0E4C_\u0E08\u0E31\u0E19\u0E17\u0E23\u0E4C_\u0E2D\u0E31\u0E07\u0E04\u0E32\u0E23_\u0E1E\u0E38\u0E18_\u0E1E\u0E24\u0E2B\u0E31\u0E2A\u0E1A\u0E14\u0E35_\u0E28\u0E38\u0E01\u0E23\u0E4C_\u0E40\u0E2A\u0E32\u0E23\u0E4C".split("_"),weekdaysShort:"\u0E2D\u0E32\u0E17\u0E34\u0E15\u0E22\u0E4C_\u0E08\u0E31\u0E19\u0E17\u0E23\u0E4C_\u0E2D\u0E31\u0E07\u0E04\u0E32\u0E23_\u0E1E\u0E38\u0E18_\u0E1E\u0E24\u0E2B\u0E31\u0E2A_\u0E28\u0E38\u0E01\u0E23\u0E4C_\u0E40\u0E2A\u0E32\u0E23\u0E4C".split("_"),weekdaysMin:"\u0E2D\u0E32._\u0E08._\u0E2D._\u0E1E._\u0E1E\u0E24._\u0E28._\u0E2A.".split("_"),months:"\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21_\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C_\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21_\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19_\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21_\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19_\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21_\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21_\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19_\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21_\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19_\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21".split("_"),monthsShort:"\u0E21.\u0E04._\u0E01.\u0E1E._\u0E21\u0E35.\u0E04._\u0E40\u0E21.\u0E22._\u0E1E.\u0E04._\u0E21\u0E34.\u0E22._\u0E01.\u0E04._\u0E2A.\u0E04._\u0E01.\u0E22._\u0E15.\u0E04._\u0E1E.\u0E22._\u0E18.\u0E04.".split("_"),formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY \u0E40\u0E27\u0E25\u0E32 H:mm",LLLL:"\u0E27\u0E31\u0E19dddd\u0E17\u0E35\u0E48 D MMMM YYYY \u0E40\u0E27\u0E25\u0E32 H:mm"},relativeTime:{future:"\u0E2D\u0E35\u0E01 %s",past:"%s\u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27",s:"\u0E44\u0E21\u0E48\u0E01\u0E35\u0E48\u0E27\u0E34\u0E19\u0E32\u0E17\u0E35",m:"1 \u0E19\u0E32\u0E17\u0E35",mm:"%d \u0E19\u0E32\u0E17\u0E35",h:"1 \u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07",hh:"%d \u0E0A\u0E31\u0E48\u0E27\u0E42\u0E21\u0E07",d:"1 \u0E27\u0E31\u0E19",dd:"%d \u0E27\u0E31\u0E19",M:"1 \u0E40\u0E14\u0E37\u0E2D\u0E19",MM:"%d \u0E40\u0E14\u0E37\u0E2D\u0E19",y:"1 \u0E1B\u0E35",yy:"%d \u0E1B\u0E35"},ordinal:function(e){return e+"."}};return s.default.locale(i,null,!0),i})});var fi=k((en,tn)=>{(function(n,t){typeof en=="object"&&typeof tn<"u"?tn.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_tr=t(n.dayjs)})(en,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"tr",weekdays:"Pazar_Pazartesi_Sal\u0131_\xC7ar\u015Famba_Per\u015Fembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_\xC7ar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_\xC7a_Pe_Cu_Ct".split("_"),months:"Ocak_\u015Eubat_Mart_Nisan_May\u0131s_Haziran_Temmuz_A\u011Fustos_Eyl\xFCl_Ekim_Kas\u0131m_Aral\u0131k".split("_"),monthsShort:"Oca_\u015Eub_Mar_Nis_May_Haz_Tem_A\u011Fu_Eyl_Eki_Kas_Ara".split("_"),weekStart:1,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},relativeTime:{future:"%s sonra",past:"%s \xF6nce",s:"birka\xE7 saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir g\xFCn",dd:"%d g\xFCn",M:"bir ay",MM:"%d ay",y:"bir y\u0131l",yy:"%d y\u0131l"},ordinal:function(e){return e+"."}};return s.default.locale(i,null,!0),i})});var li=k((nn,sn)=>{(function(n,t){typeof nn=="object"&&typeof sn<"u"?sn.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_uk=t(n.dayjs)})(nn,function(n){"use strict";function t(d){return d&&typeof d=="object"&&"default"in d?d:{default:d}}var s=t(n),i="\u0441\u0456\u0447\u043D\u044F_\u043B\u044E\u0442\u043E\u0433\u043E_\u0431\u0435\u0440\u0435\u0437\u043D\u044F_\u043A\u0432\u0456\u0442\u043D\u044F_\u0442\u0440\u0430\u0432\u043D\u044F_\u0447\u0435\u0440\u0432\u043D\u044F_\u043B\u0438\u043F\u043D\u044F_\u0441\u0435\u0440\u043F\u043D\u044F_\u0432\u0435\u0440\u0435\u0441\u043D\u044F_\u0436\u043E\u0432\u0442\u043D\u044F_\u043B\u0438\u0441\u0442\u043E\u043F\u0430\u0434\u0430_\u0433\u0440\u0443\u0434\u043D\u044F".split("_"),e="\u0441\u0456\u0447\u0435\u043D\u044C_\u043B\u044E\u0442\u0438\u0439_\u0431\u0435\u0440\u0435\u0437\u0435\u043D\u044C_\u043A\u0432\u0456\u0442\u0435\u043D\u044C_\u0442\u0440\u0430\u0432\u0435\u043D\u044C_\u0447\u0435\u0440\u0432\u0435\u043D\u044C_\u043B\u0438\u043F\u0435\u043D\u044C_\u0441\u0435\u0440\u043F\u0435\u043D\u044C_\u0432\u0435\u0440\u0435\u0441\u0435\u043D\u044C_\u0436\u043E\u0432\u0442\u0435\u043D\u044C_\u043B\u0438\u0441\u0442\u043E\u043F\u0430\u0434_\u0433\u0440\u0443\u0434\u0435\u043D\u044C".split("_"),r=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function a(d,_,y){var l,f;return y==="m"?_?"\u0445\u0432\u0438\u043B\u0438\u043D\u0430":"\u0445\u0432\u0438\u043B\u0438\u043D\u0443":y==="h"?_?"\u0433\u043E\u0434\u0438\u043D\u0430":"\u0433\u043E\u0434\u0438\u043D\u0443":d+" "+(l=+d,f={ss:_?"\u0441\u0435\u043A\u0443\u043D\u0434\u0430_\u0441\u0435\u043A\u0443\u043D\u0434\u0438_\u0441\u0435\u043A\u0443\u043D\u0434":"\u0441\u0435\u043A\u0443\u043D\u0434\u0443_\u0441\u0435\u043A\u0443\u043D\u0434\u0438_\u0441\u0435\u043A\u0443\u043D\u0434",mm:_?"\u0445\u0432\u0438\u043B\u0438\u043D\u0430_\u0445\u0432\u0438\u043B\u0438\u043D\u0438_\u0445\u0432\u0438\u043B\u0438\u043D":"\u0445\u0432\u0438\u043B\u0438\u043D\u0443_\u0445\u0432\u0438\u043B\u0438\u043D\u0438_\u0445\u0432\u0438\u043B\u0438\u043D",hh:_?"\u0433\u043E\u0434\u0438\u043D\u0430_\u0433\u043E\u0434\u0438\u043D\u0438_\u0433\u043E\u0434\u0438\u043D":"\u0433\u043E\u0434\u0438\u043D\u0443_\u0433\u043E\u0434\u0438\u043D\u0438_\u0433\u043E\u0434\u0438\u043D",dd:"\u0434\u0435\u043D\u044C_\u0434\u043D\u0456_\u0434\u043D\u0456\u0432",MM:"\u043C\u0456\u0441\u044F\u0446\u044C_\u043C\u0456\u0441\u044F\u0446\u0456_\u043C\u0456\u0441\u044F\u0446\u0456\u0432",yy:"\u0440\u0456\u043A_\u0440\u043E\u043A\u0438_\u0440\u043E\u043A\u0456\u0432"}[y].split("_"),l%10==1&&l%100!=11?f[0]:l%10>=2&&l%10<=4&&(l%100<10||l%100>=20)?f[1]:f[2])}var u=function(d,_){return r.test(_)?i[d.month()]:e[d.month()]};u.s=e,u.f=i;var o={name:"uk",weekdays:"\u043D\u0435\u0434\u0456\u043B\u044F_\u043F\u043E\u043D\u0435\u0434\u0456\u043B\u043E\u043A_\u0432\u0456\u0432\u0442\u043E\u0440\u043E\u043A_\u0441\u0435\u0440\u0435\u0434\u0430_\u0447\u0435\u0442\u0432\u0435\u0440_\u043F\u2019\u044F\u0442\u043D\u0438\u0446\u044F_\u0441\u0443\u0431\u043E\u0442\u0430".split("_"),weekdaysShort:"\u043D\u0434\u043B_\u043F\u043D\u0434_\u0432\u0442\u0440_\u0441\u0440\u0434_\u0447\u0442\u0432_\u043F\u0442\u043D_\u0441\u0431\u0442".split("_"),weekdaysMin:"\u043D\u0434_\u043F\u043D_\u0432\u0442_\u0441\u0440_\u0447\u0442_\u043F\u0442_\u0441\u0431".split("_"),months:u,monthsShort:"\u0441\u0456\u0447_\u043B\u044E\u0442_\u0431\u0435\u0440_\u043A\u0432\u0456\u0442_\u0442\u0440\u0430\u0432_\u0447\u0435\u0440\u0432_\u043B\u0438\u043F_\u0441\u0435\u0440\u043F_\u0432\u0435\u0440_\u0436\u043E\u0432\u0442_\u043B\u0438\u0441\u0442_\u0433\u0440\u0443\u0434".split("_"),weekStart:1,relativeTime:{future:"\u0437\u0430 %s",past:"%s \u0442\u043E\u043C\u0443",s:"\u0434\u0435\u043A\u0456\u043B\u044C\u043A\u0430 \u0441\u0435\u043A\u0443\u043D\u0434",m:a,mm:a,h:a,hh:a,d:"\u0434\u0435\u043D\u044C",dd:a,M:"\u043C\u0456\u0441\u044F\u0446\u044C",MM:a,y:"\u0440\u0456\u043A",yy:a},ordinal:function(d){return d},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY \u0440.",LLL:"D MMMM YYYY \u0440., HH:mm",LLLL:"dddd, D MMMM YYYY \u0440., HH:mm"}};return s.default.locale(o,null,!0),o})});var mi=k((rn,an)=>{(function(n,t){typeof rn=="object"&&typeof an<"u"?an.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_vi=t(n.dayjs)})(rn,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"vi",weekdays:"ch\u1EE7 nh\u1EADt_th\u1EE9 hai_th\u1EE9 ba_th\u1EE9 t\u01B0_th\u1EE9 n\u0103m_th\u1EE9 s\xE1u_th\u1EE9 b\u1EA3y".split("_"),months:"th\xE1ng 1_th\xE1ng 2_th\xE1ng 3_th\xE1ng 4_th\xE1ng 5_th\xE1ng 6_th\xE1ng 7_th\xE1ng 8_th\xE1ng 9_th\xE1ng 10_th\xE1ng 11_th\xE1ng 12".split("_"),weekStart:1,weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),ordinal:function(e){return e},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [n\u0103m] YYYY",LLL:"D MMMM [n\u0103m] YYYY HH:mm",LLLL:"dddd, D MMMM [n\u0103m] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},relativeTime:{future:"%s t\u1EDBi",past:"%s tr\u01B0\u1EDBc",s:"v\xE0i gi\xE2y",m:"m\u1ED9t ph\xFAt",mm:"%d ph\xFAt",h:"m\u1ED9t gi\u1EDD",hh:"%d gi\u1EDD",d:"m\u1ED9t ng\xE0y",dd:"%d ng\xE0y",M:"m\u1ED9t th\xE1ng",MM:"%d th\xE1ng",y:"m\u1ED9t n\u0103m",yy:"%d n\u0103m"}};return s.default.locale(i,null,!0),i})});var ci=k((un,on)=>{(function(n,t){typeof un=="object"&&typeof on<"u"?on.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_zh_cn=t(n.dayjs)})(un,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"zh-cn",weekdays:"\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),weekdaysShort:"\u5468\u65E5_\u5468\u4E00_\u5468\u4E8C_\u5468\u4E09_\u5468\u56DB_\u5468\u4E94_\u5468\u516D".split("_"),weekdaysMin:"\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),months:"\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,r){return r==="W"?e+"\u5468":e+"\u65E5"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5E74M\u6708D\u65E5",LLL:"YYYY\u5E74M\u6708D\u65E5Ah\u70B9mm\u5206",LLLL:"YYYY\u5E74M\u6708D\u65E5ddddAh\u70B9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5E74M\u6708D\u65E5",lll:"YYYY\u5E74M\u6708D\u65E5 HH:mm",llll:"YYYY\u5E74M\u6708D\u65E5dddd HH:mm"},relativeTime:{future:"%s\u5185",past:"%s\u524D",s:"\u51E0\u79D2",m:"1 \u5206\u949F",mm:"%d \u5206\u949F",h:"1 \u5C0F\u65F6",hh:"%d \u5C0F\u65F6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4E2A\u6708",MM:"%d \u4E2A\u6708",y:"1 \u5E74",yy:"%d \u5E74"},meridiem:function(e,r){var a=100*e+r;return a<600?"\u51CC\u6668":a<900?"\u65E9\u4E0A":a<1100?"\u4E0A\u5348":a<1300?"\u4E2D\u5348":a<1800?"\u4E0B\u5348":"\u665A\u4E0A"}};return s.default.locale(i,null,!0),i})});var hi=k((dn,_n)=>{(function(n,t){typeof dn=="object"&&typeof _n<"u"?_n.exports=t(j()):typeof define=="function"&&define.amd?define(["dayjs"],t):(n=typeof globalThis<"u"?globalThis:n||self).dayjs_locale_zh_tw=t(n.dayjs)})(dn,function(n){"use strict";function t(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var s=t(n),i={name:"zh-tw",weekdays:"\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),weekdaysShort:"\u9031\u65E5_\u9031\u4E00_\u9031\u4E8C_\u9031\u4E09_\u9031\u56DB_\u9031\u4E94_\u9031\u516D".split("_"),weekdaysMin:"\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),months:"\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(e,r){return r==="W"?e+"\u9031":e+"\u65E5"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5E74M\u6708D\u65E5",LLL:"YYYY\u5E74M\u6708D\u65E5 HH:mm",LLLL:"YYYY\u5E74M\u6708D\u65E5dddd HH:mm",l:"YYYY/M/D",ll:"YYYY\u5E74M\u6708D\u65E5",lll:"YYYY\u5E74M\u6708D\u65E5 HH:mm",llll:"YYYY\u5E74M\u6708D\u65E5dddd HH:mm"},relativeTime:{future:"%s\u5167",past:"%s\u524D",s:"\u5E7E\u79D2",m:"1 \u5206\u9418",mm:"%d \u5206\u9418",h:"1 \u5C0F\u6642",hh:"%d \u5C0F\u6642",d:"1 \u5929",dd:"%d \u5929",M:"1 \u500B\u6708",MM:"%d \u500B\u6708",y:"1 \u5E74",yy:"%d \u5E74"},meridiem:function(e,r){var a=100*e+r;return a<600?"\u51CC\u6668":a<900?"\u65E9\u4E0A":a<1100?"\u4E0A\u5348":a<1300?"\u4E2D\u5348":a<1800?"\u4E0B\u5348":"\u665A\u4E0A"}};return s.default.locale(i,null,!0),i})});var ln=60,mn=ln*60,cn=mn*24,ji=cn*7,ae=1e3,ce=ln*ae,ge=mn*ae,hn=cn*ae,Mn=ji*ae,_e="millisecond",te="second",ne="minute",ie="hour",V="day",oe="week",R="month",he="quarter",K="year",se="date",yn="YYYY-MM-DDTHH:mm:ssZ",Se="Invalid Date",Yn=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,pn=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;var Ln={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var s=["th","st","nd","rd"],i=t%100;return"["+t+(s[(i-20)%10]||s[i]||s[0])+"]"}};var be=function(t,s,i){var e=String(t);return!e||e.length>=s?t:""+Array(s+1-e.length).join(i)+t},Ti=function(t){var s=-t.utcOffset(),i=Math.abs(s),e=Math.floor(i/60),r=i%60;return(s<=0?"+":"-")+be(e,2,"0")+":"+be(r,2,"0")},wi=function n(t,s){if(t.date()1)return n(a[0])}else{var u=t.name;ue[u]=t,e=u}return!i&&e&&(fe=e),e||!i&&fe},F=function(t,s){if(ke(t))return t.clone();var i=typeof s=="object"?s:{};return i.date=t,i.args=arguments,new ye(i)},zi=function(t,s){return F(t,{locale:s.$L,utc:s.$u,x:s.$x,$offset:s.$offset})},z=vn;z.l=Me;z.i=ke;z.w=zi;var Ai=function(t){var s=t.date,i=t.utc;if(s===null)return new Date(NaN);if(z.u(s))return new Date;if(s instanceof Date)return new Date(s);if(typeof s=="string"&&!/Z$/i.test(s)){var e=s.match(Yn);if(e){var r=e[2]-1||0,a=(e[7]||"0").substring(0,3);return i?new Date(Date.UTC(e[1],r,e[3]||1,e[4]||0,e[5]||0,e[6]||0,a)):new Date(e[1],r,e[3]||1,e[4]||0,e[5]||0,e[6]||0,a)}}return new Date(s)},ye=function(){function n(s){this.$L=Me(s.locale,null,!0),this.parse(s),this.$x=this.$x||s.x||{},this[gn]=!0}var t=n.prototype;return t.parse=function(i){this.$d=Ai(i),this.init()},t.init=function(){var i=this.$d;this.$y=i.getFullYear(),this.$M=i.getMonth(),this.$D=i.getDate(),this.$W=i.getDay(),this.$H=i.getHours(),this.$m=i.getMinutes(),this.$s=i.getSeconds(),this.$ms=i.getMilliseconds()},t.$utils=function(){return z},t.isValid=function(){return this.$d.toString()!==Se},t.isSame=function(i,e){var r=F(i);return this.startOf(e)<=r&&r<=this.endOf(e)},t.isAfter=function(i,e){return F(i)this.togglePanelVisibility(this.$refs.button)),this.$watch("focusedMonth",()=>{this.focusedMonth=+this.focusedMonth,this.focusedDate.month()!==this.focusedMonth&&(this.focusedDate=this.focusedDate.month(this.focusedMonth))}),this.$watch("focusedYear",()=>{if(this.focusedYear?.length>4&&(this.focusedYear=this.focusedYear.substring(0,4)),!this.focusedYear||this.focusedYear?.length!==4)return;let o=+this.focusedYear;Number.isInteger(o)||(o=O().tz(a).year(),this.focusedYear=o),this.focusedDate.year()!==o&&(this.focusedDate=this.focusedDate.year(o))}),this.$watch("focusedDate",()=>{let o=this.focusedDate.month(),d=this.focusedDate.year();this.focusedMonth!==o&&(this.focusedMonth=o),this.focusedYear!==d&&(this.focusedYear=d),this.setupDaysGrid()}),this.$watch("hour",()=>{let o=+this.hour;if(Number.isInteger(o)?o>23?this.hour=0:o<0?this.hour=23:this.hour=o:this.hour=0,this.isClearingState)return;let d=this.getSelectedDate()??this.focusedDate;this.setState(d.hour(this.hour??0))}),this.$watch("minute",()=>{let o=+this.minute;if(Number.isInteger(o)?o>59?this.minute=0:o<0?this.minute=59:this.minute=o:this.minute=0,this.isClearingState)return;let d=this.getSelectedDate()??this.focusedDate;this.setState(d.minute(this.minute??0))}),this.$watch("second",()=>{let o=+this.second;if(Number.isInteger(o)?o>59?this.second=0:o<0?this.second=59:this.second=o:this.second=0,this.isClearingState)return;let d=this.getSelectedDate()??this.focusedDate;this.setState(d.second(this.second??0))}),this.$watch("state",()=>{if(this.state===void 0)return;let o=this.getSelectedDate();if(o===null){this.clearState();return}this.getMaxDate()!==null&&o?.isAfter(this.getMaxDate())&&(o=null),this.getMinDate()!==null&&o?.isBefore(this.getMinDate())&&(o=null);let d=o?.hour()??0;this.hour!==d&&(this.hour=d);let _=o?.minute()??0;this.minute!==_&&(this.minute=_);let y=o?.second()??0;this.second!==y&&(this.second=y),this.setDisplayText()})},clearState:function(){this.isClearingState=!0,this.setState(null),this.hour=0,this.minute=0,this.second=0,this.$nextTick(()=>this.isClearingState=!1)},dateIsDisabled:function(u){return!!(this.$refs?.disabledDates&&JSON.parse(this.$refs.disabledDates.value??[]).some(o=>(o=O(o),o.isValid()?o.isSame(u,"day"):!1))||this.getMaxDate()&&u.isAfter(this.getMaxDate(),"day")||this.getMinDate()&&u.isBefore(this.getMinDate(),"day"))},dayIsDisabled:function(u){return this.focusedDate??(this.focusedDate=O().tz(a)),this.dateIsDisabled(this.focusedDate.date(u))},dayIsSelected:function(u){let o=this.getSelectedDate();return o===null?!1:(this.focusedDate??(this.focusedDate=O().tz(a)),o.date()===u&&o.month()===this.focusedDate.month()&&o.year()===this.focusedDate.year())},dayIsToday:function(u){let o=O().tz(a);return this.focusedDate??(this.focusedDate=o),o.date()===u&&o.month()===this.focusedDate.month()&&o.year()===this.focusedDate.year()},focusPreviousDay:function(){this.focusedDate??(this.focusedDate=O().tz(a)),this.focusedDate=this.focusedDate.subtract(1,"day")},focusPreviousWeek:function(){this.focusedDate??(this.focusedDate=O().tz(a)),this.focusedDate=this.focusedDate.subtract(1,"week")},focusNextDay:function(){this.focusedDate??(this.focusedDate=O().tz(a)),this.focusedDate=this.focusedDate.add(1,"day")},focusNextWeek:function(){this.focusedDate??(this.focusedDate=O().tz(a)),this.focusedDate=this.focusedDate.add(1,"week")},getDayLabels:function(){let u=O.weekdaysShort();return t===0?u:[...u.slice(t),...u.slice(0,t)]},getMaxDate:function(){let u=O(this.$refs.maxDate?.value);return u.isValid()?u:null},getMinDate:function(){let u=O(this.$refs.minDate?.value);return u.isValid()?u:null},getSelectedDate:function(){if(this.state===void 0||this.state===null)return null;let u=O(this.state);return u.isValid()?u:null},togglePanelVisibility:function(){this.isOpen()||(this.focusedDate=this.getSelectedDate()??this.getMinDate()??O().tz(a),this.setupDaysGrid()),this.$refs.panel.toggle(this.$refs.button)},selectDate:function(u=null){u&&this.setFocusedDay(u),this.focusedDate??(this.focusedDate=O().tz(a)),this.setState(this.focusedDate),e&&this.togglePanelVisibility()},setDisplayText:function(){this.displayText=this.getSelectedDate()?this.getSelectedDate().format(n):""},setMonths:function(){this.months=O.months()},setDayLabels:function(){this.dayLabels=this.getDayLabels()},setupDaysGrid:function(){this.focusedDate??(this.focusedDate=O().tz(a)),this.emptyDaysInFocusedMonth=Array.from({length:this.focusedDate.date(8-t).day()},(u,o)=>o+1),this.daysInFocusedMonth=Array.from({length:this.focusedDate.daysInMonth()},(u,o)=>o+1)},setFocusedDay:function(u){this.focusedDate=(this.focusedDate??O().tz(a)).date(u)},setState:function(u){if(u===null){this.state=null,this.setDisplayText();return}this.dateIsDisabled(u)||(this.state=u.hour(this.hour??0).minute(this.minute??0).second(this.second??0).format("YYYY-MM-DD HH:mm:ss"),this.setDisplayText())},isOpen:function(){return this.$refs.panel?.style.display==="block"}}}var Mi={ar:wn(),bs:$n(),ca:Cn(),ckb:Pe(),cs:zn(),cy:An(),da:In(),de:qn(),en:xn(),es:Nn(),et:En(),fa:Fn(),fi:Jn(),fr:Wn(),hi:Un(),hu:Pn(),hy:Rn(),id:Gn(),it:Zn(),ja:Vn(),ka:Kn(),km:Qn(),ku:Pe(),lt:Xn(),lv:Bn(),ms:ei(),my:ti(),nl:ni(),no:ii(),pl:si(),pt_BR:ri(),pt_PT:ai(),ro:ui(),ru:oi(),sv:di(),th:_i(),tr:fi(),uk:li(),vi:mi(),zh_CN:ci(),zh_TW:hi()};export{Ii as default}; diff --git a/ems-sense/public/js/filament/forms/components/file-upload.js b/ems-sense/public/js/filament/forms/components/file-upload.js new file mode 100644 index 0000000..5343883 --- /dev/null +++ b/ems-sense/public/js/filament/forms/components/file-upload.js @@ -0,0 +1,123 @@ +var er=Object.defineProperty;var tr=(e,t)=>{for(var i in t)er(e,i,{get:t[i],enumerable:!0})};var oa={};tr(oa,{FileOrigin:()=>Ct,FileStatus:()=>bt,OptionTypes:()=>Ui,Status:()=>oo,create:()=>ft,destroy:()=>gt,find:()=>Hi,getOptions:()=>ji,parse:()=>Wi,registerPlugin:()=>Ie,setOptions:()=>Ft,supported:()=>Gi});var ir=e=>e instanceof HTMLElement,ar=(e,t=[],i=[])=>{let a={...e},n=[],o=[],l=()=>({...a}),r=()=>{let f=[...n];return n.length=0,f},s=()=>{let f=[...o];o.length=0,f.forEach(({type:g,data:h})=>{p(g,h)})},p=(f,g,h)=>{if(h&&!document.hidden){o.push({type:f,data:g});return}u[f]&&u[f](g),n.push({type:f,data:g})},c=(f,...g)=>m[f]?m[f](...g):null,d={getState:l,processActionQueue:r,processDispatchQueue:s,dispatch:p,query:c},m={};t.forEach(f=>{m={...f(a),...m}});let u={};return i.forEach(f=>{u={...f(p,c,a),...u}}),d},nr=(e,t,i)=>{if(typeof i=="function"){e[t]=i;return}Object.defineProperty(e,t,{...i})},te=(e,t)=>{for(let i in e)e.hasOwnProperty(i)&&t(i,e[i])},We=e=>{let t={};return te(e,i=>{nr(t,i,e[i])}),t},se=(e,t,i=null)=>{if(i===null)return e.getAttribute(t)||e.hasAttribute(t);e.setAttribute(t,i)},or="http://www.w3.org/2000/svg",lr=["svg","path"],Pa=e=>lr.includes(e),oi=(e,t,i={})=>{typeof t=="object"&&(i=t,t=null);let a=Pa(e)?document.createElementNS(or,e):document.createElement(e);return t&&(Pa(e)?se(a,"class",t):a.className=t),te(i,(n,o)=>{se(a,n,o)}),a},rr=e=>(t,i)=>{typeof i<"u"&&e.children[i]?e.insertBefore(t,e.children[i]):e.appendChild(t)},sr=(e,t)=>(i,a)=>(typeof a<"u"?t.splice(a,0,i):t.push(i),i),cr=(e,t)=>i=>(t.splice(t.indexOf(i),1),i.element.parentNode&&e.removeChild(i.element),i),dr=(()=>typeof window<"u"&&typeof window.document<"u")(),bn=()=>dr,pr=bn()?oi("svg"):{},mr="children"in pr?e=>e.children.length:e=>e.childNodes.length,Tn=(e,t,i,a)=>{let n=i[0]||e.left,o=i[1]||e.top,l=n+e.width,r=o+e.height*(a[1]||1),s={element:{...e},inner:{left:e.left,top:e.top,right:e.right,bottom:e.bottom},outer:{left:n,top:o,right:l,bottom:r}};return t.filter(p=>!p.isRectIgnored()).map(p=>p.rect).forEach(p=>{Da(s.inner,{...p.inner}),Da(s.outer,{...p.outer})}),Fa(s.inner),s.outer.bottom+=s.element.marginBottom,s.outer.right+=s.element.marginRight,Fa(s.outer),s},Da=(e,t)=>{t.top+=e.top,t.right+=e.left,t.bottom+=e.top,t.left+=e.left,t.bottom>e.bottom&&(e.bottom=t.bottom),t.right>e.right&&(e.right=t.right)},Fa=e=>{e.width=e.right-e.left,e.height=e.bottom-e.top},$e=e=>typeof e=="number",ur=(e,t,i,a=.001)=>Math.abs(e-t){let a=null,n=null,o=0,l=!1,p=We({interpolate:(c,d)=>{if(l)return;if(!($e(a)&&$e(n))){l=!0,o=0;return}let m=-(n-a)*e;o+=m/i,n+=o,o*=t,ur(n,a,o)||d?(n=a,o=0,l=!0,p.onupdate(n),p.oncomplete(n)):p.onupdate(n)},target:{set:c=>{if($e(c)&&!$e(n)&&(n=c),a===null&&(a=c,n=c),a=c,n===a||typeof a>"u"){l=!0,o=0,p.onupdate(n),p.oncomplete(n);return}l=!1},get:()=>a},resting:{get:()=>l},onupdate:c=>{},oncomplete:c=>{}});return p};var gr=e=>e<.5?2*e*e:-1+(4-2*e)*e,hr=({duration:e=500,easing:t=gr,delay:i=0}={})=>{let a=null,n,o,l=!0,r=!1,s=null,c=We({interpolate:(d,m)=>{l||s===null||(a===null&&(a=d),!(d-a=e||m?(n=1,o=r?0:1,c.onupdate(o*s),c.oncomplete(o*s),l=!0):(o=n/e,c.onupdate((n>=0?t(r?1-o:o):0)*s))))},target:{get:()=>r?0:s,set:d=>{if(s===null){s=d,c.onupdate(d),c.oncomplete(d);return}dl},onupdate:d=>{},oncomplete:d=>{}});return c},za={spring:fr,tween:hr},Er=(e,t,i)=>{let a=e[t]&&typeof e[t][i]=="object"?e[t][i]:e[t]||e,n=typeof a=="string"?a:a.type,o=typeof a=="object"?{...a}:{};return za[n]?za[n](o):null},Yi=(e,t,i,a=!1)=>{t=Array.isArray(t)?t:[t],t.forEach(n=>{e.forEach(o=>{let l=o,r=()=>i[o],s=p=>i[o]=p;typeof o=="object"&&(l=o.key,r=o.getter||r,s=o.setter||s),!(n[l]&&!a)&&(n[l]={get:r,set:s})})})},br=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a})=>{let n={...t},o=[];return te(e,(l,r)=>{let s=Er(r);if(!s)return;s.onupdate=c=>{t[l]=c},s.target=n[l],Yi([{key:l,setter:c=>{s.target!==c&&(s.target=c)},getter:()=>t[l]}],[i,a],t,!0),o.push(s)}),{write:l=>{let r=document.hidden,s=!0;return o.forEach(p=>{p.resting||(s=!1),p.interpolate(l,r)}),s},destroy:()=>{}}},Tr=e=>(t,i)=>{e.addEventListener(t,i)},vr=e=>(t,i)=>{e.removeEventListener(t,i)},Ir=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a,viewState:n,view:o})=>{let l=[],r=Tr(o.element),s=vr(o.element);return a.on=(p,c)=>{l.push({type:p,fn:c}),r(p,c)},a.off=(p,c)=>{l.splice(l.findIndex(d=>d.type===p&&d.fn===c),1),s(p,c)},{write:()=>!0,destroy:()=>{l.forEach(p=>{s(p.type,p.fn)})}}},xr=({mixinConfig:e,viewProps:t,viewExternalAPI:i})=>{Yi(e,i,t)},ue=e=>e!=null,yr={opacity:1,scaleX:1,scaleY:1,translateX:0,translateY:0,rotateX:0,rotateY:0,rotateZ:0,originX:0,originY:0},_r=({mixinConfig:e,viewProps:t,viewInternalAPI:i,viewExternalAPI:a,view:n})=>{let o={...t},l={};Yi(e,[i,a],t);let r=()=>[t.translateX||0,t.translateY||0],s=()=>[t.scaleX||0,t.scaleY||0],p=()=>n.rect?Tn(n.rect,n.childViews,r(),s()):null;return i.rect={get:p},a.rect={get:p},e.forEach(c=>{t[c]=typeof o[c]>"u"?yr[c]:o[c]}),{write:()=>{if(Rr(l,t))return wr(n.element,t),Object.assign(l,{...t}),!0},destroy:()=>{}}},Rr=(e,t)=>{if(Object.keys(e).length!==Object.keys(t).length)return!0;for(let i in t)if(t[i]!==e[i])return!0;return!1},wr=(e,{opacity:t,perspective:i,translateX:a,translateY:n,scaleX:o,scaleY:l,rotateX:r,rotateY:s,rotateZ:p,originX:c,originY:d,width:m,height:u})=>{let f="",g="";(ue(c)||ue(d))&&(g+=`transform-origin: ${c||0}px ${d||0}px;`),ue(i)&&(f+=`perspective(${i}px) `),(ue(a)||ue(n))&&(f+=`translate3d(${a||0}px, ${n||0}px, 0) `),(ue(o)||ue(l))&&(f+=`scale3d(${ue(o)?o:1}, ${ue(l)?l:1}, 1) `),ue(p)&&(f+=`rotateZ(${p}rad) `),ue(r)&&(f+=`rotateX(${r}rad) `),ue(s)&&(f+=`rotateY(${s}rad) `),f.length&&(g+=`transform:${f};`),ue(t)&&(g+=`opacity:${t};`,t===0&&(g+="visibility:hidden;"),t<1&&(g+="pointer-events:none;")),ue(u)&&(g+=`height:${u}px;`),ue(m)&&(g+=`width:${m}px;`);let h=e.elementCurrentStyle||"";(g.length!==h.length||g!==h)&&(e.style.cssText=g,e.elementCurrentStyle=g)},Sr={styles:_r,listeners:Ir,animations:br,apis:xr},Ca=(e={},t={},i={})=>(t.layoutCalculated||(e.paddingTop=parseInt(i.paddingTop,10)||0,e.marginTop=parseInt(i.marginTop,10)||0,e.marginRight=parseInt(i.marginRight,10)||0,e.marginBottom=parseInt(i.marginBottom,10)||0,e.marginLeft=parseInt(i.marginLeft,10)||0,t.layoutCalculated=!0),e.left=t.offsetLeft||0,e.top=t.offsetTop||0,e.width=t.offsetWidth||0,e.height=t.offsetHeight||0,e.right=e.left+e.width,e.bottom=e.top+e.height,e.scrollTop=t.scrollTop,e.hidden=t.offsetParent===null,e),ne=({tag:e="div",name:t=null,attributes:i={},read:a=()=>{},write:n=()=>{},create:o=()=>{},destroy:l=()=>{},filterFrameActionsForChild:r=(u,f)=>f,didCreateView:s=()=>{},didWriteView:p=()=>{},ignoreRect:c=!1,ignoreRectUpdate:d=!1,mixins:m=[]}={})=>(u,f={})=>{let g=oi(e,`filepond--${t}`,i),h=window.getComputedStyle(g,null),v=Ca(),E=null,T=!1,I=[],y=[],b={},w={},x=[n],_=[a],P=[l],O=()=>g,M=()=>I.concat(),N=()=>b,S=k=>(H,Y)=>H(k,Y),D=()=>E||(E=Tn(v,I,[0,0],[1,1]),E),R=()=>h,L=()=>{E=null,I.forEach(Y=>Y._read()),!(d&&v.width&&v.height)&&Ca(v,g,h);let H={root:$,props:f,rect:v};_.forEach(Y=>Y(H))},z=(k,H,Y)=>{let le=H.length===0;return x.forEach(ee=>{ee({props:f,root:$,actions:H,timestamp:k,shouldOptimize:Y})===!1&&(le=!1)}),y.forEach(ee=>{ee.write(k)===!1&&(le=!1)}),I.filter(ee=>!!ee.element.parentNode).forEach(ee=>{ee._write(k,r(ee,H),Y)||(le=!1)}),I.forEach((ee,dt)=>{ee.element.parentNode||($.appendChild(ee.element,dt),ee._read(),ee._write(k,r(ee,H),Y),le=!1)}),T=le,p({props:f,root:$,actions:H,timestamp:k}),le},F=()=>{y.forEach(k=>k.destroy()),P.forEach(k=>{k({root:$,props:f})}),I.forEach(k=>k._destroy())},G={element:{get:O},style:{get:R},childViews:{get:M}},C={...G,rect:{get:D},ref:{get:N},is:k=>t===k,appendChild:rr(g),createChildView:S(u),linkView:k=>(I.push(k),k),unlinkView:k=>{I.splice(I.indexOf(k),1)},appendChildView:sr(g,I),removeChildView:cr(g,I),registerWriter:k=>x.push(k),registerReader:k=>_.push(k),registerDestroyer:k=>P.push(k),invalidateLayout:()=>g.layoutCalculated=!1,dispatch:u.dispatch,query:u.query},q={element:{get:O},childViews:{get:M},rect:{get:D},resting:{get:()=>T},isRectIgnored:()=>c,_read:L,_write:z,_destroy:F},Q={...G,rect:{get:()=>v}};Object.keys(m).sort((k,H)=>k==="styles"?1:H==="styles"?-1:0).forEach(k=>{let H=Sr[k]({mixinConfig:m[k],viewProps:f,viewState:w,viewInternalAPI:C,viewExternalAPI:q,view:We(Q)});H&&y.push(H)});let $=We(C);o({root:$,props:f});let pe=mr(g);return I.forEach((k,H)=>{$.appendChild(k.element,pe+H)}),s($),We(q)},Lr=(e,t,i=60)=>{let a="__framePainter";if(window[a]){window[a].readers.push(e),window[a].writers.push(t);return}window[a]={readers:[e],writers:[t]};let n=window[a],o=1e3/i,l=null,r=null,s=null,p=null,c=()=>{document.hidden?(s=()=>window.setTimeout(()=>d(performance.now()),o),p=()=>window.clearTimeout(r)):(s=()=>window.requestAnimationFrame(d),p=()=>window.cancelAnimationFrame(r))};document.addEventListener("visibilitychange",()=>{p&&p(),c(),d(performance.now())});let d=m=>{r=s(d),l||(l=m);let u=m-l;u<=o||(l=m-u%o,n.readers.forEach(f=>f()),n.writers.forEach(f=>f(m)))};return c(),d(performance.now()),{pause:()=>{p(r)}}},ge=(e,t)=>({root:i,props:a,actions:n=[],timestamp:o,shouldOptimize:l})=>{n.filter(r=>e[r.type]).forEach(r=>e[r.type]({root:i,props:a,action:r.data,timestamp:o,shouldOptimize:l})),t&&t({root:i,props:a,actions:n,timestamp:o,shouldOptimize:l})},Na=(e,t)=>t.parentNode.insertBefore(e,t),Ba=(e,t)=>t.parentNode.insertBefore(e,t.nextSibling),ci=e=>Array.isArray(e),Be=e=>e==null,Ar=e=>e.trim(),di=e=>""+e,Mr=(e,t=",")=>Be(e)?[]:ci(e)?e:di(e).split(t).map(Ar).filter(i=>i.length),vn=e=>typeof e=="boolean",In=e=>vn(e)?e:e==="true",fe=e=>typeof e=="string",xn=e=>$e(e)?e:fe(e)?di(e).replace(/[a-z]+/gi,""):0,ni=e=>parseInt(xn(e),10),ka=e=>parseFloat(xn(e)),Et=e=>$e(e)&&isFinite(e)&&Math.floor(e)===e,Va=(e,t=1e3)=>{if(Et(e))return e;let i=di(e).trim();return/MB$/i.test(i)?(i=i.replace(/MB$i/,"").trim(),ni(i)*t*t):/KB/i.test(i)?(i=i.replace(/KB$i/,"").trim(),ni(i)*t):ni(i)},Xe=e=>typeof e=="function",Or=e=>{let t=self,i=e.split("."),a=null;for(;a=i.shift();)if(t=t[a],!t)return null;return t},Ga={process:"POST",patch:"PATCH",revert:"DELETE",fetch:"GET",restore:"GET",load:"GET"},Pr=e=>{let t={};return t.url=fe(e)?e:e.url||"",t.timeout=e.timeout?parseInt(e.timeout,10):0,t.headers=e.headers?e.headers:{},te(Ga,i=>{t[i]=Dr(i,e[i],Ga[i],t.timeout,t.headers)}),t.process=e.process||fe(e)||e.url?t.process:null,t.remove=e.remove||null,delete t.headers,t},Dr=(e,t,i,a,n)=>{if(t===null)return null;if(typeof t=="function")return t;let o={url:i==="GET"||i==="PATCH"?`?${e}=`:"",method:i,headers:n,withCredentials:!1,timeout:a,onload:null,ondata:null,onerror:null};if(fe(t))return o.url=t,o;if(Object.assign(o,t),fe(o.headers)){let l=o.headers.split(/:(.+)/);o.headers={header:l[0],value:l[1]}}return o.withCredentials=In(o.withCredentials),o},Fr=e=>Pr(e),zr=e=>e===null,ce=e=>typeof e=="object"&&e!==null,Cr=e=>ce(e)&&fe(e.url)&&ce(e.process)&&ce(e.revert)&&ce(e.restore)&&ce(e.fetch),Di=e=>ci(e)?"array":zr(e)?"null":Et(e)?"int":/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(e)?"bytes":Cr(e)?"api":typeof e,Nr=e=>e.replace(/{\s*'/g,'{"').replace(/'\s*}/g,'"}').replace(/'\s*:/g,'":').replace(/:\s*'/g,':"').replace(/,\s*'/g,',"').replace(/'\s*,/g,'",'),Br={array:Mr,boolean:In,int:e=>Di(e)==="bytes"?Va(e):ni(e),number:ka,float:ka,bytes:Va,string:e=>Xe(e)?e:di(e),function:e=>Or(e),serverapi:Fr,object:e=>{try{return JSON.parse(Nr(e))}catch{return null}}},kr=(e,t)=>Br[t](e),yn=(e,t,i)=>{if(e===t)return e;let a=Di(e);if(a!==i){let n=kr(e,i);if(a=Di(n),n===null)throw`Trying to assign value with incorrect type to "${option}", allowed type: "${i}"`;e=n}return e},Vr=(e,t)=>{let i=e;return{enumerable:!0,get:()=>i,set:a=>{i=yn(a,e,t)}}},Gr=e=>{let t={};return te(e,i=>{let a=e[i];t[i]=Vr(a[0],a[1])}),We(t)},Ur=e=>({items:[],listUpdateTimeout:null,itemUpdateTimeout:null,processingQueue:[],options:Gr(e)}),pi=(e,t="-")=>e.split(/(?=[A-Z])/).map(i=>i.toLowerCase()).join(t),Wr=(e,t)=>{let i={};return te(t,a=>{i[a]={get:()=>e.getState().options[a],set:n=>{e.dispatch(`SET_${pi(a,"_").toUpperCase()}`,{value:n})}}}),i},Hr=e=>(t,i,a)=>{let n={};return te(e,o=>{let l=pi(o,"_").toUpperCase();n[`SET_${l}`]=r=>{try{a.options[o]=r.value}catch{}t(`DID_SET_${l}`,{value:a.options[o]})}}),n},jr=e=>t=>{let i={};return te(e,a=>{i[`GET_${pi(a,"_").toUpperCase()}`]=n=>t.options[a]}),i},_e={API:1,DROP:2,BROWSE:3,PASTE:4,NONE:5},qi=()=>Math.random().toString(36).substring(2,11),$i=(e,t)=>e.splice(t,1),Yr=(e,t)=>{t?e():document.hidden?Promise.resolve(1).then(e):setTimeout(e,0)},mi=()=>{let e=[],t=(a,n)=>{$i(e,e.findIndex(o=>o.event===a&&(o.cb===n||!n)))},i=(a,n,o)=>{e.filter(l=>l.event===a).map(l=>l.cb).forEach(l=>Yr(()=>l(...n),o))};return{fireSync:(a,...n)=>{i(a,n,!0)},fire:(a,...n)=>{i(a,n,!1)},on:(a,n)=>{e.push({event:a,cb:n})},onOnce:(a,n)=>{e.push({event:a,cb:(...o)=>{t(a,n),n(...o)}})},off:t}},_n=(e,t,i)=>{Object.getOwnPropertyNames(e).filter(a=>!i.includes(a)).forEach(a=>Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(e,a)))},qr=["fire","process","revert","load","on","off","onOnce","retryLoad","extend","archive","archived","release","released","requestProcessing","freeze"],he=e=>{let t={};return _n(e,t,qr),t},$r=e=>{e.forEach((t,i)=>{t.released&&$i(e,i)})},W={INIT:1,IDLE:2,PROCESSING_QUEUED:9,PROCESSING:3,PROCESSING_COMPLETE:5,PROCESSING_ERROR:6,PROCESSING_REVERT_ERROR:10,LOADING:7,LOAD_ERROR:8},re={INPUT:1,LIMBO:2,LOCAL:3},Rn=e=>/[^0-9]+/.exec(e),wn=()=>Rn(1.1.toLocaleString())[0],Xr=()=>{let e=wn(),t=1e3.toLocaleString(),i=1e3.toString();return t!==i?Rn(t)[0]:e==="."?",":"."},A={BOOLEAN:"boolean",INT:"int",NUMBER:"number",STRING:"string",ARRAY:"array",OBJECT:"object",FUNCTION:"function",ACTION:"action",SERVER_API:"serverapi",REGEX:"regex"},Xi=[],Ae=(e,t,i)=>new Promise((a,n)=>{let o=Xi.filter(r=>r.key===e).map(r=>r.cb);if(o.length===0){a(t);return}let l=o.shift();o.reduce((r,s)=>r.then(p=>s(p,i)),l(t,i)).then(r=>a(r)).catch(r=>n(r))}),tt=(e,t,i)=>Xi.filter(a=>a.key===e).map(a=>a.cb(t,i)),Qr=(e,t)=>Xi.push({key:e,cb:t}),Zr=e=>Object.assign(pt,e),li=()=>({...pt}),Kr=e=>{te(e,(t,i)=>{pt[t]&&(pt[t][0]=yn(i,pt[t][0],pt[t][1]))})},pt={id:[null,A.STRING],name:["filepond",A.STRING],disabled:[!1,A.BOOLEAN],className:[null,A.STRING],required:[!1,A.BOOLEAN],captureMethod:[null,A.STRING],allowSyncAcceptAttribute:[!0,A.BOOLEAN],allowDrop:[!0,A.BOOLEAN],allowBrowse:[!0,A.BOOLEAN],allowPaste:[!0,A.BOOLEAN],allowMultiple:[!1,A.BOOLEAN],allowReplace:[!0,A.BOOLEAN],allowRevert:[!0,A.BOOLEAN],allowRemove:[!0,A.BOOLEAN],allowProcess:[!0,A.BOOLEAN],allowReorder:[!1,A.BOOLEAN],allowDirectoriesOnly:[!1,A.BOOLEAN],storeAsFile:[!1,A.BOOLEAN],forceRevert:[!1,A.BOOLEAN],maxFiles:[null,A.INT],checkValidity:[!1,A.BOOLEAN],itemInsertLocationFreedom:[!0,A.BOOLEAN],itemInsertLocation:["before",A.STRING],itemInsertInterval:[75,A.INT],dropOnPage:[!1,A.BOOLEAN],dropOnElement:[!0,A.BOOLEAN],dropValidation:[!1,A.BOOLEAN],ignoredFiles:[[".ds_store","thumbs.db","desktop.ini"],A.ARRAY],instantUpload:[!0,A.BOOLEAN],maxParallelUploads:[2,A.INT],allowMinimumUploadDuration:[!0,A.BOOLEAN],chunkUploads:[!1,A.BOOLEAN],chunkForce:[!1,A.BOOLEAN],chunkSize:[5e6,A.INT],chunkRetryDelays:[[500,1e3,3e3],A.ARRAY],server:[null,A.SERVER_API],fileSizeBase:[1e3,A.INT],labelFileSizeBytes:["bytes",A.STRING],labelFileSizeKilobytes:["KB",A.STRING],labelFileSizeMegabytes:["MB",A.STRING],labelFileSizeGigabytes:["GB",A.STRING],labelDecimalSeparator:[wn(),A.STRING],labelThousandsSeparator:[Xr(),A.STRING],labelIdle:['Drag & Drop your files or Browse',A.STRING],labelInvalidField:["Field contains invalid files",A.STRING],labelFileWaitingForSize:["Waiting for size",A.STRING],labelFileSizeNotAvailable:["Size not available",A.STRING],labelFileCountSingular:["file in list",A.STRING],labelFileCountPlural:["files in list",A.STRING],labelFileLoading:["Loading",A.STRING],labelFileAdded:["Added",A.STRING],labelFileLoadError:["Error during load",A.STRING],labelFileRemoved:["Removed",A.STRING],labelFileRemoveError:["Error during remove",A.STRING],labelFileProcessing:["Uploading",A.STRING],labelFileProcessingComplete:["Upload complete",A.STRING],labelFileProcessingAborted:["Upload cancelled",A.STRING],labelFileProcessingError:["Error during upload",A.STRING],labelFileProcessingRevertError:["Error during revert",A.STRING],labelTapToCancel:["tap to cancel",A.STRING],labelTapToRetry:["tap to retry",A.STRING],labelTapToUndo:["tap to undo",A.STRING],labelButtonRemoveItem:["Remove",A.STRING],labelButtonAbortItemLoad:["Abort",A.STRING],labelButtonRetryItemLoad:["Retry",A.STRING],labelButtonAbortItemProcessing:["Cancel",A.STRING],labelButtonUndoItemProcessing:["Undo",A.STRING],labelButtonRetryItemProcessing:["Retry",A.STRING],labelButtonProcessItem:["Upload",A.STRING],iconRemove:['',A.STRING],iconProcess:['',A.STRING],iconRetry:['',A.STRING],iconUndo:['',A.STRING],iconDone:['',A.STRING],oninit:[null,A.FUNCTION],onwarning:[null,A.FUNCTION],onerror:[null,A.FUNCTION],onactivatefile:[null,A.FUNCTION],oninitfile:[null,A.FUNCTION],onaddfilestart:[null,A.FUNCTION],onaddfileprogress:[null,A.FUNCTION],onaddfile:[null,A.FUNCTION],onprocessfilestart:[null,A.FUNCTION],onprocessfileprogress:[null,A.FUNCTION],onprocessfileabort:[null,A.FUNCTION],onprocessfilerevert:[null,A.FUNCTION],onprocessfile:[null,A.FUNCTION],onprocessfiles:[null,A.FUNCTION],onremovefile:[null,A.FUNCTION],onpreparefile:[null,A.FUNCTION],onupdatefiles:[null,A.FUNCTION],onreorderfiles:[null,A.FUNCTION],beforeDropFile:[null,A.FUNCTION],beforeAddFile:[null,A.FUNCTION],beforeRemoveFile:[null,A.FUNCTION],beforePrepareFile:[null,A.FUNCTION],stylePanelLayout:[null,A.STRING],stylePanelAspectRatio:[null,A.STRING],styleItemPanelAspectRatio:[null,A.STRING],styleButtonRemoveItemPosition:["left",A.STRING],styleButtonProcessItemPosition:["right",A.STRING],styleLoadIndicatorPosition:["right",A.STRING],styleProgressIndicatorPosition:["right",A.STRING],styleButtonRemoveItemAlign:[!1,A.BOOLEAN],files:[[],A.ARRAY],credits:[["https://pqina.nl/","Powered by PQINA"],A.ARRAY]},Qe=(e,t)=>Be(t)?e[0]||null:Et(t)?e[t]||null:(typeof t=="object"&&(t=t.id),e.find(i=>i.id===t)||null),Sn=e=>{if(Be(e))return e;if(/:/.test(e)){let t=e.split(":");return t[1]/t[0]}return parseFloat(e)},Me=e=>e.filter(t=>!t.archived),Ln={EMPTY:0,IDLE:1,ERROR:2,BUSY:3,READY:4},Kt=null,Jr=()=>{if(Kt===null)try{let e=new DataTransfer;e.items.add(new File(["hello world"],"This_Works.txt"));let t=document.createElement("input");t.setAttribute("type","file"),t.files=e.files,Kt=t.files.length===1}catch{Kt=!1}return Kt},es=[W.LOAD_ERROR,W.PROCESSING_ERROR,W.PROCESSING_REVERT_ERROR],ts=[W.LOADING,W.PROCESSING,W.PROCESSING_QUEUED,W.INIT],is=[W.PROCESSING_COMPLETE],as=e=>es.includes(e.status),ns=e=>ts.includes(e.status),os=e=>is.includes(e.status),Ua=e=>ce(e.options.server)&&(ce(e.options.server.process)||Xe(e.options.server.process)),ls=e=>({GET_STATUS:()=>{let t=Me(e.items),{EMPTY:i,ERROR:a,BUSY:n,IDLE:o,READY:l}=Ln;return t.length===0?i:t.some(as)?a:t.some(ns)?n:t.some(os)?l:o},GET_ITEM:t=>Qe(e.items,t),GET_ACTIVE_ITEM:t=>Qe(Me(e.items),t),GET_ACTIVE_ITEMS:()=>Me(e.items),GET_ITEMS:()=>e.items,GET_ITEM_NAME:t=>{let i=Qe(e.items,t);return i?i.filename:null},GET_ITEM_SIZE:t=>{let i=Qe(e.items,t);return i?i.fileSize:null},GET_STYLES:()=>Object.keys(e.options).filter(t=>/^style/.test(t)).map(t=>({name:t,value:e.options[t]})),GET_PANEL_ASPECT_RATIO:()=>/circle/.test(e.options.stylePanelLayout)?1:Sn(e.options.stylePanelAspectRatio),GET_ITEM_PANEL_ASPECT_RATIO:()=>e.options.styleItemPanelAspectRatio,GET_ITEMS_BY_STATUS:t=>Me(e.items).filter(i=>i.status===t),GET_TOTAL_ITEMS:()=>Me(e.items).length,SHOULD_UPDATE_FILE_INPUT:()=>e.options.storeAsFile&&Jr()&&!Ua(e),IS_ASYNC:()=>Ua(e),GET_FILE_SIZE_LABELS:t=>({labelBytes:t("GET_LABEL_FILE_SIZE_BYTES")||void 0,labelKilobytes:t("GET_LABEL_FILE_SIZE_KILOBYTES")||void 0,labelMegabytes:t("GET_LABEL_FILE_SIZE_MEGABYTES")||void 0,labelGigabytes:t("GET_LABEL_FILE_SIZE_GIGABYTES")||void 0})}),rs=e=>{let t=Me(e.items).length;if(!e.options.allowMultiple)return t===0;let i=e.options.maxFiles;return i===null||tMath.max(Math.min(i,e),t),ss=(e,t,i)=>e.splice(t,0,i),cs=(e,t,i)=>Be(t)?null:typeof i>"u"?(e.push(t),t):(i=An(i,0,e.length),ss(e,i,t),t),Fi=e=>/^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i.test(e),zt=e=>`${e}`.split("/").pop().split("?").shift(),ui=e=>e.split(".").pop(),ds=e=>{if(typeof e!="string")return"";let t=e.split("/").pop();return/svg/.test(t)?"svg":/zip|compressed/.test(t)?"zip":/plain/.test(t)?"txt":/msword/.test(t)?"doc":/[a-z]+/.test(t)?t==="jpeg"?"jpg":t:""},Mt=(e,t="")=>(t+e).slice(-t.length),Mn=(e=new Date)=>`${e.getFullYear()}-${Mt(e.getMonth()+1,"00")}-${Mt(e.getDate(),"00")}_${Mt(e.getHours(),"00")}-${Mt(e.getMinutes(),"00")}-${Mt(e.getSeconds(),"00")}`,ht=(e,t,i=null,a=null)=>{let n=typeof i=="string"?e.slice(0,e.size,i):e.slice(0,e.size,e.type);return n.lastModifiedDate=new Date,e._relativePath&&(n._relativePath=e._relativePath),fe(t)||(t=Mn()),t&&a===null&&ui(t)?n.name=t:(a=a||ds(n.type),n.name=t+(a?"."+a:"")),n},ps=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,On=(e,t)=>{let i=ps();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},ms=(e,t)=>{let i=new ArrayBuffer(e.length),a=new Uint8Array(i);for(let n=0;n(/^data:(.+);/.exec(e)||[])[1]||null,us=e=>e.split(",")[1].replace(/\s/g,""),fs=e=>atob(us(e)),gs=e=>{let t=Pn(e),i=fs(e);return ms(i,t)},hs=(e,t,i)=>ht(gs(e),t,null,i),Es=e=>{if(!/^content-disposition:/i.test(e))return null;let t=e.split(/filename=|filename\*=.+''/).splice(1).map(i=>i.trim().replace(/^["']|[;"']{0,2}$/g,"")).filter(i=>i.length);return t.length?decodeURI(t[t.length-1]):null},bs=e=>{if(/content-length:/i.test(e)){let t=e.match(/[0-9]+/)[0];return t?parseInt(t,10):null}return null},Ts=e=>/x-content-transfer-id:/i.test(e)&&(e.split(":")[1]||"").trim()||null,Qi=e=>{let t={source:null,name:null,size:null},i=e.split(` +`);for(let a of i){let n=Es(a);if(n){t.name=n;continue}let o=bs(a);if(o){t.size=o;continue}let l=Ts(a);if(l){t.source=l;continue}}return t},vs=e=>{let t={source:null,complete:!1,progress:0,size:null,timestamp:null,duration:0,request:null},i=()=>t.progress,a=()=>{t.request&&t.request.abort&&t.request.abort()},n=()=>{let r=t.source;l.fire("init",r),r instanceof File?l.fire("load",r):r instanceof Blob?l.fire("load",ht(r,r.name)):Fi(r)?l.fire("load",hs(r)):o(r)},o=r=>{if(!e){l.fire("error",{type:"error",body:"Can't load URL",code:400});return}t.timestamp=Date.now(),t.request=e(r,s=>{t.duration=Date.now()-t.timestamp,t.complete=!0,s instanceof Blob&&(s=ht(s,s.name||zt(r))),l.fire("load",s instanceof Blob?s:s?s.body:null)},s=>{l.fire("error",typeof s=="string"?{type:"error",code:0,body:s}:s)},(s,p,c)=>{if(c&&(t.size=c),t.duration=Date.now()-t.timestamp,!s){t.progress=null;return}t.progress=p/c,l.fire("progress",t.progress)},()=>{l.fire("abort")},s=>{let p=Qi(typeof s=="string"?s:s.headers);l.fire("meta",{size:t.size||p.size,filename:p.name,source:p.source})})},l={...mi(),setSource:r=>t.source=r,getProgress:i,abort:a,load:n};return l},Wa=e=>/GET|HEAD/.test(e),Ze=(e,t,i)=>{let a={onheaders:()=>{},onprogress:()=>{},onload:()=>{},ontimeout:()=>{},onerror:()=>{},onabort:()=>{},abort:()=>{n=!0,l.abort()}},n=!1,o=!1;i={method:"POST",headers:{},withCredentials:!1,...i},t=encodeURI(t),Wa(i.method)&&e&&(t=`${t}${encodeURIComponent(typeof e=="string"?e:JSON.stringify(e))}`);let l=new XMLHttpRequest,r=Wa(i.method)?l:l.upload;return r.onprogress=s=>{n||a.onprogress(s.lengthComputable,s.loaded,s.total)},l.onreadystatechange=()=>{l.readyState<2||l.readyState===4&&l.status===0||o||(o=!0,a.onheaders(l))},l.onload=()=>{l.status>=200&&l.status<300?a.onload(l):a.onerror(l)},l.onerror=()=>a.onerror(l),l.onabort=()=>{n=!0,a.onabort()},l.ontimeout=()=>a.ontimeout(l),l.open(i.method,t,!0),Et(i.timeout)&&(l.timeout=i.timeout),Object.keys(i.headers).forEach(s=>{let p=unescape(encodeURIComponent(i.headers[s]));l.setRequestHeader(s,p)}),i.responseType&&(l.responseType=i.responseType),i.withCredentials&&(l.withCredentials=!0),l.send(e),a},ie=(e,t,i,a)=>({type:e,code:t,body:i,headers:a}),Ke=e=>t=>{e(ie("error",0,"Timeout",t.getAllResponseHeaders()))},Ha=e=>/\?/.test(e),Dt=(...e)=>{let t="";return e.forEach(i=>{t+=Ha(t)&&Ha(i)?i.replace(/\?/,"&"):i}),t},Si=(e="",t)=>{if(typeof t=="function")return t;if(!t||!fe(t.url))return null;let i=t.onload||(n=>n),a=t.onerror||(n=>null);return(n,o,l,r,s,p)=>{let c=Ze(n,Dt(e,t.url),{...t,responseType:"blob"});return c.onload=d=>{let m=d.getAllResponseHeaders(),u=Qi(m).name||zt(n);o(ie("load",d.status,t.method==="HEAD"?null:ht(i(d.response),u),m))},c.onerror=d=>{l(ie("error",d.status,a(d.response)||d.statusText,d.getAllResponseHeaders()))},c.onheaders=d=>{p(ie("headers",d.status,null,d.getAllResponseHeaders()))},c.ontimeout=Ke(l),c.onprogress=r,c.onabort=s,c}},xe={QUEUED:0,COMPLETE:1,PROCESSING:2,ERROR:3,WAITING:4},Is=(e,t,i,a,n,o,l,r,s,p,c)=>{let d=[],{chunkTransferId:m,chunkServer:u,chunkSize:f,chunkRetryDelays:g}=c,h={serverId:m,aborted:!1},v=t.ondata||(S=>S),E=t.onload||((S,D)=>D==="HEAD"?S.getResponseHeader("Upload-Offset"):S.response),T=t.onerror||(S=>null),I=S=>{let D=new FormData;ce(n)&&D.append(i,JSON.stringify(n));let R=typeof t.headers=="function"?t.headers(a,n):{...t.headers,"Upload-Length":a.size},L={...t,headers:R},z=Ze(v(D),Dt(e,t.url),L);z.onload=F=>S(E(F,L.method)),z.onerror=F=>l(ie("error",F.status,T(F.response)||F.statusText,F.getAllResponseHeaders())),z.ontimeout=Ke(l)},y=S=>{let D=Dt(e,u.url,h.serverId),L={headers:typeof t.headers=="function"?t.headers(h.serverId):{...t.headers},method:"HEAD"},z=Ze(null,D,L);z.onload=F=>S(E(F,L.method)),z.onerror=F=>l(ie("error",F.status,T(F.response)||F.statusText,F.getAllResponseHeaders())),z.ontimeout=Ke(l)},b=Math.floor(a.size/f);for(let S=0;S<=b;S++){let D=S*f,R=a.slice(D,D+f,"application/offset+octet-stream");d[S]={index:S,size:R.size,offset:D,data:R,file:a,progress:0,retries:[...g],status:xe.QUEUED,error:null,request:null,timeout:null}}let w=()=>o(h.serverId),x=S=>S.status===xe.QUEUED||S.status===xe.ERROR,_=S=>{if(h.aborted)return;if(S=S||d.find(x),!S){d.every(C=>C.status===xe.COMPLETE)&&w();return}S.status=xe.PROCESSING,S.progress=null;let D=u.ondata||(C=>C),R=u.onerror||(C=>null),L=u.onload||(()=>{}),z=Dt(e,u.url,h.serverId),F=typeof u.headers=="function"?u.headers(S):{...u.headers,"Content-Type":"application/offset+octet-stream","Upload-Offset":S.offset,"Upload-Length":a.size,"Upload-Name":a.name},G=S.request=Ze(D(S.data),z,{...u,headers:F});G.onload=C=>{L(C,S.index,d.length),S.status=xe.COMPLETE,S.request=null,M()},G.onprogress=(C,q,Q)=>{S.progress=C?q:null,O()},G.onerror=C=>{S.status=xe.ERROR,S.request=null,S.error=R(C.response)||C.statusText,P(S)||l(ie("error",C.status,R(C.response)||C.statusText,C.getAllResponseHeaders()))},G.ontimeout=C=>{S.status=xe.ERROR,S.request=null,P(S)||Ke(l)(C)},G.onabort=()=>{S.status=xe.QUEUED,S.request=null,s()}},P=S=>S.retries.length===0?!1:(S.status=xe.WAITING,clearTimeout(S.timeout),S.timeout=setTimeout(()=>{_(S)},S.retries.shift()),!0),O=()=>{let S=d.reduce((R,L)=>R===null||L.progress===null?null:R+L.progress,0);if(S===null)return r(!1,0,0);let D=d.reduce((R,L)=>R+L.size,0);r(!0,S,D)},M=()=>{d.filter(D=>D.status===xe.PROCESSING).length>=1||_()},N=()=>{d.forEach(S=>{clearTimeout(S.timeout),S.request&&S.request.abort()})};return h.serverId?y(S=>{h.aborted||(d.filter(D=>D.offset{D.status=xe.COMPLETE,D.progress=D.size}),M())}):I(S=>{h.aborted||(p(S),h.serverId=S,M())}),{abort:()=>{h.aborted=!0,N()}}},xs=(e,t,i,a)=>(n,o,l,r,s,p,c)=>{if(!n)return;let d=a.chunkUploads,m=d&&n.size>a.chunkSize,u=d&&(m||a.chunkForce);if(n instanceof Blob&&u)return Is(e,t,i,n,o,l,r,s,p,c,a);let f=t.ondata||(y=>y),g=t.onload||(y=>y),h=t.onerror||(y=>null),v=typeof t.headers=="function"?t.headers(n,o)||{}:{...t.headers},E={...t,headers:v};var T=new FormData;ce(o)&&T.append(i,JSON.stringify(o)),(n instanceof Blob?[{name:null,file:n}]:n).forEach(y=>{T.append(i,y.file,y.name===null?y.file.name:`${y.name}${y.file.name}`)});let I=Ze(f(T),Dt(e,t.url),E);return I.onload=y=>{l(ie("load",y.status,g(y.response),y.getAllResponseHeaders()))},I.onerror=y=>{r(ie("error",y.status,h(y.response)||y.statusText,y.getAllResponseHeaders()))},I.ontimeout=Ke(r),I.onprogress=s,I.onabort=p,I},ys=(e="",t,i,a)=>typeof t=="function"?(...n)=>t(i,...n,a):!t||!fe(t.url)?null:xs(e,t,i,a),Ot=(e="",t)=>{if(typeof t=="function")return t;if(!t||!fe(t.url))return(n,o)=>o();let i=t.onload||(n=>n),a=t.onerror||(n=>null);return(n,o,l)=>{let r=Ze(n,e+t.url,t);return r.onload=s=>{o(ie("load",s.status,i(s.response),s.getAllResponseHeaders()))},r.onerror=s=>{l(ie("error",s.status,a(s.response)||s.statusText,s.getAllResponseHeaders()))},r.ontimeout=Ke(l),r}},Dn=(e=0,t=1)=>e+Math.random()*(t-e),_s=(e,t=1e3,i=0,a=25,n=250)=>{let o=null,l=Date.now(),r=()=>{let s=Date.now()-l,p=Dn(a,n);s+p>t&&(p=s+p-t);let c=s/t;if(c>=1||document.hidden){e(1);return}e(c),o=setTimeout(r,p)};return t>0&&r(),{clear:()=>{clearTimeout(o)}}},Rs=(e,t)=>{let i={complete:!1,perceivedProgress:0,perceivedPerformanceUpdater:null,progress:null,timestamp:null,perceivedDuration:0,duration:0,request:null,response:null},{allowMinimumUploadDuration:a}=t,n=(c,d)=>{let m=()=>{i.duration===0||i.progress===null||p.fire("progress",p.getProgress())},u=()=>{i.complete=!0,p.fire("load-perceived",i.response.body)};p.fire("start"),i.timestamp=Date.now(),i.perceivedPerformanceUpdater=_s(f=>{i.perceivedProgress=f,i.perceivedDuration=Date.now()-i.timestamp,m(),i.response&&i.perceivedProgress===1&&!i.complete&&u()},a?Dn(750,1500):0),i.request=e(c,d,f=>{i.response=ce(f)?f:{type:"load",code:200,body:`${f}`,headers:{}},i.duration=Date.now()-i.timestamp,i.progress=1,p.fire("load",i.response.body),(!a||a&&i.perceivedProgress===1)&&u()},f=>{i.perceivedPerformanceUpdater.clear(),p.fire("error",ce(f)?f:{type:"error",code:0,body:`${f}`})},(f,g,h)=>{i.duration=Date.now()-i.timestamp,i.progress=f?g/h:null,m()},()=>{i.perceivedPerformanceUpdater.clear(),p.fire("abort",i.response?i.response.body:null)},f=>{p.fire("transfer",f)})},o=()=>{i.request&&(i.perceivedPerformanceUpdater.clear(),i.request.abort&&i.request.abort(),i.complete=!0)},l=()=>{o(),i.complete=!1,i.perceivedProgress=0,i.progress=0,i.timestamp=null,i.perceivedDuration=0,i.duration=0,i.request=null,i.response=null},r=a?()=>i.progress?Math.min(i.progress,i.perceivedProgress):null:()=>i.progress||null,s=a?()=>Math.min(i.duration,i.perceivedDuration):()=>i.duration,p={...mi(),process:n,abort:o,getProgress:r,getDuration:s,reset:l};return p},Fn=e=>e.substring(0,e.lastIndexOf("."))||e,ws=e=>{let t=[e.name,e.size,e.type];return e instanceof Blob||Fi(e)?t[0]=e.name||Mn():Fi(e)?(t[1]=e.length,t[2]=Pn(e)):fe(e)&&(t[0]=zt(e),t[1]=0,t[2]="application/octet-stream"),{name:t[0],size:t[1],type:t[2]}},Je=e=>!!(e instanceof File||e instanceof Blob&&e.name),zn=e=>{if(!ce(e))return e;let t=ci(e)?[]:{};for(let i in e){if(!e.hasOwnProperty(i))continue;let a=e[i];t[i]=a&&ce(a)?zn(a):a}return t},Ss=(e=null,t=null,i=null)=>{let a=qi(),n={archived:!1,frozen:!1,released:!1,source:null,file:i,serverFileReference:t,transferId:null,processingAborted:!1,status:t?W.PROCESSING_COMPLETE:W.INIT,activeLoader:null,activeProcessor:null},o=null,l={},r=x=>n.status=x,s=(x,..._)=>{n.released||n.frozen||b.fire(x,..._)},p=()=>ui(n.file.name),c=()=>n.file.type,d=()=>n.file.size,m=()=>n.file,u=(x,_,P)=>{if(n.source=x,b.fireSync("init"),n.file){b.fireSync("load-skip");return}n.file=ws(x),_.on("init",()=>{s("load-init")}),_.on("meta",O=>{n.file.size=O.size,n.file.filename=O.filename,O.source&&(e=re.LIMBO,n.serverFileReference=O.source,n.status=W.PROCESSING_COMPLETE),s("load-meta")}),_.on("progress",O=>{r(W.LOADING),s("load-progress",O)}),_.on("error",O=>{r(W.LOAD_ERROR),s("load-request-error",O)}),_.on("abort",()=>{r(W.INIT),s("load-abort")}),_.on("load",O=>{n.activeLoader=null;let M=S=>{n.file=Je(S)?S:n.file,e===re.LIMBO&&n.serverFileReference?r(W.PROCESSING_COMPLETE):r(W.IDLE),s("load")},N=S=>{n.file=O,s("load-meta"),r(W.LOAD_ERROR),s("load-file-error",S)};if(n.serverFileReference){M(O);return}P(O,M,N)}),_.setSource(x),n.activeLoader=_,_.load()},f=()=>{n.activeLoader&&n.activeLoader.load()},g=()=>{if(n.activeLoader){n.activeLoader.abort();return}r(W.INIT),s("load-abort")},h=(x,_)=>{if(n.processingAborted){n.processingAborted=!1;return}if(r(W.PROCESSING),o=null,!(n.file instanceof Blob)){b.on("load",()=>{h(x,_)});return}x.on("load",M=>{n.transferId=null,n.serverFileReference=M}),x.on("transfer",M=>{n.transferId=M}),x.on("load-perceived",M=>{n.activeProcessor=null,n.transferId=null,n.serverFileReference=M,r(W.PROCESSING_COMPLETE),s("process-complete",M)}),x.on("start",()=>{s("process-start")}),x.on("error",M=>{n.activeProcessor=null,r(W.PROCESSING_ERROR),s("process-error",M)}),x.on("abort",M=>{n.activeProcessor=null,n.serverFileReference=M,r(W.IDLE),s("process-abort"),o&&o()}),x.on("progress",M=>{s("process-progress",M)});let P=M=>{n.archived||x.process(M,{...l})},O=console.error;_(n.file,P,O),n.activeProcessor=x},v=()=>{n.processingAborted=!1,r(W.PROCESSING_QUEUED)},E=()=>new Promise(x=>{if(!n.activeProcessor){n.processingAborted=!0,r(W.IDLE),s("process-abort"),x();return}o=()=>{x()},n.activeProcessor.abort()}),T=(x,_)=>new Promise((P,O)=>{let M=n.serverFileReference!==null?n.serverFileReference:n.transferId;if(M===null){P();return}x(M,()=>{n.serverFileReference=null,n.transferId=null,P()},N=>{if(!_){P();return}r(W.PROCESSING_REVERT_ERROR),s("process-revert-error"),O(N)}),r(W.IDLE),s("process-revert")}),I=(x,_,P)=>{let O=x.split("."),M=O[0],N=O.pop(),S=l;O.forEach(D=>S=S[D]),JSON.stringify(S[N])!==JSON.stringify(_)&&(S[N]=_,s("metadata-update",{key:M,value:l[M],silent:P}))},b={id:{get:()=>a},origin:{get:()=>e,set:x=>e=x},serverId:{get:()=>n.serverFileReference},transferId:{get:()=>n.transferId},status:{get:()=>n.status},filename:{get:()=>n.file.name},filenameWithoutExtension:{get:()=>Fn(n.file.name)},fileExtension:{get:p},fileType:{get:c},fileSize:{get:d},file:{get:m},relativePath:{get:()=>n.file._relativePath},source:{get:()=>n.source},getMetadata:x=>zn(x?l[x]:l),setMetadata:(x,_,P)=>{if(ce(x)){let O=x;return Object.keys(O).forEach(M=>{I(M,O[M],_)}),x}return I(x,_,P),_},extend:(x,_)=>w[x]=_,abortLoad:g,retryLoad:f,requestProcessing:v,abortProcessing:E,load:u,process:h,revert:T,...mi(),freeze:()=>n.frozen=!0,release:()=>n.released=!0,released:{get:()=>n.released},archive:()=>n.archived=!0,archived:{get:()=>n.archived},setFile:x=>n.file=x},w=We(b);return w},Ls=(e,t)=>Be(t)?0:fe(t)?e.findIndex(i=>i.id===t):-1,ja=(e,t)=>{let i=Ls(e,t);if(!(i<0))return e[i]||null},Ya=(e,t,i,a,n,o)=>{let l=Ze(null,e,{method:"GET",responseType:"blob"});return l.onload=r=>{let s=r.getAllResponseHeaders(),p=Qi(s).name||zt(e);t(ie("load",r.status,ht(r.response,p),s))},l.onerror=r=>{i(ie("error",r.status,r.statusText,r.getAllResponseHeaders()))},l.onheaders=r=>{o(ie("headers",r.status,null,r.getAllResponseHeaders()))},l.ontimeout=Ke(i),l.onprogress=a,l.onabort=n,l},qa=e=>(e.indexOf("//")===0&&(e=location.protocol+e),e.toLowerCase().replace("blob:","").replace(/([a-z])?:\/\//,"$1").split("/")[0]),As=e=>(e.indexOf(":")>-1||e.indexOf("//")>-1)&&qa(location.href)!==qa(e),Jt=e=>(...t)=>Xe(e)?e(...t):e,Ms=e=>!Je(e.file),Li=(e,t)=>{clearTimeout(t.listUpdateTimeout),t.listUpdateTimeout=setTimeout(()=>{e("DID_UPDATE_ITEMS",{items:Me(t.items)})},0)},$a=(e,...t)=>new Promise(i=>{if(!e)return i(!0);let a=e(...t);if(a==null)return i(!0);if(typeof a=="boolean")return i(a);typeof a.then=="function"&&a.then(i)}),Ai=(e,t)=>{e.items.sort((i,a)=>t(he(i),he(a)))},ye=(e,t)=>({query:i,success:a=()=>{},failure:n=()=>{},...o}={})=>{let l=Qe(e.items,i);if(!l){n({error:ie("error",0,"Item not found"),file:null});return}t(l,a,n,o||{})},Os=(e,t,i)=>({ABORT_ALL:()=>{Me(i.items).forEach(a=>{a.freeze(),a.abortLoad(),a.abortProcessing()})},DID_SET_FILES:({value:a=[]})=>{let n=a.map(l=>({source:l.source?l.source:l,options:l.options})),o=Me(i.items);o.forEach(l=>{n.find(r=>r.source===l.source||r.source===l.file)||e("REMOVE_ITEM",{query:l,remove:!1})}),o=Me(i.items),n.forEach((l,r)=>{o.find(s=>s.source===l.source||s.file===l.source)||e("ADD_ITEM",{...l,interactionMethod:_e.NONE,index:r})})},DID_UPDATE_ITEM_METADATA:({id:a,action:n,change:o})=>{o.silent||(clearTimeout(i.itemUpdateTimeout),i.itemUpdateTimeout=setTimeout(()=>{let l=ja(i.items,a);if(!t("IS_ASYNC")){Ae("SHOULD_PREPARE_OUTPUT",!1,{item:l,query:t,action:n,change:o}).then(c=>{let d=t("GET_BEFORE_PREPARE_FILE");d&&(c=d(l,c)),c&&e("REQUEST_PREPARE_OUTPUT",{query:a,item:l,success:m=>{e("DID_PREPARE_OUTPUT",{id:a,file:m})}},!0)});return}l.origin===re.LOCAL&&e("DID_LOAD_ITEM",{id:l.id,error:null,serverFileReference:l.source});let r=()=>{setTimeout(()=>{e("REQUEST_ITEM_PROCESSING",{query:a})},32)},s=c=>{l.revert(Ot(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(c?r:()=>{}).catch(()=>{})},p=c=>{l.abortProcessing().then(c?r:()=>{})};if(l.status===W.PROCESSING_COMPLETE)return s(i.options.instantUpload);if(l.status===W.PROCESSING)return p(i.options.instantUpload);i.options.instantUpload&&r()},0))},MOVE_ITEM:({query:a,index:n})=>{let o=Qe(i.items,a);if(!o)return;let l=i.items.indexOf(o);n=An(n,0,i.items.length-1),l!==n&&i.items.splice(n,0,i.items.splice(l,1)[0])},SORT:({compare:a})=>{Ai(i,a),e("DID_SORT_ITEMS",{items:t("GET_ACTIVE_ITEMS")})},ADD_ITEMS:({items:a,index:n,interactionMethod:o,success:l=()=>{},failure:r=()=>{}})=>{let s=n;if(n===-1||typeof n>"u"){let u=t("GET_ITEM_INSERT_LOCATION"),f=t("GET_TOTAL_ITEMS");s=u==="before"?0:f}let p=t("GET_IGNORED_FILES"),c=u=>Je(u)?!p.includes(u.name.toLowerCase()):!Be(u),m=a.filter(c).map(u=>new Promise((f,g)=>{e("ADD_ITEM",{interactionMethod:o,source:u.source||u,success:f,failure:g,index:s++,options:u.options||{}})}));Promise.all(m).then(l).catch(r)},ADD_ITEM:({source:a,index:n=-1,interactionMethod:o,success:l=()=>{},failure:r=()=>{},options:s={}})=>{if(Be(a)){r({error:ie("error",0,"No source"),file:null});return}if(Je(a)&&i.options.ignoredFiles.includes(a.name.toLowerCase()))return;if(!rs(i)){if(i.options.allowMultiple||!i.options.allowMultiple&&!i.options.allowReplace){let E=ie("warning",0,"Max files");e("DID_THROW_MAX_FILES",{source:a,error:E}),r({error:E,file:null});return}let v=Me(i.items)[0];if(v.status===W.PROCESSING_COMPLETE||v.status===W.PROCESSING_REVERT_ERROR){let E=t("GET_FORCE_REVERT");if(v.revert(Ot(i.options.server.url,i.options.server.revert),E).then(()=>{E&&e("ADD_ITEM",{source:a,index:n,interactionMethod:o,success:l,failure:r,options:s})}).catch(()=>{}),E)return}e("REMOVE_ITEM",{query:v.id})}let p=s.type==="local"?re.LOCAL:s.type==="limbo"?re.LIMBO:re.INPUT,c=Ss(p,p===re.INPUT?null:a,s.file);Object.keys(s.metadata||{}).forEach(v=>{c.setMetadata(v,s.metadata[v])}),tt("DID_CREATE_ITEM",c,{query:t,dispatch:e});let d=t("GET_ITEM_INSERT_LOCATION");i.options.itemInsertLocationFreedom||(n=d==="before"?-1:i.items.length),cs(i.items,c,n),Xe(d)&&a&&Ai(i,d);let m=c.id;c.on("init",()=>{e("DID_INIT_ITEM",{id:m})}),c.on("load-init",()=>{e("DID_START_ITEM_LOAD",{id:m})}),c.on("load-meta",()=>{e("DID_UPDATE_ITEM_META",{id:m})}),c.on("load-progress",v=>{e("DID_UPDATE_ITEM_LOAD_PROGRESS",{id:m,progress:v})}),c.on("load-request-error",v=>{let E=Jt(i.options.labelFileLoadError)(v);if(v.code>=400&&v.code<500){e("DID_THROW_ITEM_INVALID",{id:m,error:v,status:{main:E,sub:`${v.code} (${v.body})`}}),r({error:v,file:he(c)});return}e("DID_THROW_ITEM_LOAD_ERROR",{id:m,error:v,status:{main:E,sub:i.options.labelTapToRetry}})}),c.on("load-file-error",v=>{e("DID_THROW_ITEM_INVALID",{id:m,error:v.status,status:v.status}),r({error:v.status,file:he(c)})}),c.on("load-abort",()=>{e("REMOVE_ITEM",{query:m})}),c.on("load-skip",()=>{c.on("metadata-update",v=>{Je(c.file)&&e("DID_UPDATE_ITEM_METADATA",{id:m,change:v})}),e("COMPLETE_LOAD_ITEM",{query:m,item:c,data:{source:a,success:l}})}),c.on("load",()=>{let v=E=>{if(!E){e("REMOVE_ITEM",{query:m});return}c.on("metadata-update",T=>{e("DID_UPDATE_ITEM_METADATA",{id:m,change:T})}),Ae("SHOULD_PREPARE_OUTPUT",!1,{item:c,query:t}).then(T=>{let I=t("GET_BEFORE_PREPARE_FILE");I&&(T=I(c,T));let y=()=>{e("COMPLETE_LOAD_ITEM",{query:m,item:c,data:{source:a,success:l}}),Li(e,i)};if(T){e("REQUEST_PREPARE_OUTPUT",{query:m,item:c,success:b=>{e("DID_PREPARE_OUTPUT",{id:m,file:b}),y()}},!0);return}y()})};Ae("DID_LOAD_ITEM",c,{query:t,dispatch:e}).then(()=>{$a(t("GET_BEFORE_ADD_FILE"),he(c)).then(v)}).catch(E=>{if(!E||!E.error||!E.status)return v(!1);e("DID_THROW_ITEM_INVALID",{id:m,error:E.error,status:E.status})})}),c.on("process-start",()=>{e("DID_START_ITEM_PROCESSING",{id:m})}),c.on("process-progress",v=>{e("DID_UPDATE_ITEM_PROCESS_PROGRESS",{id:m,progress:v})}),c.on("process-error",v=>{e("DID_THROW_ITEM_PROCESSING_ERROR",{id:m,error:v,status:{main:Jt(i.options.labelFileProcessingError)(v),sub:i.options.labelTapToRetry}})}),c.on("process-revert-error",v=>{e("DID_THROW_ITEM_PROCESSING_REVERT_ERROR",{id:m,error:v,status:{main:Jt(i.options.labelFileProcessingRevertError)(v),sub:i.options.labelTapToRetry}})}),c.on("process-complete",v=>{e("DID_COMPLETE_ITEM_PROCESSING",{id:m,error:null,serverFileReference:v}),e("DID_DEFINE_VALUE",{id:m,value:v})}),c.on("process-abort",()=>{e("DID_ABORT_ITEM_PROCESSING",{id:m})}),c.on("process-revert",()=>{e("DID_REVERT_ITEM_PROCESSING",{id:m}),e("DID_DEFINE_VALUE",{id:m,value:null})}),e("DID_ADD_ITEM",{id:m,index:n,interactionMethod:o}),Li(e,i);let{url:u,load:f,restore:g,fetch:h}=i.options.server||{};c.load(a,vs(p===re.INPUT?fe(a)&&As(a)&&h?Si(u,h):Ya:p===re.LIMBO?Si(u,g):Si(u,f)),(v,E,T)=>{Ae("LOAD_FILE",v,{query:t}).then(E).catch(T)})},REQUEST_PREPARE_OUTPUT:({item:a,success:n,failure:o=()=>{}})=>{let l={error:ie("error",0,"Item not found"),file:null};if(a.archived)return o(l);Ae("PREPARE_OUTPUT",a.file,{query:t,item:a}).then(r=>{Ae("COMPLETE_PREPARE_OUTPUT",r,{query:t,item:a}).then(s=>{if(a.archived)return o(l);n(s)})})},COMPLETE_LOAD_ITEM:({item:a,data:n})=>{let{success:o,source:l}=n,r=t("GET_ITEM_INSERT_LOCATION");if(Xe(r)&&l&&Ai(i,r),e("DID_LOAD_ITEM",{id:a.id,error:null,serverFileReference:a.origin===re.INPUT?null:l}),o(he(a)),a.origin===re.LOCAL){e("DID_LOAD_LOCAL_ITEM",{id:a.id});return}if(a.origin===re.LIMBO){e("DID_COMPLETE_ITEM_PROCESSING",{id:a.id,error:null,serverFileReference:l}),e("DID_DEFINE_VALUE",{id:a.id,value:a.serverId||l});return}t("IS_ASYNC")&&i.options.instantUpload&&e("REQUEST_ITEM_PROCESSING",{query:a.id})},RETRY_ITEM_LOAD:ye(i,a=>{a.retryLoad()}),REQUEST_ITEM_PREPARE:ye(i,(a,n,o)=>{e("REQUEST_PREPARE_OUTPUT",{query:a.id,item:a,success:l=>{e("DID_PREPARE_OUTPUT",{id:a.id,file:l}),n({file:a,output:l})},failure:o},!0)}),REQUEST_ITEM_PROCESSING:ye(i,(a,n,o)=>{if(!(a.status===W.IDLE||a.status===W.PROCESSING_ERROR)){let r=()=>e("REQUEST_ITEM_PROCESSING",{query:a,success:n,failure:o}),s=()=>document.hidden?r():setTimeout(r,32);a.status===W.PROCESSING_COMPLETE||a.status===W.PROCESSING_REVERT_ERROR?a.revert(Ot(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(s).catch(()=>{}):a.status===W.PROCESSING&&a.abortProcessing().then(s);return}a.status!==W.PROCESSING_QUEUED&&(a.requestProcessing(),e("DID_REQUEST_ITEM_PROCESSING",{id:a.id}),e("PROCESS_ITEM",{query:a,success:n,failure:o},!0))}),PROCESS_ITEM:ye(i,(a,n,o)=>{let l=t("GET_MAX_PARALLEL_UPLOADS");if(t("GET_ITEMS_BY_STATUS",W.PROCESSING).length===l){i.processingQueue.push({id:a.id,success:n,failure:o});return}if(a.status===W.PROCESSING)return;let s=()=>{let c=i.processingQueue.shift();if(!c)return;let{id:d,success:m,failure:u}=c,f=Qe(i.items,d);if(!f||f.archived){s();return}e("PROCESS_ITEM",{query:d,success:m,failure:u},!0)};a.onOnce("process-complete",()=>{n(he(a)),s();let c=i.options.server;if(i.options.instantUpload&&a.origin===re.LOCAL&&Xe(c.remove)){let u=()=>{};a.origin=re.LIMBO,i.options.server.remove(a.source,u,u)}t("GET_ITEMS_BY_STATUS",W.PROCESSING_COMPLETE).length===i.items.length&&e("DID_COMPLETE_ITEM_PROCESSING_ALL")}),a.onOnce("process-error",c=>{o({error:c,file:he(a)}),s()});let p=i.options;a.process(Rs(ys(p.server.url,p.server.process,p.name,{chunkTransferId:a.transferId,chunkServer:p.server.patch,chunkUploads:p.chunkUploads,chunkForce:p.chunkForce,chunkSize:p.chunkSize,chunkRetryDelays:p.chunkRetryDelays}),{allowMinimumUploadDuration:t("GET_ALLOW_MINIMUM_UPLOAD_DURATION")}),(c,d,m)=>{Ae("PREPARE_OUTPUT",c,{query:t,item:a}).then(u=>{e("DID_PREPARE_OUTPUT",{id:a.id,file:u}),d(u)}).catch(m)})}),RETRY_ITEM_PROCESSING:ye(i,a=>{e("REQUEST_ITEM_PROCESSING",{query:a})}),REQUEST_REMOVE_ITEM:ye(i,a=>{$a(t("GET_BEFORE_REMOVE_FILE"),he(a)).then(n=>{n&&e("REMOVE_ITEM",{query:a})})}),RELEASE_ITEM:ye(i,a=>{a.release()}),REMOVE_ITEM:ye(i,(a,n,o,l)=>{let r=()=>{let p=a.id;ja(i.items,p).archive(),e("DID_REMOVE_ITEM",{error:null,id:p,item:a}),Li(e,i),n(he(a))},s=i.options.server;a.origin===re.LOCAL&&s&&Xe(s.remove)&&l.remove!==!1?(e("DID_START_ITEM_REMOVE",{id:a.id}),s.remove(a.source,()=>r(),p=>{e("DID_THROW_ITEM_REMOVE_ERROR",{id:a.id,error:ie("error",0,p,null),status:{main:Jt(i.options.labelFileRemoveError)(p),sub:i.options.labelTapToRetry}})})):((l.revert&&a.origin!==re.LOCAL&&a.serverId!==null||i.options.chunkUploads&&a.file.size>i.options.chunkSize||i.options.chunkUploads&&i.options.chunkForce)&&a.revert(Ot(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")),r())}),ABORT_ITEM_LOAD:ye(i,a=>{a.abortLoad()}),ABORT_ITEM_PROCESSING:ye(i,a=>{if(a.serverId){e("REVERT_ITEM_PROCESSING",{id:a.id});return}a.abortProcessing().then(()=>{i.options.instantUpload&&e("REMOVE_ITEM",{query:a.id})})}),REQUEST_REVERT_ITEM_PROCESSING:ye(i,a=>{if(!i.options.instantUpload){e("REVERT_ITEM_PROCESSING",{query:a});return}let n=r=>{r&&e("REVERT_ITEM_PROCESSING",{query:a})},o=t("GET_BEFORE_REMOVE_FILE");if(!o)return n(!0);let l=o(he(a));if(l==null)return n(!0);if(typeof l=="boolean")return n(l);typeof l.then=="function"&&l.then(n)}),REVERT_ITEM_PROCESSING:ye(i,a=>{a.revert(Ot(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(()=>{(i.options.instantUpload||Ms(a))&&e("REMOVE_ITEM",{query:a.id})}).catch(()=>{})}),SET_OPTIONS:({options:a})=>{let n=Object.keys(a),o=Ps.filter(r=>n.includes(r));[...o,...Object.keys(a).filter(r=>!o.includes(r))].forEach(r=>{e(`SET_${pi(r,"_").toUpperCase()}`,{value:a[r]})})}}),Ps=["server"],Zi=e=>e,ke=e=>document.createElement(e),ae=(e,t)=>{let i=e.childNodes[0];i?t!==i.nodeValue&&(i.nodeValue=t):(i=document.createTextNode(t),e.appendChild(i))},Xa=(e,t,i,a)=>{let n=(a%360-90)*Math.PI/180;return{x:e+i*Math.cos(n),y:t+i*Math.sin(n)}},Ds=(e,t,i,a,n,o)=>{let l=Xa(e,t,i,n),r=Xa(e,t,i,a);return["M",l.x,l.y,"A",i,i,0,o,0,r.x,r.y].join(" ")},Fs=(e,t,i,a,n)=>{let o=1;return n>a&&n-a<=.5&&(o=0),a>n&&a-n>=.5&&(o=0),Ds(e,t,i,Math.min(.9999,a)*360,Math.min(.9999,n)*360,o)},zs=({root:e,props:t})=>{t.spin=!1,t.progress=0,t.opacity=0;let i=oi("svg");e.ref.path=oi("path",{"stroke-width":2,"stroke-linecap":"round"}),i.appendChild(e.ref.path),e.ref.svg=i,e.appendChild(i)},Cs=({root:e,props:t})=>{if(t.opacity===0)return;t.align&&(e.element.dataset.align=t.align);let i=parseInt(se(e.ref.path,"stroke-width"),10),a=e.rect.element.width*.5,n=0,o=0;t.spin?(n=0,o=.5):(n=0,o=t.progress);let l=Fs(a,a,a-i,n,o);se(e.ref.path,"d",l),se(e.ref.path,"stroke-opacity",t.spin||t.progress>0?1:0)},Qa=ne({tag:"div",name:"progress-indicator",ignoreRectUpdate:!0,ignoreRect:!0,create:zs,write:Cs,mixins:{apis:["progress","spin","align"],styles:["opacity"],animations:{opacity:{type:"tween",duration:500},progress:{type:"spring",stiffness:.95,damping:.65,mass:10}}}}),Ns=({root:e,props:t})=>{e.element.innerHTML=(t.icon||"")+`${t.label}`,t.isDisabled=!1},Bs=({root:e,props:t})=>{let{isDisabled:i}=t,a=e.query("GET_DISABLED")||t.opacity===0;a&&!i?(t.isDisabled=!0,se(e.element,"disabled","disabled")):!a&&i&&(t.isDisabled=!1,e.element.removeAttribute("disabled"))},Cn=ne({tag:"button",attributes:{type:"button"},ignoreRect:!0,ignoreRectUpdate:!0,name:"file-action-button",mixins:{apis:["label"],styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}},listeners:!0},create:Ns,write:Bs}),Nn=(e,t=".",i=1e3,a={})=>{let{labelBytes:n="bytes",labelKilobytes:o="KB",labelMegabytes:l="MB",labelGigabytes:r="GB"}=a;e=Math.round(Math.abs(e));let s=i,p=i*i,c=i*i*i;return ee.toFixed(t).split(".").filter(a=>a!=="0").join(i),ks=({root:e,props:t})=>{let i=ke("span");i.className="filepond--file-info-main",se(i,"aria-hidden","true"),e.appendChild(i),e.ref.fileName=i;let a=ke("span");a.className="filepond--file-info-sub",e.appendChild(a),e.ref.fileSize=a,ae(a,e.query("GET_LABEL_FILE_WAITING_FOR_SIZE")),ae(i,Zi(e.query("GET_ITEM_NAME",t.id)))},zi=({root:e,props:t})=>{ae(e.ref.fileSize,Nn(e.query("GET_ITEM_SIZE",t.id),".",e.query("GET_FILE_SIZE_BASE"),e.query("GET_FILE_SIZE_LABELS",e.query))),ae(e.ref.fileName,Zi(e.query("GET_ITEM_NAME",t.id)))},Ka=({root:e,props:t})=>{if(Et(e.query("GET_ITEM_SIZE",t.id))){zi({root:e,props:t});return}ae(e.ref.fileSize,e.query("GET_LABEL_FILE_SIZE_NOT_AVAILABLE"))},Vs=ne({name:"file-info",ignoreRect:!0,ignoreRectUpdate:!0,write:ge({DID_LOAD_ITEM:zi,DID_UPDATE_ITEM_META:zi,DID_THROW_ITEM_LOAD_ERROR:Ka,DID_THROW_ITEM_INVALID:Ka}),didCreateView:e=>{tt("CREATE_VIEW",{...e,view:e})},create:ks,mixins:{styles:["translateX","translateY"],animations:{translateX:"spring",translateY:"spring"}}}),Bn=e=>Math.round(e*100),Gs=({root:e})=>{let t=ke("span");t.className="filepond--file-status-main",e.appendChild(t),e.ref.main=t;let i=ke("span");i.className="filepond--file-status-sub",e.appendChild(i),e.ref.sub=i,kn({root:e,action:{progress:null}})},kn=({root:e,action:t})=>{let i=t.progress===null?e.query("GET_LABEL_FILE_LOADING"):`${e.query("GET_LABEL_FILE_LOADING")} ${Bn(t.progress)}%`;ae(e.ref.main,i),ae(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},Us=({root:e,action:t})=>{let i=t.progress===null?e.query("GET_LABEL_FILE_PROCESSING"):`${e.query("GET_LABEL_FILE_PROCESSING")} ${Bn(t.progress)}%`;ae(e.ref.main,i),ae(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},Ws=({root:e})=>{ae(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING")),ae(e.ref.sub,e.query("GET_LABEL_TAP_TO_CANCEL"))},Hs=({root:e})=>{ae(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING_ABORTED")),ae(e.ref.sub,e.query("GET_LABEL_TAP_TO_RETRY"))},js=({root:e})=>{ae(e.ref.main,e.query("GET_LABEL_FILE_PROCESSING_COMPLETE")),ae(e.ref.sub,e.query("GET_LABEL_TAP_TO_UNDO"))},Ja=({root:e})=>{ae(e.ref.main,""),ae(e.ref.sub,"")},Pt=({root:e,action:t})=>{ae(e.ref.main,t.status.main),ae(e.ref.sub,t.status.sub)},Ys=ne({name:"file-status",ignoreRect:!0,ignoreRectUpdate:!0,write:ge({DID_LOAD_ITEM:Ja,DID_REVERT_ITEM_PROCESSING:Ja,DID_REQUEST_ITEM_PROCESSING:Ws,DID_ABORT_ITEM_PROCESSING:Hs,DID_COMPLETE_ITEM_PROCESSING:js,DID_UPDATE_ITEM_PROCESS_PROGRESS:Us,DID_UPDATE_ITEM_LOAD_PROGRESS:kn,DID_THROW_ITEM_LOAD_ERROR:Pt,DID_THROW_ITEM_INVALID:Pt,DID_THROW_ITEM_PROCESSING_ERROR:Pt,DID_THROW_ITEM_PROCESSING_REVERT_ERROR:Pt,DID_THROW_ITEM_REMOVE_ERROR:Pt}),didCreateView:e=>{tt("CREATE_VIEW",{...e,view:e})},create:Gs,mixins:{styles:["translateX","translateY","opacity"],animations:{opacity:{type:"tween",duration:250},translateX:"spring",translateY:"spring"}}}),Ci={AbortItemLoad:{label:"GET_LABEL_BUTTON_ABORT_ITEM_LOAD",action:"ABORT_ITEM_LOAD",className:"filepond--action-abort-item-load",align:"LOAD_INDICATOR_POSITION"},RetryItemLoad:{label:"GET_LABEL_BUTTON_RETRY_ITEM_LOAD",action:"RETRY_ITEM_LOAD",icon:"GET_ICON_RETRY",className:"filepond--action-retry-item-load",align:"BUTTON_PROCESS_ITEM_POSITION"},RemoveItem:{label:"GET_LABEL_BUTTON_REMOVE_ITEM",action:"REQUEST_REMOVE_ITEM",icon:"GET_ICON_REMOVE",className:"filepond--action-remove-item",align:"BUTTON_REMOVE_ITEM_POSITION"},ProcessItem:{label:"GET_LABEL_BUTTON_PROCESS_ITEM",action:"REQUEST_ITEM_PROCESSING",icon:"GET_ICON_PROCESS",className:"filepond--action-process-item",align:"BUTTON_PROCESS_ITEM_POSITION"},AbortItemProcessing:{label:"GET_LABEL_BUTTON_ABORT_ITEM_PROCESSING",action:"ABORT_ITEM_PROCESSING",className:"filepond--action-abort-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"},RetryItemProcessing:{label:"GET_LABEL_BUTTON_RETRY_ITEM_PROCESSING",action:"RETRY_ITEM_PROCESSING",icon:"GET_ICON_RETRY",className:"filepond--action-retry-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"},RevertItemProcessing:{label:"GET_LABEL_BUTTON_UNDO_ITEM_PROCESSING",action:"REQUEST_REVERT_ITEM_PROCESSING",icon:"GET_ICON_UNDO",className:"filepond--action-revert-item-processing",align:"BUTTON_PROCESS_ITEM_POSITION"}},Ni=[];te(Ci,e=>{Ni.push(e)});var ve=e=>{if(Bi(e)==="right")return 0;let t=e.ref.buttonRemoveItem.rect.element;return t.hidden?null:t.width+t.left},qs=e=>e.ref.buttonAbortItemLoad.rect.element.width,ei=e=>Math.floor(e.ref.buttonRemoveItem.rect.element.height/4),$s=e=>Math.floor(e.ref.buttonRemoveItem.rect.element.left/2),Xs=e=>e.query("GET_STYLE_LOAD_INDICATOR_POSITION"),Qs=e=>e.query("GET_STYLE_PROGRESS_INDICATOR_POSITION"),Bi=e=>e.query("GET_STYLE_BUTTON_REMOVE_ITEM_POSITION"),Zs={buttonAbortItemLoad:{opacity:0},buttonRetryItemLoad:{opacity:0},buttonRemoveItem:{opacity:0},buttonProcessItem:{opacity:0},buttonAbortItemProcessing:{opacity:0},buttonRetryItemProcessing:{opacity:0},buttonRevertItemProcessing:{opacity:0},loadProgressIndicator:{opacity:0,align:Xs},processProgressIndicator:{opacity:0,align:Qs},processingCompleteIndicator:{opacity:0,scaleX:.75,scaleY:.75},info:{translateX:0,translateY:0,opacity:0},status:{translateX:0,translateY:0,opacity:0}},en={buttonRemoveItem:{opacity:1},buttonProcessItem:{opacity:1},info:{translateX:ve},status:{translateX:ve}},Mi={buttonAbortItemProcessing:{opacity:1},processProgressIndicator:{opacity:1},status:{opacity:1}},mt={DID_THROW_ITEM_INVALID:{buttonRemoveItem:{opacity:1},info:{translateX:ve},status:{translateX:ve,opacity:1}},DID_START_ITEM_LOAD:{buttonAbortItemLoad:{opacity:1},loadProgressIndicator:{opacity:1},status:{opacity:1}},DID_THROW_ITEM_LOAD_ERROR:{buttonRetryItemLoad:{opacity:1},buttonRemoveItem:{opacity:1},info:{translateX:ve},status:{opacity:1}},DID_START_ITEM_REMOVE:{processProgressIndicator:{opacity:1,align:Bi},info:{translateX:ve},status:{opacity:0}},DID_THROW_ITEM_REMOVE_ERROR:{processProgressIndicator:{opacity:0,align:Bi},buttonRemoveItem:{opacity:1},info:{translateX:ve},status:{opacity:1,translateX:ve}},DID_LOAD_ITEM:en,DID_LOAD_LOCAL_ITEM:{buttonRemoveItem:{opacity:1},info:{translateX:ve},status:{translateX:ve}},DID_START_ITEM_PROCESSING:Mi,DID_REQUEST_ITEM_PROCESSING:Mi,DID_UPDATE_ITEM_PROCESS_PROGRESS:Mi,DID_COMPLETE_ITEM_PROCESSING:{buttonRevertItemProcessing:{opacity:1},info:{opacity:1},status:{opacity:1}},DID_THROW_ITEM_PROCESSING_ERROR:{buttonRemoveItem:{opacity:1},buttonRetryItemProcessing:{opacity:1},status:{opacity:1},info:{translateX:ve}},DID_THROW_ITEM_PROCESSING_REVERT_ERROR:{buttonRevertItemProcessing:{opacity:1},status:{opacity:1},info:{opacity:1}},DID_ABORT_ITEM_PROCESSING:{buttonRemoveItem:{opacity:1},buttonProcessItem:{opacity:1},info:{translateX:ve},status:{opacity:1}},DID_REVERT_ITEM_PROCESSING:en},Ks=ne({create:({root:e})=>{e.element.innerHTML=e.query("GET_ICON_DONE")},name:"processing-complete-indicator",ignoreRect:!0,mixins:{styles:["scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",opacity:{type:"tween",duration:250}}}}),Js=({root:e,props:t})=>{let i=Object.keys(Ci).reduce((f,g)=>(f[g]={...Ci[g]},f),{}),{id:a}=t,n=e.query("GET_ALLOW_REVERT"),o=e.query("GET_ALLOW_REMOVE"),l=e.query("GET_ALLOW_PROCESS"),r=e.query("GET_INSTANT_UPLOAD"),s=e.query("IS_ASYNC"),p=e.query("GET_STYLE_BUTTON_REMOVE_ITEM_ALIGN"),c;s?l&&!n?c=f=>!/RevertItemProcessing/.test(f):!l&&n?c=f=>!/ProcessItem|RetryItemProcessing|AbortItemProcessing/.test(f):!l&&!n&&(c=f=>!/Process/.test(f)):c=f=>!/Process/.test(f);let d=c?Ni.filter(c):Ni.concat();if(r&&n&&(i.RevertItemProcessing.label="GET_LABEL_BUTTON_REMOVE_ITEM",i.RevertItemProcessing.icon="GET_ICON_REMOVE"),s&&!n){let f=mt.DID_COMPLETE_ITEM_PROCESSING;f.info.translateX=$s,f.info.translateY=ei,f.status.translateY=ei,f.processingCompleteIndicator={opacity:1,scaleX:1,scaleY:1}}if(s&&!l&&(["DID_START_ITEM_PROCESSING","DID_REQUEST_ITEM_PROCESSING","DID_UPDATE_ITEM_PROCESS_PROGRESS","DID_THROW_ITEM_PROCESSING_ERROR"].forEach(f=>{mt[f].status.translateY=ei}),mt.DID_THROW_ITEM_PROCESSING_ERROR.status.translateX=qs),p&&n){i.RevertItemProcessing.align="BUTTON_REMOVE_ITEM_POSITION";let f=mt.DID_COMPLETE_ITEM_PROCESSING;f.info.translateX=ve,f.status.translateY=ei,f.processingCompleteIndicator={opacity:1,scaleX:1,scaleY:1}}o||(i.RemoveItem.disabled=!0),te(i,(f,g)=>{let h=e.createChildView(Cn,{label:e.query(g.label),icon:e.query(g.icon),opacity:0});d.includes(f)&&e.appendChildView(h),g.disabled&&(h.element.setAttribute("disabled","disabled"),h.element.setAttribute("hidden","hidden")),h.element.dataset.align=e.query(`GET_STYLE_${g.align}`),h.element.classList.add(g.className),h.on("click",v=>{v.stopPropagation(),!g.disabled&&e.dispatch(g.action,{query:a})}),e.ref[`button${f}`]=h}),e.ref.processingCompleteIndicator=e.appendChildView(e.createChildView(Ks)),e.ref.processingCompleteIndicator.element.dataset.align=e.query("GET_STYLE_BUTTON_PROCESS_ITEM_POSITION"),e.ref.info=e.appendChildView(e.createChildView(Vs,{id:a})),e.ref.status=e.appendChildView(e.createChildView(Ys,{id:a}));let m=e.appendChildView(e.createChildView(Qa,{opacity:0,align:e.query("GET_STYLE_LOAD_INDICATOR_POSITION")}));m.element.classList.add("filepond--load-indicator"),e.ref.loadProgressIndicator=m;let u=e.appendChildView(e.createChildView(Qa,{opacity:0,align:e.query("GET_STYLE_PROGRESS_INDICATOR_POSITION")}));u.element.classList.add("filepond--process-indicator"),e.ref.processProgressIndicator=u,e.ref.activeStyles=[]},ec=({root:e,actions:t,props:i})=>{tc({root:e,actions:t,props:i});let a=t.concat().filter(n=>/^DID_/.test(n.type)).reverse().find(n=>mt[n.type]);if(a){e.ref.activeStyles=[];let n=mt[a.type];te(Zs,(o,l)=>{let r=e.ref[o];te(l,(s,p)=>{let c=n[o]&&typeof n[o][s]<"u"?n[o][s]:p;e.ref.activeStyles.push({control:r,key:s,value:c})})})}e.ref.activeStyles.forEach(({control:n,key:o,value:l})=>{n[o]=typeof l=="function"?l(e):l})},tc=ge({DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING:({root:e,action:t})=>{e.ref.buttonAbortItemProcessing.label=t.value},DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD:({root:e,action:t})=>{e.ref.buttonAbortItemLoad.label=t.value},DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL:({root:e,action:t})=>{e.ref.buttonAbortItemRemoval.label=t.value},DID_REQUEST_ITEM_PROCESSING:({root:e})=>{e.ref.processProgressIndicator.spin=!0,e.ref.processProgressIndicator.progress=0},DID_START_ITEM_LOAD:({root:e})=>{e.ref.loadProgressIndicator.spin=!0,e.ref.loadProgressIndicator.progress=0},DID_START_ITEM_REMOVE:({root:e})=>{e.ref.processProgressIndicator.spin=!0,e.ref.processProgressIndicator.progress=0},DID_UPDATE_ITEM_LOAD_PROGRESS:({root:e,action:t})=>{e.ref.loadProgressIndicator.spin=!1,e.ref.loadProgressIndicator.progress=t.progress},DID_UPDATE_ITEM_PROCESS_PROGRESS:({root:e,action:t})=>{e.ref.processProgressIndicator.spin=!1,e.ref.processProgressIndicator.progress=t.progress}}),ic=ne({create:Js,write:ec,didCreateView:e=>{tt("CREATE_VIEW",{...e,view:e})},name:"file"}),ac=({root:e,props:t})=>{e.ref.fileName=ke("legend"),e.appendChild(e.ref.fileName),e.ref.file=e.appendChildView(e.createChildView(ic,{id:t.id})),e.ref.data=!1},nc=({root:e,props:t})=>{ae(e.ref.fileName,Zi(e.query("GET_ITEM_NAME",t.id)))},oc=ne({create:ac,ignoreRect:!0,write:ge({DID_LOAD_ITEM:nc}),didCreateView:e=>{tt("CREATE_VIEW",{...e,view:e})},tag:"fieldset",name:"file-wrapper"}),tn={type:"spring",damping:.6,mass:7},lc=({root:e,props:t})=>{[{name:"top"},{name:"center",props:{translateY:null,scaleY:null},mixins:{animations:{scaleY:tn},styles:["translateY","scaleY"]}},{name:"bottom",props:{translateY:null},mixins:{animations:{translateY:tn},styles:["translateY"]}}].forEach(i=>{rc(e,i,t.name)}),e.element.classList.add(`filepond--${t.name}`),e.ref.scalable=null},rc=(e,t,i)=>{let a=ne({name:`panel-${t.name} filepond--${i}`,mixins:t.mixins,ignoreRectUpdate:!0}),n=e.createChildView(a,t.props);e.ref[t.name]=e.appendChildView(n)},sc=({root:e,props:t})=>{if((e.ref.scalable===null||t.scalable!==e.ref.scalable)&&(e.ref.scalable=vn(t.scalable)?t.scalable:!0,e.element.dataset.scalable=e.ref.scalable),!t.height)return;let i=e.ref.top.rect.element,a=e.ref.bottom.rect.element,n=Math.max(i.height+a.height,t.height);e.ref.center.translateY=i.height,e.ref.center.scaleY=(n-i.height-a.height)/100,e.ref.bottom.translateY=n-a.height},Vn=ne({name:"panel",read:({root:e,props:t})=>t.heightCurrent=e.ref.bottom.translateY,write:sc,create:lc,ignoreRect:!0,mixins:{apis:["height","heightCurrent","scalable"]}}),cc=e=>{let t=e.map(a=>a.id),i;return{setIndex:a=>{i=a},getIndex:()=>i,getItemIndex:a=>t.indexOf(a.id)}},an={type:"spring",stiffness:.75,damping:.45,mass:10},nn="spring",on={DID_START_ITEM_LOAD:"busy",DID_UPDATE_ITEM_LOAD_PROGRESS:"loading",DID_THROW_ITEM_INVALID:"load-invalid",DID_THROW_ITEM_LOAD_ERROR:"load-error",DID_LOAD_ITEM:"idle",DID_THROW_ITEM_REMOVE_ERROR:"remove-error",DID_START_ITEM_REMOVE:"busy",DID_START_ITEM_PROCESSING:"busy processing",DID_REQUEST_ITEM_PROCESSING:"busy processing",DID_UPDATE_ITEM_PROCESS_PROGRESS:"processing",DID_COMPLETE_ITEM_PROCESSING:"processing-complete",DID_THROW_ITEM_PROCESSING_ERROR:"processing-error",DID_THROW_ITEM_PROCESSING_REVERT_ERROR:"processing-revert-error",DID_ABORT_ITEM_PROCESSING:"cancelled",DID_REVERT_ITEM_PROCESSING:"idle"},dc=({root:e,props:t})=>{if(e.ref.handleClick=a=>e.dispatch("DID_ACTIVATE_ITEM",{id:t.id}),e.element.id=`filepond--item-${t.id}`,e.element.addEventListener("click",e.ref.handleClick),e.ref.container=e.appendChildView(e.createChildView(oc,{id:t.id})),e.ref.panel=e.appendChildView(e.createChildView(Vn,{name:"item-panel"})),e.ref.panel.height=null,t.markedForRemoval=!1,!e.query("GET_ALLOW_REORDER"))return;e.element.dataset.dragState="idle";let i=a=>{if(!a.isPrimary)return;let n=!1,o={x:a.pageX,y:a.pageY};t.dragOrigin={x:e.translateX,y:e.translateY},t.dragCenter={x:a.offsetX,y:a.offsetY};let l=cc(e.query("GET_ACTIVE_ITEMS"));e.dispatch("DID_GRAB_ITEM",{id:t.id,dragState:l});let r=d=>{if(!d.isPrimary)return;d.stopPropagation(),d.preventDefault(),t.dragOffset={x:d.pageX-o.x,y:d.pageY-o.y},t.dragOffset.x*t.dragOffset.x+t.dragOffset.y*t.dragOffset.y>16&&!n&&(n=!0,e.element.removeEventListener("click",e.ref.handleClick)),e.dispatch("DID_DRAG_ITEM",{id:t.id,dragState:l})},s=d=>{d.isPrimary&&(t.dragOffset={x:d.pageX-o.x,y:d.pageY-o.y},c())},p=()=>{c()},c=()=>{document.removeEventListener("pointercancel",p),document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",s),e.dispatch("DID_DROP_ITEM",{id:t.id,dragState:l}),n&&setTimeout(()=>e.element.addEventListener("click",e.ref.handleClick),0)};document.addEventListener("pointercancel",p),document.addEventListener("pointermove",r),document.addEventListener("pointerup",s)};e.element.addEventListener("pointerdown",i)},pc=ge({DID_UPDATE_PANEL_HEIGHT:({root:e,action:t})=>{e.height=t.height}}),mc=ge({DID_GRAB_ITEM:({root:e,props:t})=>{t.dragOrigin={x:e.translateX,y:e.translateY}},DID_DRAG_ITEM:({root:e})=>{e.element.dataset.dragState="drag"},DID_DROP_ITEM:({root:e,props:t})=>{t.dragOffset=null,t.dragOrigin=null,e.element.dataset.dragState="drop"}},({root:e,actions:t,props:i,shouldOptimize:a})=>{e.element.dataset.dragState==="drop"&&e.scaleX<=1&&(e.element.dataset.dragState="idle");let n=t.concat().filter(l=>/^DID_/.test(l.type)).reverse().find(l=>on[l.type]);n&&n.type!==i.currentState&&(i.currentState=n.type,e.element.dataset.filepondItemState=on[i.currentState]||"");let o=e.query("GET_ITEM_PANEL_ASPECT_RATIO")||e.query("GET_PANEL_ASPECT_RATIO");o?a||(e.height=e.rect.element.width*o):(pc({root:e,actions:t,props:i}),!e.height&&e.ref.container.rect.element.height>0&&(e.height=e.ref.container.rect.element.height)),a&&(e.ref.panel.height=null),e.ref.panel.height=e.height}),uc=ne({create:dc,write:mc,destroy:({root:e,props:t})=>{e.element.removeEventListener("click",e.ref.handleClick),e.dispatch("RELEASE_ITEM",{query:t.id})},tag:"li",name:"item",mixins:{apis:["id","interactionMethod","markedForRemoval","spawnDate","dragCenter","dragOrigin","dragOffset"],styles:["translateX","translateY","scaleX","scaleY","opacity","height"],animations:{scaleX:nn,scaleY:nn,translateX:an,translateY:an,opacity:{type:"tween",duration:150}}}}),Ki=(e,t)=>Math.max(1,Math.floor((e+1)/t)),Ji=(e,t,i)=>{if(!i)return;let a=e.rect.element.width,n=t.length,o=null;if(n===0||i.topE){if(i.left{se(e.element,"role","list"),e.ref.lastItemSpanwDate=Date.now()},gc=({root:e,action:t})=>{let{id:i,index:a,interactionMethod:n}=t;e.ref.addIndex=a;let o=Date.now(),l=o,r=1;if(n!==_e.NONE){r=0;let s=e.query("GET_ITEM_INSERT_INTERVAL"),p=o-e.ref.lastItemSpanwDate;l=p{e.dragOffset?(e.translateX=null,e.translateY=null,e.translateX=e.dragOrigin.x+e.dragOffset.x,e.translateY=e.dragOrigin.y+e.dragOffset.y,e.scaleX=1.025,e.scaleY=1.025):(e.translateX=t,e.translateY=i,Date.now()>e.spawnDate&&(e.opacity===0&&hc(e,t,i,a,n),e.scaleX=1,e.scaleY=1,e.opacity=1))},hc=(e,t,i,a,n)=>{e.interactionMethod===_e.NONE?(e.translateX=null,e.translateX=t,e.translateY=null,e.translateY=i):e.interactionMethod===_e.DROP?(e.translateX=null,e.translateX=t-a*20,e.translateY=null,e.translateY=i-n*10,e.scaleX=.8,e.scaleY=.8):e.interactionMethod===_e.BROWSE?(e.translateY=null,e.translateY=i-30):e.interactionMethod===_e.API&&(e.translateX=null,e.translateX=t-30,e.translateY=null)},Ec=({root:e,action:t})=>{let{id:i}=t,a=e.childViews.find(n=>n.id===i);a&&(a.scaleX=.9,a.scaleY=.9,a.opacity=0,a.markedForRemoval=!0)},Oi=e=>e.rect.element.height+e.rect.element.marginBottom*.5+e.rect.element.marginTop*.5,bc=e=>e.rect.element.width+e.rect.element.marginLeft*.5+e.rect.element.marginRight*.5,Tc=({root:e,action:t})=>{let{id:i,dragState:a}=t,n=e.query("GET_ITEM",{id:i}),o=e.childViews.find(h=>h.id===i),l=e.childViews.length,r=a.getItemIndex(n);if(!o)return;let s={x:o.dragOrigin.x+o.dragOffset.x+o.dragCenter.x,y:o.dragOrigin.y+o.dragOffset.y+o.dragCenter.y},p=Oi(o),c=bc(o),d=Math.floor(e.rect.outer.width/c);d>l&&(d=l);let m=Math.floor(l/d+1);ti.setHeight=p*m,ti.setWidth=c*d;var u={y:Math.floor(s.y/p),x:Math.floor(s.x/c),getGridIndex:function(){return s.y>ti.getHeight||s.y<0||s.x>ti.getWidth||s.x<0?r:this.y*d+this.x},getColIndex:function(){let v=e.query("GET_ACTIVE_ITEMS"),E=e.childViews.filter(O=>O.rect.element.height),T=v.map(O=>E.find(M=>M.id===O.id)),I=T.findIndex(O=>O===o),y=Oi(o),b=T.length,w=b,x=0,_=0,P=0;for(let O=0;OO){if(s.y1?u.getGridIndex():u.getColIndex();e.dispatch("MOVE_ITEM",{query:o,index:f});let g=a.getIndex();if(g===void 0||g!==f){if(a.setIndex(f),g===void 0)return;e.dispatch("DID_REORDER_ITEMS",{items:e.query("GET_ACTIVE_ITEMS"),origin:r,target:f})}},vc=ge({DID_ADD_ITEM:gc,DID_REMOVE_ITEM:Ec,DID_DRAG_ITEM:Tc}),Ic=({root:e,props:t,actions:i,shouldOptimize:a})=>{vc({root:e,props:t,actions:i});let{dragCoordinates:n}=t,o=e.rect.element.width,l=e.childViews.filter(T=>T.rect.element.height),r=e.query("GET_ACTIVE_ITEMS").map(T=>l.find(I=>I.id===T.id)).filter(T=>T),s=n?Ji(e,r,n):null,p=e.ref.addIndex||null;e.ref.addIndex=null;let c=0,d=0,m=0;if(r.length===0)return;let u=r[0].rect.element,f=u.marginTop+u.marginBottom,g=u.marginLeft+u.marginRight,h=u.width+g,v=u.height+f,E=Ki(o,h);if(E===1){let T=0,I=0;r.forEach((y,b)=>{if(s){let _=b-s;_===-2?I=-f*.25:_===-1?I=-f*.75:_===0?I=f*.75:_===1?I=f*.25:I=0}a&&(y.translateX=null,y.translateY=null),y.markedForRemoval||ln(y,0,T+I);let x=(y.rect.element.height+f)*(y.markedForRemoval?y.opacity:1);T+=x})}else{let T=0,I=0;r.forEach((y,b)=>{b===s&&(c=1),b===p&&(m+=1),y.markedForRemoval&&y.opacity<.5&&(d-=1);let w=b+m+c+d,x=w%E,_=Math.floor(w/E),P=x*h,O=_*v,M=Math.sign(P-T),N=Math.sign(O-I);T=P,I=O,!y.markedForRemoval&&(a&&(y.translateX=null,y.translateY=null),ln(y,P,O,M,N))})}},xc=(e,t)=>t.filter(i=>i.data&&i.data.id?e.id===i.data.id:!0),yc=ne({create:fc,write:Ic,tag:"ul",name:"list",didWriteView:({root:e})=>{e.childViews.filter(t=>t.markedForRemoval&&t.opacity===0&&t.resting).forEach(t=>{t._destroy(),e.removeChildView(t)})},filterFrameActionsForChild:xc,mixins:{apis:["dragCoordinates"]}}),_c=({root:e,props:t})=>{e.ref.list=e.appendChildView(e.createChildView(yc)),t.dragCoordinates=null,t.overflowing=!1},Rc=({root:e,props:t,action:i})=>{e.query("GET_ITEM_INSERT_LOCATION_FREEDOM")&&(t.dragCoordinates={left:i.position.scopeLeft-e.ref.list.rect.element.left,top:i.position.scopeTop-(e.rect.outer.top+e.rect.element.marginTop+e.rect.element.scrollTop)})},wc=({props:e})=>{e.dragCoordinates=null},Sc=ge({DID_DRAG:Rc,DID_END_DRAG:wc}),Lc=({root:e,props:t,actions:i})=>{if(Sc({root:e,props:t,actions:i}),e.ref.list.dragCoordinates=t.dragCoordinates,t.overflowing&&!t.overflow&&(t.overflowing=!1,e.element.dataset.state="",e.height=null),t.overflow){let a=Math.round(t.overflow);a!==e.height&&(t.overflowing=!0,e.element.dataset.state="overflow",e.height=a)}},Ac=ne({create:_c,write:Lc,name:"list-scroller",mixins:{apis:["overflow","dragCoordinates"],styles:["height","translateY"],animations:{translateY:"spring"}}}),Oe=(e,t,i,a="")=>{i?se(e,t,a):e.removeAttribute(t)},Mc=e=>{if(!(!e||e.value==="")){try{e.value=""}catch{}if(e.value){let t=ke("form"),i=e.parentNode,a=e.nextSibling;t.appendChild(e),t.reset(),a?i.insertBefore(e,a):i.appendChild(e)}}},Oc=({root:e,props:t})=>{e.element.id=`filepond--browser-${t.id}`,se(e.element,"name",e.query("GET_NAME")),se(e.element,"aria-controls",`filepond--assistant-${t.id}`),se(e.element,"aria-labelledby",`filepond--drop-label-${t.id}`),Gn({root:e,action:{value:e.query("GET_ACCEPTED_FILE_TYPES")}}),Un({root:e,action:{value:e.query("GET_ALLOW_MULTIPLE")}}),Wn({root:e,action:{value:e.query("GET_ALLOW_DIRECTORIES_ONLY")}}),ki({root:e}),Hn({root:e,action:{value:e.query("GET_REQUIRED")}}),jn({root:e,action:{value:e.query("GET_CAPTURE_METHOD")}}),e.ref.handleChange=i=>{if(!e.element.value)return;let a=Array.from(e.element.files).map(n=>(n._relativePath=n.webkitRelativePath,n));setTimeout(()=>{t.onload(a),Mc(e.element)},250)},e.element.addEventListener("change",e.ref.handleChange)},Gn=({root:e,action:t})=>{e.query("GET_ALLOW_SYNC_ACCEPT_ATTRIBUTE")&&Oe(e.element,"accept",!!t.value,t.value?t.value.join(","):"")},Un=({root:e,action:t})=>{Oe(e.element,"multiple",t.value)},Wn=({root:e,action:t})=>{Oe(e.element,"webkitdirectory",t.value)},ki=({root:e})=>{let t=e.query("GET_DISABLED"),i=e.query("GET_ALLOW_BROWSE"),a=t||!i;Oe(e.element,"disabled",a)},Hn=({root:e,action:t})=>{t.value?e.query("GET_TOTAL_ITEMS")===0&&Oe(e.element,"required",!0):Oe(e.element,"required",!1)},jn=({root:e,action:t})=>{Oe(e.element,"capture",!!t.value,t.value===!0?"":t.value)},rn=({root:e})=>{let{element:t}=e;e.query("GET_TOTAL_ITEMS")>0?(Oe(t,"required",!1),Oe(t,"name",!1)):(Oe(t,"name",!0,e.query("GET_NAME")),e.query("GET_CHECK_VALIDITY")&&t.setCustomValidity(""),e.query("GET_REQUIRED")&&Oe(t,"required",!0))},Pc=({root:e})=>{e.query("GET_CHECK_VALIDITY")&&e.element.setCustomValidity(e.query("GET_LABEL_INVALID_FIELD"))},Dc=ne({tag:"input",name:"browser",ignoreRect:!0,ignoreRectUpdate:!0,attributes:{type:"file"},create:Oc,destroy:({root:e})=>{e.element.removeEventListener("change",e.ref.handleChange)},write:ge({DID_LOAD_ITEM:rn,DID_REMOVE_ITEM:rn,DID_THROW_ITEM_INVALID:Pc,DID_SET_DISABLED:ki,DID_SET_ALLOW_BROWSE:ki,DID_SET_ALLOW_DIRECTORIES_ONLY:Wn,DID_SET_ALLOW_MULTIPLE:Un,DID_SET_ACCEPTED_FILE_TYPES:Gn,DID_SET_CAPTURE_METHOD:jn,DID_SET_REQUIRED:Hn})}),sn={ENTER:13,SPACE:32},Fc=({root:e,props:t})=>{let i=ke("label");se(i,"for",`filepond--browser-${t.id}`),se(i,"id",`filepond--drop-label-${t.id}`),e.ref.handleKeyDown=a=>{(a.keyCode===sn.ENTER||a.keyCode===sn.SPACE)&&(a.preventDefault(),e.ref.label.click())},e.ref.handleClick=a=>{a.target===i||i.contains(a.target)||e.ref.label.click()},i.addEventListener("keydown",e.ref.handleKeyDown),e.element.addEventListener("click",e.ref.handleClick),Yn(i,t.caption),e.appendChild(i),e.ref.label=i},Yn=(e,t)=>{e.innerHTML=t;let i=e.querySelector(".filepond--label-action");return i&&se(i,"tabindex","0"),t},zc=ne({name:"drop-label",ignoreRect:!0,create:Fc,destroy:({root:e})=>{e.ref.label.addEventListener("keydown",e.ref.handleKeyDown),e.element.removeEventListener("click",e.ref.handleClick)},write:ge({DID_SET_LABEL_IDLE:({root:e,action:t})=>{Yn(e.ref.label,t.value)}}),mixins:{styles:["opacity","translateX","translateY"],animations:{opacity:{type:"tween",duration:150},translateX:"spring",translateY:"spring"}}}),Cc=ne({name:"drip-blob",ignoreRect:!0,mixins:{styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}}}}),Nc=({root:e})=>{let t=e.rect.element.width*.5,i=e.rect.element.height*.5;e.ref.blob=e.appendChildView(e.createChildView(Cc,{opacity:0,scaleX:2.5,scaleY:2.5,translateX:t,translateY:i}))},Bc=({root:e,action:t})=>{if(!e.ref.blob){Nc({root:e});return}e.ref.blob.translateX=t.position.scopeLeft,e.ref.blob.translateY=t.position.scopeTop,e.ref.blob.scaleX=1,e.ref.blob.scaleY=1,e.ref.blob.opacity=1},kc=({root:e})=>{e.ref.blob&&(e.ref.blob.opacity=0)},Vc=({root:e})=>{e.ref.blob&&(e.ref.blob.scaleX=2.5,e.ref.blob.scaleY=2.5,e.ref.blob.opacity=0)},Gc=({root:e,props:t,actions:i})=>{Uc({root:e,props:t,actions:i});let{blob:a}=e.ref;i.length===0&&a&&a.opacity===0&&(e.removeChildView(a),e.ref.blob=null)},Uc=ge({DID_DRAG:Bc,DID_DROP:Vc,DID_END_DRAG:kc}),Wc=ne({ignoreRect:!0,ignoreRectUpdate:!0,name:"drip",write:Gc}),qn=(e,t)=>{try{let i=new DataTransfer;t.forEach(a=>{a instanceof File?i.items.add(a):i.items.add(new File([a],a.name,{type:a.type}))}),e.files=i.files}catch{return!1}return!0},Hc=({root:e})=>{e.ref.fields={};let t=document.createElement("legend");t.textContent="Files",e.element.appendChild(t)},fi=(e,t)=>e.ref.fields[t],ea=e=>{e.query("GET_ACTIVE_ITEMS").forEach(t=>{e.ref.fields[t.id]&&e.element.appendChild(e.ref.fields[t.id])})},cn=({root:e})=>ea(e),jc=({root:e,action:t})=>{let n=!(e.query("GET_ITEM",t.id).origin===re.LOCAL)&&e.query("SHOULD_UPDATE_FILE_INPUT"),o=ke("input");o.type=n?"file":"hidden",o.name=e.query("GET_NAME"),e.ref.fields[t.id]=o,ea(e)},Yc=({root:e,action:t})=>{let i=fi(e,t.id);if(!i||(t.serverFileReference!==null&&(i.value=t.serverFileReference),!e.query("SHOULD_UPDATE_FILE_INPUT")))return;let a=e.query("GET_ITEM",t.id);qn(i,[a.file])},qc=({root:e,action:t})=>{e.query("SHOULD_UPDATE_FILE_INPUT")&&setTimeout(()=>{let i=fi(e,t.id);i&&qn(i,[t.file])},0)},$c=({root:e})=>{e.element.disabled=e.query("GET_DISABLED")},Xc=({root:e,action:t})=>{let i=fi(e,t.id);i&&(i.parentNode&&i.parentNode.removeChild(i),delete e.ref.fields[t.id])},Qc=({root:e,action:t})=>{let i=fi(e,t.id);i&&(t.value===null?i.removeAttribute("value"):i.type!="file"&&(i.value=t.value),ea(e))},Zc=ge({DID_SET_DISABLED:$c,DID_ADD_ITEM:jc,DID_LOAD_ITEM:Yc,DID_REMOVE_ITEM:Xc,DID_DEFINE_VALUE:Qc,DID_PREPARE_OUTPUT:qc,DID_REORDER_ITEMS:cn,DID_SORT_ITEMS:cn}),Kc=ne({tag:"fieldset",name:"data",create:Hc,write:Zc,ignoreRect:!0}),Jc=e=>"getRootNode"in e?e.getRootNode():document,ed=["jpg","jpeg","png","gif","bmp","webp","svg","tiff"],td=["css","csv","html","txt"],id={zip:"zip|compressed",epub:"application/epub+zip"},$n=(e="")=>(e=e.toLowerCase(),ed.includes(e)?"image/"+(e==="jpg"?"jpeg":e==="svg"?"svg+xml":e):td.includes(e)?"text/"+e:id[e]||""),ta=e=>new Promise((t,i)=>{let a=dd(e);if(a.length&&!ad(e))return t(a);nd(e).then(t)}),ad=e=>e.files?e.files.length>0:!1,nd=e=>new Promise((t,i)=>{let a=(e.items?Array.from(e.items):[]).filter(n=>od(n)).map(n=>ld(n));if(!a.length){t(e.files?Array.from(e.files):[]);return}Promise.all(a).then(n=>{let o=[];n.forEach(l=>{o.push.apply(o,l)}),t(o.filter(l=>l).map(l=>(l._relativePath||(l._relativePath=l.webkitRelativePath),l)))}).catch(console.error)}),od=e=>{if(Xn(e)){let t=ia(e);if(t)return t.isFile||t.isDirectory}return e.kind==="file"},ld=e=>new Promise((t,i)=>{if(cd(e)){rd(ia(e)).then(t).catch(i);return}t([e.getAsFile()])}),rd=e=>new Promise((t,i)=>{let a=[],n=0,o=0,l=()=>{o===0&&n===0&&t(a)},r=s=>{n++;let p=s.createReader(),c=()=>{p.readEntries(d=>{if(d.length===0){n--,l();return}d.forEach(m=>{m.isDirectory?r(m):(o++,m.file(u=>{let f=sd(u);m.fullPath&&(f._relativePath=m.fullPath),a.push(f),o--,l()}))}),c()},i)};c()};r(e)}),sd=e=>{if(e.type.length)return e;let t=e.lastModifiedDate,i=e.name,a=$n(ui(e.name));return a.length&&(e=e.slice(0,e.size,a),e.name=i,e.lastModifiedDate=t),e},cd=e=>Xn(e)&&(ia(e)||{}).isDirectory,Xn=e=>"webkitGetAsEntry"in e,ia=e=>e.webkitGetAsEntry(),dd=e=>{let t=[];try{if(t=md(e),t.length)return t;t=pd(e)}catch{}return t},pd=e=>{let t=e.getData("url");return typeof t=="string"&&t.length?[t]:[]},md=e=>{let t=e.getData("text/html");if(typeof t=="string"&&t.length){let i=t.match(/src\s*=\s*"(.+?)"/);if(i)return[i[1]]}return[]},ri=[],et=e=>({pageLeft:e.pageX,pageTop:e.pageY,scopeLeft:e.offsetX||e.layerX,scopeTop:e.offsetY||e.layerY}),ud=(e,t,i)=>{let a=fd(t),n={element:e,filterElement:i,state:null,ondrop:()=>{},onenter:()=>{},ondrag:()=>{},onexit:()=>{},onload:()=>{},allowdrop:()=>{}};return n.destroy=a.addListener(n),n},fd=e=>{let t=ri.find(a=>a.element===e);if(t)return t;let i=gd(e);return ri.push(i),i},gd=e=>{let t=[],i={dragenter:Ed,dragover:bd,dragleave:vd,drop:Td},a={};te(i,(o,l)=>{a[o]=l(e,t),e.addEventListener(o,a[o],!1)});let n={element:e,addListener:o=>(t.push(o),()=>{t.splice(t.indexOf(o),1),t.length===0&&(ri.splice(ri.indexOf(n),1),te(i,l=>{e.removeEventListener(l,a[l],!1)}))})};return n},hd=(e,t)=>("elementFromPoint"in e||(e=document),e.elementFromPoint(t.x,t.y)),aa=(e,t)=>{let i=Jc(t),a=hd(i,{x:e.pageX-window.pageXOffset,y:e.pageY-window.pageYOffset});return a===t||t.contains(a)},Qn=null,ii=(e,t)=>{try{e.dropEffect=t}catch{}},Ed=(e,t)=>i=>{i.preventDefault(),Qn=i.target,t.forEach(a=>{let{element:n,onenter:o}=a;aa(i,n)&&(a.state="enter",o(et(i)))})},bd=(e,t)=>i=>{i.preventDefault();let a=i.dataTransfer;ta(a).then(n=>{let o=!1;t.some(l=>{let{filterElement:r,element:s,onenter:p,onexit:c,ondrag:d,allowdrop:m}=l;ii(a,"copy");let u=m(n);if(!u){ii(a,"none");return}if(aa(i,s)){if(o=!0,l.state===null){l.state="enter",p(et(i));return}if(l.state="over",r&&!u){ii(a,"none");return}d(et(i))}else r&&!o&&ii(a,"none"),l.state&&(l.state=null,c(et(i)))})})},Td=(e,t)=>i=>{i.preventDefault();let a=i.dataTransfer;ta(a).then(n=>{t.forEach(o=>{let{filterElement:l,element:r,ondrop:s,onexit:p,allowdrop:c}=o;if(o.state=null,!(l&&!aa(i,r))){if(!c(n))return p(et(i));s(et(i),n)}})})},vd=(e,t)=>i=>{Qn===i.target&&t.forEach(a=>{let{onexit:n}=a;a.state=null,n(et(i))})},Id=(e,t,i)=>{e.classList.add("filepond--hopper");let{catchesDropsOnPage:a,requiresDropOnElement:n,filterItems:o=c=>c}=i,l=ud(e,a?document.documentElement:e,n),r="",s="";l.allowdrop=c=>t(o(c)),l.ondrop=(c,d)=>{let m=o(d);if(!t(m)){p.ondragend(c);return}s="drag-drop",p.onload(m,c)},l.ondrag=c=>{p.ondrag(c)},l.onenter=c=>{s="drag-over",p.ondragstart(c)},l.onexit=c=>{s="drag-exit",p.ondragend(c)};let p={updateHopperState:()=>{r!==s&&(e.dataset.hopperState=s,r=s)},onload:()=>{},ondragstart:()=>{},ondrag:()=>{},ondragend:()=>{},destroy:()=>{l.destroy()}};return p},Vi=!1,ut=[],Zn=e=>{let t=document.activeElement;if(t&&(/textarea|input/i.test(t.nodeName)||t.getAttribute("contenteditable")==="true")){let a=!1,n=t;for(;n!==document.body;){if(n.classList.contains("filepond--root")){a=!0;break}n=n.parentNode}if(!a)return}ta(e.clipboardData).then(a=>{a.length&&ut.forEach(n=>n(a))})},xd=e=>{ut.includes(e)||(ut.push(e),!Vi&&(Vi=!0,document.addEventListener("paste",Zn)))},yd=e=>{$i(ut,ut.indexOf(e)),ut.length===0&&(document.removeEventListener("paste",Zn),Vi=!1)},_d=()=>{let e=i=>{t.onload(i)},t={destroy:()=>{yd(e)},onload:()=>{}};return xd(e),t},Rd=({root:e,props:t})=>{e.element.id=`filepond--assistant-${t.id}`,se(e.element,"role","alert"),se(e.element,"aria-live","polite"),se(e.element,"aria-relevant","additions")},dn=null,pn=null,Pi=[],gi=(e,t)=>{e.element.textContent=t},wd=e=>{e.element.textContent=""},Kn=(e,t,i)=>{let a=e.query("GET_TOTAL_ITEMS");gi(e,`${i} ${t}, ${a} ${a===1?e.query("GET_LABEL_FILE_COUNT_SINGULAR"):e.query("GET_LABEL_FILE_COUNT_PLURAL")}`),clearTimeout(pn),pn=setTimeout(()=>{wd(e)},1500)},Jn=e=>e.element.parentNode.contains(document.activeElement),Sd=({root:e,action:t})=>{if(!Jn(e))return;e.element.textContent="";let i=e.query("GET_ITEM",t.id);Pi.push(i.filename),clearTimeout(dn),dn=setTimeout(()=>{Kn(e,Pi.join(", "),e.query("GET_LABEL_FILE_ADDED")),Pi.length=0},750)},Ld=({root:e,action:t})=>{if(!Jn(e))return;let i=t.item;Kn(e,i.filename,e.query("GET_LABEL_FILE_REMOVED"))},Ad=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename,n=e.query("GET_LABEL_FILE_PROCESSING_COMPLETE");gi(e,`${a} ${n}`)},mn=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename,n=e.query("GET_LABEL_FILE_PROCESSING_ABORTED");gi(e,`${a} ${n}`)},ai=({root:e,action:t})=>{let a=e.query("GET_ITEM",t.id).filename;gi(e,`${t.status.main} ${a} ${t.status.sub}`)},Md=ne({create:Rd,ignoreRect:!0,ignoreRectUpdate:!0,write:ge({DID_LOAD_ITEM:Sd,DID_REMOVE_ITEM:Ld,DID_COMPLETE_ITEM_PROCESSING:Ad,DID_ABORT_ITEM_PROCESSING:mn,DID_REVERT_ITEM_PROCESSING:mn,DID_THROW_ITEM_REMOVE_ERROR:ai,DID_THROW_ITEM_LOAD_ERROR:ai,DID_THROW_ITEM_INVALID:ai,DID_THROW_ITEM_PROCESSING_ERROR:ai}),tag:"span",name:"assistant"}),eo=(e,t="-")=>e.replace(new RegExp(`${t}.`,"g"),i=>i.charAt(1).toUpperCase()),to=(e,t=16,i=!0)=>{let a=Date.now(),n=null;return(...o)=>{clearTimeout(n);let l=Date.now()-a,r=()=>{a=Date.now(),e(...o)};le.preventDefault(),Pd=({root:e,props:t})=>{let i=e.query("GET_ID");i&&(e.element.id=i);let a=e.query("GET_CLASS_NAME");a&&a.split(" ").filter(s=>s.length).forEach(s=>{e.element.classList.add(s)}),e.ref.label=e.appendChildView(e.createChildView(zc,{...t,translateY:null,caption:e.query("GET_LABEL_IDLE")})),e.ref.list=e.appendChildView(e.createChildView(Ac,{translateY:null})),e.ref.panel=e.appendChildView(e.createChildView(Vn,{name:"panel-root"})),e.ref.assistant=e.appendChildView(e.createChildView(Md,{...t})),e.ref.data=e.appendChildView(e.createChildView(Kc,{...t})),e.ref.measure=ke("div"),e.ref.measure.style.height="100%",e.element.appendChild(e.ref.measure),e.ref.bounds=null,e.query("GET_STYLES").filter(s=>!Be(s.value)).map(({name:s,value:p})=>{e.element.dataset[s]=p}),e.ref.widthPrevious=null,e.ref.widthUpdated=to(()=>{e.ref.updateHistory=[],e.dispatch("DID_RESIZE_ROOT")},250),e.ref.previousAspectRatio=null,e.ref.updateHistory=[];let n=window.matchMedia("(pointer: fine) and (hover: hover)").matches,o="PointerEvent"in window;e.query("GET_ALLOW_REORDER")&&o&&!n&&(e.element.addEventListener("touchmove",si,{passive:!1}),e.element.addEventListener("gesturestart",si));let l=e.query("GET_CREDITS");if(l.length===2){let s=document.createElement("a");s.className="filepond--credits",s.href=l[0],s.tabIndex=-1,s.target="_blank",s.rel="noopener noreferrer nofollow",s.textContent=l[1],e.element.appendChild(s),e.ref.credits=s}},Dd=({root:e,props:t,actions:i})=>{if(Bd({root:e,props:t,actions:i}),i.filter(b=>/^DID_SET_STYLE_/.test(b.type)).filter(b=>!Be(b.data.value)).map(({type:b,data:w})=>{let x=eo(b.substring(8).toLowerCase(),"_");e.element.dataset[x]=w.value,e.invalidateLayout()}),e.rect.element.hidden)return;e.rect.element.width!==e.ref.widthPrevious&&(e.ref.widthPrevious=e.rect.element.width,e.ref.widthUpdated());let a=e.ref.bounds;a||(a=e.ref.bounds=Cd(e),e.element.removeChild(e.ref.measure),e.ref.measure=null);let{hopper:n,label:o,list:l,panel:r}=e.ref;n&&n.updateHopperState();let s=e.query("GET_PANEL_ASPECT_RATIO"),p=e.query("GET_ALLOW_MULTIPLE"),c=e.query("GET_TOTAL_ITEMS"),d=p?e.query("GET_MAX_FILES")||Od:1,m=c===d,u=i.find(b=>b.type==="DID_ADD_ITEM");if(m&&u){let b=u.data.interactionMethod;o.opacity=0,p?o.translateY=-40:b===_e.API?o.translateX=40:b===_e.BROWSE?o.translateY=40:o.translateY=30}else m||(o.opacity=1,o.translateX=0,o.translateY=0);let f=Fd(e),g=zd(e),h=o.rect.element.height,v=!p||m?0:h,E=m?l.rect.element.marginTop:0,T=c===0?0:l.rect.element.marginBottom,I=v+E+g.visual+T,y=v+E+g.bounds+T;if(l.translateY=Math.max(0,v-l.rect.element.marginTop)-f.top,s){let b=e.rect.element.width,w=b*s;s!==e.ref.previousAspectRatio&&(e.ref.previousAspectRatio=s,e.ref.updateHistory=[]);let x=e.ref.updateHistory;x.push(b);let _=2;if(x.length>_*2){let O=x.length,M=O-10,N=0;for(let S=O;S>=M;S--)if(x[S]===x[S-2]&&N++,N>=_)return}r.scalable=!1,r.height=w;let P=w-v-(T-f.bottom)-(m?E:0);g.visual>P?l.overflow=P:l.overflow=null,e.height=w}else if(a.fixedHeight){r.scalable=!1;let b=a.fixedHeight-v-(T-f.bottom)-(m?E:0);g.visual>b?l.overflow=b:l.overflow=null}else if(a.cappedHeight){let b=I>=a.cappedHeight,w=Math.min(a.cappedHeight,I);r.scalable=!0,r.height=b?w:w-f.top-f.bottom;let x=w-v-(T-f.bottom)-(m?E:0);I>a.cappedHeight&&g.visual>x?l.overflow=x:l.overflow=null,e.height=Math.min(a.cappedHeight,y-f.top-f.bottom)}else{let b=c>0?f.top+f.bottom:0;r.scalable=!0,r.height=Math.max(h,I-b),e.height=Math.max(h,y-b)}e.ref.credits&&r.heightCurrent&&(e.ref.credits.style.transform=`translateY(${r.heightCurrent}px)`)},Fd=e=>{let t=e.ref.list.childViews[0].childViews[0];return t?{top:t.rect.element.marginTop,bottom:t.rect.element.marginBottom}:{top:0,bottom:0}},zd=e=>{let t=0,i=0,a=e.ref.list,n=a.childViews[0],o=n.childViews.filter(E=>E.rect.element.height),l=e.query("GET_ACTIVE_ITEMS").map(E=>o.find(T=>T.id===E.id)).filter(E=>E);if(l.length===0)return{visual:t,bounds:i};let r=n.rect.element.width,s=Ji(n,l,a.dragCoordinates),p=l[0].rect.element,c=p.marginTop+p.marginBottom,d=p.marginLeft+p.marginRight,m=p.width+d,u=p.height+c,f=typeof s<"u"&&s>=0?1:0,g=l.find(E=>E.markedForRemoval&&E.opacity<.45)?-1:0,h=l.length+f+g,v=Ki(r,m);return v===1?l.forEach(E=>{let T=E.rect.element.height+c;i+=T,t+=T*E.opacity}):(i=Math.ceil(h/v)*u,t=i),{visual:t,bounds:i}},Cd=e=>{let t=e.ref.measureHeight||null;return{cappedHeight:parseInt(e.style.maxHeight,10)||null,fixedHeight:t===0?null:t}},na=(e,t)=>{let i=e.query("GET_ALLOW_REPLACE"),a=e.query("GET_ALLOW_MULTIPLE"),n=e.query("GET_TOTAL_ITEMS"),o=e.query("GET_MAX_FILES"),l=t.length;return!a&&l>1?(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:ie("warning",0,"Max files")}),!0):(o=a?o:1,!a&&i?!1:Et(o)&&n+l>o?(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:ie("warning",0,"Max files")}),!0):!1)},Nd=(e,t,i)=>{let a=e.childViews[0];return Ji(a,t,{left:i.scopeLeft-a.rect.element.left,top:i.scopeTop-(e.rect.outer.top+e.rect.element.marginTop+e.rect.element.scrollTop)})},un=e=>{let t=e.query("GET_ALLOW_DROP"),i=e.query("GET_DISABLED"),a=t&&!i;if(a&&!e.ref.hopper){let n=Id(e.element,o=>{let l=e.query("GET_BEFORE_DROP_FILE")||(()=>!0);return e.query("GET_DROP_VALIDATION")?o.every(s=>tt("ALLOW_HOPPER_ITEM",s,{query:e.query}).every(p=>p===!0)&&l(s)):!0},{filterItems:o=>{let l=e.query("GET_IGNORED_FILES");return o.filter(r=>Je(r)?!l.includes(r.name.toLowerCase()):!0)},catchesDropsOnPage:e.query("GET_DROP_ON_PAGE"),requiresDropOnElement:e.query("GET_DROP_ON_ELEMENT")});n.onload=(o,l)=>{let s=e.ref.list.childViews[0].childViews.filter(c=>c.rect.element.height),p=e.query("GET_ACTIVE_ITEMS").map(c=>s.find(d=>d.id===c.id)).filter(c=>c);Ae("ADD_ITEMS",o,{dispatch:e.dispatch}).then(c=>{if(na(e,c))return!1;e.dispatch("ADD_ITEMS",{items:c,index:Nd(e.ref.list,p,l),interactionMethod:_e.DROP})}),e.dispatch("DID_DROP",{position:l}),e.dispatch("DID_END_DRAG",{position:l})},n.ondragstart=o=>{e.dispatch("DID_START_DRAG",{position:o})},n.ondrag=to(o=>{e.dispatch("DID_DRAG",{position:o})}),n.ondragend=o=>{e.dispatch("DID_END_DRAG",{position:o})},e.ref.hopper=n,e.ref.drip=e.appendChildView(e.createChildView(Wc))}else!a&&e.ref.hopper&&(e.ref.hopper.destroy(),e.ref.hopper=null,e.removeChildView(e.ref.drip))},fn=(e,t)=>{let i=e.query("GET_ALLOW_BROWSE"),a=e.query("GET_DISABLED"),n=i&&!a;n&&!e.ref.browser?e.ref.browser=e.appendChildView(e.createChildView(Dc,{...t,onload:o=>{Ae("ADD_ITEMS",o,{dispatch:e.dispatch}).then(l=>{if(na(e,l))return!1;e.dispatch("ADD_ITEMS",{items:l,index:-1,interactionMethod:_e.BROWSE})})}}),0):!n&&e.ref.browser&&(e.removeChildView(e.ref.browser),e.ref.browser=null)},gn=e=>{let t=e.query("GET_ALLOW_PASTE"),i=e.query("GET_DISABLED"),a=t&&!i;a&&!e.ref.paster?(e.ref.paster=_d(),e.ref.paster.onload=n=>{Ae("ADD_ITEMS",n,{dispatch:e.dispatch}).then(o=>{if(na(e,o))return!1;e.dispatch("ADD_ITEMS",{items:o,index:-1,interactionMethod:_e.PASTE})})}):!a&&e.ref.paster&&(e.ref.paster.destroy(),e.ref.paster=null)},Bd=ge({DID_SET_ALLOW_BROWSE:({root:e,props:t})=>{fn(e,t)},DID_SET_ALLOW_DROP:({root:e})=>{un(e)},DID_SET_ALLOW_PASTE:({root:e})=>{gn(e)},DID_SET_DISABLED:({root:e,props:t})=>{un(e),gn(e),fn(e,t),e.query("GET_DISABLED")?e.element.dataset.disabled="disabled":e.element.removeAttribute("data-disabled")}}),kd=ne({name:"root",read:({root:e})=>{e.ref.measure&&(e.ref.measureHeight=e.ref.measure.offsetHeight)},create:Pd,write:Dd,destroy:({root:e})=>{e.ref.paster&&e.ref.paster.destroy(),e.ref.hopper&&e.ref.hopper.destroy(),e.element.removeEventListener("touchmove",si),e.element.removeEventListener("gesturestart",si)},mixins:{styles:["height"]}}),Vd=(e={})=>{let t=null,i=li(),a=ar(Ur(i),[ls,jr(i)],[Os,Hr(i)]);a.dispatch("SET_OPTIONS",{options:e});let n=()=>{document.hidden||a.dispatch("KICK")};document.addEventListener("visibilitychange",n);let o=null,l=!1,r=!1,s=null,p=null,c=()=>{l||(l=!0),clearTimeout(o),o=setTimeout(()=>{l=!1,s=null,p=null,r&&(r=!1,a.dispatch("DID_STOP_RESIZE"))},500)};window.addEventListener("resize",c);let d=kd(a,{id:qi()}),m=!1,u=!1,f={_read:()=>{l&&(p=window.innerWidth,s||(s=p),!r&&p!==s&&(a.dispatch("DID_START_RESIZE"),r=!0)),u&&m&&(m=d.element.offsetParent===null),!m&&(d._read(),u=d.rect.element.hidden)},_write:R=>{let L=a.processActionQueue().filter(z=>!/^SET_/.test(z.type));m&&!L.length||(E(L),m=d._write(R,L,r),$r(a.query("GET_ITEMS")),m&&a.processDispatchQueue())}},g=R=>L=>{let z={type:R};if(!L)return z;if(L.hasOwnProperty("error")&&(z.error=L.error?{...L.error}:null),L.status&&(z.status={...L.status}),L.file&&(z.output=L.file),L.source)z.file=L.source;else if(L.item||L.id){let F=L.item?L.item:a.query("GET_ITEM",L.id);z.file=F?he(F):null}return L.items&&(z.items=L.items.map(he)),/progress/.test(R)&&(z.progress=L.progress),L.hasOwnProperty("origin")&&L.hasOwnProperty("target")&&(z.origin=L.origin,z.target=L.target),z},h={DID_DESTROY:g("destroy"),DID_INIT:g("init"),DID_THROW_MAX_FILES:g("warning"),DID_INIT_ITEM:g("initfile"),DID_START_ITEM_LOAD:g("addfilestart"),DID_UPDATE_ITEM_LOAD_PROGRESS:g("addfileprogress"),DID_LOAD_ITEM:g("addfile"),DID_THROW_ITEM_INVALID:[g("error"),g("addfile")],DID_THROW_ITEM_LOAD_ERROR:[g("error"),g("addfile")],DID_THROW_ITEM_REMOVE_ERROR:[g("error"),g("removefile")],DID_PREPARE_OUTPUT:g("preparefile"),DID_START_ITEM_PROCESSING:g("processfilestart"),DID_UPDATE_ITEM_PROCESS_PROGRESS:g("processfileprogress"),DID_ABORT_ITEM_PROCESSING:g("processfileabort"),DID_COMPLETE_ITEM_PROCESSING:g("processfile"),DID_COMPLETE_ITEM_PROCESSING_ALL:g("processfiles"),DID_REVERT_ITEM_PROCESSING:g("processfilerevert"),DID_THROW_ITEM_PROCESSING_ERROR:[g("error"),g("processfile")],DID_REMOVE_ITEM:g("removefile"),DID_UPDATE_ITEMS:g("updatefiles"),DID_ACTIVATE_ITEM:g("activatefile"),DID_REORDER_ITEMS:g("reorderfiles")},v=R=>{let L={pond:D,...R};delete L.type,d.element.dispatchEvent(new CustomEvent(`FilePond:${R.type}`,{detail:L,bubbles:!0,cancelable:!0,composed:!0}));let z=[];R.hasOwnProperty("error")&&z.push(R.error),R.hasOwnProperty("file")&&z.push(R.file);let F=["type","error","file"];Object.keys(R).filter(C=>!F.includes(C)).forEach(C=>z.push(R[C])),D.fire(R.type,...z);let G=a.query(`GET_ON${R.type.toUpperCase()}`);G&&G(...z)},E=R=>{R.length&&R.filter(L=>h[L.type]).forEach(L=>{let z=h[L.type];(Array.isArray(z)?z:[z]).forEach(F=>{L.type==="DID_INIT_ITEM"?v(F(L.data)):setTimeout(()=>{v(F(L.data))},0)})})},T=R=>a.dispatch("SET_OPTIONS",{options:R}),I=R=>a.query("GET_ACTIVE_ITEM",R),y=R=>new Promise((L,z)=>{a.dispatch("REQUEST_ITEM_PREPARE",{query:R,success:F=>{L(F)},failure:F=>{z(F)}})}),b=(R,L={})=>new Promise((z,F)=>{_([{source:R,options:L}],{index:L.index}).then(G=>z(G&&G[0])).catch(F)}),w=R=>R.file&&R.id,x=(R,L)=>(typeof R=="object"&&!w(R)&&!L&&(L=R,R=void 0),a.dispatch("REMOVE_ITEM",{...L,query:R}),a.query("GET_ACTIVE_ITEM",R)===null),_=(...R)=>new Promise((L,z)=>{let F=[],G={};if(ci(R[0]))F.push.apply(F,R[0]),Object.assign(G,R[1]||{});else{let C=R[R.length-1];typeof C=="object"&&!(C instanceof Blob)&&Object.assign(G,R.pop()),F.push(...R)}a.dispatch("ADD_ITEMS",{items:F,index:G.index,interactionMethod:_e.API,success:L,failure:z})}),P=()=>a.query("GET_ACTIVE_ITEMS"),O=R=>new Promise((L,z)=>{a.dispatch("REQUEST_ITEM_PROCESSING",{query:R,success:F=>{L(F)},failure:F=>{z(F)}})}),M=(...R)=>{let L=Array.isArray(R[0])?R[0]:R,z=L.length?L:P();return Promise.all(z.map(y))},N=(...R)=>{let L=Array.isArray(R[0])?R[0]:R;if(!L.length){let z=P().filter(F=>!(F.status===W.IDLE&&F.origin===re.LOCAL)&&F.status!==W.PROCESSING&&F.status!==W.PROCESSING_COMPLETE&&F.status!==W.PROCESSING_REVERT_ERROR);return Promise.all(z.map(O))}return Promise.all(L.map(O))},S=(...R)=>{let L=Array.isArray(R[0])?R[0]:R,z;typeof L[L.length-1]=="object"?z=L.pop():Array.isArray(R[0])&&(z=R[1]);let F=P();return L.length?L.map(C=>$e(C)?F[C]?F[C].id:null:C).filter(C=>C).map(C=>x(C,z)):Promise.all(F.map(C=>x(C,z)))},D={...mi(),...f,...Wr(a,i),setOptions:T,addFile:b,addFiles:_,getFile:I,processFile:O,prepareFile:y,removeFile:x,moveFile:(R,L)=>a.dispatch("MOVE_ITEM",{query:R,index:L}),getFiles:P,processFiles:N,removeFiles:S,prepareFiles:M,sort:R=>a.dispatch("SORT",{compare:R}),browse:()=>{var R=d.element.querySelector("input[type=file]");R&&R.click()},destroy:()=>{D.fire("destroy",d.element),a.dispatch("ABORT_ALL"),d._destroy(),window.removeEventListener("resize",c),document.removeEventListener("visibilitychange",n),a.dispatch("DID_DESTROY")},insertBefore:R=>Na(d.element,R),insertAfter:R=>Ba(d.element,R),appendTo:R=>R.appendChild(d.element),replaceElement:R=>{Na(d.element,R),R.parentNode.removeChild(R),t=R},restoreElement:()=>{t&&(Ba(t,d.element),d.element.parentNode.removeChild(d.element),t=null)},isAttachedTo:R=>d.element===R||t===R,element:{get:()=>d.element},status:{get:()=>a.query("GET_STATUS")}};return a.dispatch("DID_INIT"),We(D)},io=(e={})=>{let t={};return te(li(),(a,n)=>{t[a]=n[0]}),Vd({...t,...e})},Gd=e=>e.charAt(0).toLowerCase()+e.slice(1),Ud=e=>eo(e.replace(/^data-/,"")),ao=(e,t)=>{te(t,(i,a)=>{te(e,(n,o)=>{let l=new RegExp(i);if(!l.test(n)||(delete e[n],a===!1))return;if(fe(a)){e[a]=o;return}let s=a.group;ce(a)&&!e[s]&&(e[s]={}),e[s][Gd(n.replace(l,""))]=o}),a.mapping&&ao(e[a.group],a.mapping)})},Wd=(e,t={})=>{let i=[];te(e.attributes,n=>{i.push(e.attributes[n])});let a=i.filter(n=>n.name).reduce((n,o)=>{let l=se(e,o.name);return n[Ud(o.name)]=l===o.name?!0:l,n},{});return ao(a,t),a},Hd=(e,t={})=>{let i={"^class$":"className","^multiple$":"allowMultiple","^capture$":"captureMethod","^webkitdirectory$":"allowDirectoriesOnly","^server":{group:"server",mapping:{"^process":{group:"process"},"^revert":{group:"revert"},"^fetch":{group:"fetch"},"^restore":{group:"restore"},"^load":{group:"load"}}},"^type$":!1,"^files$":!1};tt("SET_ATTRIBUTE_TO_OPTION_MAP",i);let a={...t},n=Wd(e.nodeName==="FIELDSET"?e.querySelector("input[type=file]"):e,i);Object.keys(n).forEach(l=>{ce(n[l])?(ce(a[l])||(a[l]={}),Object.assign(a[l],n[l])):a[l]=n[l]}),a.files=(t.files||[]).concat(Array.from(e.querySelectorAll("input:not([type=file])")).map(l=>({source:l.value,options:{type:l.dataset.type}})));let o=io(a);return e.files&&Array.from(e.files).forEach(l=>{o.addFile(l)}),o.replaceElement(e),o},jd=(...e)=>ir(e[0])?Hd(...e):io(...e),Yd=["fire","_read","_write"],hn=e=>{let t={};return _n(e,t,Yd),t},qd=(e,t)=>e.replace(/(?:{([a-zA-Z]+)})/g,(i,a)=>t[a]),$d=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i);return{transfer:(n,o)=>{},post:(n,o,l)=>{let r=qi();a.onmessage=s=>{s.data.id===r&&o(s.data.message)},a.postMessage({id:r,message:n},l)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},Xd=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),no=(e,t)=>{let i=e.slice(0,e.size,e.type);return i.lastModifiedDate=e.lastModifiedDate,i.name=t,i},Qd=e=>no(e,e.name),En=[],Zd=e=>{if(En.includes(e))return;En.push(e);let t=e({addFilter:Qr,utils:{Type:A,forin:te,isString:fe,isFile:Je,toNaturalFileSize:Nn,replaceInString:qd,getExtensionFromFilename:ui,getFilenameWithoutExtension:Fn,guesstimateMimeType:$n,getFileFromBlob:ht,getFilenameFromURL:zt,createRoute:ge,createWorker:$d,createView:ne,createItemAPI:he,loadImage:Xd,copyFile:Qd,renameFile:no,createBlob:On,applyFilterChain:Ae,text:ae,getNumericAspectRatioFromString:Sn},views:{fileActionButton:Cn}});Zr(t.options)},Kd=()=>Object.prototype.toString.call(window.operamini)==="[object OperaMini]",Jd=()=>"Promise"in window,ep=()=>"slice"in Blob.prototype,tp=()=>"URL"in window&&"createObjectURL"in window.URL,ip=()=>"visibilityState"in document,ap=()=>"performance"in window,np=()=>"supports"in(window.CSS||{}),op=()=>/MSIE|Trident/.test(window.navigator.userAgent),Gi=(()=>{let e=bn()&&!Kd()&&ip()&&Jd()&&ep()&&tp()&&ap()&&(np()||op());return()=>e})(),Ue={apps:[]},lp="filepond",it=()=>{},oo={},bt={},Ct={},Ui={},ft=it,gt=it,Wi=it,Hi=it,Ie=it,ji=it,Ft=it;if(Gi()){Lr(()=>{Ue.apps.forEach(i=>i._read())},i=>{Ue.apps.forEach(a=>a._write(i))});let e=()=>{document.dispatchEvent(new CustomEvent("FilePond:loaded",{detail:{supported:Gi,create:ft,destroy:gt,parse:Wi,find:Hi,registerPlugin:Ie,setOptions:Ft}})),document.removeEventListener("DOMContentLoaded",e)};document.readyState!=="loading"?setTimeout(()=>e(),0):document.addEventListener("DOMContentLoaded",e);let t=()=>te(li(),(i,a)=>{Ui[i]=a[1]});oo={...Ln},Ct={...re},bt={...W},Ui={},t(),ft=(...i)=>{let a=jd(...i);return a.on("destroy",gt),Ue.apps.push(a),hn(a)},gt=i=>{let a=Ue.apps.findIndex(n=>n.isAttachedTo(i));return a>=0?(Ue.apps.splice(a,1)[0].restoreElement(),!0):!1},Wi=i=>Array.from(i.querySelectorAll(`.${lp}`)).filter(o=>!Ue.apps.find(l=>l.isAttachedTo(o))).map(o=>ft(o)),Hi=i=>{let a=Ue.apps.find(n=>n.isAttachedTo(i));return a?hn(a):null},Ie=(...i)=>{i.forEach(Zd),t()},ji=()=>{let i={};return te(li(),(a,n)=>{i[a]=n[0]}),i},Ft=i=>(ce(i)&&(Ue.apps.forEach(a=>{a.setOptions(i)}),Kr(i)),ji())}function lo(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),i.push.apply(i,a)}return i}function yo(e){for(var t=1;te.length)&&(t=e.length);for(var i=0,a=new Array(t);i
',_p=Number.isNaN||Fe.isNaN;function j(e){return typeof e=="number"&&!_p(e)}var vo=function(t){return t>0&&t<1/0};function la(e){return typeof e>"u"}function ot(e){return sa(e)==="object"&&e!==null}var Rp=Object.prototype.hasOwnProperty;function vt(e){if(!ot(e))return!1;try{var t=e.constructor,i=t.prototype;return t&&i&&Rp.call(i,"isPrototypeOf")}catch{return!1}}function Ee(e){return typeof e=="function"}var wp=Array.prototype.slice;function Do(e){return Array.from?Array.from(e):wp.call(e)}function oe(e,t){return e&&Ee(t)&&(Array.isArray(e)||j(e.length)?Do(e).forEach(function(i,a){t.call(e,i,a,e)}):ot(e)&&Object.keys(e).forEach(function(i){t.call(e,e[i],i,e)})),e}var J=Object.assign||function(t){for(var i=arguments.length,a=new Array(i>1?i-1:0),n=1;n0&&a.forEach(function(o){ot(o)&&Object.keys(o).forEach(function(l){t[l]=o[l]})}),t},Sp=/\.\d*(?:0|9){12}\d*$/;function xt(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return Sp.test(e)?Math.round(e*t)/t:e}var Lp=/^width|height|left|top|marginLeft|marginTop$/;function je(e,t){var i=e.style;oe(t,function(a,n){Lp.test(n)&&j(a)&&(a="".concat(a,"px")),i[n]=a})}function Ap(e,t){return e.classList?e.classList.contains(t):e.className.indexOf(t)>-1}function de(e,t){if(t){if(j(e.length)){oe(e,function(a){de(a,t)});return}if(e.classList){e.classList.add(t);return}var i=e.className.trim();i?i.indexOf(t)<0&&(e.className="".concat(i," ").concat(t)):e.className=t}}function De(e,t){if(t){if(j(e.length)){oe(e,function(i){De(i,t)});return}if(e.classList){e.classList.remove(t);return}e.className.indexOf(t)>=0&&(e.className=e.className.replace(t,""))}}function It(e,t,i){if(t){if(j(e.length)){oe(e,function(a){It(a,t,i)});return}i?de(e,t):De(e,t)}}var Mp=/([a-z\d])([A-Z])/g;function xa(e){return e.replace(Mp,"$1-$2").toLowerCase()}function Ea(e,t){return ot(e[t])?e[t]:e.dataset?e.dataset[t]:e.getAttribute("data-".concat(xa(t)))}function Wt(e,t,i){ot(i)?e[t]=i:e.dataset?e.dataset[t]=i:e.setAttribute("data-".concat(xa(t)),i)}function Op(e,t){if(ot(e[t]))try{delete e[t]}catch{e[t]=void 0}else if(e.dataset)try{delete e.dataset[t]}catch{e.dataset[t]=void 0}else e.removeAttribute("data-".concat(xa(t)))}var Fo=/\s\s*/,zo=function(){var e=!1;if(Ti){var t=!1,i=function(){},a=Object.defineProperty({},"once",{get:function(){return e=!0,t},set:function(o){t=o}});Fe.addEventListener("test",i,a),Fe.removeEventListener("test",i,a)}return e}();function Pe(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=i;t.trim().split(Fo).forEach(function(o){if(!zo){var l=e.listeners;l&&l[o]&&l[o][i]&&(n=l[o][i],delete l[o][i],Object.keys(l[o]).length===0&&delete l[o],Object.keys(l).length===0&&delete e.listeners)}e.removeEventListener(o,n,a)})}function Re(e,t,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},n=i;t.trim().split(Fo).forEach(function(o){if(a.once&&!zo){var l=e.listeners,r=l===void 0?{}:l;n=function(){delete r[o][i],e.removeEventListener(o,n,a);for(var p=arguments.length,c=new Array(p),d=0;dMath.abs(i)&&(i=m)})}),i}function Ei(e,t){var i=e.pageX,a=e.pageY,n={endX:i,endY:a};return t?n:yo({startX:i,startY:a},n)}function Fp(e){var t=0,i=0,a=0;return oe(e,function(n){var o=n.startX,l=n.startY;t+=o,i+=l,a+=1}),t/=a,i/=a,{pageX:t,pageY:i}}function Ye(e){var t=e.aspectRatio,i=e.height,a=e.width,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",o=vo(a),l=vo(i);if(o&&l){var r=i*t;n==="contain"&&r>a||n==="cover"&&r90?{width:s,height:r}:{width:r,height:s}}function Cp(e,t,i,a){var n=t.aspectRatio,o=t.naturalWidth,l=t.naturalHeight,r=t.rotate,s=r===void 0?0:r,p=t.scaleX,c=p===void 0?1:p,d=t.scaleY,m=d===void 0?1:d,u=i.aspectRatio,f=i.naturalWidth,g=i.naturalHeight,h=a.fillColor,v=h===void 0?"transparent":h,E=a.imageSmoothingEnabled,T=E===void 0?!0:E,I=a.imageSmoothingQuality,y=I===void 0?"low":I,b=a.maxWidth,w=b===void 0?1/0:b,x=a.maxHeight,_=x===void 0?1/0:x,P=a.minWidth,O=P===void 0?0:P,M=a.minHeight,N=M===void 0?0:M,S=document.createElement("canvas"),D=S.getContext("2d"),R=Ye({aspectRatio:u,width:w,height:_}),L=Ye({aspectRatio:u,width:O,height:N},"cover"),z=Math.min(R.width,Math.max(L.width,f)),F=Math.min(R.height,Math.max(L.height,g)),G=Ye({aspectRatio:n,width:w,height:_}),C=Ye({aspectRatio:n,width:O,height:N},"cover"),q=Math.min(G.width,Math.max(C.width,o)),Q=Math.min(G.height,Math.max(C.height,l)),$=[-q/2,-Q/2,q,Q];return S.width=xt(z),S.height=xt(F),D.fillStyle=v,D.fillRect(0,0,z,F),D.save(),D.translate(z/2,F/2),D.rotate(s*Math.PI/180),D.scale(c,m),D.imageSmoothingEnabled=T,D.imageSmoothingQuality=y,D.drawImage.apply(D,[e].concat(Ro($.map(function(pe){return Math.floor(xt(pe))})))),D.restore(),S}var No=String.fromCharCode;function Np(e,t,i){var a="";i+=t;for(var n=t;n0;)i.push(No.apply(null,Do(n.subarray(0,a)))),n=n.subarray(a);return"data:".concat(t,";base64,").concat(btoa(i.join("")))}function Gp(e){var t=new DataView(e),i;try{var a,n,o;if(t.getUint8(0)===255&&t.getUint8(1)===216)for(var l=t.byteLength,r=2;r+1=8&&(o=p+d)}}}if(o){var m=t.getUint16(o,a),u,f;for(f=0;f=0?o:Oo),height:Math.max(a.offsetHeight,l>=0?l:Po)};this.containerData=r,je(n,{width:r.width,height:r.height}),de(t,be),De(n,be)},initCanvas:function(){var t=this.containerData,i=this.imageData,a=this.options.viewMode,n=Math.abs(i.rotate)%180===90,o=n?i.naturalHeight:i.naturalWidth,l=n?i.naturalWidth:i.naturalHeight,r=o/l,s=t.width,p=t.height;t.height*r>t.width?a===3?s=t.height*r:p=t.width/r:a===3?p=t.width/r:s=t.height*r;var c={aspectRatio:r,naturalWidth:o,naturalHeight:l,width:s,height:p};this.canvasData=c,this.limited=a===1||a===2,this.limitCanvas(!0,!0),c.width=Math.min(Math.max(c.width,c.minWidth),c.maxWidth),c.height=Math.min(Math.max(c.height,c.minHeight),c.maxHeight),c.left=(t.width-c.width)/2,c.top=(t.height-c.height)/2,c.oldLeft=c.left,c.oldTop=c.top,this.initialCanvasData=J({},c)},limitCanvas:function(t,i){var a=this.options,n=this.containerData,o=this.canvasData,l=this.cropBoxData,r=a.viewMode,s=o.aspectRatio,p=this.cropped&&l;if(t){var c=Number(a.minCanvasWidth)||0,d=Number(a.minCanvasHeight)||0;r>1?(c=Math.max(c,n.width),d=Math.max(d,n.height),r===3&&(d*s>c?c=d*s:d=c/s)):r>0&&(c?c=Math.max(c,p?l.width:0):d?d=Math.max(d,p?l.height:0):p&&(c=l.width,d=l.height,d*s>c?c=d*s:d=c/s));var m=Ye({aspectRatio:s,width:c,height:d});c=m.width,d=m.height,o.minWidth=c,o.minHeight=d,o.maxWidth=1/0,o.maxHeight=1/0}if(i)if(r>(p?0:1)){var u=n.width-o.width,f=n.height-o.height;o.minLeft=Math.min(0,u),o.minTop=Math.min(0,f),o.maxLeft=Math.max(0,u),o.maxTop=Math.max(0,f),p&&this.limited&&(o.minLeft=Math.min(l.left,l.left+(l.width-o.width)),o.minTop=Math.min(l.top,l.top+(l.height-o.height)),o.maxLeft=l.left,o.maxTop=l.top,r===2&&(o.width>=n.width&&(o.minLeft=Math.min(0,u),o.maxLeft=Math.max(0,u)),o.height>=n.height&&(o.minTop=Math.min(0,f),o.maxTop=Math.max(0,f))))}else o.minLeft=-o.width,o.minTop=-o.height,o.maxLeft=n.width,o.maxTop=n.height},renderCanvas:function(t,i){var a=this.canvasData,n=this.imageData;if(i){var o=zp({width:n.naturalWidth*Math.abs(n.scaleX||1),height:n.naturalHeight*Math.abs(n.scaleY||1),degree:n.rotate||0}),l=o.width,r=o.height,s=a.width*(l/a.naturalWidth),p=a.height*(r/a.naturalHeight);a.left-=(s-a.width)/2,a.top-=(p-a.height)/2,a.width=s,a.height=p,a.aspectRatio=l/r,a.naturalWidth=l,a.naturalHeight=r,this.limitCanvas(!0,!1)}(a.width>a.maxWidth||a.widtha.maxHeight||a.heighti.width?o.height=o.width/a:o.width=o.height*a),this.cropBoxData=o,this.limitCropBox(!0,!0),o.width=Math.min(Math.max(o.width,o.minWidth),o.maxWidth),o.height=Math.min(Math.max(o.height,o.minHeight),o.maxHeight),o.width=Math.max(o.minWidth,o.width*n),o.height=Math.max(o.minHeight,o.height*n),o.left=i.left+(i.width-o.width)/2,o.top=i.top+(i.height-o.height)/2,o.oldLeft=o.left,o.oldTop=o.top,this.initialCropBoxData=J({},o)},limitCropBox:function(t,i){var a=this.options,n=this.containerData,o=this.canvasData,l=this.cropBoxData,r=this.limited,s=a.aspectRatio;if(t){var p=Number(a.minCropBoxWidth)||0,c=Number(a.minCropBoxHeight)||0,d=r?Math.min(n.width,o.width,o.width+o.left,n.width-o.left):n.width,m=r?Math.min(n.height,o.height,o.height+o.top,n.height-o.top):n.height;p=Math.min(p,n.width),c=Math.min(c,n.height),s&&(p&&c?c*s>p?c=p/s:p=c*s:p?c=p/s:c&&(p=c*s),m*s>d?m=d/s:d=m*s),l.minWidth=Math.min(p,d),l.minHeight=Math.min(c,m),l.maxWidth=d,l.maxHeight=m}i&&(r?(l.minLeft=Math.max(0,o.left),l.minTop=Math.max(0,o.top),l.maxLeft=Math.min(n.width,o.left+o.width)-l.width,l.maxTop=Math.min(n.height,o.top+o.height)-l.height):(l.minLeft=0,l.minTop=0,l.maxLeft=n.width-l.width,l.maxTop=n.height-l.height))},renderCropBox:function(){var t=this.options,i=this.containerData,a=this.cropBoxData;(a.width>a.maxWidth||a.widtha.maxHeight||a.height=i.width&&a.height>=i.height?So:va),je(this.cropBox,J({width:a.width,height:a.height},Gt({translateX:a.left,translateY:a.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),yt(this.element,ma,this.getData())}},Hp={initPreview:function(){var t=this.element,i=this.crossOrigin,a=this.options.preview,n=i?this.crossOriginUrl:this.url,o=t.alt||"The image to preview",l=document.createElement("img");if(i&&(l.crossOrigin=i),l.src=n,l.alt=o,this.viewBox.appendChild(l),this.viewBoxImage=l,!!a){var r=a;typeof a=="string"?r=t.ownerDocument.querySelectorAll(a):a.querySelector&&(r=[a]),this.previews=r,oe(r,function(s){var p=document.createElement("img");Wt(s,hi,{width:s.offsetWidth,height:s.offsetHeight,html:s.innerHTML}),i&&(p.crossOrigin=i),p.src=n,p.alt=o,p.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',s.innerHTML="",s.appendChild(p)})}},resetPreview:function(){oe(this.previews,function(t){var i=Ea(t,hi);je(t,{width:i.width,height:i.height}),t.innerHTML=i.html,Op(t,hi)})},preview:function(){var t=this.imageData,i=this.canvasData,a=this.cropBoxData,n=a.width,o=a.height,l=t.width,r=t.height,s=a.left-i.left-t.left,p=a.top-i.top-t.top;!this.cropped||this.disabled||(je(this.viewBoxImage,J({width:l,height:r},Gt(J({translateX:-s,translateY:-p},t)))),oe(this.previews,function(c){var d=Ea(c,hi),m=d.width,u=d.height,f=m,g=u,h=1;n&&(h=m/n,g=o*h),o&&g>u&&(h=u/o,f=n*h,g=u),je(c,{width:f,height:g}),je(c.getElementsByTagName("img")[0],J({width:l*h,height:r*h},Gt(J({translateX:-s*h,translateY:-p*h},t))))}))}},jp={bind:function(){var t=this.element,i=this.options,a=this.cropper;Ee(i.cropstart)&&Re(t,ga,i.cropstart),Ee(i.cropmove)&&Re(t,fa,i.cropmove),Ee(i.cropend)&&Re(t,ua,i.cropend),Ee(i.crop)&&Re(t,ma,i.crop),Ee(i.zoom)&&Re(t,ha,i.zoom),Re(a,mo,this.onCropStart=this.cropStart.bind(this)),i.zoomable&&i.zoomOnWheel&&Re(a,Eo,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&Re(a,po,this.onDblclick=this.dblclick.bind(this)),Re(t.ownerDocument,uo,this.onCropMove=this.cropMove.bind(this)),Re(t.ownerDocument,fo,this.onCropEnd=this.cropEnd.bind(this)),i.responsive&&Re(window,ho,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,i=this.options,a=this.cropper;Ee(i.cropstart)&&Pe(t,ga,i.cropstart),Ee(i.cropmove)&&Pe(t,fa,i.cropmove),Ee(i.cropend)&&Pe(t,ua,i.cropend),Ee(i.crop)&&Pe(t,ma,i.crop),Ee(i.zoom)&&Pe(t,ha,i.zoom),Pe(a,mo,this.onCropStart),i.zoomable&&i.zoomOnWheel&&Pe(a,Eo,this.onWheel,{passive:!1,capture:!0}),i.toggleDragModeOnDblclick&&Pe(a,po,this.onDblclick),Pe(t.ownerDocument,uo,this.onCropMove),Pe(t.ownerDocument,fo,this.onCropEnd),i.responsive&&Pe(window,ho,this.onResize)}},Yp={resize:function(){if(!this.disabled){var t=this.options,i=this.container,a=this.containerData,n=i.offsetWidth/a.width,o=i.offsetHeight/a.height,l=Math.abs(n-1)>Math.abs(o-1)?n:o;if(l!==1){var r,s;t.restore&&(r=this.getCanvasData(),s=this.getCropBoxData()),this.render(),t.restore&&(this.setCanvasData(oe(r,function(p,c){r[c]=p*l})),this.setCropBoxData(oe(s,function(p,c){s[c]=p*l})))}}},dblclick:function(){this.disabled||this.options.dragMode===Mo||this.setDragMode(Ap(this.dragBox,da)?Ao:Ia)},wheel:function(t){var i=this,a=Number(this.options.wheelZoomRatio)||.1,n=1;this.disabled||(t.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){i.wheeling=!1},50),t.deltaY?n=t.deltaY>0?1:-1:t.wheelDelta?n=-t.wheelDelta/120:t.detail&&(n=t.detail>0?1:-1),this.zoom(-n*a,t)))},cropStart:function(t){var i=t.buttons,a=t.button;if(!(this.disabled||(t.type==="mousedown"||t.type==="pointerdown"&&t.pointerType==="mouse")&&(j(i)&&i!==1||j(a)&&a!==0||t.ctrlKey))){var n=this.options,o=this.pointers,l;t.changedTouches?oe(t.changedTouches,function(r){o[r.identifier]=Ei(r)}):o[t.pointerId||0]=Ei(t),Object.keys(o).length>1&&n.zoomable&&n.zoomOnTouch?l=Lo:l=Ea(t.target,Ut),Tp.test(l)&&yt(this.element,ga,{originalEvent:t,action:l})!==!1&&(t.preventDefault(),this.action=l,this.cropping=!1,l===wo&&(this.cropping=!0,de(this.dragBox,bi)))}},cropMove:function(t){var i=this.action;if(!(this.disabled||!i)){var a=this.pointers;t.preventDefault(),yt(this.element,fa,{originalEvent:t,action:i})!==!1&&(t.changedTouches?oe(t.changedTouches,function(n){J(a[n.identifier]||{},Ei(n,!0))}):J(a[t.pointerId||0]||{},Ei(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var i=this.action,a=this.pointers;t.changedTouches?oe(t.changedTouches,function(n){delete a[n.identifier]}):delete a[t.pointerId||0],i&&(t.preventDefault(),Object.keys(a).length||(this.action=""),this.cropping&&(this.cropping=!1,It(this.dragBox,bi,this.cropped&&this.options.modal)),yt(this.element,ua,{originalEvent:t,action:i}))}}},qp={change:function(t){var i=this.options,a=this.canvasData,n=this.containerData,o=this.cropBoxData,l=this.pointers,r=this.action,s=i.aspectRatio,p=o.left,c=o.top,d=o.width,m=o.height,u=p+d,f=c+m,g=0,h=0,v=n.width,E=n.height,T=!0,I;!s&&t.shiftKey&&(s=d&&m?d/m:1),this.limited&&(g=o.minLeft,h=o.minTop,v=g+Math.min(n.width,a.width,a.left+a.width),E=h+Math.min(n.height,a.height,a.top+a.height));var y=l[Object.keys(l)[0]],b={x:y.endX-y.startX,y:y.endY-y.startY},w=function(_){switch(_){case at:u+b.x>v&&(b.x=v-u);break;case nt:p+b.xE&&(b.y=E-f);break}};switch(r){case va:p+=b.x,c+=b.y;break;case at:if(b.x>=0&&(u>=v||s&&(c<=h||f>=E))){T=!1;break}w(at),d+=b.x,d<0&&(r=nt,d=-d,p-=d),s&&(m=d/s,c+=(o.height-m)/2);break;case He:if(b.y<=0&&(c<=h||s&&(p<=g||u>=v))){T=!1;break}w(He),m-=b.y,c+=b.y,m<0&&(r=Tt,m=-m,c-=m),s&&(d=m*s,p+=(o.width-d)/2);break;case nt:if(b.x<=0&&(p<=g||s&&(c<=h||f>=E))){T=!1;break}w(nt),d-=b.x,p+=b.x,d<0&&(r=at,d=-d,p-=d),s&&(m=d/s,c+=(o.height-m)/2);break;case Tt:if(b.y>=0&&(f>=E||s&&(p<=g||u>=v))){T=!1;break}w(Tt),m+=b.y,m<0&&(r=He,m=-m,c-=m),s&&(d=m*s,p+=(o.width-d)/2);break;case Nt:if(s){if(b.y<=0&&(c<=h||u>=v)){T=!1;break}w(He),m-=b.y,c+=b.y,d=m*s}else w(He),w(at),b.x>=0?uh&&(m-=b.y,c+=b.y):(m-=b.y,c+=b.y);d<0&&m<0?(r=Vt,m=-m,d=-d,c-=m,p-=d):d<0?(r=Bt,d=-d,p-=d):m<0&&(r=kt,m=-m,c-=m);break;case Bt:if(s){if(b.y<=0&&(c<=h||p<=g)){T=!1;break}w(He),m-=b.y,c+=b.y,d=m*s,p+=o.width-d}else w(He),w(nt),b.x<=0?p>g?(d-=b.x,p+=b.x):b.y<=0&&c<=h&&(T=!1):(d-=b.x,p+=b.x),b.y<=0?c>h&&(m-=b.y,c+=b.y):(m-=b.y,c+=b.y);d<0&&m<0?(r=kt,m=-m,d=-d,c-=m,p-=d):d<0?(r=Nt,d=-d,p-=d):m<0&&(r=Vt,m=-m,c-=m);break;case Vt:if(s){if(b.x<=0&&(p<=g||f>=E)){T=!1;break}w(nt),d-=b.x,p+=b.x,m=d/s}else w(Tt),w(nt),b.x<=0?p>g?(d-=b.x,p+=b.x):b.y>=0&&f>=E&&(T=!1):(d-=b.x,p+=b.x),b.y>=0?f=0&&(u>=v||f>=E)){T=!1;break}w(at),d+=b.x,m=d/s}else w(Tt),w(at),b.x>=0?u=0&&f>=E&&(T=!1):d+=b.x,b.y>=0?f0?r=b.y>0?kt:Nt:b.x<0&&(p-=d,r=b.y>0?Vt:Bt),b.y<0&&(c-=m),this.cropped||(De(this.cropBox,be),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}T&&(o.width=d,o.height=m,o.left=p,o.top=c,this.action=r,this.renderCropBox()),oe(l,function(x){x.startX=x.endX,x.startY=x.endY})}},$p={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&de(this.dragBox,bi),De(this.cropBox,be),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=J({},this.initialImageData),this.canvasData=J({},this.initialCanvasData),this.cropBoxData=J({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(J(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),De(this.dragBox,bi),de(this.cropBox,be)),this},replace:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&t&&(this.isImg&&(this.element.src=t),i?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,oe(this.previews,function(a){a.getElementsByTagName("img")[0].src=t}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,De(this.cropper,so)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,de(this.cropper,so)),this},destroy:function(){var t=this.element;return t[K]?(t[K]=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this},move:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.canvasData,n=a.left,o=a.top;return this.moveTo(la(t)?t:n+Number(t),la(i)?i:o+Number(i))},moveTo:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.canvasData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.movable&&(j(t)&&(a.left=t,n=!0),j(i)&&(a.top=i,n=!0),n&&this.renderCanvas(!0)),this},zoom:function(t,i){var a=this.canvasData;return t=Number(t),t<0?t=1/(1-t):t=1+t,this.zoomTo(a.width*t/a.naturalWidth,null,i)},zoomTo:function(t,i,a){var n=this.options,o=this.canvasData,l=o.width,r=o.height,s=o.naturalWidth,p=o.naturalHeight;if(t=Number(t),t>=0&&this.ready&&!this.disabled&&n.zoomable){var c=s*t,d=p*t;if(yt(this.element,ha,{ratio:t,oldRatio:l/s,originalEvent:a})===!1)return this;if(a){var m=this.pointers,u=Co(this.cropper),f=m&&Object.keys(m).length?Fp(m):{pageX:a.pageX,pageY:a.pageY};o.left-=(c-l)*((f.pageX-u.left-o.left)/l),o.top-=(d-r)*((f.pageY-u.top-o.top)/r)}else vt(i)&&j(i.x)&&j(i.y)?(o.left-=(c-l)*((i.x-o.left)/l),o.top-=(d-r)*((i.y-o.top)/r)):(o.left-=(c-l)/2,o.top-=(d-r)/2);o.width=c,o.height=d,this.renderCanvas(!0)}return this},rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))},rotateTo:function(t){return t=Number(t),j(t)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this},scaleX:function(t){var i=this.imageData.scaleY;return this.scale(t,j(i)?i:1)},scaleY:function(t){var i=this.imageData.scaleX;return this.scale(j(i)?i:1,t)},scale:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t,a=this.imageData,n=!1;return t=Number(t),i=Number(i),this.ready&&!this.disabled&&this.options.scalable&&(j(t)&&(a.scaleX=t,n=!0),j(i)&&(a.scaleY=i,n=!0),n&&this.renderCanvas(!0,!0)),this},getData:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,i=this.options,a=this.imageData,n=this.canvasData,o=this.cropBoxData,l;if(this.ready&&this.cropped){l={x:o.left-n.left,y:o.top-n.top,width:o.width,height:o.height};var r=a.width/a.naturalWidth;if(oe(l,function(c,d){l[d]=c/r}),t){var s=Math.round(l.y+l.height),p=Math.round(l.x+l.width);l.x=Math.round(l.x),l.y=Math.round(l.y),l.width=p-l.x,l.height=s-l.y}}else l={x:0,y:0,width:0,height:0};return i.rotatable&&(l.rotate=a.rotate||0),i.scalable&&(l.scaleX=a.scaleX||1,l.scaleY=a.scaleY||1),l},setData:function(t){var i=this.options,a=this.imageData,n=this.canvasData,o={};if(this.ready&&!this.disabled&&vt(t)){var l=!1;i.rotatable&&j(t.rotate)&&t.rotate!==a.rotate&&(a.rotate=t.rotate,l=!0),i.scalable&&(j(t.scaleX)&&t.scaleX!==a.scaleX&&(a.scaleX=t.scaleX,l=!0),j(t.scaleY)&&t.scaleY!==a.scaleY&&(a.scaleY=t.scaleY,l=!0)),l&&this.renderCanvas(!0,!0);var r=a.width/a.naturalWidth;j(t.x)&&(o.left=t.x*r+n.left),j(t.y)&&(o.top=t.y*r+n.top),j(t.width)&&(o.width=t.width*r),j(t.height)&&(o.height=t.height*r),this.setCropBoxData(o)}return this},getContainerData:function(){return this.ready?J({},this.containerData):{}},getImageData:function(){return this.sized?J({},this.imageData):{}},getCanvasData:function(){var t=this.canvasData,i={};return this.ready&&oe(["left","top","width","height","naturalWidth","naturalHeight"],function(a){i[a]=t[a]}),i},setCanvasData:function(t){var i=this.canvasData,a=i.aspectRatio;return this.ready&&!this.disabled&&vt(t)&&(j(t.left)&&(i.left=t.left),j(t.top)&&(i.top=t.top),j(t.width)?(i.width=t.width,i.height=t.width/a):j(t.height)&&(i.height=t.height,i.width=t.height*a),this.renderCanvas(!0)),this},getCropBoxData:function(){var t=this.cropBoxData,i;return this.ready&&this.cropped&&(i={left:t.left,top:t.top,width:t.width,height:t.height}),i||{}},setCropBoxData:function(t){var i=this.cropBoxData,a=this.options.aspectRatio,n,o;return this.ready&&this.cropped&&!this.disabled&&vt(t)&&(j(t.left)&&(i.left=t.left),j(t.top)&&(i.top=t.top),j(t.width)&&t.width!==i.width&&(n=!0,i.width=t.width),j(t.height)&&t.height!==i.height&&(o=!0,i.height=t.height),a&&(n?i.height=i.width/a:o&&(i.width=i.height*a)),this.renderCropBox()),this},getCroppedCanvas:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var i=this.canvasData,a=Cp(this.image,this.imageData,i,t);if(!this.cropped)return a;var n=this.getData(t.rounded),o=n.x,l=n.y,r=n.width,s=n.height,p=a.width/Math.floor(i.naturalWidth);p!==1&&(o*=p,l*=p,r*=p,s*=p);var c=r/s,d=Ye({aspectRatio:c,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),m=Ye({aspectRatio:c,width:t.minWidth||0,height:t.minHeight||0},"cover"),u=Ye({aspectRatio:c,width:t.width||(p!==1?a.width:r),height:t.height||(p!==1?a.height:s)}),f=u.width,g=u.height;f=Math.min(d.width,Math.max(m.width,f)),g=Math.min(d.height,Math.max(m.height,g));var h=document.createElement("canvas"),v=h.getContext("2d");h.width=xt(f),h.height=xt(g),v.fillStyle=t.fillColor||"transparent",v.fillRect(0,0,f,g);var E=t.imageSmoothingEnabled,T=E===void 0?!0:E,I=t.imageSmoothingQuality;v.imageSmoothingEnabled=T,I&&(v.imageSmoothingQuality=I);var y=a.width,b=a.height,w=o,x=l,_,P,O,M,N,S;w<=-r||w>y?(w=0,_=0,O=0,N=0):w<=0?(O=-w,w=0,_=Math.min(y,r+w),N=_):w<=y&&(O=0,_=Math.min(r,y-w),N=_),_<=0||x<=-s||x>b?(x=0,P=0,M=0,S=0):x<=0?(M=-x,x=0,P=Math.min(b,s+x),S=P):x<=b&&(M=0,P=Math.min(s,b-x),S=P);var D=[w,x,_,P];if(N>0&&S>0){var R=f/r;D.push(O*R,M*R,N*R,S*R)}return v.drawImage.apply(v,[a].concat(Ro(D.map(function(L){return Math.floor(xt(L))})))),h},setAspectRatio:function(t){var i=this.options;return!this.disabled&&!la(t)&&(i.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(t){var i=this.options,a=this.dragBox,n=this.face;if(this.ready&&!this.disabled){var o=t===Ia,l=i.movable&&t===Ao;t=o||l?t:Mo,i.dragMode=t,Wt(a,Ut,t),It(a,da,o),It(a,pa,l),i.cropBoxMovable||(Wt(n,Ut,t),It(n,da,o),It(n,pa,l))}return this}},Xp=Fe.Cropper,ya=function(){function e(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(sp(this,e),!t||!xp.test(t.tagName))throw new Error("The first argument is required and must be an or element.");this.element=t,this.options=J({},To,vt(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return cp(e,[{key:"init",value:function(){var i=this.element,a=i.tagName.toLowerCase(),n;if(!i[K]){if(i[K]=this,a==="img"){if(this.isImg=!0,n=i.getAttribute("src")||"",this.originalUrl=n,!n)return;n=i.src}else a==="canvas"&&window.HTMLCanvasElement&&(n=i.toDataURL());this.load(n)}}},{key:"load",value:function(i){var a=this;if(i){this.url=i,this.imageData={};var n=this.element,o=this.options;if(!o.rotatable&&!o.scalable&&(o.checkOrientation=!1),!o.checkOrientation||!window.ArrayBuffer){this.clone();return}if(vp.test(i)){Ip.test(i)?this.read(kp(i)):this.clone();return}var l=new XMLHttpRequest,r=this.clone.bind(this);this.reloading=!0,this.xhr=l,l.onabort=r,l.onerror=r,l.ontimeout=r,l.onprogress=function(){l.getResponseHeader("content-type")!==bo&&l.abort()},l.onload=function(){a.read(l.response)},l.onloadend=function(){a.reloading=!1,a.xhr=null},o.checkCrossOrigin&&Io(i)&&n.crossOrigin&&(i=xo(i)),l.open("GET",i,!0),l.responseType="arraybuffer",l.withCredentials=n.crossOrigin==="use-credentials",l.send()}}},{key:"read",value:function(i){var a=this.options,n=this.imageData,o=Gp(i),l=0,r=1,s=1;if(o>1){this.url=Vp(i,bo);var p=Up(o);l=p.rotate,r=p.scaleX,s=p.scaleY}a.rotatable&&(n.rotate=l),a.scalable&&(n.scaleX=r,n.scaleY=s),this.clone()}},{key:"clone",value:function(){var i=this.element,a=this.url,n=i.crossOrigin,o=a;this.options.checkCrossOrigin&&Io(a)&&(n||(n="anonymous"),o=xo(a)),this.crossOrigin=n,this.crossOriginUrl=o;var l=document.createElement("img");n&&(l.crossOrigin=n),l.src=o||a,l.alt=i.alt||"The image to crop",this.image=l,l.onload=this.start.bind(this),l.onerror=this.stop.bind(this),de(l,co),i.parentNode.insertBefore(l,i.nextSibling)}},{key:"start",value:function(){var i=this,a=this.image;a.onload=null,a.onerror=null,this.sizing=!0;var n=Fe.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(Fe.navigator.userAgent),o=function(p,c){J(i.imageData,{naturalWidth:p,naturalHeight:c,aspectRatio:p/c}),i.initialImageData=J({},i.imageData),i.sizing=!1,i.sized=!0,i.build()};if(a.naturalWidth&&!n){o(a.naturalWidth,a.naturalHeight);return}var l=document.createElement("img"),r=document.body||document.documentElement;this.sizingImage=l,l.onload=function(){o(l.width,l.height),n||r.removeChild(l)},l.src=a.src,n||(l.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",r.appendChild(l))}},{key:"stop",value:function(){var i=this.image;i.onload=null,i.onerror=null,i.parentNode.removeChild(i),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var i=this.element,a=this.options,n=this.image,o=i.parentNode,l=document.createElement("div");l.innerHTML=yp;var r=l.querySelector(".".concat(K,"-container")),s=r.querySelector(".".concat(K,"-canvas")),p=r.querySelector(".".concat(K,"-drag-box")),c=r.querySelector(".".concat(K,"-crop-box")),d=c.querySelector(".".concat(K,"-face"));this.container=o,this.cropper=r,this.canvas=s,this.dragBox=p,this.cropBox=c,this.viewBox=r.querySelector(".".concat(K,"-view-box")),this.face=d,s.appendChild(n),de(i,be),o.insertBefore(r,i.nextSibling),De(n,co),this.initPreview(),this.bind(),a.initialAspectRatio=Math.max(0,a.initialAspectRatio)||NaN,a.aspectRatio=Math.max(0,a.aspectRatio)||NaN,a.viewMode=Math.max(0,Math.min(3,Math.round(a.viewMode)))||0,de(c,be),a.guides||de(c.getElementsByClassName("".concat(K,"-dashed")),be),a.center||de(c.getElementsByClassName("".concat(K,"-center")),be),a.background&&de(r,"".concat(K,"-bg")),a.highlight||de(d,gp),a.cropBoxMovable&&(de(d,pa),Wt(d,Ut,va)),a.cropBoxResizable||(de(c.getElementsByClassName("".concat(K,"-line")),be),de(c.getElementsByClassName("".concat(K,"-point")),be)),this.render(),this.ready=!0,this.setDragMode(a.dragMode),a.autoCrop&&this.crop(),this.setData(a.data),Ee(a.ready)&&Re(i,go,a.ready,{once:!0}),yt(i,go)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var i=this.cropper.parentNode;i&&i.removeChild(this.cropper),De(this.element,be)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=Xp,e}},{key:"setDefaults",value:function(i){J(To,vt(i)&&i)}}])}();J(ya.prototype,Wp,Hp,jp,Yp,qp,$p);var Bo={"application/prs.cww":["cww"],"application/prs.xsf+xml":["xsf"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["*xfdf"],"application/vnd.age":["age"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["*fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.slides":["ggs"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.gov.sk.xmldatacontainer+xml":["xdcf"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["*mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.nato.bindingdataobject+xml":["bdo"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.pwg-xhtml-print+xml":["xhtm"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml","uo"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["*prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["*sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["*aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif","btf"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.bary":["bary"],"model/vnd.cld":["cld"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["*mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.pytha.pyox":["pyo","pyox"],"model/vnd.sap.vds":["vds"],"model/vnd.usda":["usda"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.familysearch.gedcom":["ged"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]};Object.freeze(Bo);var ko=Bo;var Vo={"application/andrew-inset":["ez"],"application/appinstaller":["appinstaller"],"application/applixware":["aw"],"application/appx":["appx"],"application/appxbundle":["appxbundle"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/automationml-aml+xml":["aml"],"application/automationml-amlx+zip":["amlx"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cpl+xml":["cpl"],"application/cu-seeme":["cu"],"application/cwl":["cwl"],"application/dash+xml":["mpd"],"application/dash-patch+xml":["mpp"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdf":["fdf"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["*js"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/media-policy-dataset+xml":["mpf"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["*mp4","*mpg4","mp4s","m4p"],"application/msix":["msix"],"application/msixbundle":["msixbundle"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-keys":["asc"],"application/pgp-signature":["sig","*asc"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/sql":["sql"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/watcherinfo+xml":["wif"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xfdf":["xfdf"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/aac":["adts","aac"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avci":["avci"],"image/avcs":["avcs"],"image/avif":["avif"],"image/bmp":["bmp","dib"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/dpx":["dpx"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm","jpgm"],"image/jpx":["jpx","jpf"],"image/jxl":["jxl"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/jt":["jt"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/prc":["prc"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/u3d":["u3d"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/javascript":["js","mjs"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["md","markdown"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/wgsl":["wgsl"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","*jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts","m2t","m2ts","mts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]};Object.freeze(Vo);var Go=Vo;var we=function(e,t,i,a){if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?a:i==="a"?a.call(e):a?a.value:t.get(e)},_t,Ht,lt,_a=class{constructor(...t){_t.set(this,new Map),Ht.set(this,new Map),lt.set(this,new Map);for(let i of t)this.define(i)}define(t,i=!1){for(let[a,n]of Object.entries(t)){a=a.toLowerCase(),n=n.map(r=>r.toLowerCase()),we(this,lt,"f").has(a)||we(this,lt,"f").set(a,new Set);let o=we(this,lt,"f").get(a),l=!0;for(let r of n){let s=r.startsWith("*");if(r=s?r.slice(1):r,o?.add(r),l&&we(this,Ht,"f").set(a,r),l=!1,s)continue;let p=we(this,_t,"f").get(r);if(p&&p!=a&&!i)throw new Error(`"${a} -> ${r}" conflicts with "${p} -> ${r}". Pass \`force=true\` to override this definition.`);we(this,_t,"f").set(r,a)}}return this}getType(t){if(typeof t!="string")return null;let i=t.replace(/^.*[/\\]/,"").toLowerCase(),a=i.replace(/^.*\./,"").toLowerCase(),n=i.length{throw new Error("define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances")},Object.freeze(this);for(let t of we(this,lt,"f").values())Object.freeze(t);return this}_getTestState(){return{types:we(this,_t,"f"),extensions:we(this,Ht,"f")}}};_t=new WeakMap,Ht=new WeakMap,lt=new WeakMap;var Ra=_a;var Uo=new Ra(Go,ko)._freeze();var Wo=({addFilter:e,utils:t})=>{let{Type:i,replaceInString:a,toNaturalFileSize:n}=t;return e("ALLOW_HOPPER_ITEM",(o,{query:l})=>{if(!l("GET_ALLOW_FILE_SIZE_VALIDATION"))return!0;let r=l("GET_MAX_FILE_SIZE");if(r!==null&&o.size>r)return!1;let s=l("GET_MIN_FILE_SIZE");return!(s!==null&&o.sizenew Promise((r,s)=>{if(!l("GET_ALLOW_FILE_SIZE_VALIDATION"))return r(o);let p=l("GET_FILE_VALIDATE_SIZE_FILTER");if(p&&!p(o))return r(o);let c=l("GET_MAX_FILE_SIZE");if(c!==null&&o.size>c){s({status:{main:l("GET_LABEL_MAX_FILE_SIZE_EXCEEDED"),sub:a(l("GET_LABEL_MAX_FILE_SIZE"),{filesize:n(c,".",l("GET_FILE_SIZE_BASE"),l("GET_FILE_SIZE_LABELS",l))})}});return}let d=l("GET_MIN_FILE_SIZE");if(d!==null&&o.sizef+g.fileSize,0)>m){s({status:{main:l("GET_LABEL_MAX_TOTAL_FILE_SIZE_EXCEEDED"),sub:a(l("GET_LABEL_MAX_TOTAL_FILE_SIZE"),{filesize:n(m,".",l("GET_FILE_SIZE_BASE"),l("GET_FILE_SIZE_LABELS",l))})}});return}r(o)})),{options:{allowFileSizeValidation:[!0,i.BOOLEAN],maxFileSize:[null,i.INT],minFileSize:[null,i.INT],maxTotalFileSize:[null,i.INT],fileValidateSizeFilter:[null,i.FUNCTION],labelMinFileSizeExceeded:["File is too small",i.STRING],labelMinFileSize:["Minimum file size is {filesize}",i.STRING],labelMaxFileSizeExceeded:["File is too large",i.STRING],labelMaxFileSize:["Maximum file size is {filesize}",i.STRING],labelMaxTotalFileSizeExceeded:["Maximum total size exceeded",i.STRING],labelMaxTotalFileSize:["Maximum total file size is {filesize}",i.STRING]}}},Qp=typeof window<"u"&&typeof window.document<"u";Qp&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Wo}));var Ho=Wo;var jo=({addFilter:e,utils:t})=>{let{Type:i,isString:a,replaceInString:n,guesstimateMimeType:o,getExtensionFromFilename:l,getFilenameFromURL:r}=t,s=(u,f)=>{let g=(/^[^/]+/.exec(u)||[]).pop(),h=f.slice(0,-2);return g===h},p=(u,f)=>u.some(g=>/\*$/.test(g)?s(f,g):g===f),c=u=>{let f="";if(a(u)){let g=r(u),h=l(g);h&&(f=o(h))}else f=u.type;return f},d=(u,f,g)=>{if(f.length===0)return!0;let h=c(u);return g?new Promise((v,E)=>{g(u,h).then(T=>{p(f,T)?v():E()}).catch(E)}):p(f,h)},m=u=>f=>u[f]===null?!1:u[f]||f;return e("SET_ATTRIBUTE_TO_OPTION_MAP",u=>Object.assign(u,{accept:"acceptedFileTypes"})),e("ALLOW_HOPPER_ITEM",(u,{query:f})=>f("GET_ALLOW_FILE_TYPE_VALIDATION")?d(u,f("GET_ACCEPTED_FILE_TYPES")):!0),e("LOAD_FILE",(u,{query:f})=>new Promise((g,h)=>{if(!f("GET_ALLOW_FILE_TYPE_VALIDATION")){g(u);return}let v=f("GET_ACCEPTED_FILE_TYPES"),E=f("GET_FILE_VALIDATE_TYPE_DETECT_TYPE"),T=d(u,v,E),I=()=>{let y=v.map(m(f("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES_MAP"))).filter(w=>w!==!1),b=y.filter((w,x)=>y.indexOf(w)===x);h({status:{main:f("GET_LABEL_FILE_TYPE_NOT_ALLOWED"),sub:n(f("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES"),{allTypes:b.join(", "),allButLastType:b.slice(0,-1).join(", "),lastType:b[b.length-1]})}})};if(typeof T=="boolean")return T?g(u):I();T.then(()=>{g(u)}).catch(I)})),{options:{allowFileTypeValidation:[!0,i.BOOLEAN],acceptedFileTypes:[[],i.ARRAY],labelFileTypeNotAllowed:["File is of invalid type",i.STRING],fileValidateTypeLabelExpectedTypes:["Expects {allButLastType} or {lastType}",i.STRING],fileValidateTypeLabelExpectedTypesMap:[{},i.OBJECT],fileValidateTypeDetectType:[null,i.FUNCTION]}}},Zp=typeof window<"u"&&typeof window.document<"u";Zp&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:jo}));var Yo=jo;var qo=e=>/^image/.test(e.type),$o=({addFilter:e,utils:t})=>{let{Type:i,isFile:a,getNumericAspectRatioFromString:n}=t,o=(p,c)=>!(!qo(p.file)||!c("GET_ALLOW_IMAGE_CROP")),l=p=>typeof p=="object",r=p=>typeof p=="number",s=(p,c)=>p.setMetadata("crop",Object.assign({},p.getMetadata("crop"),c));return e("DID_CREATE_ITEM",(p,{query:c})=>{p.extend("setImageCrop",d=>{if(!(!o(p,c)||!l(center)))return p.setMetadata("crop",d),d}),p.extend("setImageCropCenter",d=>{if(!(!o(p,c)||!l(d)))return s(p,{center:d})}),p.extend("setImageCropZoom",d=>{if(!(!o(p,c)||!r(d)))return s(p,{zoom:Math.max(1,d)})}),p.extend("setImageCropRotation",d=>{if(!(!o(p,c)||!r(d)))return s(p,{rotation:d})}),p.extend("setImageCropFlip",d=>{if(!(!o(p,c)||!l(d)))return s(p,{flip:d})}),p.extend("setImageCropAspectRatio",d=>{if(!o(p,c)||typeof d>"u")return;let m=p.getMetadata("crop"),u=n(d),f={center:{x:.5,y:.5},flip:m?Object.assign({},m.flip):{horizontal:!1,vertical:!1},rotation:0,zoom:1,aspectRatio:u};return p.setMetadata("crop",f),f})}),e("DID_LOAD_ITEM",(p,{query:c})=>new Promise((d,m)=>{let u=p.file;if(!a(u)||!qo(u)||!c("GET_ALLOW_IMAGE_CROP")||p.getMetadata("crop"))return d(p);let g=c("GET_IMAGE_CROP_ASPECT_RATIO");p.setMetadata("crop",{center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},rotation:0,zoom:1,aspectRatio:g?n(g):null}),d(p)})),{options:{allowImageCrop:[!0,i.BOOLEAN],imageCropAspectRatio:[null,i.STRING]}}},Kp=typeof window<"u"&&typeof window.document<"u";Kp&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:$o}));var Xo=$o;var wa=e=>/^image/.test(e.type),Qo=e=>{let{addFilter:t,utils:i,views:a}=e,{Type:n,createRoute:o,createItemAPI:l=c=>c}=i,{fileActionButton:r}=a;t("SHOULD_REMOVE_ON_REVERT",(c,{item:d,query:m})=>new Promise(u=>{let{file:f}=d,g=m("GET_ALLOW_IMAGE_EDIT")&&m("GET_IMAGE_EDIT_ALLOW_EDIT")&&wa(f);u(!g)})),t("DID_LOAD_ITEM",(c,{query:d,dispatch:m})=>new Promise((u,f)=>{if(c.origin>1){u(c);return}let{file:g}=c;if(!d("GET_ALLOW_IMAGE_EDIT")||!d("GET_IMAGE_EDIT_INSTANT_EDIT")){u(c);return}if(!wa(g)){u(c);return}let h=(E,T,I)=>y=>{s.shift(),y?T(E):I(E),m("KICK"),v()},v=()=>{if(!s.length)return;let{item:E,resolve:T,reject:I}=s[0];m("EDIT_ITEM",{id:E.id,handleEditorResponse:h(E,T,I)})};p({item:c,resolve:u,reject:f}),s.length===1&&v()})),t("DID_CREATE_ITEM",(c,{query:d,dispatch:m})=>{c.extend("edit",()=>{m("EDIT_ITEM",{id:c.id})})});let s=[],p=c=>(s.push(c),c);return t("CREATE_VIEW",c=>{let{is:d,view:m,query:u}=c;if(!u("GET_ALLOW_IMAGE_EDIT"))return;let f=u("GET_ALLOW_IMAGE_PREVIEW");if(!(d("file-info")&&!f||d("file")&&f))return;let h=u("GET_IMAGE_EDIT_EDITOR");if(!h)return;h.filepondCallbackBridge||(h.outputData=!0,h.outputFile=!1,h.filepondCallbackBridge={onconfirm:h.onconfirm||(()=>{}),oncancel:h.oncancel||(()=>{})});let v=({root:I,props:y,action:b})=>{let{id:w}=y,{handleEditorResponse:x}=b;h.cropAspectRatio=I.query("GET_IMAGE_CROP_ASPECT_RATIO")||h.cropAspectRatio,h.outputCanvasBackgroundColor=I.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR")||h.outputCanvasBackgroundColor;let _=I.query("GET_ITEM",w);if(!_)return;let P=_.file,O=_.getMetadata("crop"),M={center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null},N=_.getMetadata("resize"),S=_.getMetadata("filter")||null,D=_.getMetadata("filters")||null,R=_.getMetadata("colors")||null,L=_.getMetadata("markup")||null,z={crop:O||M,size:N?{upscale:N.upscale,mode:N.mode,width:N.size.width,height:N.size.height}:null,filter:D?D.id||D.matrix:I.query("GET_ALLOW_IMAGE_FILTER")&&I.query("GET_IMAGE_FILTER_COLOR_MATRIX")&&!R?S:null,color:R,markup:L};h.onconfirm=({data:F})=>{let{crop:G,size:C,filter:q,color:Q,colorMatrix:$,markup:pe}=F,k={};if(G&&(k.crop=G),C){let H=(_.getMetadata("resize")||{}).size,Y={width:C.width,height:C.height};!(Y.width&&Y.height)&&H&&(Y.width=H.width,Y.height=H.height),(Y.width||Y.height)&&(k.resize={upscale:C.upscale,mode:C.mode,size:Y})}pe&&(k.markup=pe),k.colors=Q,k.filters=q,k.filter=$,_.setMetadata(k),h.filepondCallbackBridge.onconfirm(F,l(_)),x&&(h.onclose=()=>{x(!0),h.onclose=null})},h.oncancel=()=>{h.filepondCallbackBridge.oncancel(l(_)),x&&(h.onclose=()=>{x(!1),h.onclose=null})},h.open(P,z)},E=({root:I,props:y})=>{if(!u("GET_IMAGE_EDIT_ALLOW_EDIT"))return;let{id:b}=y,w=u("GET_ITEM",b);if(!w)return;let x=w.file;if(wa(x))if(I.ref.handleEdit=_=>{_.stopPropagation(),I.dispatch("EDIT_ITEM",{id:b})},f){let _=m.createChildView(r,{label:"edit",icon:u("GET_IMAGE_EDIT_ICON_EDIT"),opacity:0});_.element.classList.add("filepond--action-edit-item"),_.element.dataset.align=u("GET_STYLE_IMAGE_EDIT_BUTTON_EDIT_ITEM_POSITION"),_.on("click",I.ref.handleEdit),I.ref.buttonEditItem=m.appendChildView(_)}else{let _=m.element.querySelector(".filepond--file-info-main"),P=document.createElement("button");P.className="filepond--action-edit-item-alt",P.innerHTML=u("GET_IMAGE_EDIT_ICON_EDIT")+"edit",P.addEventListener("click",I.ref.handleEdit),_.appendChild(P),I.ref.editButton=P}};m.registerDestroyer(({root:I})=>{I.ref.buttonEditItem&&I.ref.buttonEditItem.off("click",I.ref.handleEdit),I.ref.editButton&&I.ref.editButton.removeEventListener("click",I.ref.handleEdit)});let T={EDIT_ITEM:v,DID_LOAD_ITEM:E};if(f){let I=({root:y})=>{y.ref.buttonEditItem&&(y.ref.buttonEditItem.opacity=1)};T.DID_IMAGE_PREVIEW_SHOW=I}m.registerWriter(o(T))}),{options:{allowImageEdit:[!0,n.BOOLEAN],styleImageEditButtonEditItemPosition:["bottom center",n.STRING],imageEditInstantEdit:[!1,n.BOOLEAN],imageEditAllowEdit:[!0,n.BOOLEAN],imageEditIconEdit:['',n.STRING],imageEditEditor:[null,n.OBJECT]}}},Jp=typeof window<"u"&&typeof window.document<"u";Jp&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Qo}));var Zo=Qo;var em=e=>/^image\/jpeg/.test(e.type),rt={JPEG:65496,APP1:65505,EXIF:1165519206,TIFF:18761,Orientation:274,Unknown:65280},st=(e,t,i=!1)=>e.getUint16(t,i),Ko=(e,t,i=!1)=>e.getUint32(t,i),tm=e=>new Promise((t,i)=>{let a=new FileReader;a.onload=function(n){let o=new DataView(n.target.result);if(st(o,0)!==rt.JPEG){t(-1);return}let l=o.byteLength,r=2;for(;rtypeof window<"u"&&typeof window.document<"u")(),am=()=>im,nm="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QA6RXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAYAAAEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////wAALCAABAAIBASIA/8QAJgABAAAAAAAAAAAAAAAAAAAAAxABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBH/9k=",Jo,vi=am()?new Image:{};vi.onload=()=>Jo=vi.naturalWidth>vi.naturalHeight;vi.src=nm;var om=()=>Jo,el=({addFilter:e,utils:t})=>{let{Type:i,isFile:a}=t;return e("DID_LOAD_ITEM",(n,{query:o})=>new Promise((l,r)=>{let s=n.file;if(!a(s)||!em(s)||!o("GET_ALLOW_IMAGE_EXIF_ORIENTATION")||!om())return l(n);tm(s).then(p=>{n.setMetadata("exif",{orientation:p}),l(n)})})),{options:{allowImageExifOrientation:[!0,i.BOOLEAN]}}},lm=typeof window<"u"&&typeof window.document<"u";lm&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:el}));var tl=el;var rm=e=>/^image/.test(e.type),il=(e,t)=>Yt(e.x*t,e.y*t),al=(e,t)=>Yt(e.x+t.x,e.y+t.y),sm=e=>{let t=Math.sqrt(e.x*e.x+e.y*e.y);return t===0?{x:0,y:0}:Yt(e.x/t,e.y/t)},Ii=(e,t,i)=>{let a=Math.cos(t),n=Math.sin(t),o=Yt(e.x-i.x,e.y-i.y);return Yt(i.x+a*o.x-n*o.y,i.y+n*o.x+a*o.y)},Yt=(e=0,t=0)=>({x:e,y:t}),Te=(e,t,i=1,a)=>{if(typeof e=="string")return parseFloat(e)*i;if(typeof e=="number")return e*(a?t[a]:Math.min(t.width,t.height))},cm=(e,t,i)=>{let a=e.borderStyle||e.lineStyle||"solid",n=e.backgroundColor||e.fontColor||"transparent",o=e.borderColor||e.lineColor||"transparent",l=Te(e.borderWidth||e.lineWidth,t,i),r=e.lineCap||"round",s=e.lineJoin||"round",p=typeof a=="string"?"":a.map(d=>Te(d,t,i)).join(","),c=e.opacity||1;return{"stroke-linecap":r,"stroke-linejoin":s,"stroke-width":l||0,"stroke-dasharray":p,stroke:o,fill:n,opacity:c}},Se=e=>e!=null,dm=(e,t,i=1)=>{let a=Te(e.x,t,i,"width")||Te(e.left,t,i,"width"),n=Te(e.y,t,i,"height")||Te(e.top,t,i,"height"),o=Te(e.width,t,i,"width"),l=Te(e.height,t,i,"height"),r=Te(e.right,t,i,"width"),s=Te(e.bottom,t,i,"height");return Se(n)||(Se(l)&&Se(s)?n=t.height-l-s:n=s),Se(a)||(Se(o)&&Se(r)?a=t.width-o-r:a=r),Se(o)||(Se(a)&&Se(r)?o=t.width-a-r:o=0),Se(l)||(Se(n)&&Se(s)?l=t.height-n-s:l=0),{x:a||0,y:n||0,width:o||0,height:l||0}},pm=e=>e.map((t,i)=>`${i===0?"M":"L"} ${t.x} ${t.y}`).join(" "),Ce=(e,t)=>Object.keys(t).forEach(i=>e.setAttribute(i,t[i])),mm="http://www.w3.org/2000/svg",Rt=(e,t)=>{let i=document.createElementNS(mm,e);return t&&Ce(i,t),i},um=e=>Ce(e,{...e.rect,...e.styles}),fm=e=>{let t=e.rect.x+e.rect.width*.5,i=e.rect.y+e.rect.height*.5,a=e.rect.width*.5,n=e.rect.height*.5;return Ce(e,{cx:t,cy:i,rx:a,ry:n,...e.styles})},gm={contain:"xMidYMid meet",cover:"xMidYMid slice"},hm=(e,t)=>{Ce(e,{...e.rect,...e.styles,preserveAspectRatio:gm[t.fit]||"none"})},Em={left:"start",center:"middle",right:"end"},bm=(e,t,i,a)=>{let n=Te(t.fontSize,i,a),o=t.fontFamily||"sans-serif",l=t.fontWeight||"normal",r=Em[t.textAlign]||"start";Ce(e,{...e.rect,...e.styles,"stroke-width":0,"font-weight":l,"font-size":n,"font-family":o,"text-anchor":r}),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:" ")},Tm=(e,t,i,a)=>{Ce(e,{...e.rect,...e.styles,fill:"none"});let n=e.childNodes[0],o=e.childNodes[1],l=e.childNodes[2],r=e.rect,s={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(Ce(n,{x1:r.x,y1:r.y,x2:s.x,y2:s.y}),!t.lineDecoration)return;o.style.display="none",l.style.display="none";let p=sm({x:s.x-r.x,y:s.y-r.y}),c=Te(.05,i,a);if(t.lineDecoration.indexOf("arrow-begin")!==-1){let d=il(p,c),m=al(r,d),u=Ii(r,2,m),f=Ii(r,-2,m);Ce(o,{style:"display:block;",d:`M${u.x},${u.y} L${r.x},${r.y} L${f.x},${f.y}`})}if(t.lineDecoration.indexOf("arrow-end")!==-1){let d=il(p,-c),m=al(s,d),u=Ii(s,2,m),f=Ii(s,-2,m);Ce(l,{style:"display:block;",d:`M${u.x},${u.y} L${s.x},${s.y} L${f.x},${f.y}`})}},vm=(e,t,i,a)=>{Ce(e,{...e.styles,fill:"none",d:pm(t.points.map(n=>({x:Te(n.x,i,a,"width"),y:Te(n.y,i,a,"height")})))})},xi=e=>t=>Rt(e,{id:t.id}),Im=e=>{let t=Rt("image",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round",opacity:"0"});return t.onload=()=>{t.setAttribute("opacity",e.opacity||1)},t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.src),t},xm=e=>{let t=Rt("g",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round"}),i=Rt("line");t.appendChild(i);let a=Rt("path");t.appendChild(a);let n=Rt("path");return t.appendChild(n),t},ym={image:Im,rect:xi("rect"),ellipse:xi("ellipse"),text:xi("text"),path:xi("path"),line:xm},_m={rect:um,ellipse:fm,image:hm,text:bm,path:vm,line:Tm},Rm=(e,t)=>ym[e](t),wm=(e,t,i,a,n)=>{t!=="path"&&(e.rect=dm(i,a,n)),e.styles=cm(i,a,n),_m[t](e,i,a,n)},Sm=["x","y","left","top","right","bottom","width","height"],Lm=e=>typeof e=="string"&&/%/.test(e)?parseFloat(e)/100:e,Am=e=>{let[t,i]=e,a=i.points?{}:Sm.reduce((n,o)=>(n[o]=Lm(i[o]),n),{});return[t,{zIndex:0,...i,...a}]},Mm=(e,t)=>e[1].zIndex>t[1].zIndex?1:e[1].zIndexe.utils.createView({name:"image-preview-markup",tag:"svg",ignoreRect:!0,mixins:{apis:["width","height","crop","markup","resize","dirty"]},write:({root:t,props:i})=>{if(!i.dirty)return;let{crop:a,resize:n,markup:o}=i,l=i.width,r=i.height,s=a.width,p=a.height;if(n){let{size:u}=n,f=u&&u.width,g=u&&u.height,h=n.mode,v=n.upscale;f&&!g&&(g=f),g&&!f&&(f=g);let E=s{let[f,g]=u,h=Rm(f,g);wm(h,f,g,c,d),t.element.appendChild(h)})}}),jt=(e,t)=>({x:e,y:t}),Pm=(e,t)=>e.x*t.x+e.y*t.y,nl=(e,t)=>jt(e.x-t.x,e.y-t.y),Dm=(e,t)=>Pm(nl(e,t),nl(e,t)),ol=(e,t)=>Math.sqrt(Dm(e,t)),ll=(e,t)=>{let i=e,a=1.5707963267948966,n=t,o=1.5707963267948966-t,l=Math.sin(a),r=Math.sin(n),s=Math.sin(o),p=Math.cos(o),c=i/l,d=c*r,m=c*s;return jt(p*d,p*m)},Fm=(e,t)=>{let i=e.width,a=e.height,n=ll(i,t),o=ll(a,t),l=jt(e.x+Math.abs(n.x),e.y-Math.abs(n.y)),r=jt(e.x+e.width+Math.abs(o.y),e.y+Math.abs(o.x)),s=jt(e.x-Math.abs(o.y),e.y+e.height-Math.abs(o.x));return{width:ol(l,r),height:ol(l,s)}},zm=(e,t,i=1)=>{let a=e.height/e.width,n=1,o=t,l=1,r=a;r>o&&(r=o,l=r/a);let s=Math.max(n/l,o/r),p=e.width/(i*s*l),c=p*t;return{width:p,height:c}},sl=(e,t,i,a)=>{let n=a.x>.5?1-a.x:a.x,o=a.y>.5?1-a.y:a.y,l=n*2*e.width,r=o*2*e.height,s=Fm(t,i);return Math.max(s.width/l,s.height/r)},cl=(e,t)=>{let i=e.width,a=i*t;a>e.height&&(a=e.height,i=a/t);let n=(e.width-i)*.5,o=(e.height-a)*.5;return{x:n,y:o,width:i,height:a}},Cm=(e,t={})=>{let{zoom:i,rotation:a,center:n,aspectRatio:o}=t;o||(o=e.height/e.width);let l=zm(e,o,i),r={x:l.width*.5,y:l.height*.5},s={x:0,y:0,width:l.width,height:l.height,center:r},p=typeof t.scaleToFit>"u"||t.scaleToFit,c=sl(e,cl(s,o),a,p?n:{x:.5,y:.5}),d=i*c;return{widthFloat:l.width/d,heightFloat:l.height/d,width:Math.round(l.width/d),height:Math.round(l.height/d)}},ze={type:"spring",stiffness:.5,damping:.45,mass:10},Nm=e=>e.utils.createView({name:"image-bitmap",ignoreRect:!0,mixins:{styles:["scaleX","scaleY"]},create:({root:t,props:i})=>{t.appendChild(i.image)}}),Bm=e=>e.utils.createView({name:"image-canvas-wrapper",tag:"div",ignoreRect:!0,mixins:{apis:["crop","width","height"],styles:["originX","originY","translateX","translateY","scaleX","scaleY","rotateZ"],animations:{originX:ze,originY:ze,scaleX:ze,scaleY:ze,translateX:ze,translateY:ze,rotateZ:ze}},create:({root:t,props:i})=>{i.width=i.image.width,i.height=i.image.height,t.ref.bitmap=t.appendChildView(t.createChildView(Nm(e),{image:i.image}))},write:({root:t,props:i})=>{let{flip:a}=i.crop,{bitmap:n}=t.ref;n.scaleX=a.horizontal?-1:1,n.scaleY=a.vertical?-1:1}}),km=e=>e.utils.createView({name:"image-clip",tag:"div",ignoreRect:!0,mixins:{apis:["crop","markup","resize","width","height","dirty","background"],styles:["width","height","opacity"],animations:{opacity:{type:"tween",duration:250}}},didWriteView:function({root:t,props:i}){i.background&&(t.element.style.backgroundColor=i.background)},create:({root:t,props:i})=>{t.ref.image=t.appendChildView(t.createChildView(Bm(e),Object.assign({},i))),t.ref.createMarkup=()=>{t.ref.markup||(t.ref.markup=t.appendChildView(t.createChildView(Om(e),Object.assign({},i))))},t.ref.destroyMarkup=()=>{t.ref.markup&&(t.removeChildView(t.ref.markup),t.ref.markup=null)};let a=t.query("GET_IMAGE_PREVIEW_TRANSPARENCY_INDICATOR");a!==null&&(a==="grid"?t.element.dataset.transparencyIndicator=a:t.element.dataset.transparencyIndicator="color")},write:({root:t,props:i,shouldOptimize:a})=>{let{crop:n,markup:o,resize:l,dirty:r,width:s,height:p}=i;t.ref.image.crop=n;let c={x:0,y:0,width:s,height:p,center:{x:s*.5,y:p*.5}},d={width:t.ref.image.width,height:t.ref.image.height},m={x:n.center.x*d.width,y:n.center.y*d.height},u={x:c.center.x-d.width*n.center.x,y:c.center.y-d.height*n.center.y},f=Math.PI*2+n.rotation%(Math.PI*2),g=n.aspectRatio||d.height/d.width,h=typeof n.scaleToFit>"u"||n.scaleToFit,v=sl(d,cl(c,g),f,h?n.center:{x:.5,y:.5}),E=n.zoom*v;o&&o.length?(t.ref.createMarkup(),t.ref.markup.width=s,t.ref.markup.height=p,t.ref.markup.resize=l,t.ref.markup.dirty=r,t.ref.markup.markup=o,t.ref.markup.crop=Cm(d,n)):t.ref.markup&&t.ref.destroyMarkup();let T=t.ref.image;if(a){T.originX=null,T.originY=null,T.translateX=null,T.translateY=null,T.rotateZ=null,T.scaleX=null,T.scaleY=null;return}T.originX=m.x,T.originY=m.y,T.translateX=u.x,T.translateY=u.y,T.rotateZ=f,T.scaleX=E,T.scaleY=E}}),Vm=e=>e.utils.createView({name:"image-preview",tag:"div",ignoreRect:!0,mixins:{apis:["image","crop","markup","resize","dirty","background"],styles:["translateY","scaleX","scaleY","opacity"],animations:{scaleX:ze,scaleY:ze,translateY:ze,opacity:{type:"tween",duration:400}}},create:({root:t,props:i})=>{t.ref.clip=t.appendChildView(t.createChildView(km(e),{id:i.id,image:i.image,crop:i.crop,markup:i.markup,resize:i.resize,dirty:i.dirty,background:i.background}))},write:({root:t,props:i,shouldOptimize:a})=>{let{clip:n}=t.ref,{image:o,crop:l,markup:r,resize:s,dirty:p}=i;if(n.crop=l,n.markup=r,n.resize=s,n.dirty=p,n.opacity=a?0:1,a||t.rect.element.hidden)return;let c=o.height/o.width,d=l.aspectRatio||c,m=t.rect.inner.width,u=t.rect.inner.height,f=t.query("GET_IMAGE_PREVIEW_HEIGHT"),g=t.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),h=t.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),v=t.query("GET_PANEL_ASPECT_RATIO"),E=t.query("GET_ALLOW_MULTIPLE");v&&!E&&(f=m*v,d=v);let T=f!==null?f:Math.max(g,Math.min(m*d,h)),I=T/d;I>m&&(I=m,T=I*d),T>u&&(T=u,I=u/d),n.width=I,n.height=T}}),Gm=` + + + + + + + + + + + + + + + + + +`,rl=0,Um=e=>e.utils.createView({name:"image-preview-overlay",tag:"div",ignoreRect:!0,create:({root:t,props:i})=>{let a=Gm;if(document.querySelector("base")){let n=new URL(window.location.href.replace(window.location.hash,"")).href;a=a.replace(/url\(\#/g,"url("+n+"#")}rl++,t.element.classList.add(`filepond--image-preview-overlay-${i.status}`),t.element.innerHTML=a.replace(/__UID__/g,rl)},mixins:{styles:["opacity"],animations:{opacity:{type:"spring",mass:25}}}}),Wm=function(){self.onmessage=e=>{createImageBitmap(e.data.message.file).then(t=>{self.postMessage({id:e.data.id,message:t},[t])})}},Hm=function(){self.onmessage=e=>{let t=e.data.message.imageData,i=e.data.message.colorMatrix,a=t.data,n=a.length,o=i[0],l=i[1],r=i[2],s=i[3],p=i[4],c=i[5],d=i[6],m=i[7],u=i[8],f=i[9],g=i[10],h=i[11],v=i[12],E=i[13],T=i[14],I=i[15],y=i[16],b=i[17],w=i[18],x=i[19],_=0,P=0,O=0,M=0,N=0;for(;_{let i=new Image;i.onload=()=>{let a=i.naturalWidth,n=i.naturalHeight;i=null,t(a,n)},i.src=e},Ym={1:()=>[1,0,0,1,0,0],2:e=>[-1,0,0,1,e,0],3:(e,t)=>[-1,0,0,-1,e,t],4:(e,t)=>[1,0,0,-1,0,t],5:()=>[0,1,1,0,0,0],6:(e,t)=>[0,1,-1,0,t,0],7:(e,t)=>[0,-1,-1,0,t,e],8:e=>[0,-1,1,0,0,e]},qm=(e,t,i,a)=>{a!==-1&&e.transform.apply(e,Ym[a](t,i))},$m=(e,t,i,a)=>{t=Math.round(t),i=Math.round(i);let n=document.createElement("canvas");n.width=t,n.height=i;let o=n.getContext("2d");return a>=5&&a<=8&&([t,i]=[i,t]),qm(o,t,i,a),o.drawImage(e,0,0,t,i),n},dl=e=>/^image/.test(e.type)&&!/svg/.test(e.type),Xm=10,Qm=10,Zm=e=>{let t=Math.min(Xm/e.width,Qm/e.height),i=document.createElement("canvas"),a=i.getContext("2d"),n=i.width=Math.ceil(e.width*t),o=i.height=Math.ceil(e.height*t);a.drawImage(e,0,0,n,o);let l=null;try{l=a.getImageData(0,0,n,o).data}catch{return null}let r=l.length,s=0,p=0,c=0,d=0;for(;dMath.floor(Math.sqrt(e/(t/4))),Km=(e,t)=>(t=t||document.createElement("canvas"),t.width=e.width,t.height=e.height,t.getContext("2d").drawImage(e,0,0),t),Jm=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(new Uint8ClampedArray(e.data)),t},eu=e=>new Promise((t,i)=>{let a=new Image;a.crossOrigin="Anonymous",a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),tu=e=>{let t=Um(e),i=Vm(e),{createWorker:a}=e.utils,n=(E,T,I)=>new Promise(y=>{E.ref.imageData||(E.ref.imageData=I.getContext("2d").getImageData(0,0,I.width,I.height));let b=Jm(E.ref.imageData);if(!T||T.length!==20)return I.getContext("2d").putImageData(b,0,0),y();let w=a(Hm);w.post({imageData:b,colorMatrix:T},x=>{I.getContext("2d").putImageData(x,0,0),w.terminate(),y()},[b.data.buffer])}),o=(E,T)=>{E.removeChildView(T),T.image.width=1,T.image.height=1,T._destroy()},l=({root:E})=>{let T=E.ref.images.shift();return T.opacity=0,T.translateY=-15,E.ref.imageViewBin.push(T),T},r=({root:E,props:T,image:I})=>{let y=T.id,b=E.query("GET_ITEM",{id:y});if(!b)return;let w=b.getMetadata("crop")||{center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null},x=E.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),_,P,O=!1;E.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(_=b.getMetadata("markup")||[],P=b.getMetadata("resize"),O=!0);let M=E.appendChildView(E.createChildView(i,{id:y,image:I,crop:w,resize:P,markup:_,dirty:O,background:x,opacity:0,scaleX:1.15,scaleY:1.15,translateY:15}),E.childViews.length);E.ref.images.push(M),M.opacity=1,M.scaleX=1,M.scaleY=1,M.translateY=0,setTimeout(()=>{E.dispatch("DID_IMAGE_PREVIEW_SHOW",{id:y})},250)},s=({root:E,props:T})=>{let I=E.query("GET_ITEM",{id:T.id});if(!I)return;let y=E.ref.images[E.ref.images.length-1];y.crop=I.getMetadata("crop"),y.background=E.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),E.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(y.dirty=!0,y.resize=I.getMetadata("resize"),y.markup=I.getMetadata("markup"))},p=({root:E,props:T,action:I})=>{if(!/crop|filter|markup|resize/.test(I.change.key)||!E.ref.images.length)return;let y=E.query("GET_ITEM",{id:T.id});if(y){if(/filter/.test(I.change.key)){let b=E.ref.images[E.ref.images.length-1];n(E,I.change.value,b.image);return}if(/crop|markup|resize/.test(I.change.key)){let b=y.getMetadata("crop"),w=E.ref.images[E.ref.images.length-1];if(b&&b.aspectRatio&&w.crop&&w.crop.aspectRatio&&Math.abs(b.aspectRatio-w.crop.aspectRatio)>1e-5){let x=l({root:E});r({root:E,props:T,image:Km(x.image)})}else s({root:E,props:T})}}},c=E=>{let I=window.navigator.userAgent.match(/Firefox\/([0-9]+)\./),y=I?parseInt(I[1]):null;return y!==null&&y<=58?!1:"createImageBitmap"in window&&dl(E)},d=({root:E,props:T})=>{let{id:I}=T,y=E.query("GET_ITEM",I);if(!y)return;let b=URL.createObjectURL(y.file);jm(b,(w,x)=>{E.dispatch("DID_IMAGE_PREVIEW_CALCULATE_SIZE",{id:I,width:w,height:x})})},m=({root:E,props:T})=>{let{id:I}=T,y=E.query("GET_ITEM",I);if(!y)return;let b=URL.createObjectURL(y.file),w=()=>{eu(b).then(x)},x=_=>{URL.revokeObjectURL(b);let O=(y.getMetadata("exif")||{}).orientation||-1,{width:M,height:N}=_;if(!M||!N)return;O>=5&&O<=8&&([M,N]=[N,M]);let S=Math.max(1,window.devicePixelRatio*.75),R=E.query("GET_IMAGE_PREVIEW_ZOOM_FACTOR")*S,L=N/M,z=E.rect.element.width,F=E.rect.element.height,G=z,C=G*L;L>1?(G=Math.min(M,z*R),C=G*L):(C=Math.min(N,F*R),G=C/L);let q=$m(_,G,C,O),Q=()=>{let pe=E.query("GET_IMAGE_PREVIEW_CALCULATE_AVERAGE_IMAGE_COLOR")?Zm(data):null;y.setMetadata("color",pe,!0),"close"in _&&_.close(),E.ref.overlayShadow.opacity=1,r({root:E,props:T,image:q})},$=y.getMetadata("filter");$?n(E,$,q).then(Q):Q()};if(c(y.file)){let _=a(Wm);_.post({file:y.file},P=>{if(_.terminate(),!P){w();return}x(P)})}else w()},u=({root:E})=>{let T=E.ref.images[E.ref.images.length-1];T.translateY=0,T.scaleX=1,T.scaleY=1,T.opacity=1},f=({root:E})=>{E.ref.overlayShadow.opacity=1,E.ref.overlayError.opacity=0,E.ref.overlaySuccess.opacity=0},g=({root:E})=>{E.ref.overlayShadow.opacity=.25,E.ref.overlayError.opacity=1},h=({root:E})=>{E.ref.overlayShadow.opacity=.25,E.ref.overlaySuccess.opacity=1},v=({root:E})=>{E.ref.images=[],E.ref.imageData=null,E.ref.imageViewBin=[],E.ref.overlayShadow=E.appendChildView(E.createChildView(t,{opacity:0,status:"idle"})),E.ref.overlaySuccess=E.appendChildView(E.createChildView(t,{opacity:0,status:"success"})),E.ref.overlayError=E.appendChildView(E.createChildView(t,{opacity:0,status:"failure"}))};return e.utils.createView({name:"image-preview-wrapper",create:v,styles:["height"],apis:["height"],destroy:({root:E})=>{E.ref.images.forEach(T=>{T.image.width=1,T.image.height=1})},didWriteView:({root:E})=>{E.ref.images.forEach(T=>{T.dirty=!1})},write:e.utils.createRoute({DID_IMAGE_PREVIEW_DRAW:u,DID_IMAGE_PREVIEW_CONTAINER_CREATE:d,DID_FINISH_CALCULATE_PREVIEWSIZE:m,DID_UPDATE_ITEM_METADATA:p,DID_THROW_ITEM_LOAD_ERROR:g,DID_THROW_ITEM_PROCESSING_ERROR:g,DID_THROW_ITEM_INVALID:g,DID_COMPLETE_ITEM_PROCESSING:h,DID_START_ITEM_PROCESSING:f,DID_REVERT_ITEM_PROCESSING:f},({root:E})=>{let T=E.ref.imageViewBin.filter(I=>I.opacity===0);E.ref.imageViewBin=E.ref.imageViewBin.filter(I=>I.opacity>0),T.forEach(I=>o(E,I)),T.length=0})})},pl=e=>{let{addFilter:t,utils:i}=e,{Type:a,createRoute:n,isFile:o}=i,l=tu(e);return t("CREATE_VIEW",r=>{let{is:s,view:p,query:c}=r;if(!s("file")||!c("GET_ALLOW_IMAGE_PREVIEW"))return;let d=({root:h,props:v})=>{let{id:E}=v,T=c("GET_ITEM",E);if(!T||!o(T.file)||T.archived)return;let I=T.file;if(!rm(I)||!c("GET_IMAGE_PREVIEW_FILTER_ITEM")(T))return;let y="createImageBitmap"in(window||{}),b=c("GET_IMAGE_PREVIEW_MAX_FILE_SIZE");if(!y&&b&&I.size>b)return;h.ref.imagePreview=p.appendChildView(p.createChildView(l,{id:E}));let w=h.query("GET_IMAGE_PREVIEW_HEIGHT");w&&h.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:T.id,height:w});let x=!y&&I.size>c("GET_IMAGE_PREVIEW_MAX_INSTANT_PREVIEW_FILE_SIZE");h.dispatch("DID_IMAGE_PREVIEW_CONTAINER_CREATE",{id:E},x)},m=(h,v)=>{if(!h.ref.imagePreview)return;let{id:E}=v,T=h.query("GET_ITEM",{id:E});if(!T)return;let I=h.query("GET_PANEL_ASPECT_RATIO"),y=h.query("GET_ITEM_PANEL_ASPECT_RATIO"),b=h.query("GET_IMAGE_PREVIEW_HEIGHT");if(I||y||b)return;let{imageWidth:w,imageHeight:x}=h.ref;if(!w||!x)return;let _=h.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),P=h.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),M=(T.getMetadata("exif")||{}).orientation||-1;if(M>=5&&M<=8&&([w,x]=[x,w]),!dl(T.file)||h.query("GET_IMAGE_PREVIEW_UPSCALE")){let z=2048/w;w*=z,x*=z}let N=x/w,S=(T.getMetadata("crop")||{}).aspectRatio||N,D=Math.max(_,Math.min(x,P)),R=h.rect.element.width,L=Math.min(R*S,D);h.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:T.id,height:L})},u=({root:h})=>{h.ref.shouldRescale=!0},f=({root:h,action:v})=>{v.change.key==="crop"&&(h.ref.shouldRescale=!0)},g=({root:h,action:v})=>{h.ref.imageWidth=v.width,h.ref.imageHeight=v.height,h.ref.shouldRescale=!0,h.ref.shouldDrawPreview=!0,h.dispatch("KICK")};p.registerWriter(n({DID_RESIZE_ROOT:u,DID_STOP_RESIZE:u,DID_LOAD_ITEM:d,DID_IMAGE_PREVIEW_CALCULATE_SIZE:g,DID_UPDATE_ITEM_METADATA:f},({root:h,props:v})=>{h.ref.imagePreview&&(h.rect.element.hidden||(h.ref.shouldRescale&&(m(h,v),h.ref.shouldRescale=!1),h.ref.shouldDrawPreview&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{h.dispatch("DID_FINISH_CALCULATE_PREVIEWSIZE",{id:v.id})})}),h.ref.shouldDrawPreview=!1)))}))}),{options:{allowImagePreview:[!0,a.BOOLEAN],imagePreviewFilterItem:[()=>!0,a.FUNCTION],imagePreviewHeight:[null,a.INT],imagePreviewMinHeight:[44,a.INT],imagePreviewMaxHeight:[256,a.INT],imagePreviewMaxFileSize:[null,a.INT],imagePreviewZoomFactor:[2,a.INT],imagePreviewUpscale:[!1,a.BOOLEAN],imagePreviewMaxInstantPreviewFileSize:[1e6,a.INT],imagePreviewTransparencyIndicator:[null,a.STRING],imagePreviewCalculateAverageImageColor:[!1,a.BOOLEAN],imagePreviewMarkupShow:[!0,a.BOOLEAN],imagePreviewMarkupFilter:[()=>!0,a.FUNCTION]}}},iu=typeof window<"u"&&typeof window.document<"u";iu&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:pl}));var ml=pl;var au=e=>/^image/.test(e.type),nu=(e,t)=>{let i=new Image;i.onload=()=>{let a=i.naturalWidth,n=i.naturalHeight;i=null,t({width:a,height:n})},i.onerror=()=>t(null),i.src=e},ul=({addFilter:e,utils:t})=>{let{Type:i}=t;return e("DID_LOAD_ITEM",(a,{query:n})=>new Promise((o,l)=>{let r=a.file;if(!au(r)||!n("GET_ALLOW_IMAGE_RESIZE"))return o(a);let s=n("GET_IMAGE_RESIZE_MODE"),p=n("GET_IMAGE_RESIZE_TARGET_WIDTH"),c=n("GET_IMAGE_RESIZE_TARGET_HEIGHT"),d=n("GET_IMAGE_RESIZE_UPSCALE");if(p===null&&c===null)return o(a);let m=p===null?c:p,u=c===null?m:c,f=URL.createObjectURL(r);nu(f,g=>{if(URL.revokeObjectURL(f),!g)return o(a);let{width:h,height:v}=g,E=(a.getMetadata("exif")||{}).orientation||-1;if(E>=5&&E<=8&&([h,v]=[v,h]),h===m&&v===u)return o(a);if(!d){if(s==="cover"){if(h<=m||v<=u)return o(a)}else if(h<=m&&v<=m)return o(a)}a.setMetadata("resize",{mode:s,upscale:d,size:{width:m,height:u}}),o(a)})})),{options:{allowImageResize:[!0,i.BOOLEAN],imageResizeMode:["cover",i.STRING],imageResizeUpscale:[!0,i.BOOLEAN],imageResizeTargetWidth:[null,i.INT],imageResizeTargetHeight:[null,i.INT]}}},ou=typeof window<"u"&&typeof window.document<"u";ou&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:ul}));var fl=ul;var lu=e=>/^image/.test(e.type),ru=e=>e.substr(0,e.lastIndexOf("."))||e,su={jpeg:"jpg","svg+xml":"svg"},cu=(e,t)=>{let i=ru(e),a=t.split("/")[1],n=su[a]||a;return`${i}.${n}`},du=e=>/jpeg|png|svg\+xml/.test(e)?e:"image/jpeg",pu=e=>/^image/.test(e.type),mu={1:()=>[1,0,0,1,0,0],2:e=>[-1,0,0,1,e,0],3:(e,t)=>[-1,0,0,-1,e,t],4:(e,t)=>[1,0,0,-1,0,t],5:()=>[0,1,1,0,0,0],6:(e,t)=>[0,1,-1,0,t,0],7:(e,t)=>[0,-1,-1,0,t,e],8:e=>[0,-1,1,0,0,e]},uu=(e,t,i)=>(i===-1&&(i=1),mu[i](e,t)),qt=(e,t)=>({x:e,y:t}),fu=(e,t)=>e.x*t.x+e.y*t.y,gl=(e,t)=>qt(e.x-t.x,e.y-t.y),gu=(e,t)=>fu(gl(e,t),gl(e,t)),hl=(e,t)=>Math.sqrt(gu(e,t)),El=(e,t)=>{let i=e,a=1.5707963267948966,n=t,o=1.5707963267948966-t,l=Math.sin(a),r=Math.sin(n),s=Math.sin(o),p=Math.cos(o),c=i/l,d=c*r,m=c*s;return qt(p*d,p*m)},hu=(e,t)=>{let i=e.width,a=e.height,n=El(i,t),o=El(a,t),l=qt(e.x+Math.abs(n.x),e.y-Math.abs(n.y)),r=qt(e.x+e.width+Math.abs(o.y),e.y+Math.abs(o.x)),s=qt(e.x-Math.abs(o.y),e.y+e.height-Math.abs(o.x));return{width:hl(l,r),height:hl(l,s)}},vl=(e,t,i=0,a={x:.5,y:.5})=>{let n=a.x>.5?1-a.x:a.x,o=a.y>.5?1-a.y:a.y,l=n*2*e.width,r=o*2*e.height,s=hu(t,i);return Math.max(s.width/l,s.height/r)},Il=(e,t)=>{let i=e.width,a=i*t;a>e.height&&(a=e.height,i=a/t);let n=(e.width-i)*.5,o=(e.height-a)*.5;return{x:n,y:o,width:i,height:a}},bl=(e,t,i=1)=>{let a=e.height/e.width,n=1,o=t,l=1,r=a;r>o&&(r=o,l=r/a);let s=Math.max(n/l,o/r),p=e.width/(i*s*l),c=p*t;return{width:p,height:c}},xl=e=>{e.width=1,e.height=1,e.getContext("2d").clearRect(0,0,1,1)},Tl=e=>e&&(e.horizontal||e.vertical),Eu=(e,t,i)=>{if(t<=1&&!Tl(i))return e.width=e.naturalWidth,e.height=e.naturalHeight,e;let a=document.createElement("canvas"),n=e.naturalWidth,o=e.naturalHeight,l=t>=5&&t<=8;l?(a.width=o,a.height=n):(a.width=n,a.height=o);let r=a.getContext("2d");if(t&&r.transform.apply(r,uu(n,o,t)),Tl(i)){let s=[1,0,0,1,0,0];(!l&&i.horizontal||l&i.vertical)&&(s[0]=-1,s[4]=n),(!l&&i.vertical||l&&i.horizontal)&&(s[3]=-1,s[5]=o),r.transform(...s)}return r.drawImage(e,0,0,n,o),a},bu=(e,t,i={},a={})=>{let{canvasMemoryLimit:n,background:o=null}=a,l=i.zoom||1,r=Eu(e,t,i.flip),s={width:r.width,height:r.height},p=i.aspectRatio||s.height/s.width,c=bl(s,p,l);if(n){let T=c.width*c.height;if(T>n){let I=Math.sqrt(n)/Math.sqrt(T);s.width=Math.floor(s.width*I),s.height=Math.floor(s.height*I),c=bl(s,p,l)}}let d=document.createElement("canvas"),m={x:c.width*.5,y:c.height*.5},u={x:0,y:0,width:c.width,height:c.height,center:m},f=typeof i.scaleToFit>"u"||i.scaleToFit,g=l*vl(s,Il(u,p),i.rotation,f?i.center:{x:.5,y:.5});d.width=Math.round(c.width/g),d.height=Math.round(c.height/g),m.x/=g,m.y/=g;let h={x:m.x-s.width*(i.center?i.center.x:.5),y:m.y-s.height*(i.center?i.center.y:.5)},v=d.getContext("2d");o&&(v.fillStyle=o,v.fillRect(0,0,d.width,d.height)),v.translate(m.x,m.y),v.rotate(i.rotation||0),v.drawImage(r,h.x-m.x,h.y-m.y,s.width,s.height);let E=v.getImageData(0,0,d.width,d.height);return xl(d),E},Tu=(()=>typeof window<"u"&&typeof window.document<"u")();Tu&&(HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,t,i){var a=this.toDataURL(t,i).split(",")[1];setTimeout(function(){for(var n=atob(a),o=n.length,l=new Uint8Array(o),r=0;rnew Promise(a=>{let n=i?i(e):e;Promise.resolve(n).then(o=>{o.toBlob(a,t.type,t.quality)})}),_i=(e,t)=>$t(e.x*t,e.y*t),Ri=(e,t)=>$t(e.x+t.x,e.y+t.y),yl=e=>{let t=Math.sqrt(e.x*e.x+e.y*e.y);return t===0?{x:0,y:0}:$t(e.x/t,e.y/t)},qe=(e,t,i)=>{let a=Math.cos(t),n=Math.sin(t),o=$t(e.x-i.x,e.y-i.y);return $t(i.x+a*o.x-n*o.y,i.y+n*o.x+a*o.y)},$t=(e=0,t=0)=>({x:e,y:t}),me=(e,t,i=1,a)=>{if(typeof e=="string")return parseFloat(e)*i;if(typeof e=="number")return e*(a?t[a]:Math.min(t.width,t.height))},ct=(e,t,i)=>{let a=e.borderStyle||e.lineStyle||"solid",n=e.backgroundColor||e.fontColor||"transparent",o=e.borderColor||e.lineColor||"transparent",l=me(e.borderWidth||e.lineWidth,t,i),r=e.lineCap||"round",s=e.lineJoin||"round",p=typeof a=="string"?"":a.map(d=>me(d,t,i)).join(","),c=e.opacity||1;return{"stroke-linecap":r,"stroke-linejoin":s,"stroke-width":l||0,"stroke-dasharray":p,stroke:o,fill:n,opacity:c}},Le=e=>e!=null,St=(e,t,i=1)=>{let a=me(e.x,t,i,"width")||me(e.left,t,i,"width"),n=me(e.y,t,i,"height")||me(e.top,t,i,"height"),o=me(e.width,t,i,"width"),l=me(e.height,t,i,"height"),r=me(e.right,t,i,"width"),s=me(e.bottom,t,i,"height");return Le(n)||(Le(l)&&Le(s)?n=t.height-l-s:n=s),Le(a)||(Le(o)&&Le(r)?a=t.width-o-r:a=r),Le(o)||(Le(a)&&Le(r)?o=t.width-a-r:o=0),Le(l)||(Le(n)&&Le(s)?l=t.height-n-s:l=0),{x:a||0,y:n||0,width:o||0,height:l||0}},Iu=e=>e.map((t,i)=>`${i===0?"M":"L"} ${t.x} ${t.y}`).join(" "),Ne=(e,t)=>Object.keys(t).forEach(i=>e.setAttribute(i,t[i])),xu="http://www.w3.org/2000/svg",wt=(e,t)=>{let i=document.createElementNS(xu,e);return t&&Ne(i,t),i},yu=e=>Ne(e,{...e.rect,...e.styles}),_u=e=>{let t=e.rect.x+e.rect.width*.5,i=e.rect.y+e.rect.height*.5,a=e.rect.width*.5,n=e.rect.height*.5;return Ne(e,{cx:t,cy:i,rx:a,ry:n,...e.styles})},Ru={contain:"xMidYMid meet",cover:"xMidYMid slice"},wu=(e,t)=>{Ne(e,{...e.rect,...e.styles,preserveAspectRatio:Ru[t.fit]||"none"})},Su={left:"start",center:"middle",right:"end"},Lu=(e,t,i,a)=>{let n=me(t.fontSize,i,a),o=t.fontFamily||"sans-serif",l=t.fontWeight||"normal",r=Su[t.textAlign]||"start";Ne(e,{...e.rect,...e.styles,"stroke-width":0,"font-weight":l,"font-size":n,"font-family":o,"text-anchor":r}),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:" ")},Au=(e,t,i,a)=>{Ne(e,{...e.rect,...e.styles,fill:"none"});let n=e.childNodes[0],o=e.childNodes[1],l=e.childNodes[2],r=e.rect,s={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(Ne(n,{x1:r.x,y1:r.y,x2:s.x,y2:s.y}),!t.lineDecoration)return;o.style.display="none",l.style.display="none";let p=yl({x:s.x-r.x,y:s.y-r.y}),c=me(.05,i,a);if(t.lineDecoration.indexOf("arrow-begin")!==-1){let d=_i(p,c),m=Ri(r,d),u=qe(r,2,m),f=qe(r,-2,m);Ne(o,{style:"display:block;",d:`M${u.x},${u.y} L${r.x},${r.y} L${f.x},${f.y}`})}if(t.lineDecoration.indexOf("arrow-end")!==-1){let d=_i(p,-c),m=Ri(s,d),u=qe(s,2,m),f=qe(s,-2,m);Ne(l,{style:"display:block;",d:`M${u.x},${u.y} L${s.x},${s.y} L${f.x},${f.y}`})}},Mu=(e,t,i,a)=>{Ne(e,{...e.styles,fill:"none",d:Iu(t.points.map(n=>({x:me(n.x,i,a,"width"),y:me(n.y,i,a,"height")})))})},yi=e=>t=>wt(e,{id:t.id}),Ou=e=>{let t=wt("image",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round",opacity:"0"});return t.onload=()=>{t.setAttribute("opacity",e.opacity||1)},t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.src),t},Pu=e=>{let t=wt("g",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round"}),i=wt("line");t.appendChild(i);let a=wt("path");t.appendChild(a);let n=wt("path");return t.appendChild(n),t},Du={image:Ou,rect:yi("rect"),ellipse:yi("ellipse"),text:yi("text"),path:yi("path"),line:Pu},Fu={rect:yu,ellipse:_u,image:wu,text:Lu,path:Mu,line:Au},zu=(e,t)=>Du[e](t),Cu=(e,t,i,a,n)=>{t!=="path"&&(e.rect=St(i,a,n)),e.styles=ct(i,a,n),Fu[t](e,i,a,n)},_l=(e,t)=>e[1].zIndex>t[1].zIndex?1:e[1].zIndexnew Promise(n=>{let{background:o=null}=a,l=new FileReader;l.onloadend=()=>{let r=l.result,s=document.createElement("div");s.style.cssText="position:absolute;pointer-events:none;width:0;height:0;visibility:hidden;",s.innerHTML=r;let p=s.querySelector("svg");document.body.appendChild(s);let c=p.getBBox();s.parentNode.removeChild(s);let d=s.querySelector("title"),m=p.getAttribute("viewBox")||"",u=p.getAttribute("width")||"",f=p.getAttribute("height")||"",g=parseFloat(u)||null,h=parseFloat(f)||null,v=(u.match(/[a-z]+/)||[])[0]||"",E=(f.match(/[a-z]+/)||[])[0]||"",T=m.split(" ").map(parseFloat),I=T.length?{x:T[0],y:T[1],width:T[2],height:T[3]}:c,y=g??I.width,b=h??I.height;p.style.overflow="visible",p.setAttribute("width",y),p.setAttribute("height",b);let w="";if(i&&i.length){let $={width:y,height:b};w=i.sort(_l).reduce((pe,k)=>{let H=zu(k[0],k[1]);return Cu(H,k[0],k[1],$),H.removeAttribute("id"),H.getAttribute("opacity")===1&&H.removeAttribute("opacity"),pe+` +`+H.outerHTML+` +`},""),w=` + +${w.replace(/ /g," ")} + +`}let x=t.aspectRatio||b/y,_=y,P=_*x,O=typeof t.scaleToFit>"u"||t.scaleToFit,M=t.center?t.center.x:.5,N=t.center?t.center.y:.5,S=vl({width:y,height:b},Il({width:_,height:P},x),t.rotation,O?{x:M,y:N}:{x:.5,y:.5}),D=t.zoom*S,R=t.rotation*(180/Math.PI),L={x:_*.5,y:P*.5},z={x:L.x-y*M,y:L.y-b*N},F=[`rotate(${R} ${L.x} ${L.y})`,`translate(${L.x} ${L.y})`,`scale(${D})`,`translate(${-L.x} ${-L.y})`,`translate(${z.x} ${z.y})`],G=t.flip&&t.flip.horizontal,C=t.flip&&t.flip.vertical,q=[`scale(${G?-1:1} ${C?-1:1})`,`translate(${G?-y:0} ${C?-b:0})`],Q=` + + +${d?d.textContent:""} + + +${p.outerHTML}${w} + + +`;n(Q)},l.readAsText(e)}),Bu=e=>{let t;try{t=new ImageData(e.width,e.height)}catch{t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(e.data),t},ku=()=>{let e={resize:c,filter:p},t=(d,m)=>(d.forEach(u=>{m=e[u.type](m,u.data)}),m),i=(d,m)=>{let u=d.transforms,f=null;if(u.forEach(g=>{g.type==="filter"&&(f=g)}),f){let g=null;u.forEach(h=>{h.type==="resize"&&(g=h)}),g&&(g.data.matrix=f.data,u=u.filter(h=>h.type!=="filter"))}m(t(u,d.imageData))};self.onmessage=d=>{i(d.data.message,m=>{self.postMessage({id:d.data.id,message:m},[m.data.buffer])})};let a=1,n=1,o=1;function l(d,m,u){let f=m[d]/255,g=m[d+1]/255,h=m[d+2]/255,v=m[d+3]/255,E=f*u[0]+g*u[1]+h*u[2]+v*u[3]+u[4],T=f*u[5]+g*u[6]+h*u[7]+v*u[8]+u[9],I=f*u[10]+g*u[11]+h*u[12]+v*u[13]+u[14],y=f*u[15]+g*u[16]+h*u[17]+v*u[18]+u[19],b=Math.max(0,E*y)+a*(1-y),w=Math.max(0,T*y)+n*(1-y),x=Math.max(0,I*y)+o*(1-y);m[d]=Math.max(0,Math.min(1,b))*255,m[d+1]=Math.max(0,Math.min(1,w))*255,m[d+2]=Math.max(0,Math.min(1,x))*255}let r=self.JSON.stringify([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]);function s(d){return self.JSON.stringify(d||[])===r}function p(d,m){if(!m||s(m))return d;let u=d.data,f=u.length,g=m[0],h=m[1],v=m[2],E=m[3],T=m[4],I=m[5],y=m[6],b=m[7],w=m[8],x=m[9],_=m[10],P=m[11],O=m[12],M=m[13],N=m[14],S=m[15],D=m[16],R=m[17],L=m[18],z=m[19],F=0,G=0,C=0,q=0,Q=0,$=0,pe=0,k=0,H=0,Y=0,le=0,ee=0;for(;F1&&f===!1)return p(d,v);g=d.width*S,h=d.height*S}let E=d.width,T=d.height,I=Math.round(g),y=Math.round(h),b=d.data,w=new Uint8ClampedArray(I*y*4),x=E/I,_=T/y,P=Math.ceil(x*.5),O=Math.ceil(_*.5);for(let M=0;M=-1&&le<=1&&(D=2*le*le*le-3*le*le+1,D>0)){Y=4*(H+Q*E);let ee=b[Y+3];C+=D*ee,L+=D,ee<255&&(D=D*ee/250),z+=D*b[Y],F+=D*b[Y+1],G+=D*b[Y+2],R+=D}}}w[S]=z/R,w[S+1]=F/R,w[S+2]=G/R,w[S+3]=C/L,v&&l(S,w,v)}return{data:w,width:I,height:y}}},Vu=(e,t)=>{if(e.getUint32(t+4,!1)!==1165519206)return;t+=4;let i=e.getUint16(t+=6,!1)===18761;t+=e.getUint32(t+4,i);let a=e.getUint16(t,i);t+=2;for(let n=0;n{let t=new DataView(e);if(t.getUint16(0)!==65496)return null;let i=2,a,n,o=!1;for(;i=65504&&a<=65519||a===65534)||(o||(o=Vu(t,i,n)),i+n>t.byteLength)));)i+=n;return e.slice(0,i)},Uu=e=>new Promise(t=>{let i=new FileReader;i.onload=()=>t(Gu(i.result)||null),i.readAsArrayBuffer(e.slice(0,256*1024))}),Wu=()=>window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,Hu=(e,t)=>{let i=Wu();if(i){let a=new i;return a.append(e),a.getBlob(t)}return new Blob([e],{type:t})},ju=()=>Math.random().toString(36).substr(2,9),Yu=e=>{let t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),a=new Worker(i),n=[];return{transfer:()=>{},post:(o,l,r)=>{let s=ju();n[s]=l,a.onmessage=p=>{let c=n[p.data.id];c&&(c(p.data.message),delete n[p.data.id])},a.postMessage({id:s,message:o},r)},terminate:()=>{a.terminate(),URL.revokeObjectURL(i)}}},qu=e=>new Promise((t,i)=>{let a=new Image;a.onload=()=>{t(a)},a.onerror=n=>{i(n)},a.src=e}),$u=e=>e.reduce((t,i)=>t.then(a=>i().then(Array.prototype.concat.bind(a))),Promise.resolve([])),Xu=(e,t)=>new Promise(i=>{let a={width:e.width,height:e.height},n=e.getContext("2d"),o=t.sort(_l).map(l=>()=>new Promise(r=>{af[l[0]](n,a,l[1],r)&&r()}));$u(o).then(()=>i(e))}),Lt=(e,t)=>{e.beginPath(),e.lineCap=t["stroke-linecap"],e.lineJoin=t["stroke-linejoin"],e.lineWidth=t["stroke-width"],t["stroke-dasharray"].length&&e.setLineDash(t["stroke-dasharray"].split(",")),e.fillStyle=t.fill,e.strokeStyle=t.stroke,e.globalAlpha=t.opacity||1},At=e=>{e.fill(),e.stroke(),e.globalAlpha=1},Qu=(e,t,i)=>{let a=St(i,t),n=ct(i,t);return Lt(e,n),e.rect(a.x,a.y,a.width,a.height),At(e,n),!0},Zu=(e,t,i)=>{let a=St(i,t),n=ct(i,t);Lt(e,n);let o=a.x,l=a.y,r=a.width,s=a.height,p=.5522848,c=r/2*p,d=s/2*p,m=o+r,u=l+s,f=o+r/2,g=l+s/2;return e.moveTo(o,g),e.bezierCurveTo(o,g-d,f-c,l,f,l),e.bezierCurveTo(f+c,l,m,g-d,m,g),e.bezierCurveTo(m,g+d,f+c,u,f,u),e.bezierCurveTo(f-c,u,o,g+d,o,g),At(e,n),!0},Ku=(e,t,i,a)=>{let n=St(i,t),o=ct(i,t);Lt(e,o);let l=new Image;new URL(i.src,window.location.href).origin!==window.location.origin&&(l.crossOrigin=""),l.onload=()=>{if(i.fit==="cover"){let s=n.width/n.height,p=s>1?l.width:l.height*s,c=s>1?l.width/s:l.height,d=l.width*.5-p*.5,m=l.height*.5-c*.5;e.drawImage(l,d,m,p,c,n.x,n.y,n.width,n.height)}else if(i.fit==="contain"){let s=Math.min(n.width/l.width,n.height/l.height),p=s*l.width,c=s*l.height,d=n.x+n.width*.5-p*.5,m=n.y+n.height*.5-c*.5;e.drawImage(l,0,0,l.width,l.height,d,m,p,c)}else e.drawImage(l,0,0,l.width,l.height,n.x,n.y,n.width,n.height);At(e,o),a()},l.src=i.src},Ju=(e,t,i)=>{let a=St(i,t),n=ct(i,t);Lt(e,n);let o=me(i.fontSize,t),l=i.fontFamily||"sans-serif",r=i.fontWeight||"normal",s=i.textAlign||"left";return e.font=`${r} ${o}px ${l}`,e.textAlign=s,e.fillText(i.text,a.x,a.y),At(e,n),!0},ef=(e,t,i)=>{let a=ct(i,t);Lt(e,a),e.beginPath();let n=i.points.map(l=>({x:me(l.x,t,1,"width"),y:me(l.y,t,1,"height")}));e.moveTo(n[0].x,n[0].y);let o=n.length;for(let l=1;l{let a=St(i,t),n=ct(i,t);Lt(e,n),e.beginPath();let o={x:a.x,y:a.y},l={x:a.x+a.width,y:a.y+a.height};e.moveTo(o.x,o.y),e.lineTo(l.x,l.y);let r=yl({x:l.x-o.x,y:l.y-o.y}),s=.04*Math.min(t.width,t.height);if(i.lineDecoration.indexOf("arrow-begin")!==-1){let p=_i(r,s),c=Ri(o,p),d=qe(o,2,c),m=qe(o,-2,c);e.moveTo(d.x,d.y),e.lineTo(o.x,o.y),e.lineTo(m.x,m.y)}if(i.lineDecoration.indexOf("arrow-end")!==-1){let p=_i(r,-s),c=Ri(l,p),d=qe(l,2,c),m=qe(l,-2,c);e.moveTo(d.x,d.y),e.lineTo(l.x,l.y),e.lineTo(m.x,m.y)}return At(e,n),!0},af={rect:Qu,ellipse:Zu,image:Ku,text:Ju,line:tf,path:ef},nf=e=>{let t=document.createElement("canvas");return t.width=e.width,t.height=e.height,t.getContext("2d").putImageData(e,0,0),t},of=(e,t,i={})=>new Promise((a,n)=>{if(!e||!pu(e))return n({status:"not an image file",file:e});let{stripImageHead:o,beforeCreateBlob:l,afterCreateBlob:r,canvasMemoryLimit:s}=i,{crop:p,size:c,filter:d,markup:m,output:u}=t,f=t.image&&t.image.orientation?Math.max(1,Math.min(8,t.image.orientation)):null,g=u&&u.quality,h=g===null?null:g/100,v=u&&u.type||null,E=u&&u.background||null,T=[];c&&(typeof c.width=="number"||typeof c.height=="number")&&T.push({type:"resize",data:c}),d&&d.length===20&&T.push({type:"filter",data:d});let I=w=>{let x=r?r(w):w;Promise.resolve(x).then(a)},y=(w,x)=>{let _=nf(w),P=m.length?Xu(_,m):_;Promise.resolve(P).then(O=>{vu(O,x,l).then(M=>{if(xl(O),o)return I(M);Uu(e).then(N=>{N!==null&&(M=new Blob([N,M.slice(20)],{type:M.type})),I(M)})}).catch(n)})};if(/svg/.test(e.type)&&v===null)return Nu(e,p,m,{background:E}).then(w=>{a(Hu(w,"image/svg+xml"))});let b=URL.createObjectURL(e);qu(b).then(w=>{URL.revokeObjectURL(b);let x=bu(w,f,p,{canvasMemoryLimit:s,background:E}),_={quality:h,type:v||e.type};if(!T.length)return y(x,_);let P=Yu(ku);P.post({transforms:T,imageData:x},O=>{y(Bu(O),_),P.terminate()},[x.data.buffer])}).catch(n)}),lf=["x","y","left","top","right","bottom","width","height"],rf=e=>typeof e=="string"&&/%/.test(e)?parseFloat(e)/100:e,sf=e=>{let[t,i]=e,a=i.points?{}:lf.reduce((n,o)=>(n[o]=rf(i[o]),n),{});return[t,{zIndex:0,...i,...a}]},cf=e=>new Promise((t,i)=>{let a=new Image;a.src=URL.createObjectURL(e);let n=()=>{let l=a.naturalWidth,r=a.naturalHeight;l&&r&&(URL.revokeObjectURL(a.src),clearInterval(o),t({width:l,height:r}))};a.onerror=l=>{URL.revokeObjectURL(a.src),clearInterval(o),i(l)};let o=setInterval(n,1);n()});typeof window<"u"&&typeof window.document<"u"&&(HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(e,t,i){let a=this;setTimeout(()=>{let n=a.toDataURL(t,i).split(",")[1],o=atob(n),l=o.length,r=new Uint8Array(l);for(;l--;)r[l]=o.charCodeAt(l);e(new Blob([r],{type:t||"image/png"}))})}}));var La=typeof window<"u"&&typeof window.document<"u",df=La&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,Rl=({addFilter:e,utils:t})=>{let{Type:i,forin:a,getFileFromBlob:n,isFile:o}=t,l=["crop","resize","filter","markup","output"],r=c=>(d,m,u)=>d(m,c?c(u):u),s=c=>c.aspectRatio===null&&c.rotation===0&&c.zoom===1&&c.center&&c.center.x===.5&&c.center.y===.5&&c.flip&&c.flip.horizontal===!1&&c.flip.vertical===!1;e("SHOULD_PREPARE_OUTPUT",(c,{query:d})=>new Promise(m=>{m(!d("IS_ASYNC"))}));let p=(c,d,m)=>new Promise(u=>{if(!c("GET_ALLOW_IMAGE_TRANSFORM")||m.archived||!o(d)||!lu(d))return u(!1);cf(d).then(()=>{let f=c("GET_IMAGE_TRANSFORM_IMAGE_FILTER");if(f){let g=f(d);if(g==null)return handleRevert(!0);if(typeof g=="boolean")return u(g);if(typeof g.then=="function")return g.then(u)}u(!0)}).catch(f=>{u(!1)})});return e("DID_CREATE_ITEM",(c,{query:d,dispatch:m})=>{d("GET_ALLOW_IMAGE_TRANSFORM")&&c.extend("requestPrepare",()=>new Promise((u,f)=>{m("REQUEST_PREPARE_OUTPUT",{query:c.id,item:c,success:u,failure:f},!0)}))}),e("PREPARE_OUTPUT",(c,{query:d,item:m})=>new Promise(u=>{p(d,c,m).then(f=>{if(!f)return u(c);let g=[];d("GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_ORIGINAL")&&g.push(()=>new Promise(x=>{x({name:d("GET_IMAGE_TRANSFORM_VARIANTS_ORIGINAL_NAME"),file:c})})),d("GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_DEFAULT")&&g.push((x,_,P)=>new Promise(O=>{x(_,P).then(M=>O({name:d("GET_IMAGE_TRANSFORM_VARIANTS_DEFAULT_NAME"),file:M}))}));let h=d("GET_IMAGE_TRANSFORM_VARIANTS")||{};a(h,(x,_)=>{let P=r(_);g.push((O,M,N)=>new Promise(S=>{P(O,M,N).then(D=>S({name:x,file:D}))}))});let v=d("GET_IMAGE_TRANSFORM_OUTPUT_QUALITY"),E=d("GET_IMAGE_TRANSFORM_OUTPUT_QUALITY_MODE"),T=v===null?null:v/100,I=d("GET_IMAGE_TRANSFORM_OUTPUT_MIME_TYPE"),y=d("GET_IMAGE_TRANSFORM_CLIENT_TRANSFORMS")||l;m.setMetadata("output",{type:I,quality:T,client:y},!0);let b=(x,_)=>new Promise((P,O)=>{let M={..._};Object.keys(M).filter(C=>C!=="exif").forEach(C=>{y.indexOf(C)===-1&&delete M[C]});let{resize:N,exif:S,output:D,crop:R,filter:L,markup:z}=M,F={image:{orientation:S?S.orientation:null},output:D&&(D.type||typeof D.quality=="number"||D.background)?{type:D.type,quality:typeof D.quality=="number"?D.quality*100:null,background:D.background||d("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR")||null}:void 0,size:N&&(N.size.width||N.size.height)?{mode:N.mode,upscale:N.upscale,...N.size}:void 0,crop:R&&!s(R)?{...R}:void 0,markup:z&&z.length?z.map(sf):[],filter:L};if(F.output){let C=D.type?D.type!==x.type:!1,q=/\/jpe?g$/.test(x.type),Q=D.quality!==null?q&&E==="always":!1;if(!!!(F.size||F.crop||F.filter||C||Q))return P(x)}let G={beforeCreateBlob:d("GET_IMAGE_TRANSFORM_BEFORE_CREATE_BLOB"),afterCreateBlob:d("GET_IMAGE_TRANSFORM_AFTER_CREATE_BLOB"),canvasMemoryLimit:d("GET_IMAGE_TRANSFORM_CANVAS_MEMORY_LIMIT"),stripImageHead:d("GET_IMAGE_TRANSFORM_OUTPUT_STRIP_IMAGE_HEAD")};of(x,F,G).then(C=>{let q=n(C,cu(x.name,du(C.type)));P(q)}).catch(O)}),w=g.map(x=>x(b,c,m.getMetadata()));Promise.all(w).then(x=>{u(x.length===1&&x[0].name===null?x[0].file:x)})})})),{options:{allowImageTransform:[!0,i.BOOLEAN],imageTransformImageFilter:[null,i.FUNCTION],imageTransformOutputMimeType:[null,i.STRING],imageTransformOutputQuality:[null,i.INT],imageTransformOutputStripImageHead:[!0,i.BOOLEAN],imageTransformClientTransforms:[null,i.ARRAY],imageTransformOutputQualityMode:["always",i.STRING],imageTransformVariants:[null,i.OBJECT],imageTransformVariantsIncludeDefault:[!0,i.BOOLEAN],imageTransformVariantsDefaultName:[null,i.STRING],imageTransformVariantsIncludeOriginal:[!1,i.BOOLEAN],imageTransformVariantsOriginalName:["original_",i.STRING],imageTransformBeforeCreateBlob:[null,i.FUNCTION],imageTransformAfterCreateBlob:[null,i.FUNCTION],imageTransformCanvasMemoryLimit:[La&&df?4096*4096:null,i.INT],imageTransformCanvasBackgroundColor:[null,i.STRING]}}};La&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Rl}));var wl=Rl;var Aa=e=>/^video/.test(e.type),Xt=e=>/^audio/.test(e.type),Ma=class{constructor(t,i){this.mediaEl=t,this.audioElems=i,this.onplayhead=!1,this.duration=0,this.timelineWidth=this.audioElems.timeline.offsetWidth-this.audioElems.playhead.offsetWidth,this.moveplayheadFn=this.moveplayhead.bind(this),this.registerListeners()}registerListeners(){this.mediaEl.addEventListener("timeupdate",this.timeUpdate.bind(this),!1),this.mediaEl.addEventListener("canplaythrough",()=>this.duration=this.mediaEl.duration,!1),this.audioElems.timeline.addEventListener("click",this.timelineClicked.bind(this),!1),this.audioElems.button.addEventListener("click",this.play.bind(this)),this.audioElems.playhead.addEventListener("mousedown",this.mouseDown.bind(this),!1),window.addEventListener("mouseup",this.mouseUp.bind(this),!1)}play(){this.mediaEl.paused?this.mediaEl.play():this.mediaEl.pause(),this.audioElems.button.classList.toggle("play"),this.audioElems.button.classList.toggle("pause")}timeUpdate(){let t=this.mediaEl.currentTime/this.duration*100;this.audioElems.playhead.style.marginLeft=t+"%",this.mediaEl.currentTime===this.duration&&(this.audioElems.button.classList.toggle("play"),this.audioElems.button.classList.toggle("pause"))}moveplayhead(t){let i=t.clientX-this.getPosition(this.audioElems.timeline);i>=0&&i<=this.timelineWidth&&(this.audioElems.playhead.style.marginLeft=i+"px"),i<0&&(this.audioElems.playhead.style.marginLeft="0px"),i>this.timelineWidth&&(this.audioElems.playhead.style.marginLeft=this.timelineWidth-4+"px")}timelineClicked(t){this.moveplayhead(t),this.mediaEl.currentTime=this.duration*this.clickPercent(t)}mouseDown(){this.onplayhead=!0,window.addEventListener("mousemove",this.moveplayheadFn,!0),this.mediaEl.removeEventListener("timeupdate",this.timeUpdate.bind(this),!1)}mouseUp(t){window.removeEventListener("mousemove",this.moveplayheadFn,!0),this.onplayhead==!0&&(this.moveplayhead(t),this.mediaEl.currentTime=this.duration*this.clickPercent(t),this.mediaEl.addEventListener("timeupdate",this.timeUpdate.bind(this),!1)),this.onplayhead=!1}clickPercent(t){return(t.clientX-this.getPosition(this.audioElems.timeline))/this.timelineWidth}getPosition(t){return t.getBoundingClientRect().left}},pf=e=>e.utils.createView({name:"media-preview",tag:"div",ignoreRect:!0,create:({root:t,props:i})=>{let{id:a}=i,n=t.query("GET_ITEM",{id:i.id}),o=Xt(n.file)?"audio":"video";if(t.ref.media=document.createElement(o),t.ref.media.setAttribute("controls",!0),t.element.appendChild(t.ref.media),Xt(n.file)){let l=document.createDocumentFragment();t.ref.audio=[],t.ref.audio.container=document.createElement("div"),t.ref.audio.button=document.createElement("span"),t.ref.audio.timeline=document.createElement("div"),t.ref.audio.playhead=document.createElement("div"),t.ref.audio.container.className="audioplayer",t.ref.audio.button.className="playpausebtn play",t.ref.audio.timeline.className="timeline",t.ref.audio.playhead.className="playhead",t.ref.audio.timeline.appendChild(t.ref.audio.playhead),t.ref.audio.container.appendChild(t.ref.audio.button),t.ref.audio.container.appendChild(t.ref.audio.timeline),l.appendChild(t.ref.audio.container),t.element.appendChild(l)}},write:e.utils.createRoute({DID_MEDIA_PREVIEW_LOAD:({root:t,props:i})=>{let{id:a}=i,n=t.query("GET_ITEM",{id:i.id});if(!n)return;let o=window.URL||window.webkitURL,l=new Blob([n.file],{type:n.file.type});t.ref.media.type=n.file.type,t.ref.media.src=n.file.mock&&n.file.url||o.createObjectURL(l),Xt(n.file)&&new Ma(t.ref.media,t.ref.audio),t.ref.media.addEventListener("loadeddata",()=>{let r=75;if(Aa(n.file)){let s=t.ref.media.offsetWidth,p=t.ref.media.videoWidth/s;r=t.ref.media.videoHeight/p}t.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:i.id,height:r})},!1)}})}),mf=e=>{let t=({root:a,props:n})=>{let{id:o}=n;a.query("GET_ITEM",o)&&a.dispatch("DID_MEDIA_PREVIEW_LOAD",{id:o})},i=({root:a,props:n})=>{let o=pf(e);a.ref.media=a.appendChildView(a.createChildView(o,{id:n.id}))};return e.utils.createView({name:"media-preview-wrapper",create:i,write:e.utils.createRoute({DID_MEDIA_PREVIEW_CONTAINER_CREATE:t})})},Oa=e=>{let{addFilter:t,utils:i}=e,{Type:a,createRoute:n}=i,o=mf(e);return t("CREATE_VIEW",l=>{let{is:r,view:s,query:p}=l;if(!r("file"))return;let c=({root:d,props:m})=>{let{id:u}=m,f=p("GET_ITEM",u),g=p("GET_ALLOW_VIDEO_PREVIEW"),h=p("GET_ALLOW_AUDIO_PREVIEW");!f||f.archived||(!Aa(f.file)||!g)&&(!Xt(f.file)||!h)||(d.ref.mediaPreview=s.appendChildView(s.createChildView(o,{id:u})),d.dispatch("DID_MEDIA_PREVIEW_CONTAINER_CREATE",{id:u}))};s.registerWriter(n({DID_LOAD_ITEM:c},({root:d,props:m})=>{let{id:u}=m,f=p("GET_ITEM",u),g=d.query("GET_ALLOW_VIDEO_PREVIEW"),h=d.query("GET_ALLOW_AUDIO_PREVIEW");!f||(!Aa(f.file)||!g)&&(!Xt(f.file)||!h)||d.rect.element.hidden}))}),{options:{allowVideoPreview:[!0,a.BOOLEAN],allowAudioPreview:[!0,a.BOOLEAN]}}},uf=typeof window<"u"&&typeof window.document<"u";uf&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:Oa}));var Sl={labelIdle:'\u0627\u0633\u062D\u0628 \u0648 \u0627\u062F\u0631\u062C \u0645\u0644\u0641\u0627\u062A\u0643 \u0623\u0648 \u062A\u0635\u0641\u062D ',labelInvalidField:"\u0627\u0644\u062D\u0642\u0644 \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0645\u0644\u0641\u0627\u062A \u063A\u064A\u0631 \u0635\u0627\u0644\u062D\u0629",labelFileWaitingForSize:"\u0628\u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u062D\u062C\u0645",labelFileSizeNotAvailable:"\u0627\u0644\u062D\u062C\u0645 \u063A\u064A\u0631 \u0645\u062A\u0627\u062D",labelFileLoading:"\u0628\u0627\u0644\u0625\u0646\u062A\u0638\u0627\u0631",labelFileLoadError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062A\u062D\u0645\u064A\u0644",labelFileProcessing:"\u064A\u062A\u0645 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingComplete:"\u062A\u0645 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingAborted:"\u062A\u0645 \u0625\u0644\u063A\u0627\u0621 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u0631\u0641\u0639",labelFileProcessingRevertError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062A\u0631\u0627\u062C\u0639",labelFileRemoveError:"\u062D\u062F\u062B \u062E\u0637\u0623 \u0623\u062B\u0646\u0627\u0621 \u0627\u0644\u062D\u0630\u0641",labelTapToCancel:"\u0627\u0646\u0642\u0631 \u0644\u0644\u0625\u0644\u063A\u0627\u0621",labelTapToRetry:"\u0627\u0646\u0642\u0631 \u0644\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629",labelTapToUndo:"\u0627\u0646\u0642\u0631 \u0644\u0644\u062A\u0631\u0627\u062C\u0639",labelButtonRemoveItem:"\u0645\u0633\u062D",labelButtonAbortItemLoad:"\u0625\u0644\u063A\u0627\u0621",labelButtonRetryItemLoad:"\u0625\u0639\u0627\u062F\u0629",labelButtonAbortItemProcessing:"\u0625\u0644\u063A\u0627\u0621",labelButtonUndoItemProcessing:"\u062A\u0631\u0627\u062C\u0639",labelButtonRetryItemProcessing:"\u0625\u0639\u0627\u062F\u0629",labelButtonProcessItem:"\u0631\u0641\u0639",labelMaxFileSizeExceeded:"\u0627\u0644\u0645\u0644\u0641 \u0643\u0628\u064A\u0631 \u062C\u062F\u0627",labelMaxFileSize:"\u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0623\u0642\u0635\u0649: {filesize}",labelMaxTotalFileSizeExceeded:"\u062A\u0645 \u062A\u062C\u0627\u0648\u0632 \u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u062D\u062C\u0645 \u0627\u0644\u0625\u062C\u0645\u0627\u0644\u064A",labelMaxTotalFileSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u062D\u062C\u0645 \u0627\u0644\u0645\u0644\u0641: {filesize}",labelFileTypeNotAllowed:"\u0645\u0644\u0641 \u0645\u0646 \u0646\u0648\u0639 \u063A\u064A\u0631 \u0635\u0627\u0644\u062D",fileValidateTypeLabelExpectedTypes:"\u062A\u062A\u0648\u0642\u0639 {allButLastType} \u0645\u0646 {lastType}",imageValidateSizeLabelFormatError:"\u0646\u0648\u0639 \u0627\u0644\u0635\u0648\u0631\u0629 \u063A\u064A\u0631 \u0645\u062F\u0639\u0648\u0645",imageValidateSizeLabelImageSizeTooSmall:"\u0627\u0644\u0635\u0648\u0631\u0629 \u0635\u063A\u064A\u0631 \u062C\u062F\u0627",imageValidateSizeLabelImageSizeTooBig:"\u0627\u0644\u0635\u0648\u0631\u0629 \u0643\u0628\u064A\u0631\u0629 \u062C\u062F\u0627",imageValidateSizeLabelExpectedMinSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u062F\u0646\u0649 \u0644\u0644\u0623\u0628\u0639\u0627\u062F \u0647\u0648: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649 \u0644\u0644\u0623\u0628\u0639\u0627\u062F \u0647\u0648: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0627\u0644\u062F\u0642\u0629 \u0636\u0639\u064A\u0641\u0629 \u062C\u062F\u0627",imageValidateSizeLabelImageResolutionTooHigh:"\u0627\u0644\u062F\u0642\u0629 \u0645\u0631\u062A\u0641\u0639\u0629 \u062C\u062F\u0627",imageValidateSizeLabelExpectedMinResolution:"\u0623\u0642\u0644 \u062F\u0642\u0629: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u0623\u0642\u0635\u0649 \u062F\u0642\u0629: {maxResolution}"};var Ll={labelIdle:'Arrossega i deixa anar els teus fitxers o Navega ',labelInvalidField:"El camp cont\xE9 fitxers inv\xE0lids",labelFileWaitingForSize:"Esperant mida",labelFileSizeNotAvailable:"Mida no disponible",labelFileLoading:"Carregant",labelFileLoadError:"Error durant la c\xE0rrega",labelFileProcessing:"Pujant",labelFileProcessingComplete:"Pujada completada",labelFileProcessingAborted:"Pujada cancel\xB7lada",labelFileProcessingError:"Error durant la pujada",labelFileProcessingRevertError:"Error durant la reversi\xF3",labelFileRemoveError:"Error durant l'eliminaci\xF3",labelTapToCancel:"toca per cancel\xB7lar",labelTapToRetry:"toca per reintentar",labelTapToUndo:"toca per desfer",labelButtonRemoveItem:"Eliminar",labelButtonAbortItemLoad:"Cancel\xB7lar",labelButtonRetryItemLoad:"Reintentar",labelButtonAbortItemProcessing:"Cancel\xB7lar",labelButtonUndoItemProcessing:"Desfer",labelButtonRetryItemProcessing:"Reintentar",labelButtonProcessItem:"Pujar",labelMaxFileSizeExceeded:"El fitxer \xE9s massa gran",labelMaxFileSize:"La mida m\xE0xima del fitxer \xE9s {filesize}",labelMaxTotalFileSizeExceeded:"Mida m\xE0xima total excedida",labelMaxTotalFileSize:"La mida m\xE0xima total del fitxer \xE9s {filesize}",labelFileTypeNotAllowed:"Fitxer de tipus inv\xE0lid",fileValidateTypeLabelExpectedTypes:"Espera {allButLastType} o {lastType}",imageValidateSizeLabelFormatError:"Tipus d'imatge no suportada",imageValidateSizeLabelImageSizeTooSmall:"La imatge \xE9s massa petita",imageValidateSizeLabelImageSizeTooBig:"La imatge \xE9s massa gran",imageValidateSizeLabelExpectedMinSize:"La mida m\xEDnima \xE9s {minWidth} x {minHeight}",imageValidateSizeLabelExpectedMaxSize:"La mida m\xE0xima \xE9s {maxWidth} x {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La resoluci\xF3 \xE9s massa baixa",imageValidateSizeLabelImageResolutionTooHigh:"La resoluci\xF3 \xE9s massa alta",imageValidateSizeLabelExpectedMinResolution:"La resoluci\xF3 m\xEDnima \xE9s {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La resoluci\xF3 m\xE0xima \xE9s {maxResolution}"};var Al={labelIdle:'\u067E\u06D5\u0695\u06AF\u06D5\u06A9\u0627\u0646 \u0641\u0695\u06CE \u0628\u062F\u06D5 \u0626\u06CE\u0631\u06D5 \u0628\u06C6 \u0628\u0627\u0631\u06A9\u0631\u062F\u0646 \u06CC\u0627\u0646 \u0647\u06D5\u06B5\u0628\u0698\u06CE\u0631\u06D5 ',labelInvalidField:"\u067E\u06D5\u0695\u06AF\u06D5\u06CC \u0646\u0627\u062F\u0631\u0648\u0633\u062A\u06CC \u062A\u06CE\u062F\u0627\u06CC\u06D5",labelFileWaitingForSize:"\u0686\u0627\u0648\u06D5\u0695\u0648\u0627\u0646\u06CC\u06CC \u0642\u06D5\u0628\u0627\u0631\u06D5",labelFileSizeNotAvailable:"\u0642\u06D5\u0628\u0627\u0631\u06D5 \u0628\u06D5\u0631\u062F\u06D5\u0633\u062A \u0646\u06CC\u06D5",labelFileLoading:"\u0628\u0627\u0631\u06A9\u0631\u062F\u0646",labelFileLoadError:"\u0647\u06D5\u06B5\u06D5 \u0644\u06D5\u0645\u0627\u0648\u06D5\u06CC \u0628\u0627\u0631\u06A9\u0631\u062F\u0646",labelFileProcessing:"\u0628\u0627\u0631\u06A9\u0631\u062F\u0646",labelFileProcessingComplete:"\u0628\u0627\u0631\u06A9\u0631\u062F\u0646 \u062A\u06D5\u0648\u0627\u0648 \u0628\u0648\u0648",labelFileProcessingAborted:"\u0628\u0627\u0631\u06A9\u0631\u062F\u0646 \u0647\u06D5\u06B5\u0648\u06D5\u0634\u0627\u06CC\u06D5\u0648\u06D5",labelFileProcessingError:"\u0647\u06D5\u06B5\u06D5 \u0644\u06D5\u06A9\u0627\u062A\u06CC \u0628\u0627\u0631\u06A9\u0631\u062F\u0646\u062F\u0627",labelFileProcessingRevertError:"\u0647\u06D5\u06B5\u06D5 \u0644\u06D5 \u06A9\u0627\u062A\u06CC \u06AF\u06D5\u0695\u0627\u0646\u06D5\u0648\u06D5",labelFileRemoveError:"\u0647\u06D5\u06B5\u06D5 \u0644\u06D5 \u06A9\u0627\u062A\u06CC \u0633\u0695\u06CC\u0646\u06D5\u0648\u06D5",labelTapToCancel:"\u0628\u06C6 \u0647\u06D5\u06B5\u0648\u06D5\u0634\u0627\u0646\u062F\u0646\u06D5\u0648\u06D5 Tab \u062F\u0627\u0628\u06AF\u0631\u06D5",labelTapToRetry:"tap \u062F\u0627\u0628\u06AF\u0631\u06D5 \u0628\u06C6 \u062F\u0648\u0648\u0628\u0627\u0631\u06D5\u06A9\u0631\u062F\u0646\u06D5\u0648\u06D5",labelTapToUndo:"tap \u062F\u0627\u0628\u06AF\u0631\u06D5 \u0628\u06C6 \u06AF\u06D5\u0695\u0627\u0646\u062F\u0646\u06D5\u0648\u06D5",labelButtonRemoveItem:"\u0633\u0695\u06CC\u0646\u06D5\u0648\u06D5",labelButtonAbortItemLoad:"\u0647\u06D5\u06B5\u0648\u06D5\u0634\u0627\u0646\u062F\u0646\u06D5\u0648\u06D5",labelButtonRetryItemLoad:"\u0647\u06D5\u0648\u06B5\u062F\u0627\u0646\u06D5\u0648\u06D5",labelButtonAbortItemProcessing:"\u067E\u06D5\u0634\u06CC\u0645\u0627\u0646\u0628\u0648\u0648\u0646\u06D5\u0648\u06D5",labelButtonUndoItemProcessing:"\u06AF\u06D5\u0695\u0627\u0646\u062F\u0646\u06D5\u0648\u06D5",labelButtonRetryItemProcessing:"\u0647\u06D5\u0648\u06B5\u062F\u0627\u0646\u06D5\u0648\u06D5",labelButtonProcessItem:"\u0628\u0627\u0631\u06A9\u0631\u062F\u0646",labelMaxFileSizeExceeded:"\u067E\u06D5\u0695\u06AF\u06D5 \u0632\u06C6\u0631 \u06AF\u06D5\u0648\u0631\u06D5\u06CC\u06D5",labelMaxFileSize:"\u0632\u06C6\u0631\u062A\u0631\u06CC\u0646 \u0642\u06D5\u0628\u0627\u0631\u06D5 {filesize}",labelMaxTotalFileSizeExceeded:"\u0632\u06C6\u0631\u062A\u0631\u06CC\u0646 \u0642\u06D5\u0628\u0627\u0631\u06D5\u06CC \u06A9\u06C6\u06CC \u06AF\u0634\u062A\u06CC \u062A\u06CE\u067E\u06D5\u0695\u06CE\u0646\u062F\u0631\u0627",labelMaxTotalFileSize:"\u0632\u06C6\u0631\u062A\u0631\u06CC\u0646 \u0642\u06D5\u0628\u0627\u0631\u06D5\u06CC \u06A9\u06C6\u06CC \u067E\u06D5\u0695\u06AF\u06D5 {filesize}",labelFileTypeNotAllowed:"\u062C\u06C6\u0631\u06CC \u067E\u06D5\u0695\u06AF\u06D5\u06A9\u06D5 \u0646\u0627\u062F\u0631\u0648\u0633\u062A\u06D5",fileValidateTypeLabelExpectedTypes:"\u062C\u06AF\u06D5 \u0644\u06D5 {allButLastType} \u06CC\u0627\u0646 {lastType}",imageValidateSizeLabelFormatError:"\u062C\u06C6\u0631\u06CC \u0648\u06CE\u0646\u06D5 \u067E\u0627\u06B5\u067E\u0634\u062A\u06CC\u06CC \u0646\u06D5\u06A9\u0631\u0627\u0648\u06D5",imageValidateSizeLabelImageSizeTooSmall:"\u0648\u06CE\u0646\u06D5\u06A9\u06D5 \u0632\u06C6\u0631 \u0628\u0686\u0648\u0648\u06A9\u06D5",imageValidateSizeLabelImageSizeTooBig:"\u0648\u06CE\u0646\u06D5\u06A9\u06D5 \u0632\u06C6\u0631 \u06AF\u06D5\u0648\u0631\u06D5\u06CC\u06D5",imageValidateSizeLabelExpectedMinSize:"\u06A9\u06D5\u0645\u062A\u0631\u06CC\u0646 \u0642\u06D5\u0628\u0627\u0631\u06D5 {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u0632\u06C6\u0631\u062A\u0631\u06CC\u0646 \u0642\u06D5\u0628\u0627\u0631\u06D5 {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0648\u0631\u062F\u0628\u06CC\u0646\u06CC\u06CC\u06D5\u06A9\u06D5\u06CC \u0632\u06C6\u0631 \u06A9\u06D5\u0645\u06D5",imageValidateSizeLabelImageResolutionTooHigh:"\u0648\u0631\u062F\u0628\u06CC\u0646\u06CC\u06CC\u06D5\u06A9\u06D5\u06CC \u0632\u06C6\u0631 \u0628\u06D5\u0631\u0632\u06D5",imageValidateSizeLabelExpectedMinResolution:"\u06A9\u06D5\u0645\u062A\u0631\u06CC\u0646 \u0648\u0631\u062F\u0628\u06CC\u0646\u06CC\u06CC {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u0632\u06C6\u0631\u062A\u0631\u06CC\u0646 \u0648\u0631\u062F\u0628\u06CC\u0646\u06CC {maxResolution}"};var Ml={labelIdle:'P\u0159et\xE1hn\u011Bte soubor sem (drag&drop) nebo Vyhledat ',labelInvalidField:"Pole obsahuje chybn\xE9 soubory",labelFileWaitingForSize:"Zji\u0161\u0165uje se velikost",labelFileSizeNotAvailable:"Velikost nen\xED zn\xE1m\xE1",labelFileLoading:"P\u0159en\xE1\u0161\xED se",labelFileLoadError:"Chyba p\u0159i p\u0159enosu",labelFileProcessing:"Prob\xEDh\xE1 upload",labelFileProcessingComplete:"Upload dokon\u010Den",labelFileProcessingAborted:"Upload stornov\xE1n",labelFileProcessingError:"Chyba p\u0159i uploadu",labelFileProcessingRevertError:"Chyba p\u0159i obnov\u011B",labelFileRemoveError:"Chyba p\u0159i odstran\u011Bn\xED",labelTapToCancel:"klepn\u011Bte pro storno",labelTapToRetry:"klepn\u011Bte pro opakov\xE1n\xED",labelTapToUndo:"klepn\u011Bte pro vr\xE1cen\xED",labelButtonRemoveItem:"Odstranit",labelButtonAbortItemLoad:"Storno",labelButtonRetryItemLoad:"Opakovat",labelButtonAbortItemProcessing:"Zp\u011Bt",labelButtonUndoItemProcessing:"Vr\xE1tit",labelButtonRetryItemProcessing:"Opakovat",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Soubor je p\u0159\xEDli\u0161 velk\xFD",labelMaxFileSize:"Nejv\u011Bt\u0161\xED velikost souboru je {filesize}",labelMaxTotalFileSizeExceeded:"P\u0159ekro\u010Dena maxim\xE1ln\xED celkov\xE1 velikost souboru",labelMaxTotalFileSize:"Maxim\xE1ln\xED celkov\xE1 velikost souboru je {filesize}",labelFileTypeNotAllowed:"Soubor je nespr\xE1vn\xE9ho typu",fileValidateTypeLabelExpectedTypes:"O\u010Dek\xE1v\xE1 se {allButLastType} nebo {lastType}",imageValidateSizeLabelFormatError:"Obr\xE1zek tohoto typu nen\xED podporov\xE1n",imageValidateSizeLabelImageSizeTooSmall:"Obr\xE1zek je p\u0159\xEDli\u0161 mal\xFD",imageValidateSizeLabelImageSizeTooBig:"Obr\xE1zek je p\u0159\xEDli\u0161 velk\xFD",imageValidateSizeLabelExpectedMinSize:"Minim\xE1ln\xED rozm\u011Br je {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maxim\xE1ln\xED rozm\u011Br je {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rozli\u0161en\xED je p\u0159\xEDli\u0161 mal\xE9",imageValidateSizeLabelImageResolutionTooHigh:"Rozli\u0161en\xED je p\u0159\xEDli\u0161 velk\xE9",imageValidateSizeLabelExpectedMinResolution:"Minim\xE1ln\xED rozli\u0161en\xED je {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maxim\xE1ln\xED rozli\u0161en\xED je {maxResolution}"};var Ol={labelIdle:'Tr\xE6k & slip filer eller Gennemse ',labelInvalidField:"Felt indeholder ugyldige filer",labelFileWaitingForSize:"Venter p\xE5 st\xF8rrelse",labelFileSizeNotAvailable:"St\xF8rrelse ikke tilg\xE6ngelig",labelFileLoading:"Loader",labelFileLoadError:"Load fejlede",labelFileProcessing:"Uploader",labelFileProcessingComplete:"Upload f\xE6rdig",labelFileProcessingAborted:"Upload annulleret",labelFileProcessingError:"Upload fejlede",labelFileProcessingRevertError:"Fortryd fejlede",labelFileRemoveError:"Fjern fejlede",labelTapToCancel:"tryk for at annullere",labelTapToRetry:"tryk for at pr\xF8ve igen",labelTapToUndo:"tryk for at fortryde",labelButtonRemoveItem:"Fjern",labelButtonAbortItemLoad:"Annuller",labelButtonRetryItemLoad:"Fors\xF8g igen",labelButtonAbortItemProcessing:"Annuller",labelButtonUndoItemProcessing:"Fortryd",labelButtonRetryItemProcessing:"Pr\xF8v igen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Filen er for stor",labelMaxFileSize:"Maksimal filst\xF8rrelse er {filesize}",labelMaxTotalFileSizeExceeded:"Maksimal totalst\xF8rrelse overskredet",labelMaxTotalFileSize:"Maksimal total filst\xF8rrelse er {filesize}",labelFileTypeNotAllowed:"Ugyldig filtype",fileValidateTypeLabelExpectedTypes:"Forventer {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Ugyldigt format",imageValidateSizeLabelImageSizeTooSmall:"Billedet er for lille",imageValidateSizeLabelImageSizeTooBig:"Billedet er for stort",imageValidateSizeLabelExpectedMinSize:"Minimum st\xF8rrelse er {minBredde} \xD7 {minH\xF8jde}",imageValidateSizeLabelExpectedMaxSize:"Maksimal st\xF8rrelse er {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"For lav opl\xF8sning",imageValidateSizeLabelImageResolutionTooHigh:"For h\xF8j opl\xF8sning",imageValidateSizeLabelExpectedMinResolution:"Minimum opl\xF8sning er {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimal opl\xF8sning er {maxResolution}"};var Pl={labelIdle:'Dateien ablegen oder ausw\xE4hlen ',labelInvalidField:"Feld beinhaltet ung\xFCltige Dateien",labelFileWaitingForSize:"Dateigr\xF6\xDFe berechnen",labelFileSizeNotAvailable:"Dateigr\xF6\xDFe nicht verf\xFCgbar",labelFileLoading:"Laden",labelFileLoadError:"Fehler beim Laden",labelFileProcessing:"Upload l\xE4uft",labelFileProcessingComplete:"Upload abgeschlossen",labelFileProcessingAborted:"Upload abgebrochen",labelFileProcessingError:"Fehler beim Upload",labelFileProcessingRevertError:"Fehler beim Wiederherstellen",labelFileRemoveError:"Fehler beim L\xF6schen",labelTapToCancel:"abbrechen",labelTapToRetry:"erneut versuchen",labelTapToUndo:"r\xFCckg\xE4ngig",labelButtonRemoveItem:"Entfernen",labelButtonAbortItemLoad:"Verwerfen",labelButtonRetryItemLoad:"Erneut versuchen",labelButtonAbortItemProcessing:"Abbrechen",labelButtonUndoItemProcessing:"R\xFCckg\xE4ngig",labelButtonRetryItemProcessing:"Erneut versuchen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Datei ist zu gro\xDF",labelMaxFileSize:"Maximale Dateigr\xF6\xDFe: {filesize}",labelMaxTotalFileSizeExceeded:"Maximale gesamte Dateigr\xF6\xDFe \xFCberschritten",labelMaxTotalFileSize:"Maximale gesamte Dateigr\xF6\xDFe: {filesize}",labelFileTypeNotAllowed:"Dateityp ung\xFCltig",fileValidateTypeLabelExpectedTypes:"Erwartet {allButLastType} oder {lastType}",imageValidateSizeLabelFormatError:"Bildtyp nicht unterst\xFCtzt",imageValidateSizeLabelImageSizeTooSmall:"Bild ist zu klein",imageValidateSizeLabelImageSizeTooBig:"Bild ist zu gro\xDF",imageValidateSizeLabelExpectedMinSize:"Mindestgr\xF6\xDFe: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximale Gr\xF6\xDFe: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Aufl\xF6sung ist zu niedrig",imageValidateSizeLabelImageResolutionTooHigh:"Aufl\xF6sung ist zu hoch",imageValidateSizeLabelExpectedMinResolution:"Mindestaufl\xF6sung: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximale Aufl\xF6sung: {maxResolution}"};var Dl={labelIdle:'Drag & Drop your files or Browse ',labelInvalidField:"Field contains invalid files",labelFileWaitingForSize:"Waiting for size",labelFileSizeNotAvailable:"Size not available",labelFileLoading:"Loading",labelFileLoadError:"Error during load",labelFileProcessing:"Uploading",labelFileProcessingComplete:"Upload complete",labelFileProcessingAborted:"Upload cancelled",labelFileProcessingError:"Error during upload",labelFileProcessingRevertError:"Error during revert",labelFileRemoveError:"Error during remove",labelTapToCancel:"tap to cancel",labelTapToRetry:"tap to retry",labelTapToUndo:"tap to undo",labelButtonRemoveItem:"Remove",labelButtonAbortItemLoad:"Abort",labelButtonRetryItemLoad:"Retry",labelButtonAbortItemProcessing:"Cancel",labelButtonUndoItemProcessing:"Undo",labelButtonRetryItemProcessing:"Retry",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"File is too large",labelMaxFileSize:"Maximum file size is {filesize}",labelMaxTotalFileSizeExceeded:"Maximum total size exceeded",labelMaxTotalFileSize:"Maximum total file size is {filesize}",labelFileTypeNotAllowed:"File of invalid type",fileValidateTypeLabelExpectedTypes:"Expects {allButLastType} or {lastType}",imageValidateSizeLabelFormatError:"Image type not supported",imageValidateSizeLabelImageSizeTooSmall:"Image is too small",imageValidateSizeLabelImageSizeTooBig:"Image is too big",imageValidateSizeLabelExpectedMinSize:"Minimum size is {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum size is {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolution is too low",imageValidateSizeLabelImageResolutionTooHigh:"Resolution is too high",imageValidateSizeLabelExpectedMinResolution:"Minimum resolution is {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximum resolution is {maxResolution}"};var Fl={labelIdle:'Arrastra y suelta tus archivos o Examina ',labelInvalidField:"El campo contiene archivos inv\xE1lidos",labelFileWaitingForSize:"Esperando tama\xF1o",labelFileSizeNotAvailable:"Tama\xF1o no disponible",labelFileLoading:"Cargando",labelFileLoadError:"Error durante la carga",labelFileProcessing:"Subiendo",labelFileProcessingComplete:"Subida completa",labelFileProcessingAborted:"Subida cancelada",labelFileProcessingError:"Error durante la subida",labelFileProcessingRevertError:"Error durante la reversi\xF3n",labelFileRemoveError:"Error durante la eliminaci\xF3n",labelTapToCancel:"toca para cancelar",labelTapToRetry:"tocar para reintentar",labelTapToUndo:"tocar para deshacer",labelButtonRemoveItem:"Eliminar",labelButtonAbortItemLoad:"Cancelar",labelButtonRetryItemLoad:"Reintentar",labelButtonAbortItemProcessing:"Cancelar",labelButtonUndoItemProcessing:"Deshacer",labelButtonRetryItemProcessing:"Reintentar",labelButtonProcessItem:"Subir",labelMaxFileSizeExceeded:"El archivo es demasiado grande",labelMaxFileSize:"El tama\xF1o m\xE1ximo del archivo es {filesize}",labelMaxTotalFileSizeExceeded:"Tama\xF1o total m\xE1ximo excedido",labelMaxTotalFileSize:"El tama\xF1o total m\xE1ximo del archivo es {filesize}",labelFileTypeNotAllowed:"Archivo de tipo inv\xE1lido",fileValidateTypeLabelExpectedTypes:"Espera {allButLastType} o {lastType}",imageValidateSizeLabelFormatError:"Tipo de imagen no soportada",imageValidateSizeLabelImageSizeTooSmall:"La imagen es demasiado peque\xF1a",imageValidateSizeLabelImageSizeTooBig:"La imagen es demasiado grande",imageValidateSizeLabelExpectedMinSize:"El tama\xF1o m\xEDnimo es {minWidth} x {minHeight}",imageValidateSizeLabelExpectedMaxSize:"El tama\xF1o m\xE1ximo es {maxWidth} x {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La resoluci\xF3n es demasiado baja",imageValidateSizeLabelImageResolutionTooHigh:"La resoluci\xF3n es demasiado alta",imageValidateSizeLabelExpectedMinResolution:"La resoluci\xF3n m\xEDnima es {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La resoluci\xF3n m\xE1xima es {maxResolution}"};var zl={labelIdle:'\u0641\u0627\u06CC\u0644 \u0631\u0627 \u0627\u06CC\u0646\u062C\u0627 \u0628\u06A9\u0634\u06CC\u062F \u0648 \u0631\u0647\u0627 \u06A9\u0646\u06CC\u062F\u060C \u06CC\u0627 \u062C\u0633\u062A\u062C\u0648 \u06A9\u0646\u06CC\u062F ',labelInvalidField:"\u0641\u06CC\u0644\u062F \u062F\u0627\u0631\u0627\u06CC \u0641\u0627\u06CC\u0644 \u0647\u0627\u06CC \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",labelFileWaitingForSize:"Waiting for size",labelFileSizeNotAvailable:"\u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 \u0645\u062C\u0627\u0632 \u0646\u06CC\u0633\u062A",labelFileLoading:"\u062F\u0631\u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileLoadError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u0627\u062C\u0631\u0627",labelFileProcessing:"\u062F\u0631\u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileProcessingComplete:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u06A9\u0627\u0645\u0644 \u0634\u062F",labelFileProcessingAborted:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0644\u063A\u0648 \u0634\u062F",labelFileProcessingError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelFileProcessingRevertError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u062D\u0630\u0641",labelFileRemoveError:"\u062E\u0637\u0627 \u062F\u0631 \u0632\u0645\u0627\u0646 \u062D\u0630\u0641",labelTapToCancel:"\u0628\u0631\u0627\u06CC \u0644\u063A\u0648 \u0636\u0631\u0628\u0647 \u0628\u0632\u0646\u06CC\u062F",labelTapToRetry:"\u0628\u0631\u0627\u06CC \u062A\u06A9\u0631\u0627\u0631 \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F",labelTapToUndo:"\u0628\u0631\u0627\u06CC \u0628\u0631\u06AF\u0634\u062A \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F",labelButtonRemoveItem:"\u062D\u0630\u0641",labelButtonAbortItemLoad:"\u0644\u063A\u0648",labelButtonRetryItemLoad:"\u062A\u06A9\u0631\u0627\u0631",labelButtonAbortItemProcessing:"\u0644\u063A\u0648",labelButtonUndoItemProcessing:"\u0628\u0631\u06AF\u0634\u062A",labelButtonRetryItemProcessing:"\u062A\u06A9\u0631\u0627\u0631",labelButtonProcessItem:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC",labelMaxFileSizeExceeded:"\u0641\u0627\u06CC\u0644 \u0628\u0633\u06CC\u0627\u0631 \u062D\u062C\u06CC\u0645 \u0627\u0633\u062A",labelMaxFileSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0645\u062C\u0627\u0632 \u0641\u0627\u06CC\u0644 {filesize} \u0627\u0633\u062A",labelMaxTotalFileSizeExceeded:"\u0627\u0632 \u062D\u062F\u0627\u06A9\u062B\u0631 \u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 \u0628\u06CC\u0634\u062A\u0631 \u0634\u062F",labelMaxTotalFileSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u062D\u062C\u0645 \u0641\u0627\u06CC\u0644 {filesize} \u0627\u0633\u062A",labelFileTypeNotAllowed:"\u0646\u0648\u0639 \u0641\u0627\u06CC\u0644 \u0646\u0627\u0645\u0639\u062A\u0628\u0631 \u0627\u0633\u062A",fileValidateTypeLabelExpectedTypes:"\u062F\u0631 \u0627\u0646\u062A\u0638\u0627\u0631 {allButLastType} \u06CC\u0627 {lastType}",imageValidateSizeLabelFormatError:"\u0641\u0631\u0645\u062A \u062A\u0635\u0648\u06CC\u0631 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC \u0646\u0645\u06CC \u0634\u0648\u062F",imageValidateSizeLabelImageSizeTooSmall:"\u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u06A9\u0648\u0686\u06A9 \u0627\u0633\u062A",imageValidateSizeLabelImageSizeTooBig:"\u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u0628\u0632\u0631\u06AF \u0627\u0633\u062A",imageValidateSizeLabelExpectedMinSize:"\u062D\u062F\u0627\u0642\u0644 \u0627\u0646\u062F\u0627\u0632\u0647 {minWidth} \xD7 {minHeight} \u0627\u0633\u062A",imageValidateSizeLabelExpectedMaxSize:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0627\u0646\u062F\u0627\u0632\u0647 {maxWidth} \xD7 {maxHeight} \u0627\u0633\u062A",imageValidateSizeLabelImageResolutionTooLow:"\u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u06A9\u0645 \u0627\u0633\u062A",imageValidateSizeLabelImageResolutionTooHigh:"\u0648\u0636\u0648\u0639 \u062A\u0635\u0648\u06CC\u0631 \u0628\u0633\u06CC\u0627\u0631 \u0632\u06CC\u0627\u062F \u0627\u0633\u062A",imageValidateSizeLabelExpectedMinResolution:"\u062D\u062F\u0627\u0642\u0644 \u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 {minResolution} \u0627\u0633\u062A",imageValidateSizeLabelExpectedMaxResolution:"\u062D\u062F\u0627\u06A9\u062B\u0631 \u0648\u0636\u0648\u062D \u062A\u0635\u0648\u06CC\u0631 {maxResolution} \u0627\u0633\u062A"};var Cl={labelIdle:'Ved\xE4 ja pudota tiedostoja tai Selaa ',labelInvalidField:"Kent\xE4ss\xE4 on virheellisi\xE4 tiedostoja",labelFileWaitingForSize:"Odotetaan kokoa",labelFileSizeNotAvailable:"Kokoa ei saatavilla",labelFileLoading:"Ladataan",labelFileLoadError:"Virhe latauksessa",labelFileProcessing:"L\xE4hetet\xE4\xE4n",labelFileProcessingComplete:"L\xE4hetys valmis",labelFileProcessingAborted:"L\xE4hetys peruttu",labelFileProcessingError:"Virhe l\xE4hetyksess\xE4",labelFileProcessingRevertError:"Virhe palautuksessa",labelFileRemoveError:"Virhe poistamisessa",labelTapToCancel:"peruuta napauttamalla",labelTapToRetry:"yrit\xE4 uudelleen napauttamalla",labelTapToUndo:"kumoa napauttamalla",labelButtonRemoveItem:"Poista",labelButtonAbortItemLoad:"Keskeyt\xE4",labelButtonRetryItemLoad:"Yrit\xE4 uudelleen",labelButtonAbortItemProcessing:"Peruuta",labelButtonUndoItemProcessing:"Kumoa",labelButtonRetryItemProcessing:"Yrit\xE4 uudelleen",labelButtonProcessItem:"L\xE4het\xE4",labelMaxFileSizeExceeded:"Tiedoston koko on liian suuri",labelMaxFileSize:"Tiedoston maksimikoko on {filesize}",labelMaxTotalFileSizeExceeded:"Tiedostojen yhdistetty maksimikoko ylitetty",labelMaxTotalFileSize:"Tiedostojen yhdistetty maksimikoko on {filesize}",labelFileTypeNotAllowed:"Tiedostotyyppi\xE4 ei sallita",fileValidateTypeLabelExpectedTypes:"Sallitaan {allButLastType} tai {lastType}",imageValidateSizeLabelFormatError:"Kuvatyyppi\xE4 ei tueta",imageValidateSizeLabelImageSizeTooSmall:"Kuva on liian pieni",imageValidateSizeLabelImageSizeTooBig:"Kuva on liian suuri",imageValidateSizeLabelExpectedMinSize:"Minimikoko on {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksimikoko on {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resoluutio on liian pieni",imageValidateSizeLabelImageResolutionTooHigh:"Resoluutio on liian suuri",imageValidateSizeLabelExpectedMinResolution:"Minimiresoluutio on {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimiresoluutio on {maxResolution}"};var Nl={labelIdle:'Faites glisser vos fichiers ou Parcourir ',labelInvalidField:"Le champ contient des fichiers invalides",labelFileWaitingForSize:"En attente de taille",labelFileSizeNotAvailable:"Taille non disponible",labelFileLoading:"Chargement",labelFileLoadError:"Erreur durant le chargement",labelFileProcessing:"Traitement",labelFileProcessingComplete:"Traitement effectu\xE9",labelFileProcessingAborted:"Traitement interrompu",labelFileProcessingError:"Erreur durant le traitement",labelFileProcessingRevertError:"Erreur durant la restauration",labelFileRemoveError:"Erreur durant la suppression",labelTapToCancel:"appuyer pour annuler",labelTapToRetry:"appuyer pour r\xE9essayer",labelTapToUndo:"appuyer pour revenir en arri\xE8re",labelButtonRemoveItem:"Retirer",labelButtonAbortItemLoad:"Annuler",labelButtonRetryItemLoad:"Recommencer",labelButtonAbortItemProcessing:"Annuler",labelButtonUndoItemProcessing:"Revenir en arri\xE8re",labelButtonRetryItemProcessing:"Recommencer",labelButtonProcessItem:"Transf\xE9rer",labelMaxFileSizeExceeded:"Le fichier est trop volumineux",labelMaxFileSize:"La taille maximale de fichier est {filesize}",labelMaxTotalFileSizeExceeded:"Taille totale maximale d\xE9pass\xE9e",labelMaxTotalFileSize:"La taille totale maximale des fichiers est {filesize}",labelFileTypeNotAllowed:"Fichier non valide",fileValidateTypeLabelExpectedTypes:"Attendu {allButLastType} ou {lastType}",imageValidateSizeLabelFormatError:"Type d'image non pris en charge",imageValidateSizeLabelImageSizeTooSmall:"L'image est trop petite",imageValidateSizeLabelImageSizeTooBig:"L'image est trop grande",imageValidateSizeLabelExpectedMinSize:"La taille minimale est {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"La taille maximale est {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La r\xE9solution est trop faible",imageValidateSizeLabelImageResolutionTooHigh:"La r\xE9solution est trop \xE9lev\xE9e",imageValidateSizeLabelExpectedMinResolution:"La r\xE9solution minimale est {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La r\xE9solution maximale est {maxResolution}"};var Bl={labelIdle:'Mozgasd ide a f\xE1jlt a felt\xF6lt\xE9shez, vagy tall\xF3z\xE1s ',labelInvalidField:"A mez\u0151 \xE9rv\xE9nytelen f\xE1jlokat tartalmaz",labelFileWaitingForSize:"F\xE1ljm\xE9ret kisz\xE1mol\xE1sa",labelFileSizeNotAvailable:"A f\xE1jlm\xE9ret nem el\xE9rhet\u0151",labelFileLoading:"T\xF6lt\xE9s",labelFileLoadError:"Hiba a bet\xF6lt\xE9s sor\xE1n",labelFileProcessing:"Felt\xF6lt\xE9s",labelFileProcessingComplete:"Sikeres felt\xF6lt\xE9s",labelFileProcessingAborted:"A felt\xF6lt\xE9s megszak\xEDtva",labelFileProcessingError:"Hiba t\xF6rt\xE9nt a felt\xF6lt\xE9s sor\xE1n",labelFileProcessingRevertError:"Hiba a vissza\xE1ll\xEDt\xE1s sor\xE1n",labelFileRemoveError:"Hiba t\xF6rt\xE9nt az elt\xE1vol\xEDt\xE1s sor\xE1n",labelTapToCancel:"koppints a t\xF6rl\xE9shez",labelTapToRetry:"koppints az \xFAjrakezd\xE9shez",labelTapToUndo:"koppints a visszavon\xE1shoz",labelButtonRemoveItem:"Elt\xE1vol\xEDt\xE1s",labelButtonAbortItemLoad:"Megszak\xEDt\xE1s",labelButtonRetryItemLoad:"\xDAjrapr\xF3b\xE1lkoz\xE1s",labelButtonAbortItemProcessing:"Megszak\xEDt\xE1s",labelButtonUndoItemProcessing:"Visszavon\xE1s",labelButtonRetryItemProcessing:"\xDAjrapr\xF3b\xE1lkoz\xE1s",labelButtonProcessItem:"Felt\xF6lt\xE9s",labelMaxFileSizeExceeded:"A f\xE1jl t\xFAll\xE9pte a maxim\xE1lis m\xE9retet",labelMaxFileSize:"Maxim\xE1lis f\xE1jlm\xE9ret: {filesize}",labelMaxTotalFileSizeExceeded:"T\xFAll\xE9pte a maxim\xE1lis teljes m\xE9retet",labelMaxTotalFileSize:"A maxim\xE1is teljes f\xE1jlm\xE9ret: {filesize}",labelFileTypeNotAllowed:"\xC9rv\xE9nytelen t\xEDpus\xFA f\xE1jl",fileValidateTypeLabelExpectedTypes:"Enged\xE9lyezett t\xEDpusok {allButLastType} vagy {lastType}",imageValidateSizeLabelFormatError:"A k\xE9pt\xEDpus nem t\xE1mogatott",imageValidateSizeLabelImageSizeTooSmall:"A k\xE9p t\xFAl kicsi",imageValidateSizeLabelImageSizeTooBig:"A k\xE9p t\xFAl nagy",imageValidateSizeLabelExpectedMinSize:"Minimum m\xE9ret: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum m\xE9ret: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"A felbont\xE1s t\xFAl alacsony",imageValidateSizeLabelImageResolutionTooHigh:"A felbont\xE1s t\xFAl magas",imageValidateSizeLabelExpectedMinResolution:"Minim\xE1is felbont\xE1s: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maxim\xE1lis felbont\xE1s: {maxResolution}"};var kl={labelIdle:'Seret & Jatuhkan berkas Anda atau Jelajahi',labelInvalidField:"Isian berisi berkas yang tidak valid",labelFileWaitingForSize:"Menunggu ukuran berkas",labelFileSizeNotAvailable:"Ukuran berkas tidak tersedia",labelFileLoading:"Memuat",labelFileLoadError:"Kesalahan saat memuat",labelFileProcessing:"Mengunggah",labelFileProcessingComplete:"Pengunggahan selesai",labelFileProcessingAborted:"Pengunggahan dibatalkan",labelFileProcessingError:"Kesalahan saat pengunggahan",labelFileProcessingRevertError:"Kesalahan saat pemulihan",labelFileRemoveError:"Kesalahan saat penghapusan",labelTapToCancel:"ketuk untuk membatalkan",labelTapToRetry:"ketuk untuk mencoba lagi",labelTapToUndo:"ketuk untuk mengurungkan",labelButtonRemoveItem:"Hapus",labelButtonAbortItemLoad:"Batalkan",labelButtonRetryItemLoad:"Coba Kembali",labelButtonAbortItemProcessing:"Batalkan",labelButtonUndoItemProcessing:"Urungkan",labelButtonRetryItemProcessing:"Coba Kembali",labelButtonProcessItem:"Unggah",labelMaxFileSizeExceeded:"Berkas terlalu besar",labelMaxFileSize:"Ukuran berkas maksimum adalah {filesize}",labelMaxTotalFileSizeExceeded:"Jumlah berkas maksimum terlampaui",labelMaxTotalFileSize:"Jumlah berkas maksimum adalah {filesize}",labelFileTypeNotAllowed:"Jenis berkas tidak valid",fileValidateTypeLabelExpectedTypes:"Mengharapkan {allButLastType} atau {lastType}",imageValidateSizeLabelFormatError:"Jenis citra tidak didukung",imageValidateSizeLabelImageSizeTooSmall:"Citra terlalu kecil",imageValidateSizeLabelImageSizeTooBig:"Citra terlalu besar",imageValidateSizeLabelExpectedMinSize:"Ukuran minimum adalah {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Ukuran maksimum adalah {minWidth} \xD7 {minHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolusi terlalu rendah",imageValidateSizeLabelImageResolutionTooHigh:"Resolusi terlalu tinggi",imageValidateSizeLabelExpectedMinResolution:"Resolusi minimum adalah {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Resolusi maksimum adalah {maxResolution}"};var Vl={labelIdle:'Trascina e rilascia i tuoi file oppure Carica ',labelInvalidField:"Il campo contiene dei file non validi",labelFileWaitingForSize:"Aspettando le dimensioni",labelFileSizeNotAvailable:"Dimensioni non disponibili",labelFileLoading:"Caricamento",labelFileLoadError:"Errore durante il caricamento",labelFileProcessing:"Caricamento",labelFileProcessingComplete:"Caricamento completato",labelFileProcessingAborted:"Caricamento cancellato",labelFileProcessingError:"Errore durante il caricamento",labelFileProcessingRevertError:"Errore durante il ripristino",labelFileRemoveError:"Errore durante l'eliminazione",labelTapToCancel:"tocca per cancellare",labelTapToRetry:"tocca per riprovare",labelTapToUndo:"tocca per ripristinare",labelButtonRemoveItem:"Elimina",labelButtonAbortItemLoad:"Cancella",labelButtonRetryItemLoad:"Ritenta",labelButtonAbortItemProcessing:"Camcella",labelButtonUndoItemProcessing:"Indietro",labelButtonRetryItemProcessing:"Ritenta",labelButtonProcessItem:"Carica",labelMaxFileSizeExceeded:"Il peso del file \xE8 eccessivo",labelMaxFileSize:"Il peso massimo del file \xE8 {filesize}",labelMaxTotalFileSizeExceeded:"Dimensione totale massima superata",labelMaxTotalFileSize:"La dimensione massima totale del file \xE8 {filesize}",labelFileTypeNotAllowed:"File non supportato",fileValidateTypeLabelExpectedTypes:"Aspetta {allButLastType} o {lastType}",imageValidateSizeLabelFormatError:"Tipo di immagine non compatibile",imageValidateSizeLabelImageSizeTooSmall:"L'immagine \xE8 troppo piccola",imageValidateSizeLabelImageSizeTooBig:"L'immagine \xE8 troppo grande",imageValidateSizeLabelExpectedMinSize:"La dimensione minima \xE8 {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"La dimensione massima \xE8 {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"La risoluzione \xE8 troppo bassa",imageValidateSizeLabelImageResolutionTooHigh:"La risoluzione \xE8 troppo alta",imageValidateSizeLabelExpectedMinResolution:"La risoluzione minima \xE8 {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"La risoluzione massima \xE8 {maxResolution}"};var Gl={labelIdle:'\u1791\u17B6\u1789&\u178A\u17B6\u1780\u17CB\u17A0\u17D2\u179C\u17B6\u179B\u17CB\u17AF\u1780\u179F\u17B6\u179A\u179A\u1794\u179F\u17CB\u17A2\u17D2\u1793\u1780 \u17AC \u179F\u17D2\u179C\u17C2\u1784\u179A\u1780 ',labelInvalidField:"\u1785\u1793\u17D2\u179B\u17C4\u17C7\u1798\u17B6\u1793\u17AF\u1780\u179F\u17B6\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C",labelFileWaitingForSize:"\u1780\u17C6\u1796\u17BB\u1784\u179A\u1784\u17CB\u1785\u17B6\u17C6\u1791\u17C6\u17A0\u17C6",labelFileSizeNotAvailable:"\u1791\u17C6\u17A0\u17C6\u1798\u17B7\u1793\u17A2\u17B6\u1785\u1794\u17D2\u179A\u17BE\u1794\u17B6\u1793",labelFileLoading:"\u1780\u17C6\u1796\u17BB\u1784\u178A\u17C6\u178E\u17BE\u179A\u1780\u17B6\u179A",labelFileLoadError:"\u1798\u17B6\u1793\u1794\u1789\u17D2\u17A0\u17B6\u1780\u17C6\u17A1\u17BB\u1784\u1796\u17C1\u179B\u178A\u17C6\u178E\u17BE\u179A\u1780\u17B6\u179A",labelFileProcessing:"\u1780\u17C6\u1796\u17BB\u1784\u1795\u17D2\u1791\u17BB\u1780\u17A1\u17BE\u1784",labelFileProcessingComplete:"\u1780\u17B6\u179A\u1795\u17D2\u1791\u17BB\u1780\u17A1\u17BE\u1784\u1796\u17C1\u1789\u179B\u17C1\u1789",labelFileProcessingAborted:"\u1780\u17B6\u179A\u1794\u1784\u17D2\u17A0\u17C4\u17C7\u178F\u17D2\u179A\u17BC\u179C\u1794\u17B6\u1793\u1794\u17C4\u17C7\u1794\u1784\u17CB",labelFileProcessingError:"\u1798\u17B6\u1793\u1794\u1789\u17D2\u17A0\u17B6\u1780\u17C6\u17A1\u17BB\u1784\u1796\u17C1\u179B\u1780\u17C6\u1796\u17BB\u1784\u1795\u17D2\u1791\u17BB\u1780\u17A1\u17BE\u1784",labelFileProcessingRevertError:"\u1798\u17B6\u1793\u1794\u1789\u17D2\u17A0\u17B6\u1780\u17C6\u17A1\u17BB\u1784\u1796\u17C1\u179B\u178F\u17D2\u179A\u17A1\u1794\u17CB",labelFileRemoveError:"\u1798\u17B6\u1793\u1794\u1789\u17D2\u17A0\u17B6\u1780\u17C6\u17A1\u17BB\u1784\u1796\u17C1\u179B\u178A\u1780\u1785\u17C1\u1789",labelTapToCancel:"\u1785\u17BB\u1785\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1794\u17C4\u17C7\u1794\u1784\u17CB",labelTapToRetry:"\u1785\u17BB\u1785\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1796\u17D2\u1799\u17B6\u1799\u17B6\u1798\u1798\u17D2\u178F\u1784\u1791\u17C0\u178F",labelTapToUndo:"\u1785\u17BB\u1785\u178A\u17BE\u1798\u17D2\u1794\u17B8\u1798\u17B7\u1793\u1792\u17D2\u179C\u17BE\u179C\u17B7\u1789",labelButtonRemoveItem:"\u1799\u1780\u1785\u17C1\u1789",labelButtonAbortItemLoad:"\u1794\u17C4\u17C7\u1794\u1784\u17CB",labelButtonRetryItemLoad:"\u1796\u17D2\u1799\u17B6\u1799\u17B6\u1798\u1798\u17D2\u178F\u1784\u1791\u17C0\u178F",labelButtonAbortItemProcessing:"\u1794\u17C4\u17C7\u1794\u1784\u17CB",labelButtonUndoItemProcessing:"\u1798\u17B7\u1793\u1792\u17D2\u179C\u17BE\u179C\u17B7\u1789",labelButtonRetryItemProcessing:"\u1796\u17D2\u1799\u17B6\u1799\u17B6\u1798\u1798\u17D2\u178F\u1784\u1791\u17C0\u178F",labelButtonProcessItem:"\u1795\u17D2\u1791\u17BB\u1780\u17A1\u17BE\u1784",labelMaxFileSizeExceeded:"\u17AF\u1780\u179F\u17B6\u179A\u1792\u17C6\u1796\u17C1\u1780",labelMaxFileSize:"\u1791\u17C6\u17A0\u17C6\u17AF\u1780\u179F\u17B6\u179A\u17A2\u178F\u17B7\u1794\u179A\u1798\u17B6\u1782\u17BA {filesize}",labelMaxTotalFileSizeExceeded:"\u179B\u17BE\u179F\u1791\u17C6\u17A0\u17C6\u179F\u179A\u17BB\u1794\u17A2\u178F\u17B7\u1794\u179A\u1798\u17B6",labelMaxTotalFileSize:"\u1791\u17C6\u17A0\u17C6\u17AF\u1780\u179F\u17B6\u179A\u179F\u179A\u17BB\u1794\u17A2\u178F\u17B7\u1794\u179A\u1798\u17B6\u1782\u17BA {filesize}",labelFileTypeNotAllowed:"\u1794\u17D2\u179A\u1797\u17C1\u1791\u17AF\u1780\u179F\u17B6\u179A\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C",fileValidateTypeLabelExpectedTypes:"\u179A\u17C6\u1796\u17B9\u1784\u1790\u17B6 {allButLastType} \u17AC {lastType}",imageValidateSizeLabelFormatError:"\u1794\u17D2\u179A\u1797\u17C1\u1791\u179A\u17BC\u1794\u1797\u17B6\u1796\u1798\u17B7\u1793\u178F\u17D2\u179A\u17B9\u1798\u178F\u17D2\u179A\u17BC\u179C",imageValidateSizeLabelImageSizeTooSmall:"\u179A\u17BC\u1794\u1797\u17B6\u1796\u178F\u17BC\u1785\u1796\u17C1\u1780",imageValidateSizeLabelImageSizeTooBig:"\u179A\u17BC\u1794\u1797\u17B6\u1796\u1792\u17C6\u1796\u17C1\u1780",imageValidateSizeLabelExpectedMinSize:"\u1791\u17C6\u17A0\u17C6\u17A2\u1794\u17D2\u1794\u1794\u179A\u1798\u17B6\u1782\u17BA {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u1791\u17C6\u17A0\u17C6\u17A2\u178F\u17B7\u1794\u179A\u1798\u17B6\u1782\u17BA {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u1782\u17BB\u178E\u1797\u17B6\u1796\u1794\u1784\u17D2\u17A0\u17B6\u1789\u1791\u17B6\u1794\u1796\u17C1\u1780",imageValidateSizeLabelImageResolutionTooHigh:"\u1782\u17BB\u178E\u1797\u17B6\u1796\u1794\u1784\u17D2\u17A0\u17B6\u1789\u1781\u17D2\u1796\u179F\u17CB\u1796\u17C1\u1780",imageValidateSizeLabelExpectedMinResolution:"\u1782\u17BB\u178E\u1797\u17B6\u1796\u1794\u1784\u17D2\u17A0\u17B6\u1789\u17A2\u1794\u17D2\u1794\u1794\u179A\u1798\u17B6\u1782\u17BA {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u1782\u17BB\u178E\u1797\u17B6\u1796\u1794\u1784\u17D2\u17A0\u17B6\u1789\u17A2\u178F\u17B7\u1794\u179A\u1798\u17B6\u1782\u17BA {maxResolution}"};var Ul={labelIdle:'Drag & Drop je bestanden of Bladeren ',labelInvalidField:"Veld bevat ongeldige bestanden",labelFileWaitingForSize:"Wachten op grootte",labelFileSizeNotAvailable:"Grootte niet beschikbaar",labelFileLoading:"Laden",labelFileLoadError:"Fout tijdens laden",labelFileProcessing:"Uploaden",labelFileProcessingComplete:"Upload afgerond",labelFileProcessingAborted:"Upload geannuleerd",labelFileProcessingError:"Fout tijdens upload",labelFileProcessingRevertError:"Fout bij herstellen",labelFileRemoveError:"Fout bij verwijderen",labelTapToCancel:"tik om te annuleren",labelTapToRetry:"tik om opnieuw te proberen",labelTapToUndo:"tik om ongedaan te maken",labelButtonRemoveItem:"Verwijderen",labelButtonAbortItemLoad:"Afbreken",labelButtonRetryItemLoad:"Opnieuw proberen",labelButtonAbortItemProcessing:"Annuleren",labelButtonUndoItemProcessing:"Ongedaan maken",labelButtonRetryItemProcessing:"Opnieuw proberen",labelButtonProcessItem:"Upload",labelMaxFileSizeExceeded:"Bestand is te groot",labelMaxFileSize:"Maximale bestandsgrootte is {filesize}",labelMaxTotalFileSizeExceeded:"Maximale totale grootte overschreden",labelMaxTotalFileSize:"Maximale totale bestandsgrootte is {filesize}",labelFileTypeNotAllowed:"Ongeldig bestandstype",fileValidateTypeLabelExpectedTypes:"Verwacht {allButLastType} of {lastType}",imageValidateSizeLabelFormatError:"Afbeeldingstype niet ondersteund",imageValidateSizeLabelImageSizeTooSmall:"Afbeelding is te klein",imageValidateSizeLabelImageSizeTooBig:"Afbeelding is te groot",imageValidateSizeLabelExpectedMinSize:"Minimale afmeting is {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximale afmeting is {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolutie is te laag",imageValidateSizeLabelImageResolutionTooHigh:"Resolution is too high",imageValidateSizeLabelExpectedMinResolution:"Minimale resolutie is {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximale resolutie is {maxResolution}"};var Wl={labelIdle:'Dra og slipp filene dine, eller Bla gjennom... ',labelInvalidField:"Feltet inneholder ugyldige filer",labelFileWaitingForSize:"Venter p\xE5 st\xF8rrelse",labelFileSizeNotAvailable:"St\xF8rrelse ikke tilgjengelig",labelFileLoading:"Laster",labelFileLoadError:"Feil under lasting",labelFileProcessing:"Laster opp",labelFileProcessingComplete:"Opplasting ferdig",labelFileProcessingAborted:"Opplasting avbrutt",labelFileProcessingError:"Feil under opplasting",labelFileProcessingRevertError:"Feil under reversering",labelFileRemoveError:"Feil under flytting",labelTapToCancel:"klikk for \xE5 avbryte",labelTapToRetry:"klikk for \xE5 pr\xF8ve p\xE5 nytt",labelTapToUndo:"klikk for \xE5 angre",labelButtonRemoveItem:"Fjern",labelButtonAbortItemLoad:"Avbryt",labelButtonRetryItemLoad:"Pr\xF8v p\xE5 nytt",labelButtonAbortItemProcessing:"Avbryt",labelButtonUndoItemProcessing:"Angre",labelButtonRetryItemProcessing:"Pr\xF8v p\xE5 nytt",labelButtonProcessItem:"Last opp",labelMaxFileSizeExceeded:"Filen er for stor",labelMaxFileSize:"Maksimal filst\xF8rrelse er {filesize}",labelMaxTotalFileSizeExceeded:"Maksimal total st\xF8rrelse oversteget",labelMaxTotalFileSize:"Maksimal total st\xF8rrelse er {filesize}",labelFileTypeNotAllowed:"Ugyldig filtype",fileValidateTypeLabelExpectedTypes:"Forventer {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Bildeformat ikke st\xF8ttet",imageValidateSizeLabelImageSizeTooSmall:"Bildet er for lite",imageValidateSizeLabelImageSizeTooBig:"Bildet er for stort",imageValidateSizeLabelExpectedMinSize:"Minimumsst\xF8rrelse er {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksimumsst\xF8rrelse er {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Oppl\xF8sningen er for lav",imageValidateSizeLabelImageResolutionTooHigh:"Oppl\xF8sningen er for h\xF8y",imageValidateSizeLabelExpectedMinResolution:"Minimum oppl\xF8sning er {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksimal oppl\xF8sning er {maxResolution}"};var Hl={labelIdle:'Przeci\u0105gnij i upu\u015B\u0107 lub wybierz pliki',labelInvalidField:"Nieprawid\u0142owe pliki",labelFileWaitingForSize:"Pobieranie rozmiaru",labelFileSizeNotAvailable:"Nieznany rozmiar",labelFileLoading:"Wczytywanie",labelFileLoadError:"B\u0142\u0105d wczytywania",labelFileProcessing:"Przesy\u0142anie",labelFileProcessingComplete:"Przes\u0142ano",labelFileProcessingAborted:"Przerwano",labelFileProcessingError:"Przesy\u0142anie nie powiod\u0142o si\u0119",labelFileProcessingRevertError:"Co\u015B posz\u0142o nie tak",labelFileRemoveError:"Nieudane usuni\u0119cie",labelTapToCancel:"Anuluj",labelTapToRetry:"Pon\xF3w",labelTapToUndo:"Cofnij",labelButtonRemoveItem:"Usu\u0144",labelButtonAbortItemLoad:"Przerwij",labelButtonRetryItemLoad:"Pon\xF3w",labelButtonAbortItemProcessing:"Anuluj",labelButtonUndoItemProcessing:"Cofnij",labelButtonRetryItemProcessing:"Pon\xF3w",labelButtonProcessItem:"Prze\u015Blij",labelMaxFileSizeExceeded:"Plik jest zbyt du\u017Cy",labelMaxFileSize:"Dopuszczalna wielko\u015B\u0107 pliku to {filesize}",labelMaxTotalFileSizeExceeded:"Przekroczono \u0142\u0105czny rozmiar plik\xF3w",labelMaxTotalFileSize:"\u0141\u0105czny rozmiar plik\xF3w nie mo\u017Ce przekroczy\u0107 {filesize}",labelFileTypeNotAllowed:"Niedozwolony rodzaj pliku",fileValidateTypeLabelExpectedTypes:"Oczekiwano {allButLastType} lub {lastType}",imageValidateSizeLabelFormatError:"Nieobs\u0142ugiwany format obrazu",imageValidateSizeLabelImageSizeTooSmall:"Obraz jest zbyt ma\u0142y",imageValidateSizeLabelImageSizeTooBig:"Obraz jest zbyt du\u017Cy",imageValidateSizeLabelExpectedMinSize:"Minimalne wymiary obrazu to {minWidth}\xD7{minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maksymalna wymiary obrazu to {maxWidth}\xD7{maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rozdzielczo\u015B\u0107 jest zbyt niska",imageValidateSizeLabelImageResolutionTooHigh:"Rozdzielczo\u015B\u0107 jest zbyt wysoka",imageValidateSizeLabelExpectedMinResolution:"Minimalna rozdzielczo\u015B\u0107 to {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maksymalna rozdzielczo\u015B\u0107 to {maxResolution}"};var wi={labelIdle:'Arraste e solte os arquivos ou Clique aqui ',labelInvalidField:"Arquivos inv\xE1lidos",labelFileWaitingForSize:"Calculando o tamanho do arquivo",labelFileSizeNotAvailable:"Tamanho do arquivo indispon\xEDvel",labelFileLoading:"Carregando",labelFileLoadError:"Erro durante o carregamento",labelFileProcessing:"Enviando",labelFileProcessingComplete:"Envio finalizado",labelFileProcessingAborted:"Envio cancelado",labelFileProcessingError:"Erro durante o envio",labelFileProcessingRevertError:"Erro ao reverter o envio",labelFileRemoveError:"Erro ao remover o arquivo",labelTapToCancel:"clique para cancelar",labelTapToRetry:"clique para reenviar",labelTapToUndo:"clique para desfazer",labelButtonRemoveItem:"Remover",labelButtonAbortItemLoad:"Abortar",labelButtonRetryItemLoad:"Reenviar",labelButtonAbortItemProcessing:"Cancelar",labelButtonUndoItemProcessing:"Desfazer",labelButtonRetryItemProcessing:"Reenviar",labelButtonProcessItem:"Enviar",labelMaxFileSizeExceeded:"Arquivo \xE9 muito grande",labelMaxFileSize:"O tamanho m\xE1ximo permitido: {filesize}",labelMaxTotalFileSizeExceeded:"Tamanho total dos arquivos excedido",labelMaxTotalFileSize:"Tamanho total permitido: {filesize}",labelFileTypeNotAllowed:"Tipo de arquivo inv\xE1lido",fileValidateTypeLabelExpectedTypes:"Tipos de arquivo suportados s\xE3o {allButLastType} ou {lastType}",imageValidateSizeLabelFormatError:"Tipo de imagem inv\xE1lida",imageValidateSizeLabelImageSizeTooSmall:"Imagem muito pequena",imageValidateSizeLabelImageSizeTooBig:"Imagem muito grande",imageValidateSizeLabelExpectedMinSize:"Tamanho m\xEDnimo permitida: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Tamanho m\xE1ximo permitido: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Resolu\xE7\xE3o muito baixa",imageValidateSizeLabelImageResolutionTooHigh:"Resolu\xE7\xE3o muito alta",imageValidateSizeLabelExpectedMinResolution:"Resolu\xE7\xE3o m\xEDnima permitida: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Resolu\xE7\xE3o m\xE1xima permitida: {maxResolution}"};var jl={labelIdle:'Trage \u0219i plaseaz\u0103 fi\u0219iere sau Caut\u0103-le ',labelInvalidField:"C\xE2mpul con\u021Bine fi\u0219iere care nu sunt valide",labelFileWaitingForSize:"\xCEn a\u0219teptarea dimensiunii",labelFileSizeNotAvailable:"Dimensiunea nu este diponibil\u0103",labelFileLoading:"Se \xEEncarc\u0103",labelFileLoadError:"Eroare la \xEEnc\u0103rcare",labelFileProcessing:"Se \xEEncarc\u0103",labelFileProcessingComplete:"\xCEnc\u0103rcare finalizat\u0103",labelFileProcessingAborted:"\xCEnc\u0103rcare anulat\u0103",labelFileProcessingError:"Eroare la \xEEnc\u0103rcare",labelFileProcessingRevertError:"Eroare la anulare",labelFileRemoveError:"Eroare la \u015Ftergere",labelTapToCancel:"apas\u0103 pentru a anula",labelTapToRetry:"apas\u0103 pentru a re\xEEncerca",labelTapToUndo:"apas\u0103 pentru a anula",labelButtonRemoveItem:"\u015Eterge",labelButtonAbortItemLoad:"Anuleaz\u0103",labelButtonRetryItemLoad:"Re\xEEncearc\u0103",labelButtonAbortItemProcessing:"Anuleaz\u0103",labelButtonUndoItemProcessing:"Anuleaz\u0103",labelButtonRetryItemProcessing:"Re\xEEncearc\u0103",labelButtonProcessItem:"\xCEncarc\u0103",labelMaxFileSizeExceeded:"Fi\u0219ierul este prea mare",labelMaxFileSize:"Dimensiunea maxim\u0103 a unui fi\u0219ier este de {filesize}",labelMaxTotalFileSizeExceeded:"Dimensiunea total\u0103 maxim\u0103 a fost dep\u0103\u0219it\u0103",labelMaxTotalFileSize:"Dimensiunea total\u0103 maxim\u0103 a fi\u0219ierelor este de {filesize}",labelFileTypeNotAllowed:"Tipul fi\u0219ierului nu este valid",fileValidateTypeLabelExpectedTypes:"Se a\u0219teapt\u0103 {allButLastType} sau {lastType}",imageValidateSizeLabelFormatError:"Formatul imaginii nu este acceptat",imageValidateSizeLabelImageSizeTooSmall:"Imaginea este prea mic\u0103",imageValidateSizeLabelImageSizeTooBig:"Imaginea este prea mare",imageValidateSizeLabelExpectedMinSize:"M\u0103rimea minim\u0103 este de {maxWidth} x {maxHeight}",imageValidateSizeLabelExpectedMaxSize:"M\u0103rimea maxim\u0103 este de {maxWidth} x {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Rezolu\u021Bia este prea mic\u0103",imageValidateSizeLabelImageResolutionTooHigh:"Rezolu\u021Bia este prea mare",imageValidateSizeLabelExpectedMinResolution:"Rezolu\u021Bia minim\u0103 este de {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Rezolu\u021Bia maxim\u0103 este de {maxResolution}"};var Yl={labelIdle:'\u041F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0444\u0430\u0439\u043B\u044B \u0438\u043B\u0438 \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 ',labelInvalidField:"\u041F\u043E\u043B\u0435 \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0444\u0430\u0439\u043B\u044B",labelFileWaitingForSize:"\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0440\u0430\u0437\u043C\u0435\u0440",labelFileSizeNotAvailable:"\u0420\u0430\u0437\u043C\u0435\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F",labelFileLoading:"\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435",labelFileLoadError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u0438",labelFileProcessing:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430",labelFileProcessingComplete:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0430",labelFileProcessingAborted:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043E\u0442\u043C\u0435\u043D\u0435\u043D\u0430",labelFileProcessingError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0435",labelFileProcessingRevertError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0435",labelFileRemoveError:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u0438 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0438",labelTapToCancel:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B",labelTapToRetry:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelTapToUndo:"\u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0434\u043B\u044F \u043E\u0442\u043C\u0435\u043D\u044B \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F",labelButtonRemoveItem:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",labelButtonAbortItemLoad:"\u041F\u0440\u0435\u043A\u0440\u0430\u0449\u0435\u043D\u043E",labelButtonRetryItemLoad:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelButtonAbortItemProcessing:"\u041E\u0442\u043C\u0435\u043D\u0430",labelButtonUndoItemProcessing:"\u041E\u0442\u043C\u0435\u043D\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F",labelButtonRetryItemProcessing:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u043F\u044B\u0442\u043A\u0443",labelButtonProcessItem:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430",labelMaxFileSizeExceeded:"\u0424\u0430\u0439\u043B \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0439",labelMaxFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430: {filesize}",labelMaxTotalFileSizeExceeded:"\u041F\u0440\u0435\u0432\u044B\u0448\u0435\u043D \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440",labelMaxTotalFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430: {filesize}",labelFileTypeNotAllowed:"\u0424\u0430\u0439\u043B \u043D\u0435\u0432\u0435\u0440\u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430",fileValidateTypeLabelExpectedTypes:"\u041E\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044F {allButLastType} \u0438\u043B\u0438 {lastType}",imageValidateSizeLabelFormatError:"\u0422\u0438\u043F \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F",imageValidateSizeLabelImageSizeTooSmall:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u043E\u0435",imageValidateSizeLabelImageSizeTooBig:"\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0431\u043E\u043B\u044C\u0448\u043E\u0435",imageValidateSizeLabelExpectedMinSize:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0430\u0437\u043C\u0435\u0440: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u043D\u0438\u0437\u043A\u043E\u0435",imageValidateSizeLabelImageResolutionTooHigh:"\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435 \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0432\u044B\u0441\u043E\u043A\u043E\u0435",imageValidateSizeLabelExpectedMinResolution:"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435: {maxResolution}"};var ql={labelIdle:'Drag och sl\xE4pp dina filer eller Bl\xE4ddra ',labelInvalidField:"F\xE4ltet inneh\xE5ller felaktiga filer",labelFileWaitingForSize:"V\xE4ntar p\xE5 storlek",labelFileSizeNotAvailable:"Storleken finns inte tillg\xE4nglig",labelFileLoading:"Laddar",labelFileLoadError:"Fel under laddning",labelFileProcessing:"Laddar upp",labelFileProcessingComplete:"Uppladdning klar",labelFileProcessingAborted:"Uppladdning avbruten",labelFileProcessingError:"Fel under uppladdning",labelFileProcessingRevertError:"Fel under \xE5terst\xE4llning",labelFileRemoveError:"Fel under borttagning",labelTapToCancel:"tryck f\xF6r att avbryta",labelTapToRetry:"tryck f\xF6r att f\xF6rs\xF6ka igen",labelTapToUndo:"tryck f\xF6r att \xE5ngra",labelButtonRemoveItem:"Tabort",labelButtonAbortItemLoad:"Avbryt",labelButtonRetryItemLoad:"F\xF6rs\xF6k igen",labelButtonAbortItemProcessing:"Avbryt",labelButtonUndoItemProcessing:"\xC5ngra",labelButtonRetryItemProcessing:"F\xF6rs\xF6k igen",labelButtonProcessItem:"Ladda upp",labelMaxFileSizeExceeded:"Filen \xE4r f\xF6r stor",labelMaxFileSize:"St\xF6rsta till\xE5tna filstorlek \xE4r {filesize}",labelMaxTotalFileSizeExceeded:"Maximal uppladdningsstorlek uppn\xE5d",labelMaxTotalFileSize:"Maximal uppladdningsstorlek \xE4r {filesize}",labelFileTypeNotAllowed:"Felaktig filtyp",fileValidateTypeLabelExpectedTypes:"Godk\xE4nda filtyper {allButLastType} eller {lastType}",imageValidateSizeLabelFormatError:"Bildtypen saknar st\xF6d",imageValidateSizeLabelImageSizeTooSmall:"Bilden \xE4r f\xF6r liten",imageValidateSizeLabelImageSizeTooBig:"Bilden \xE4r f\xF6r stor",imageValidateSizeLabelExpectedMinSize:"Minimal storlek \xE4r {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximal storlek \xE4r {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"Uppl\xF6sningen \xE4r f\xF6r l\xE5g",imageValidateSizeLabelImageResolutionTooHigh:"Uppl\xF6sningen \xE4r f\xF6r h\xF6g",imageValidateSizeLabelExpectedMinResolution:"Minsta till\xE5tna uppl\xF6sning \xE4r {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"H\xF6gsta till\xE5tna uppl\xF6sning \xE4r {maxResolution}"};var $l={labelIdle:'Dosyan\u0131z\u0131 S\xFCr\xFCkleyin & B\u0131rak\u0131n ya da Se\xE7in ',labelInvalidField:"Alan ge\xE7ersiz dosyalar i\xE7eriyor",labelFileWaitingForSize:"Boyut hesaplan\u0131yor",labelFileSizeNotAvailable:"Boyut mevcut de\u011Fil",labelFileLoading:"Y\xFCkleniyor",labelFileLoadError:"Y\xFCkleme s\u0131ras\u0131nda hata olu\u015Ftu",labelFileProcessing:"Y\xFCkleniyor",labelFileProcessingComplete:"Y\xFCkleme tamamland\u0131",labelFileProcessingAborted:"Y\xFCkleme iptal edildi",labelFileProcessingError:"Y\xFCklerken hata olu\u015Ftu",labelFileProcessingRevertError:"Geri \xE7ekerken hata olu\u015Ftu",labelFileRemoveError:"Kald\u0131r\u0131rken hata olu\u015Ftu",labelTapToCancel:"\u0130ptal etmek i\xE7in t\u0131klay\u0131n",labelTapToRetry:"Tekrar denemek i\xE7in t\u0131klay\u0131n",labelTapToUndo:"Geri almak i\xE7in t\u0131klay\u0131n",labelButtonRemoveItem:"Kald\u0131r",labelButtonAbortItemLoad:"\u0130ptal Et",labelButtonRetryItemLoad:"Tekrar dene",labelButtonAbortItemProcessing:"\u0130ptal et",labelButtonUndoItemProcessing:"Geri Al",labelButtonRetryItemProcessing:"Tekrar dene",labelButtonProcessItem:"Y\xFCkle",labelMaxFileSizeExceeded:"Dosya \xE7ok b\xFCy\xFCk",labelMaxFileSize:"En fazla dosya boyutu: {filesize}",labelMaxTotalFileSizeExceeded:"Maximum boyut a\u015F\u0131ld\u0131",labelMaxTotalFileSize:"Maximum dosya boyutu :{filesize}",labelFileTypeNotAllowed:"Ge\xE7ersiz dosya tipi",fileValidateTypeLabelExpectedTypes:"\u015Eu {allButLastType} ya da \u015Fu dosya olmas\u0131 gerekir: {lastType}",imageValidateSizeLabelFormatError:"Resim tipi desteklenmiyor",imageValidateSizeLabelImageSizeTooSmall:"Resim \xE7ok k\xFC\xE7\xFCk",imageValidateSizeLabelImageSizeTooBig:"Resim \xE7ok b\xFCy\xFCk",imageValidateSizeLabelExpectedMinSize:"Minimum boyut {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"Maximum boyut {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\xC7\xF6z\xFCn\xFCrl\xFCk \xE7ok d\xFC\u015F\xFCk",imageValidateSizeLabelImageResolutionTooHigh:"\xC7\xF6z\xFCn\xFCrl\xFCk \xE7ok y\xFCksek",imageValidateSizeLabelExpectedMinResolution:"Minimum \xE7\xF6z\xFCn\xFCrl\xFCk {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"Maximum \xE7\xF6z\xFCn\xFCrl\xFCk {maxResolution}"};var Xl={labelIdle:'\u041F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0444\u0430\u0439\u043B\u0438 \u0430\u0431\u043E \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044C ',labelInvalidField:"\u041F\u043E\u043B\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u0456 \u0444\u0430\u0439\u043B\u0438",labelFileWaitingForSize:"\u0412\u043A\u0430\u0436\u0456\u0442\u044C \u0440\u043E\u0437\u043C\u0456\u0440",labelFileSizeNotAvailable:"\u0420\u043E\u0437\u043C\u0456\u0440 \u043D\u0435 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439",labelFileLoading:"\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F",labelFileLoadError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u0456",labelFileProcessing:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",labelFileProcessingComplete:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043E",labelFileProcessingAborted:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F \u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u043E",labelFileProcessingError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u0456",labelFileProcessingRevertError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0432\u0456\u0434\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0456",labelFileRemoveError:"\u041F\u043E\u043C\u0438\u043B\u043A\u0430 \u043F\u0440\u0438 \u0432\u0438\u0434\u0430\u043B\u0435\u043D\u043D\u0456",labelTapToCancel:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelTapToRetry:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelTapToUndo:"\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u0432\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0434\u0456\u044E",labelButtonRemoveItem:"\u0412\u0438\u0434\u0430\u043B\u0438\u0442\u0438",labelButtonAbortItemLoad:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelButtonRetryItemLoad:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelButtonAbortItemProcessing:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438",labelButtonUndoItemProcessing:"\u0412\u0456\u0434\u043C\u0456\u043D\u0438\u0442\u0438 \u043E\u0441\u0442\u0430\u043D\u043D\u044E \u0434\u0456\u044E",labelButtonRetryItemProcessing:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443",labelButtonProcessItem:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F",labelMaxFileSizeExceeded:"\u0424\u0430\u0439\u043B \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0438\u0439",labelMaxFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440 \u0444\u0430\u0439\u043B\u0443: {filesize}",labelMaxTotalFileSizeExceeded:"\u041F\u0435\u0440\u0435\u0432\u0438\u0449\u0435\u043D\u043E \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u0433\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440",labelMaxTotalFileSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0437\u0430\u0433\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {filesize}",labelFileTypeNotAllowed:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0444\u0430\u0439\u043B\u0443 \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",fileValidateTypeLabelExpectedTypes:"\u041E\u0447\u0456\u043A\u0443\u0454\u0442\u044C\u0441\u044F {allButLastType} \u0430\u0431\u043E {lastType}",imageValidateSizeLabelFormatError:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F",imageValidateSizeLabelImageSizeTooSmall:"\u0417\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0435",imageValidateSizeLabelImageSizeTooBig:"\u0417\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0435",imageValidateSizeLabelExpectedMinSize:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0438\u0439 \u0440\u043E\u0437\u043C\u0456\u0440: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u043C\u0430\u043B\u0435\u043D\u044C\u043A\u0456",imageValidateSizeLabelImageResolutionTooHigh:"\u0420\u043E\u0437\u043C\u0456\u0440\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F \u0437\u0430\u043D\u0430\u0434\u0442\u043E \u0432\u0435\u043B\u0438\u043A\u0456",imageValidateSizeLabelExpectedMinResolution:"\u041C\u0456\u043D\u0456\u043C\u0430\u043B\u044C\u043D\u0456 \u0440\u043E\u0437\u043C\u0456\u0440\u0438: {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0456 \u0440\u043E\u0437\u043C\u0456\u0440\u0438: {maxResolution}"};var Ql={labelIdle:'K\xE9o th\u1EA3 t\u1EC7p c\u1EE7a b\u1EA1n ho\u1EB7c T\xECm ki\u1EBFm ',labelInvalidField:"Tr\u01B0\u1EDDng ch\u1EE9a c\xE1c t\u1EC7p kh\xF4ng h\u1EE3p l\u1EC7",labelFileWaitingForSize:"\u0110ang ch\u1EDD k\xEDch th\u01B0\u1EDBc",labelFileSizeNotAvailable:"K\xEDch th\u01B0\u1EDBc kh\xF4ng c\xF3 s\u1EB5n",labelFileLoading:"\u0110ang t\u1EA3i",labelFileLoadError:"L\u1ED7i khi t\u1EA3i",labelFileProcessing:"\u0110ang t\u1EA3i l\xEAn",labelFileProcessingComplete:"T\u1EA3i l\xEAn th\xE0nh c\xF4ng",labelFileProcessingAborted:"\u0110\xE3 hu\u1EF7 t\u1EA3i l\xEAn",labelFileProcessingError:"L\u1ED7i khi t\u1EA3i l\xEAn",labelFileProcessingRevertError:"L\u1ED7i khi ho\xE0n nguy\xEAn",labelFileRemoveError:"L\u1ED7i khi x\xF3a",labelTapToCancel:"nh\u1EA5n \u0111\u1EC3 h\u1EE7y",labelTapToRetry:"nh\u1EA5n \u0111\u1EC3 th\u1EED l\u1EA1i",labelTapToUndo:"nh\u1EA5n \u0111\u1EC3 ho\xE0n t\xE1c",labelButtonRemoveItem:"Xo\xE1",labelButtonAbortItemLoad:"Hu\u1EF7 b\u1ECF",labelButtonRetryItemLoad:"Th\u1EED l\u1EA1i",labelButtonAbortItemProcessing:"H\u1EE7y b\u1ECF",labelButtonUndoItemProcessing:"Ho\xE0n t\xE1c",labelButtonRetryItemProcessing:"Th\u1EED l\u1EA1i",labelButtonProcessItem:"T\u1EA3i l\xEAn",labelMaxFileSizeExceeded:"T\u1EADp tin qu\xE1 l\u1EDBn",labelMaxFileSize:"K\xEDch th\u01B0\u1EDBc t\u1EC7p t\u1ED1i \u0111a l\xE0 {filesize}",labelMaxTotalFileSizeExceeded:"\u0110\xE3 v\u01B0\u1EE3t qu\xE1 t\u1ED5ng k\xEDch th\u01B0\u1EDBc t\u1ED1i \u0111a",labelMaxTotalFileSize:"T\u1ED5ng k\xEDch th\u01B0\u1EDBc t\u1EC7p t\u1ED1i \u0111a l\xE0 {filesize}",labelFileTypeNotAllowed:"T\u1EC7p thu\u1ED9c lo\u1EA1i kh\xF4ng h\u1EE3p l\u1EC7",fileValidateTypeLabelExpectedTypes:"Ki\u1EC3u t\u1EC7p h\u1EE3p l\u1EC7 l\xE0 {allButLastType} ho\u1EB7c {lastType}",imageValidateSizeLabelFormatError:"Lo\u1EA1i h\xECnh \u1EA3nh kh\xF4ng \u0111\u01B0\u1EE3c h\u1ED7 tr\u1EE3",imageValidateSizeLabelImageSizeTooSmall:"H\xECnh \u1EA3nh qu\xE1 nh\u1ECF",imageValidateSizeLabelImageSizeTooBig:"H\xECnh \u1EA3nh qu\xE1 l\u1EDBn",imageValidateSizeLabelExpectedMinSize:"K\xEDch th\u01B0\u1EDBc t\u1ED1i thi\u1EC3u l\xE0 {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"K\xEDch th\u01B0\u1EDBc t\u1ED1i \u0111a l\xE0 {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u0110\u1ED9 ph\xE2n gi\u1EA3i qu\xE1 th\u1EA5p",imageValidateSizeLabelImageResolutionTooHigh:"\u0110\u1ED9 ph\xE2n gi\u1EA3i qu\xE1 cao",imageValidateSizeLabelExpectedMinResolution:"\u0110\u1ED9 ph\xE2n gi\u1EA3i t\u1ED1i thi\u1EC3u l\xE0 {minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u0110\u1ED9 ph\xE2n gi\u1EA3i t\u1ED1i \u0111a l\xE0 {maxResolution}"};var Zl={labelIdle:'\u62D6\u653E\u6587\u4EF6\uFF0C\u6216\u8005 \u6D4F\u89C8 ',labelInvalidField:"\u5B57\u6BB5\u5305\u542B\u65E0\u6548\u6587\u4EF6",labelFileWaitingForSize:"\u8BA1\u7B97\u6587\u4EF6\u5927\u5C0F",labelFileSizeNotAvailable:"\u6587\u4EF6\u5927\u5C0F\u4E0D\u53EF\u7528",labelFileLoading:"\u52A0\u8F7D",labelFileLoadError:"\u52A0\u8F7D\u9519\u8BEF",labelFileProcessing:"\u4E0A\u4F20",labelFileProcessingComplete:"\u5DF2\u4E0A\u4F20",labelFileProcessingAborted:"\u4E0A\u4F20\u5DF2\u53D6\u6D88",labelFileProcessingError:"\u4E0A\u4F20\u51FA\u9519",labelFileProcessingRevertError:"\u8FD8\u539F\u51FA\u9519",labelFileRemoveError:"\u5220\u9664\u51FA\u9519",labelTapToCancel:"\u70B9\u51FB\u53D6\u6D88",labelTapToRetry:"\u70B9\u51FB\u91CD\u8BD5",labelTapToUndo:"\u70B9\u51FB\u64A4\u6D88",labelButtonRemoveItem:"\u5220\u9664",labelButtonAbortItemLoad:"\u4E2D\u6B62",labelButtonRetryItemLoad:"\u91CD\u8BD5",labelButtonAbortItemProcessing:"\u53D6\u6D88",labelButtonUndoItemProcessing:"\u64A4\u6D88",labelButtonRetryItemProcessing:"\u91CD\u8BD5",labelButtonProcessItem:"\u4E0A\u4F20",labelMaxFileSizeExceeded:"\u6587\u4EF6\u592A\u5927",labelMaxFileSize:"\u6700\u5927\u503C: {filesize}",labelMaxTotalFileSizeExceeded:"\u8D85\u8FC7\u6700\u5927\u6587\u4EF6\u5927\u5C0F",labelMaxTotalFileSize:"\u6700\u5927\u6587\u4EF6\u5927\u5C0F\uFF1A{filesize}",labelFileTypeNotAllowed:"\u6587\u4EF6\u7C7B\u578B\u65E0\u6548",fileValidateTypeLabelExpectedTypes:"\u5E94\u4E3A {allButLastType} \u6216 {lastType}",imageValidateSizeLabelFormatError:"\u4E0D\u652F\u6301\u56FE\u50CF\u7C7B\u578B",imageValidateSizeLabelImageSizeTooSmall:"\u56FE\u50CF\u592A\u5C0F",imageValidateSizeLabelImageSizeTooBig:"\u56FE\u50CF\u592A\u5927",imageValidateSizeLabelExpectedMinSize:"\u6700\u5C0F\u503C: {minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u6700\u5927\u503C: {maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u5206\u8FA8\u7387\u592A\u4F4E",imageValidateSizeLabelImageResolutionTooHigh:"\u5206\u8FA8\u7387\u592A\u9AD8",imageValidateSizeLabelExpectedMinResolution:"\u6700\u5C0F\u5206\u8FA8\u7387\uFF1A{minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u6700\u5927\u5206\u8FA8\u7387\uFF1A{maxResolution}"};var Kl={labelIdle:'\u62D6\u653E\u6A94\u6848\uFF0C\u6216\u8005 \u700F\u89BD ',labelInvalidField:"\u4E0D\u652F\u63F4\u6B64\u6A94\u6848",labelFileWaitingForSize:"\u6B63\u5728\u8A08\u7B97\u6A94\u6848\u5927\u5C0F",labelFileSizeNotAvailable:"\u6A94\u6848\u5927\u5C0F\u4E0D\u7B26",labelFileLoading:"\u8B80\u53D6\u4E2D",labelFileLoadError:"\u8B80\u53D6\u932F\u8AA4",labelFileProcessing:"\u4E0A\u50B3",labelFileProcessingComplete:"\u5DF2\u4E0A\u50B3",labelFileProcessingAborted:"\u4E0A\u50B3\u5DF2\u53D6\u6D88",labelFileProcessingError:"\u4E0A\u50B3\u767C\u751F\u932F\u8AA4",labelFileProcessingRevertError:"\u9084\u539F\u932F\u8AA4",labelFileRemoveError:"\u522A\u9664\u932F\u8AA4",labelTapToCancel:"\u9EDE\u64CA\u53D6\u6D88",labelTapToRetry:"\u9EDE\u64CA\u91CD\u8A66",labelTapToUndo:"\u9EDE\u64CA\u9084\u539F",labelButtonRemoveItem:"\u522A\u9664",labelButtonAbortItemLoad:"\u505C\u6B62",labelButtonRetryItemLoad:"\u91CD\u8A66",labelButtonAbortItemProcessing:"\u53D6\u6D88",labelButtonUndoItemProcessing:"\u53D6\u6D88",labelButtonRetryItemProcessing:"\u91CD\u8A66",labelButtonProcessItem:"\u4E0A\u50B3",labelMaxFileSizeExceeded:"\u6A94\u6848\u904E\u5927",labelMaxFileSize:"\u6700\u5927\u503C\uFF1A{filesize}",labelMaxTotalFileSizeExceeded:"\u8D85\u904E\u6700\u5927\u53EF\u4E0A\u50B3\u5927\u5C0F",labelMaxTotalFileSize:"\u6700\u5927\u53EF\u4E0A\u50B3\u5927\u5C0F\uFF1A{filesize}",labelFileTypeNotAllowed:"\u4E0D\u652F\u63F4\u6B64\u985E\u578B\u6A94\u6848",fileValidateTypeLabelExpectedTypes:"\u61C9\u70BA {allButLastType} \u6216 {lastType}",imageValidateSizeLabelFormatError:"\u4E0D\u652F\u6301\u6B64\u985E\u5716\u7247\u985E\u578B",imageValidateSizeLabelImageSizeTooSmall:"\u5716\u7247\u904E\u5C0F",imageValidateSizeLabelImageSizeTooBig:"\u5716\u7247\u904E\u5927",imageValidateSizeLabelExpectedMinSize:"\u6700\u5C0F\u5C3A\u5BF8\uFF1A{minWidth} \xD7 {minHeight}",imageValidateSizeLabelExpectedMaxSize:"\u6700\u5927\u5C3A\u5BF8\uFF1A{maxWidth} \xD7 {maxHeight}",imageValidateSizeLabelImageResolutionTooLow:"\u89E3\u6790\u5EA6\u904E\u4F4E",imageValidateSizeLabelImageResolutionTooHigh:"\u89E3\u6790\u5EA6\u904E\u9AD8",imageValidateSizeLabelExpectedMinResolution:"\u6700\u4F4E\u89E3\u6790\u5EA6\uFF1A{minResolution}",imageValidateSizeLabelExpectedMaxResolution:"\u6700\u9AD8\u89E3\u6790\u5EA6\uFF1A{maxResolution}"};Ie(Ho);Ie(Yo);Ie(Xo);Ie(Zo);Ie(tl);Ie(ml);Ie(fl);Ie(wl);Ie(Oa);window.FilePond=oa;function ff({acceptedFileTypes:e,imageEditorEmptyFillColor:t,imageEditorMode:i,imageEditorViewportHeight:a,imageEditorViewportWidth:n,deleteUploadedFileUsing:o,isDeletable:l,isDisabled:r,getUploadedFilesUsing:s,imageCropAspectRatio:p,imagePreviewHeight:c,imageResizeMode:d,imageResizeTargetHeight:m,imageResizeTargetWidth:u,imageResizeUpscale:f,isAvatar:g,hasImageEditor:h,hasCircleCropper:v,canEditSvgs:E,isSvgEditingConfirmed:T,confirmSvgEditingMessage:I,disabledSvgEditingMessage:y,isDownloadable:b,isMultiple:w,isOpenable:x,isPreviewable:_,isReorderable:P,itemPanelAspectRatio:O,loadingIndicatorPosition:M,locale:N,maxFiles:S,maxSize:D,minSize:R,maxParallelUploads:L,panelAspectRatio:z,panelLayout:F,placeholder:G,removeUploadedFileButtonPosition:C,removeUploadedFileUsing:q,reorderUploadedFilesUsing:Q,shouldAppendFiles:$,shouldOrientImageFromExif:pe,shouldTransformImage:k,state:H,uploadButtonPosition:Y,uploadingMessage:le,uploadProgressIndicatorPosition:ee,uploadUsing:dt}){return{fileKeyIndex:{},pond:null,shouldUpdateState:!0,state:H,lastState:null,error:null,uploadedFileIndex:{},isEditorOpen:!1,editingFile:{},currentRatio:"",editor:{},init:async function(){Ft(Jl[N]??Jl.en),this.pond=ft(this.$refs.input,{acceptedFileTypes:e,allowImageExifOrientation:pe,allowPaste:!1,allowRemove:l,allowReorder:P,allowImagePreview:_,allowVideoPreview:_,allowAudioPreview:_,allowImageTransform:k,credits:!1,files:await this.getFiles(),imageCropAspectRatio:p,imagePreviewHeight:c,imageResizeTargetHeight:m,imageResizeTargetWidth:u,imageResizeMode:d,imageResizeUpscale:f,imageTransformOutputStripImageHead:!1,itemInsertLocation:$?"after":"before",...G&&{labelIdle:G},maxFiles:S,maxFileSize:D,minFileSize:R,...L&&{maxParallelUploads:L},styleButtonProcessItemPosition:Y,styleButtonRemoveItemPosition:C,styleItemPanelAspectRatio:O,styleLoadIndicatorPosition:M,stylePanelAspectRatio:z,stylePanelLayout:F,styleProgressIndicatorPosition:ee,server:{load:async(B,U)=>{let Z=await(await fetch(B,{cache:"no-store"})).blob();U(Z)},process:(B,U,X,Z,Ve,Ge)=>{this.shouldUpdateState=!1;let Qt=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,Zt=>(Zt^crypto.getRandomValues(new Uint8Array(1))[0]&15>>Zt/4).toString(16));dt(Qt,U,Zt=>{this.shouldUpdateState=!0,Z(Zt)},Ve,Ge)},remove:async(B,U)=>{let X=this.uploadedFileIndex[B]??null;X&&(await o(X),U())},revert:async(B,U)=>{await q(B),U()}},allowImageEdit:h,imageEditEditor:{open:B=>this.loadEditor(B),onconfirm:()=>{},oncancel:()=>this.closeEditor(),onclose:()=>this.closeEditor()},fileValidateTypeDetectType:(B,U)=>new Promise((X,Z)=>{let Ve=U||Uo.getType(B.name.split(".").pop());Ve?X(Ve):Z()})}),this.$watch("state",async()=>{if(this.pond&&this.shouldUpdateState&&this.state!==void 0){if(this.state!==null&&Object.values(this.state).filter(B=>B.startsWith("livewire-file:")).length){this.lastState=null;return}JSON.stringify(this.state)!==this.lastState&&(this.lastState=JSON.stringify(this.state),this.pond.files=await this.getFiles())}}),this.pond.on("reorderfiles",async B=>{let U=B.map(X=>X.source instanceof File?X.serverId:this.uploadedFileIndex[X.source]??null).filter(X=>X);await Q($?U:U.reverse())}),this.pond.on("initfile",async B=>{b&&(g||this.insertDownloadLink(B))}),this.pond.on("initfile",async B=>{x&&(g||this.insertOpenLink(B))}),this.pond.on("addfilestart",async B=>{B.status===bt.PROCESSING_QUEUED&&this.dispatchFormEvent("form-processing-started",{message:le})});let V=async()=>{this.pond.getFiles().filter(B=>B.status===bt.PROCESSING||B.status===bt.PROCESSING_QUEUED).length||this.dispatchFormEvent("form-processing-finished")};this.pond.on("processfile",V),this.pond.on("processfileabort",V),this.pond.on("processfilerevert",V),F==="compact circle"&&(this.pond.on("error",B=>{this.error=`${B.main}: ${B.sub}`.replace("Expects or","Expects")}),this.pond.on("removefile",()=>this.error=null))},destroy:function(){this.destroyEditor(),gt(this.$refs.input),this.pond=null},dispatchFormEvent:function(V,B={}){this.$el.closest("form")?.dispatchEvent(new CustomEvent(V,{composed:!0,cancelable:!0,detail:B}))},getUploadedFiles:async function(){let V=await s();this.fileKeyIndex=V??{},this.uploadedFileIndex=Object.entries(this.fileKeyIndex).filter(([B,U])=>U?.url).reduce((B,[U,X])=>(B[X.url]=U,B),{})},getFiles:async function(){await this.getUploadedFiles();let V=[];for(let B of Object.values(this.fileKeyIndex))B&&V.push({source:B.url,options:{type:"local",...!B.type||_&&(/^audio/.test(B.type)||/^image/.test(B.type)||/^video/.test(B.type))?{}:{file:{name:B.name,size:B.size,type:B.type}}}});return $?V:V.reverse()},insertDownloadLink:function(V){if(V.origin!==Ct.LOCAL)return;let B=this.getDownloadLink(V);B&&document.getElementById(`filepond--item-${V.id}`).querySelector(".filepond--file-info-main").prepend(B)},insertOpenLink:function(V){if(V.origin!==Ct.LOCAL)return;let B=this.getOpenLink(V);B&&document.getElementById(`filepond--item-${V.id}`).querySelector(".filepond--file-info-main").prepend(B)},getDownloadLink:function(V){let B=V.source;if(!B)return;let U=document.createElement("a");return U.className="filepond--download-icon",U.href=B,U.download=V.file.name,U},getOpenLink:function(V){let B=V.source;if(!B)return;let U=document.createElement("a");return U.className="filepond--open-icon",U.href=B,U.target="_blank",U},initEditor:function(){r||h&&(this.editor=new ya(this.$refs.editor,{aspectRatio:n/a,autoCropArea:1,center:!0,crop:V=>{this.$refs.xPositionInput.value=Math.round(V.detail.x),this.$refs.yPositionInput.value=Math.round(V.detail.y),this.$refs.heightInput.value=Math.round(V.detail.height),this.$refs.widthInput.value=Math.round(V.detail.width),this.$refs.rotationInput.value=V.detail.rotate},cropBoxResizable:!0,guides:!0,highlight:!0,responsive:!0,toggleDragModeOnDblclick:!0,viewMode:i,wheelZoomRatio:.02}))},closeEditor:function(){this.editingFile={},this.isEditorOpen=!1,this.destroyEditor()},fixImageDimensions:function(V,B){if(V.type!=="image/svg+xml")return B(V);let U=new FileReader;U.onload=X=>{let Z=new DOMParser().parseFromString(X.target.result,"image/svg+xml")?.querySelector("svg");if(!Z)return B(V);let Ve=["viewBox","ViewBox","viewbox"].find(Qt=>Z.hasAttribute(Qt));if(!Ve)return B(V);let Ge=Z.getAttribute(Ve).split(" ");return!Ge||Ge.length!==4?B(V):(Z.setAttribute("width",parseFloat(Ge[2])+"pt"),Z.setAttribute("height",parseFloat(Ge[3])+"pt"),B(new File([new Blob([new XMLSerializer().serializeToString(Z)],{type:"image/svg+xml"})],V.name,{type:"image/svg+xml",_relativePath:""})))},U.readAsText(V)},loadEditor:function(V){if(r||!h||!V)return;let B=V.type==="image/svg+xml";if(!E&&B){alert(y);return}T&&B&&!confirm(I)||this.fixImageDimensions(V,U=>{this.editingFile=U,this.initEditor();let X=new FileReader;X.onload=Z=>{this.isEditorOpen=!0,setTimeout(()=>this.editor.replace(Z.target.result),200)},X.readAsDataURL(V)})},getRoundedCanvas:function(V){let B=V.width,U=V.height,X=document.createElement("canvas");X.width=B,X.height=U;let Z=X.getContext("2d");return Z.imageSmoothingEnabled=!0,Z.drawImage(V,0,0,B,U),Z.globalCompositeOperation="destination-in",Z.beginPath(),Z.ellipse(B/2,U/2,B/2,U/2,0,0,2*Math.PI),Z.fill(),X},saveEditor:function(){if(r||!h)return;let V=this.editor.getCroppedCanvas({fillColor:t??"transparent",height:m,imageSmoothingEnabled:!0,imageSmoothingQuality:"high",width:u});v&&(V=this.getRoundedCanvas(V)),V.toBlob(B=>{w&&this.pond.removeFile(this.pond.getFiles().find(U=>U.filename===this.editingFile.name)?.id,{revert:!0}),this.$nextTick(()=>{this.shouldUpdateState=!1;let U=this.editingFile.name.slice(0,this.editingFile.name.lastIndexOf(".")),X=this.editingFile.name.split(".").pop();X==="svg"&&(X="png");let Z=/-v(\d+)/;Z.test(U)?U=U.replace(Z,(Ve,Ge)=>`-v${Number(Ge)+1}`):U+="-v1",this.pond.addFile(new File([B],`${U}.${X}`,{type:this.editingFile.type==="image/svg+xml"||v?"image/png":this.editingFile.type,lastModified:new Date().getTime()})).then(()=>{this.closeEditor()}).catch(()=>{this.closeEditor()})})},v?"image/png":this.editingFile.type)},destroyEditor:function(){this.editor&&typeof this.editor.destroy=="function"&&this.editor.destroy(),this.editor=null}}}var Jl={ar:Sl,ca:Ll,ckb:Al,cs:Ml,da:Ol,de:Pl,en:Dl,es:Fl,fa:zl,fi:Cl,fr:Nl,hu:Bl,id:kl,it:Vl,km:Gl,nl:Ul,no:Wl,pl:Hl,pt_BR:wi,pt_PT:wi,ro:jl,ru:Yl,sv:ql,tr:$l,uk:Xl,vi:Ql,zh_CN:Zl,zh_TW:Kl};export{ff as default}; +/*! Bundled license information: + +filepond/dist/filepond.esm.js: + (*! + * FilePond 4.32.6 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +cropperjs/dist/cropper.esm.js: + (*! + * Cropper.js v1.6.2 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2024-04-21T07:43:05.335Z + *) + +filepond-plugin-file-validate-size/dist/filepond-plugin-file-validate-size.esm.js: + (*! + * FilePondPluginFileValidateSize 2.2.8 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-file-validate-type/dist/filepond-plugin-file-validate-type.esm.js: + (*! + * FilePondPluginFileValidateType 1.2.9 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-crop/dist/filepond-plugin-image-crop.esm.js: + (*! + * FilePondPluginImageCrop 2.0.6 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-edit/dist/filepond-plugin-image-edit.esm.js: + (*! + * FilePondPluginImageEdit 1.6.3 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-exif-orientation/dist/filepond-plugin-image-exif-orientation.esm.js: + (*! + * FilePondPluginImageExifOrientation 1.0.11 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-preview/dist/filepond-plugin-image-preview.esm.js: + (*! + * FilePondPluginImagePreview 4.6.12 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-resize/dist/filepond-plugin-image-resize.esm.js: + (*! + * FilePondPluginImageResize 2.0.10 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-image-transform/dist/filepond-plugin-image-transform.esm.js: + (*! + * FilePondPluginImageTransform 3.8.7 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit https://pqina.nl/filepond/ for details. + *) + +filepond-plugin-media-preview/dist/filepond-plugin-media-preview.esm.js: + (*! + * FilePondPluginMediaPreview 1.0.11 + * Licensed under MIT, https://opensource.org/licenses/MIT/ + * Please visit undefined for details. + *) +*/ diff --git a/ems-sense/public/js/filament/forms/components/key-value.js b/ems-sense/public/js/filament/forms/components/key-value.js new file mode 100644 index 0000000..9c847c0 --- /dev/null +++ b/ems-sense/public/js/filament/forms/components/key-value.js @@ -0,0 +1 @@ +function r({state:o}){return{state:o,rows:[],shouldUpdateRows:!0,init:function(){this.updateRows(),this.rows.length<=0?this.rows.push({key:"",value:""}):this.updateState(),this.$watch("state",(t,e)=>{let s=i=>i===null?0:Array.isArray(i)?i.length:typeof i!="object"?0:Object.keys(i).length;s(t)===0&&s(e)===0||this.updateRows()})},addRow:function(){this.rows.push({key:"",value:""}),this.updateState()},deleteRow:function(t){this.rows.splice(t,1),this.rows.length<=0&&this.addRow(),this.updateState()},reorderRows:function(t){let e=Alpine.raw(this.rows);this.rows=[];let s=e.splice(t.oldIndex,1)[0];e.splice(t.newIndex,0,s),this.$nextTick(()=>{this.rows=e,this.updateState()})},updateRows:function(){if(!this.shouldUpdateRows){this.shouldUpdateRows=!0;return}let t=[];for(let[e,s]of Object.entries(this.state??{}))t.push({key:e,value:s});this.rows=t},updateState:function(){let t={};this.rows.forEach(e=>{e.key===""||e.key===null||(t[e.key]=e.value)}),this.shouldUpdateRows=!1,this.state=t}}}export{r as default}; diff --git a/ems-sense/public/js/filament/forms/components/markdown-editor.js b/ems-sense/public/js/filament/forms/components/markdown-editor.js new file mode 100644 index 0000000..c586184 --- /dev/null +++ b/ems-sense/public/js/filament/forms/components/markdown-editor.js @@ -0,0 +1,51 @@ +var ss=Object.defineProperty;var Sd=Object.getOwnPropertyDescriptor;var Td=Object.getOwnPropertyNames;var Ld=Object.prototype.hasOwnProperty;var Cd=(o,p)=>()=>(o&&(p=o(o=0)),p);var Ke=(o,p)=>()=>(p||o((p={exports:{}}).exports,p),p.exports);var Ed=(o,p,v,C)=>{if(p&&typeof p=="object"||typeof p=="function")for(let b of Td(p))!Ld.call(o,b)&&b!==v&&ss(o,b,{get:()=>p[b],enumerable:!(C=Sd(p,b))||C.enumerable});return o};var zd=o=>Ed(ss({},"__esModule",{value:!0}),o);var We=Ke((Yo,Qo)=>{(function(o,p){typeof Yo=="object"&&typeof Qo<"u"?Qo.exports=p():typeof define=="function"&&define.amd?define(p):(o=o||self,o.CodeMirror=p())})(Yo,function(){"use strict";var o=navigator.userAgent,p=navigator.platform,v=/gecko\/\d/i.test(o),C=/MSIE \d/.test(o),b=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(o),S=/Edge\/(\d+)/.exec(o),s=C||b||S,h=s&&(C?document.documentMode||6:+(S||b)[1]),g=!S&&/WebKit\//.test(o),T=g&&/Qt\/\d+\.\d+/.test(o),x=!S&&/Chrome\/(\d+)/.exec(o),c=x&&+x[1],d=/Opera\//.test(o),w=/Apple Computer/.test(navigator.vendor),E=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(o),z=/PhantomJS/.test(o),y=w&&(/Mobile\/\w+/.test(o)||navigator.maxTouchPoints>2),R=/Android/.test(o),M=y||R||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(o),H=y||/Mac/.test(p),Z=/\bCrOS\b/.test(o),ee=/win/i.test(p),re=d&&o.match(/Version\/(\d*\.\d*)/);re&&(re=Number(re[1])),re&&re>=15&&(d=!1,g=!0);var N=H&&(T||d&&(re==null||re<12.11)),F=v||s&&h>=9;function D(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var Q=function(e,t){var n=e.className,r=D(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function j(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function V(e,t){return j(e).appendChild(t)}function _(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),typeof t=="string")i.appendChild(document.createTextNode(t));else if(t)for(var a=0;a=t)return l+(t-a);l+=u-a,l+=n-l%n,a=u+1}}var qe=function(){this.id=null,this.f=null,this.time=0,this.handler=Ee(this.onTimeout,this)};qe.prototype.onTimeout=function(e){e.id=0,e.time<=+new Date?e.f():setTimeout(e.handler,e.time-+new Date)},qe.prototype.set=function(e,t){this.f=t;var n=+new Date+e;(!this.id||n=t)return r+Math.min(l,t-i);if(i+=a-r,i+=n-i%n,r=a+1,i>=t)return r}}var U=[""];function G(e){for(;U.length<=e;)U.push(ce(U)+" ");return U[e]}function ce(e){return e[e.length-1]}function Be(e,t){for(var n=[],r=0;r"\x80"&&(e.toUpperCase()!=e.toLowerCase()||Ue.test(e))}function Me(e,t){return t?t.source.indexOf("\\w")>-1&&we(e)?!0:t.test(e):we(e)}function Le(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var $=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function W(e){return e.charCodeAt(0)>=768&&$.test(e)}function se(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,a=r<0?Math.ceil(i):Math.floor(i);if(a==t)return e(a)?t:n;e(a)?n=a:t=a+r}}function nt(e,t,n,r){if(!e)return r(t,n,"ltr",0);for(var i=!1,a=0;at||t==n&&l.to==t)&&(r(Math.max(l.from,t),Math.min(l.to,n),l.level==1?"rtl":"ltr",a),i=!0)}i||r(t,n,"ltr")}var dt=null;function Pt(e,t,n){var r;dt=null;for(var i=0;it)return i;a.to==t&&(a.from!=a.to&&n=="before"?r=i:dt=i),a.from==t&&(a.from!=a.to&&n!="before"?r=i:dt=i)}return r??dt}var It=function(){var e="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",t="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function n(m){return m<=247?e.charAt(m):1424<=m&&m<=1524?"R":1536<=m&&m<=1785?t.charAt(m-1536):1774<=m&&m<=2220?"r":8192<=m&&m<=8203?"w":m==8204?"b":"L"}var r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,a=/[LRr]/,l=/[Lb1n]/,u=/[1n]/;function f(m,A,P){this.level=m,this.from=A,this.to=P}return function(m,A){var P=A=="ltr"?"L":"R";if(m.length==0||A=="ltr"&&!r.test(m))return!1;for(var J=m.length,Y=[],ie=0;ie-1&&(r[t]=i.slice(0,a).concat(i.slice(a+1)))}}}function it(e,t){var n=nr(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function Wt(e){e.prototype.on=function(t,n){Fe(this,t,n)},e.prototype.off=function(t,n){_t(this,t,n)}}function kt(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Hr(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Ct(e){return e.defaultPrevented!=null?e.defaultPrevented:e.returnValue==!1}function dr(e){kt(e),Hr(e)}function yn(e){return e.target||e.srcElement}function Ut(e){var t=e.which;return t==null&&(e.button&1?t=1:e.button&2?t=3:e.button&4&&(t=2)),H&&e.ctrlKey&&t==1&&(t=3),t}var eo=function(){if(s&&h<9)return!1;var e=_("div");return"draggable"in e||"dragDrop"in e}(),Br;function ei(e){if(Br==null){var t=_("span","\u200B");V(e,_("span",[t,document.createTextNode("x")])),e.firstChild.offsetHeight!=0&&(Br=t.offsetWidth<=1&&t.offsetHeight>2&&!(s&&h<8))}var n=Br?_("span","\u200B"):_("span","\xA0",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}var xn;function pr(e){if(xn!=null)return xn;var t=V(e,document.createTextNode("A\u062EA")),n=X(t,0,1).getBoundingClientRect(),r=X(t,1,2).getBoundingClientRect();return j(e),!n||n.left==n.right?!1:xn=r.right-n.right<3}var Bt=` + +b`.split(/\n/).length!=3?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf(` +`,t);i==-1&&(i=e.length);var a=e.slice(t,e.charAt(i-1)=="\r"?i-1:i),l=a.indexOf("\r");l!=-1?(n.push(a.slice(0,l)),t+=l+1):(n.push(a),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},hr=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch{return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch{}return!t||t.parentElement()!=e?!1:t.compareEndPoints("StartToEnd",t)!=0},ti=function(){var e=_("div");return"oncopy"in e?!0:(e.setAttribute("oncopy","return;"),typeof e.oncopy=="function")}(),$t=null;function to(e){if($t!=null)return $t;var t=V(e,_("span","x")),n=t.getBoundingClientRect(),r=X(t,0,1).getBoundingClientRect();return $t=Math.abs(n.left-r.left)>1}var Wr={},Kt={};function Gt(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Wr[e]=t}function Cr(e,t){Kt[e]=t}function Ur(e){if(typeof e=="string"&&Kt.hasOwnProperty(e))e=Kt[e];else if(e&&typeof e.name=="string"&&Kt.hasOwnProperty(e.name)){var t=Kt[e.name];typeof t=="string"&&(t={name:t}),e=oe(t,e),e.name=t.name}else{if(typeof e=="string"&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Ur("application/xml");if(typeof e=="string"&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Ur("application/json")}return typeof e=="string"?{name:e}:e||{name:"null"}}function $r(e,t){t=Ur(t);var n=Wr[t.name];if(!n)return $r(e,"text/plain");var r=n(e,t);if(gr.hasOwnProperty(t.name)){var i=gr[t.name];for(var a in i)i.hasOwnProperty(a)&&(r.hasOwnProperty(a)&&(r["_"+a]=r[a]),r[a]=i[a])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)r[l]=t.modeProps[l];return r}var gr={};function Kr(e,t){var n=gr.hasOwnProperty(e)?gr[e]:gr[e]={};ge(t,n)}function Vt(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function _n(e,t){for(var n;e.innerMode&&(n=e.innerMode(t),!(!n||n.mode==e));)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Gr(e,t,n){return e.startState?e.startState(t,n):!0}var at=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};at.prototype.eol=function(){return this.pos>=this.string.length},at.prototype.sol=function(){return this.pos==this.lineStart},at.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},at.prototype.next=function(){if(this.post},at.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},at.prototype.skipToEnd=function(){this.pos=this.string.length},at.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},at.prototype.backUp=function(e){this.pos-=e},at.prototype.column=function(){return this.lastColumnPos0?null:(a&&t!==!1&&(this.pos+=a[0].length),a)}},at.prototype.current=function(){return this.string.slice(this.start,this.pos)},at.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},at.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},at.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};function Ae(e,t){if(t-=e.first,t<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],a=i.chunkSize();if(t=e.first&&tn?ne(n,Ae(e,n).text.length):Sc(t,Ae(e,t.line).text.length)}function Sc(e,t){var n=e.ch;return n==null||n>t?ne(e.line,t):n<0?ne(e.line,0):e}function ca(e,t){for(var n=[],r=0;rthis.maxLookAhead&&(this.maxLookAhead=e),t},Jt.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},Jt.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Jt.fromSaved=function(e,t,n){return t instanceof ri?new Jt(e,Vt(e.mode,t.state),n,t.lookAhead):new Jt(e,Vt(e.mode,t),n)},Jt.prototype.save=function(e){var t=e!==!1?Vt(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ri(t,this.maxLookAhead):t};function fa(e,t,n,r){var i=[e.state.modeGen],a={};va(e,t.text,e.doc.mode,n,function(m,A){return i.push(m,A)},a,r);for(var l=n.state,u=function(m){n.baseTokens=i;var A=e.state.overlays[m],P=1,J=0;n.state=!0,va(e,t.text,A.mode,n,function(Y,ie){for(var ue=P;JY&&i.splice(P,1,Y,i[P+1],me),P+=2,J=Math.min(Y,me)}if(ie)if(A.opaque)i.splice(ue,P-ue,Y,"overlay "+ie),P=ue+2;else for(;uee.options.maxHighlightLength&&Vt(e.doc.mode,r.state),a=fa(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=a.styles,a.classes?t.styleClasses=a.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function wn(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new Jt(r,!0,t);var a=Tc(e,t,n),l=a>r.first&&Ae(r,a-1).stateAfter,u=l?Jt.fromSaved(r,l,a):new Jt(r,Gr(r.mode),a);return r.iter(a,t,function(f){ro(e,f.text,u);var m=u.line;f.stateAfter=m==t-1||m%5==0||m>=i.viewFrom&&mt.start)return a}throw new Error("Mode "+e.name+" failed to advance stream.")}var ha=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function ga(e,t,n,r){var i=e.doc,a=i.mode,l;t=Re(i,t);var u=Ae(i,t.line),f=wn(e,t.line,n),m=new at(u.text,e.options.tabSize,f),A;for(r&&(A=[]);(r||m.pose.options.maxHighlightLength?(u=!1,l&&ro(e,t,r,A.pos),A.pos=t.length,P=null):P=ma(no(n,A,r.state,J),a),J){var Y=J[0].name;Y&&(P="m-"+(P?Y+" "+P:Y))}if(!u||m!=P){for(;fl;--u){if(u<=a.first)return a.first;var f=Ae(a,u-1),m=f.stateAfter;if(m&&(!n||u+(m instanceof ri?m.lookAhead:0)<=a.modeFrontier))return u;var A=Oe(f.text,null,e.options.tabSize);(i==null||r>A)&&(i=u-1,r=A)}return i}function Lc(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=Ae(e,r).stateAfter;if(i&&(!(i instanceof ri)||r+i.lookAhead=t:a.to>t);(r||(r=[])).push(new ni(l,a.from,f?null:a.to))}}return r}function Dc(e,t,n){var r;if(e)for(var i=0;i=t:a.to>t);if(u||a.from==t&&l.type=="bookmark"&&(!n||a.marker.insertLeft)){var f=a.from==null||(l.inclusiveLeft?a.from<=t:a.from0&&u)for(var Ce=0;Ce0)){var A=[f,1],P=ye(m.from,u.from),J=ye(m.to,u.to);(P<0||!l.inclusiveLeft&&!P)&&A.push({from:m.from,to:u.from}),(J>0||!l.inclusiveRight&&!J)&&A.push({from:u.to,to:m.to}),i.splice.apply(i,A),f+=A.length-3}}return i}function xa(e){var t=e.markedSpans;if(t){for(var n=0;nt)&&(!r||oo(r,a.marker)<0)&&(r=a.marker)}return r}function Sa(e,t,n,r,i){var a=Ae(e,t),l=or&&a.markedSpans;if(l)for(var u=0;u=0&&P<=0||A<=0&&P>=0)&&(A<=0&&(f.marker.inclusiveRight&&i.inclusiveLeft?ye(m.to,n)>=0:ye(m.to,n)>0)||A>=0&&(f.marker.inclusiveRight&&i.inclusiveLeft?ye(m.from,r)<=0:ye(m.from,r)<0)))return!0}}}function Zt(e){for(var t;t=wa(e);)e=t.find(-1,!0).line;return e}function Fc(e){for(var t;t=ai(e);)e=t.find(1,!0).line;return e}function Nc(e){for(var t,n;t=ai(e);)e=t.find(1,!0).line,(n||(n=[])).push(e);return n}function ao(e,t){var n=Ae(e,t),r=Zt(n);return n==r?t:k(r)}function Ta(e,t){if(t>e.lastLine())return t;var n=Ae(e,t),r;if(!mr(e,n))return t;for(;r=ai(n);)n=r.find(1,!0).line;return k(n)+1}function mr(e,t){var n=or&&t.markedSpans;if(n){for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=i,t.maxLine=r)})}var Xr=function(e,t,n){this.text=e,_a(this,t),this.height=n?n(this):1};Xr.prototype.lineNo=function(){return k(this)},Wt(Xr);function Oc(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),e.order!=null&&(e.order=null),xa(e),_a(e,n);var i=r?r(e):1;i!=e.height&&jt(e,i)}function Pc(e){e.parent=null,xa(e)}var jc={},Rc={};function La(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?Rc:jc;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function Ca(e,t){var n=K("span",null,null,g?"padding-right: .1px":null),r={pre:K("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var a=i?t.rest[i-1]:t.line,l=void 0;r.pos=0,r.addToken=Bc,pr(e.display.measure)&&(l=Pe(a,e.doc.direction))&&(r.addToken=Uc(r.addToken,l)),r.map=[];var u=t!=e.display.externalMeasured&&k(a);$c(a,r,da(e,a,u)),a.styleClasses&&(a.styleClasses.bgClass&&(r.bgClass=xe(a.styleClasses.bgClass,r.bgClass||"")),a.styleClasses.textClass&&(r.textClass=xe(a.styleClasses.textClass,r.textClass||""))),r.map.length==0&&r.map.push(0,0,r.content.appendChild(ei(e.display.measure))),i==0?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(g){var f=r.content.lastChild;(/\bcm-tab\b/.test(f.className)||f.querySelector&&f.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return it(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=xe(r.pre.className,r.textClass||"")),r}function Hc(e){var t=_("span","\u2022","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Bc(e,t,n,r,i,a,l){if(t){var u=e.splitSpaces?Wc(t,e.trailingSpace):t,f=e.cm.state.specialChars,m=!1,A;if(!f.test(t))e.col+=t.length,A=document.createTextNode(u),e.map.push(e.pos,e.pos+t.length,A),s&&h<9&&(m=!0),e.pos+=t.length;else{A=document.createDocumentFragment();for(var P=0;;){f.lastIndex=P;var J=f.exec(t),Y=J?J.index-P:t.length-P;if(Y){var ie=document.createTextNode(u.slice(P,P+Y));s&&h<9?A.appendChild(_("span",[ie])):A.appendChild(ie),e.map.push(e.pos,e.pos+Y,ie),e.col+=Y,e.pos+=Y}if(!J)break;P+=Y+1;var ue=void 0;if(J[0]==" "){var me=e.cm.options.tabSize,ve=me-e.col%me;ue=A.appendChild(_("span",G(ve),"cm-tab")),ue.setAttribute("role","presentation"),ue.setAttribute("cm-text"," "),e.col+=ve}else J[0]=="\r"||J[0]==` +`?(ue=A.appendChild(_("span",J[0]=="\r"?"\u240D":"\u2424","cm-invalidchar")),ue.setAttribute("cm-text",J[0]),e.col+=1):(ue=e.cm.options.specialCharPlaceholder(J[0]),ue.setAttribute("cm-text",J[0]),s&&h<9?A.appendChild(_("span",[ue])):A.appendChild(ue),e.col+=1);e.map.push(e.pos,e.pos+1,ue),e.pos++}}if(e.trailingSpace=u.charCodeAt(t.length-1)==32,n||r||i||m||a||l){var _e=n||"";r&&(_e+=r),i&&(_e+=i);var be=_("span",[A],_e,a);if(l)for(var Ce in l)l.hasOwnProperty(Ce)&&Ce!="style"&&Ce!="class"&&be.setAttribute(Ce,l[Ce]);return e.content.appendChild(be)}e.content.appendChild(A)}}function Wc(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;im&&P.from<=m));J++);if(P.to>=A)return e(n,r,i,a,l,u,f);e(n,r.slice(0,P.to-m),i,a,null,u,f),a=null,r=r.slice(P.to-m),m=P.to}}}function Ea(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function $c(e,t,n){var r=e.markedSpans,i=e.text,a=0;if(!r){for(var l=1;lf||$e.collapsed&&Ie.to==f&&Ie.from==f)){if(Ie.to!=null&&Ie.to!=f&&Y>Ie.to&&(Y=Ie.to,ue=""),$e.className&&(ie+=" "+$e.className),$e.css&&(J=(J?J+";":"")+$e.css),$e.startStyle&&Ie.from==f&&(me+=" "+$e.startStyle),$e.endStyle&&Ie.to==Y&&(Ce||(Ce=[])).push($e.endStyle,Ie.to),$e.title&&((_e||(_e={})).title=$e.title),$e.attributes)for(var Ve in $e.attributes)(_e||(_e={}))[Ve]=$e.attributes[Ve];$e.collapsed&&(!ve||oo(ve.marker,$e)<0)&&(ve=Ie)}else Ie.from>f&&Y>Ie.from&&(Y=Ie.from)}if(Ce)for(var vt=0;vt=u)break;for(var Ot=Math.min(u,Y);;){if(A){var At=f+A.length;if(!ve){var ut=At>Ot?A.slice(0,Ot-f):A;t.addToken(t,ut,P?P+ie:ie,me,f+ut.length==Y?ue:"",J,_e)}if(At>=Ot){A=A.slice(Ot-f),f=Ot;break}f=At,me=""}A=i.slice(a,a=n[m++]),P=La(n[m++],t.cm.options)}}}function za(e,t,n){this.line=t,this.rest=Nc(t),this.size=this.rest?k(ce(this.rest))-n+1:1,this.node=this.text=null,this.hidden=mr(e,t)}function si(e,t,n){for(var r=[],i,a=t;a2&&a.push((f.bottom+m.top)/2-n.top)}}a.push(n.bottom-n.top)}}function Na(e,t,n){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};if(e.rest){for(var r=0;rn)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}}function rf(e,t){t=Zt(t);var n=k(t),r=e.display.externalMeasured=new za(e.doc,t,n);r.lineN=n;var i=r.built=Ca(e,r);return r.text=i.pre,V(e.display.lineMeasure,i.pre),r}function Oa(e,t,n,r){return tr(e,Qr(e,t),n,r)}function po(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&tt)&&(a=f-u,i=a-1,t>=f&&(l="right")),i!=null){if(r=e[m+2],u==f&&n==(r.insertLeft?"left":"right")&&(l=n),n=="left"&&i==0)for(;m&&e[m-2]==e[m-3]&&e[m-1].insertLeft;)r=e[(m-=3)+2],l="left";if(n=="right"&&i==f-u)for(;m=0&&(n=e[i]).left==n.right;i--);return n}function of(e,t,n,r){var i=ja(t.map,n,r),a=i.node,l=i.start,u=i.end,f=i.collapse,m;if(a.nodeType==3){for(var A=0;A<4;A++){for(;l&&W(t.line.text.charAt(i.coverStart+l));)--l;for(;i.coverStart+u0&&(f=r="right");var P;e.options.lineWrapping&&(P=a.getClientRects()).length>1?m=P[r=="right"?P.length-1:0]:m=a.getBoundingClientRect()}if(s&&h<9&&!l&&(!m||!m.left&&!m.right)){var J=a.parentNode.getClientRects()[0];J?m={left:J.left,right:J.left+Jr(e.display),top:J.top,bottom:J.bottom}:m=Pa}for(var Y=m.top-t.rect.top,ie=m.bottom-t.rect.top,ue=(Y+ie)/2,me=t.view.measure.heights,ve=0;ve=r.text.length?(f=r.text.length,m="before"):f<=0&&(f=0,m="after"),!u)return l(m=="before"?f-1:f,m=="before");function A(ie,ue,me){var ve=u[ue],_e=ve.level==1;return l(me?ie-1:ie,_e!=me)}var P=Pt(u,f,m),J=dt,Y=A(f,P,m=="before");return J!=null&&(Y.other=A(f,J,m!="before")),Y}function $a(e,t){var n=0;t=Re(e.doc,t),e.options.lineWrapping||(n=Jr(e.display)*t.ch);var r=Ae(e.doc,t.line),i=ar(r)+ui(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function go(e,t,n,r,i){var a=ne(e,t,n);return a.xRel=i,r&&(a.outside=r),a}function mo(e,t,n){var r=e.doc;if(n+=e.display.viewOffset,n<0)return go(r.first,0,null,-1,-1);var i=O(r,n),a=r.first+r.size-1;if(i>a)return go(r.first+r.size-1,Ae(r,a).text.length,null,1,1);t<0&&(t=0);for(var l=Ae(r,i);;){var u=lf(e,l,i,t,n),f=Ic(l,u.ch+(u.xRel>0||u.outside>0?1:0));if(!f)return u;var m=f.find(1);if(m.line==i)return m;l=Ae(r,i=m.line)}}function Ka(e,t,n,r){r-=ho(t);var i=t.text.length,a=De(function(l){return tr(e,n,l-1).bottom<=r},i,0);return i=De(function(l){return tr(e,n,l).top>r},a,i),{begin:a,end:i}}function Ga(e,t,n,r){n||(n=Qr(e,t));var i=ci(e,t,tr(e,n,r),"line").top;return Ka(e,t,n,i)}function vo(e,t,n,r){return e.bottom<=n?!1:e.top>n?!0:(r?e.left:e.right)>t}function lf(e,t,n,r,i){i-=ar(t);var a=Qr(e,t),l=ho(t),u=0,f=t.text.length,m=!0,A=Pe(t,e.doc.direction);if(A){var P=(e.options.lineWrapping?uf:sf)(e,t,n,a,A,r,i);m=P.level!=1,u=m?P.from:P.to-1,f=m?P.to:P.from-1}var J=null,Y=null,ie=De(function(Ne){var Ie=tr(e,a,Ne);return Ie.top+=l,Ie.bottom+=l,vo(Ie,r,i,!1)?(Ie.top<=i&&Ie.left<=r&&(J=Ne,Y=Ie),!0):!1},u,f),ue,me,ve=!1;if(Y){var _e=r-Y.left=Ce.bottom?1:0}return ie=se(t.text,ie,1),go(n,ie,me,ve,r-ue)}function sf(e,t,n,r,i,a,l){var u=De(function(P){var J=i[P],Y=J.level!=1;return vo(Xt(e,ne(n,Y?J.to:J.from,Y?"before":"after"),"line",t,r),a,l,!0)},0,i.length-1),f=i[u];if(u>0){var m=f.level!=1,A=Xt(e,ne(n,m?f.from:f.to,m?"after":"before"),"line",t,r);vo(A,a,l,!0)&&A.top>l&&(f=i[u-1])}return f}function uf(e,t,n,r,i,a,l){var u=Ka(e,t,r,l),f=u.begin,m=u.end;/\s/.test(t.text.charAt(m-1))&&m--;for(var A=null,P=null,J=0;J=m||Y.to<=f)){var ie=Y.level!=1,ue=tr(e,r,ie?Math.min(m,Y.to)-1:Math.max(f,Y.from)).right,me=ueme)&&(A=Y,P=me)}}return A||(A=i[i.length-1]),A.fromm&&(A={from:A.from,to:m,level:A.level}),A}var zr;function Vr(e){if(e.cachedTextHeight!=null)return e.cachedTextHeight;if(zr==null){zr=_("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)zr.appendChild(document.createTextNode("x")),zr.appendChild(_("br"));zr.appendChild(document.createTextNode("x"))}V(e.measure,zr);var n=zr.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),j(e.measure),n||1}function Jr(e){if(e.cachedCharWidth!=null)return e.cachedCharWidth;var t=_("span","xxxxxxxxxx"),n=_("pre",[t],"CodeMirror-line-like");V(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function bo(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,a=t.gutters.firstChild,l=0;a;a=a.nextSibling,++l){var u=e.display.gutterSpecs[l].className;n[u]=a.offsetLeft+a.clientLeft+i,r[u]=a.clientWidth}return{fixedPos:yo(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function yo(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function Za(e){var t=Vr(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/Jr(e.display)-3);return function(i){if(mr(e.doc,i))return 0;var a=0;if(i.widgets)for(var l=0;l0&&(m=Ae(e.doc,f.line).text).length==f.ch){var A=Oe(m,m.length,e.options.tabSize)-m.length;f=ne(f.line,Math.max(0,Math.round((a-Fa(e.display).left)/Jr(e.display))-A))}return f}function Ar(e,t){if(t>=e.display.viewTo||(t-=e.display.viewFrom,t<0))return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)or&&ao(e.doc,t)i.viewFrom?br(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)br(e);else if(t<=i.viewFrom){var a=di(e,n,n+r,1);a?(i.view=i.view.slice(a.index),i.viewFrom=a.lineN,i.viewTo+=r):br(e)}else if(n>=i.viewTo){var l=di(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):br(e)}else{var u=di(e,t,t,-1),f=di(e,n,n+r,1);u&&f?(i.view=i.view.slice(0,u.index).concat(si(e,u.lineN,f.lineN)).concat(i.view.slice(f.index)),i.viewTo+=r):br(e)}var m=i.externalMeasured;m&&(n=i.lineN&&t=r.viewTo)){var a=r.view[Ar(e,t)];if(a.node!=null){var l=a.changes||(a.changes=[]);Se(l,n)==-1&&l.push(n)}}}function br(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function di(e,t,n,r){var i=Ar(e,t),a,l=e.display.view;if(!or||n==e.doc.first+e.doc.size)return{index:i,lineN:n};for(var u=e.display.viewFrom,f=0;f0){if(i==l.length-1)return null;a=u+l[i].size-t,i++}else a=u-t;t+=a,n+=a}for(;ao(e.doc,n)!=n;){if(i==(r<0?0:l.length-1))return null;n+=r*l[i-(r<0?1:0)].size,i+=r}return{index:i,lineN:n}}function cf(e,t,n){var r=e.display,i=r.view;i.length==0||t>=r.viewTo||n<=r.viewFrom?(r.view=si(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=si(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,Ar(e,n)))),r.viewTo=n}function Xa(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||f.to().line0?l:e.defaultCharWidth())+"px"}if(r.other){var u=n.appendChild(_("div","\xA0","CodeMirror-cursor CodeMirror-secondarycursor"));u.style.display="",u.style.left=r.other.left+"px",u.style.top=r.other.top+"px",u.style.height=(r.other.bottom-r.other.top)*.85+"px"}}function pi(e,t){return e.top-t.top||e.left-t.left}function ff(e,t,n){var r=e.display,i=e.doc,a=document.createDocumentFragment(),l=Fa(e.display),u=l.left,f=Math.max(r.sizerWidth,Er(e)-r.sizer.offsetLeft)-l.right,m=i.direction=="ltr";function A(be,Ce,Ne,Ie){Ce<0&&(Ce=0),Ce=Math.round(Ce),Ie=Math.round(Ie),a.appendChild(_("div",null,"CodeMirror-selected","position: absolute; left: "+be+`px; + top: `+Ce+"px; width: "+(Ne??f-be)+`px; + height: `+(Ie-Ce)+"px"))}function P(be,Ce,Ne){var Ie=Ae(i,be),$e=Ie.text.length,Ve,vt;function rt(ut,Dt){return fi(e,ne(be,ut),"div",Ie,Dt)}function Ot(ut,Dt,yt){var ft=Ga(e,Ie,null,ut),ct=Dt=="ltr"==(yt=="after")?"left":"right",lt=yt=="after"?ft.begin:ft.end-(/\s/.test(Ie.text.charAt(ft.end-1))?2:1);return rt(lt,ct)[ct]}var At=Pe(Ie,i.direction);return nt(At,Ce||0,Ne??$e,function(ut,Dt,yt,ft){var ct=yt=="ltr",lt=rt(ut,ct?"left":"right"),qt=rt(Dt-1,ct?"right":"left"),pn=Ce==null&&ut==0,Sr=Ne==null&&Dt==$e,St=ft==0,rr=!At||ft==At.length-1;if(qt.top-lt.top<=3){var bt=(m?pn:Sr)&&St,Zo=(m?Sr:pn)&&rr,cr=bt?u:(ct?lt:qt).left,Nr=Zo?f:(ct?qt:lt).right;A(cr,lt.top,Nr-cr,lt.bottom)}else{var Or,Lt,hn,Xo;ct?(Or=m&&pn&&St?u:lt.left,Lt=m?f:Ot(ut,yt,"before"),hn=m?u:Ot(Dt,yt,"after"),Xo=m&&Sr&&rr?f:qt.right):(Or=m?Ot(ut,yt,"before"):u,Lt=!m&&pn&&St?f:lt.right,hn=!m&&Sr&&rr?u:qt.left,Xo=m?Ot(Dt,yt,"after"):f),A(Or,lt.top,Lt-Or,lt.bottom),lt.bottom0?t.blinker=setInterval(function(){e.hasFocus()||en(e),t.cursorDiv.style.visibility=(n=!n)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Qa(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||So(e))}function wo(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&en(e))},100)}function So(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),e.options.readOnly!="nocursor"&&(e.state.focused||(it(e,"focus",e,t),e.state.focused=!0,le(e.display.wrapper,"CodeMirror-focused"),!e.curOp&&e.display.selForContextMenu!=e.doc.sel&&(e.display.input.reset(),g&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),ko(e))}function en(e,t){e.state.delayingBlurEvent||(e.state.focused&&(it(e,"blur",e,t),e.state.focused=!1,Q(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function hi(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=Math.max(0,t.scroller.getBoundingClientRect().top),i=t.lineDiv.getBoundingClientRect().top,a=0,l=0;l.005||Y<-.005)&&(ie.display.sizerWidth){var ue=Math.ceil(A/Jr(e.display));ue>e.display.maxLineLength&&(e.display.maxLineLength=ue,e.display.maxLine=u.line,e.display.maxLineChanged=!0)}}}Math.abs(a)>2&&(t.scroller.scrollTop+=a)}function Va(e){if(e.widgets)for(var t=0;t=l&&(a=O(t,ar(Ae(t,f))-e.wrapper.clientHeight),l=f)}return{from:a,to:Math.max(l,a+1)}}function df(e,t){if(!ot(e,"scrollCursorIntoView")){var n=e.display,r=n.sizer.getBoundingClientRect(),i=null,a=n.wrapper.ownerDocument;if(t.top+r.top<0?i=!0:t.bottom+r.top>(a.defaultView.innerHeight||a.documentElement.clientHeight)&&(i=!1),i!=null&&!z){var l=_("div","\u200B",null,`position: absolute; + top: `+(t.top-n.viewOffset-ui(e.display))+`px; + height: `+(t.bottom-t.top+er(e)+n.barHeight)+`px; + left: `+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(l),l.scrollIntoView(i),e.display.lineSpace.removeChild(l)}}}function pf(e,t,n,r){r==null&&(r=0);var i;!e.options.lineWrapping&&t==n&&(n=t.sticky=="before"?ne(t.line,t.ch+1,"before"):t,t=t.ch?ne(t.line,t.sticky=="before"?t.ch-1:t.ch,"after"):t);for(var a=0;a<5;a++){var l=!1,u=Xt(e,t),f=!n||n==t?u:Xt(e,n);i={left:Math.min(u.left,f.left),top:Math.min(u.top,f.top)-r,right:Math.max(u.left,f.left),bottom:Math.max(u.bottom,f.bottom)+r};var m=To(e,i),A=e.doc.scrollTop,P=e.doc.scrollLeft;if(m.scrollTop!=null&&(An(e,m.scrollTop),Math.abs(e.doc.scrollTop-A)>1&&(l=!0)),m.scrollLeft!=null&&(Dr(e,m.scrollLeft),Math.abs(e.doc.scrollLeft-P)>1&&(l=!0)),!l)break}return i}function hf(e,t){var n=To(e,t);n.scrollTop!=null&&An(e,n.scrollTop),n.scrollLeft!=null&&Dr(e,n.scrollLeft)}function To(e,t){var n=e.display,r=Vr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&e.curOp.scrollTop!=null?e.curOp.scrollTop:n.scroller.scrollTop,a=fo(e),l={};t.bottom-t.top>a&&(t.bottom=t.top+a);var u=e.doc.height+co(n),f=t.topu-r;if(t.topi+a){var A=Math.min(t.top,(m?u:t.bottom)-a);A!=i&&(l.scrollTop=A)}var P=e.options.fixedGutter?0:n.gutters.offsetWidth,J=e.curOp&&e.curOp.scrollLeft!=null?e.curOp.scrollLeft:n.scroller.scrollLeft-P,Y=Er(e)-n.gutters.offsetWidth,ie=t.right-t.left>Y;return ie&&(t.right=t.left+Y),t.left<10?l.scrollLeft=0:t.leftY+J-3&&(l.scrollLeft=t.right+(ie?0:10)-Y),l}function Lo(e,t){t!=null&&(mi(e),e.curOp.scrollTop=(e.curOp.scrollTop==null?e.doc.scrollTop:e.curOp.scrollTop)+t)}function tn(e){mi(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Mn(e,t,n){(t!=null||n!=null)&&mi(e),t!=null&&(e.curOp.scrollLeft=t),n!=null&&(e.curOp.scrollTop=n)}function gf(e,t){mi(e),e.curOp.scrollToPos=t}function mi(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var n=$a(e,t.from),r=$a(e,t.to);Ja(e,n,r,t.margin)}}function Ja(e,t,n,r){var i=To(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});Mn(e,i.scrollLeft,i.scrollTop)}function An(e,t){Math.abs(e.doc.scrollTop-t)<2||(v||Eo(e,{top:t}),el(e,t,!0),v&&Eo(e),In(e,100))}function el(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),!(e.display.scroller.scrollTop==t&&!n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Dr(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),!((n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r)&&(e.doc.scrollLeft=t,ol(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Dn(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+co(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+er(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var qr=function(e,t,n){this.cm=n;var r=this.vert=_("div",[_("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=_("div",[_("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,e(r),e(i),Fe(r,"scroll",function(){r.clientHeight&&t(r.scrollTop,"vertical")}),Fe(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedZeroWidth=!1,s&&h<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};qr.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.scrollTop=0,this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var a=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+a)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(r==0&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},qr.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},qr.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},qr.prototype.zeroWidthHack=function(){var e=H&&!E?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.visibility=this.vert.style.visibility="hidden",this.disableHoriz=new qe,this.disableVert=new qe},qr.prototype.enableZeroWidthBar=function(e,t,n){e.style.visibility="";function r(){var i=e.getBoundingClientRect(),a=n=="vert"?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1);a!=e?e.style.visibility="hidden":t.set(1e3,r)}t.set(1e3,r)},qr.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var qn=function(){};qn.prototype.update=function(){return{bottom:0,right:0}},qn.prototype.setScrollLeft=function(){},qn.prototype.setScrollTop=function(){},qn.prototype.clear=function(){};function rn(e,t){t||(t=Dn(e));var n=e.display.barWidth,r=e.display.barHeight;tl(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&hi(e),tl(e,Dn(e)),n=e.display.barWidth,r=e.display.barHeight}function tl(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}var rl={native:qr,null:qn};function nl(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&Q(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new rl[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Fe(t,"mousedown",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute("cm-not-content","true")},function(t,n){n=="horizontal"?Dr(e,t):An(e,t)},e),e.display.scrollbars.addClass&&le(e.display.wrapper,e.display.scrollbars.addClass)}var mf=0;function Ir(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++mf,markArrays:null},Kc(e.curOp)}function Fr(e){var t=e.curOp;t&&Zc(t,function(n){for(var r=0;r=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new vi(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function yf(e){e.updatedDisplay=e.mustUpdate&&Co(e.cm,e.update)}function xf(e){var t=e.cm,n=t.display;e.updatedDisplay&&hi(t),e.barMeasure=Dn(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Oa(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+er(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Er(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function _f(e){var t=e.cm;e.adjustWidthTo!=null&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft=e.display.viewTo)){var n=+new Date+e.options.workTime,r=wn(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),function(a){if(r.line>=e.display.viewFrom){var l=a.styles,u=a.text.length>e.options.maxHighlightLength?Vt(t.mode,r.state):null,f=fa(e,a,r,!0);u&&(r.state=u),a.styles=f.styles;var m=a.styleClasses,A=f.classes;A?a.styleClasses=A:m&&(a.styleClasses=null);for(var P=!l||l.length!=a.styles.length||m!=A&&(!m||!A||m.bgClass!=A.bgClass||m.textClass!=A.textClass),J=0;!P&&Jn)return In(e,e.options.workDelay),!0}),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&Nt(e,function(){for(var a=0;a=n.viewFrom&&t.visible.to<=n.viewTo&&(n.updateLineNumbers==null||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&Xa(e)==0)return!1;al(e)&&(br(e),t.dims=bo(e));var i=r.first+r.size,a=Math.max(t.visible.from-e.options.viewportMargin,r.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFroml&&n.viewTo-l<20&&(l=Math.min(i,n.viewTo)),or&&(a=ao(e.doc,a),l=Ta(e.doc,l));var u=a!=n.viewFrom||l!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;cf(e,a,l),n.viewOffset=ar(Ae(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var f=Xa(e);if(!u&&f==0&&!t.force&&n.renderedView==n.view&&(n.updateLineNumbers==null||n.updateLineNumbers>=n.viewTo))return!1;var m=Tf(e);return f>4&&(n.lineDiv.style.display="none"),Cf(e,n.updateLineNumbers,t.dims),f>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,Lf(m),j(n.cursorDiv),j(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,u&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,In(e,400)),n.updateLineNumbers=null,!0}function il(e,t){for(var n=t.viewport,r=!0;;r=!1){if(!r||!e.options.lineWrapping||t.oldDisplayWidth==Er(e)){if(n&&n.top!=null&&(n={top:Math.min(e.doc.height+co(e.display)-fo(e),n.top)}),t.visible=gi(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break}else r&&(t.visible=gi(e.display,e.doc,n));if(!Co(e,t))break;hi(e);var i=Dn(e);zn(e),rn(e,i),Mo(e,i),t.force=!1}t.signal(e,"update",e),(e.display.viewFrom!=e.display.reportedViewFrom||e.display.viewTo!=e.display.reportedViewTo)&&(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function Eo(e,t){var n=new vi(e,t);if(Co(e,n)){hi(e),il(e,n);var r=Dn(e);zn(e),rn(e,r),Mo(e,r),n.finish()}}function Cf(e,t,n){var r=e.display,i=e.options.lineNumbers,a=r.lineDiv,l=a.firstChild;function u(ie){var ue=ie.nextSibling;return g&&H&&e.display.currentWheelTarget==ie?ie.style.display="none":ie.parentNode.removeChild(ie),ue}for(var f=r.view,m=r.viewFrom,A=0;A-1&&(Y=!1),Ma(e,P,m,n)),Y&&(j(P.lineNumber),P.lineNumber.appendChild(document.createTextNode(he(e.options,m)))),l=P.node.nextSibling}m+=P.size}for(;l;)l=u(l)}function zo(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px",ht(e,"gutterChanged",e)}function Mo(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+er(e)+"px"}function ol(e){var t=e.display,n=t.view;if(!(!t.alignWidgets&&(!t.gutters.firstChild||!e.options.fixedGutter))){for(var r=yo(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,a=r+"px",l=0;l=105&&(i.wrapper.style.clipPath="inset(0px)"),i.wrapper.setAttribute("translate","no"),s&&h<8&&(i.gutters.style.zIndex=-1,i.scroller.style.paddingRight=0),!g&&!(v&&M)&&(i.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(i.wrapper):e(i.wrapper)),i.viewFrom=i.viewTo=t.first,i.reportedViewFrom=i.reportedViewTo=t.first,i.view=[],i.renderedView=null,i.externalMeasured=null,i.viewOffset=0,i.lastWrapHeight=i.lastWrapWidth=0,i.updateLineNumbers=null,i.nativeBarWidth=i.barHeight=i.barWidth=0,i.scrollbarsClipped=!1,i.lineNumWidth=i.lineNumInnerWidth=i.lineNumChars=null,i.alignWidgets=!1,i.cachedCharWidth=i.cachedTextHeight=i.cachedPaddingH=null,i.maxLine=null,i.maxLineLength=0,i.maxLineChanged=!1,i.wheelDX=i.wheelDY=i.wheelStartX=i.wheelStartY=null,i.shift=!1,i.selForContextMenu=null,i.activeTouch=null,i.gutterSpecs=Ao(r.gutters,r.lineNumbers),ll(i),n.init(i)}var bi=0,sr=null;s?sr=-.53:v?sr=15:x?sr=-.7:w&&(sr=-1/3);function sl(e){var t=e.wheelDeltaX,n=e.wheelDeltaY;return t==null&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),n==null&&e.detail&&e.axis==e.VERTICAL_AXIS?n=e.detail:n==null&&(n=e.wheelDelta),{x:t,y:n}}function zf(e){var t=sl(e);return t.x*=sr,t.y*=sr,t}function ul(e,t){x&&c==102&&(e.display.chromeScrollHack==null?e.display.sizer.style.pointerEvents="none":clearTimeout(e.display.chromeScrollHack),e.display.chromeScrollHack=setTimeout(function(){e.display.chromeScrollHack=null,e.display.sizer.style.pointerEvents=""},100));var n=sl(t),r=n.x,i=n.y,a=sr;t.deltaMode===0&&(r=t.deltaX,i=t.deltaY,a=1);var l=e.display,u=l.scroller,f=u.scrollWidth>u.clientWidth,m=u.scrollHeight>u.clientHeight;if(r&&f||i&&m){if(i&&H&&g){e:for(var A=t.target,P=l.view;A!=u;A=A.parentNode)for(var J=0;J=0&&ye(e,r.to())<=0)return n}return-1};var Ye=function(e,t){this.anchor=e,this.head=t};Ye.prototype.from=function(){return Zr(this.anchor,this.head)},Ye.prototype.to=function(){return Et(this.anchor,this.head)},Ye.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch};function Yt(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort(function(J,Y){return ye(J.from(),Y.from())}),n=Se(t,i);for(var a=1;a0:f>=0){var m=Zr(u.from(),l.from()),A=Et(u.to(),l.to()),P=u.empty()?l.from()==l.head:u.from()==u.head;a<=n&&--n,t.splice(--a,2,new Ye(P?A:m,P?m:A))}}return new Rt(t,n)}function yr(e,t){return new Rt([new Ye(e,t||e)],0)}function xr(e){return e.text?ne(e.from.line+e.text.length-1,ce(e.text).length+(e.text.length==1?e.from.ch:0)):e.to}function cl(e,t){if(ye(e,t.from)<0)return e;if(ye(e,t.to)<=0)return xr(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=xr(t).ch-t.to.ch),ne(n,r)}function Do(e,t){for(var n=[],r=0;r1&&e.remove(u.line+1,ie-1),e.insert(u.line+1,ve)}ht(e,"change",e,t)}function _r(e,t,n){function r(i,a,l){if(i.linked)for(var u=0;u1&&!e.done[e.done.length-2].ranges)return e.done.pop(),ce(e.done)}function ml(e,t,n,r){var i=e.history;i.undone.length=0;var a=+new Date,l,u;if((i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&(t.origin.charAt(0)=="+"&&i.lastModTime>a-(e.cm?e.cm.options.historyEventDelay:500)||t.origin.charAt(0)=="*"))&&(l=Df(i,i.lastOp==r)))u=ce(l.changes),ye(t.from,t.to)==0&&ye(t.from,u.to)==0?u.to=xr(t):l.changes.push(Fo(e,t));else{var f=ce(i.done);for((!f||!f.ranges)&&xi(e.sel,i.done),l={changes:[Fo(e,t)],generation:i.generation},i.done.push(l);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,u||it(e,"historyAdded")}function qf(e,t,n,r){var i=t.charAt(0);return i=="*"||i=="+"&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function If(e,t,n,r){var i=e.history,a=r&&r.origin;n==i.lastSelOp||a&&i.lastSelOrigin==a&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==a||qf(e,a,ce(i.done),t))?i.done[i.done.length-1]=t:xi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=a,i.lastSelOp=n,r&&r.clearRedo!==!1&&gl(i.undone)}function xi(e,t){var n=ce(t);n&&n.ranges&&n.equals(e)||t.push(e)}function vl(e,t,n,r){var i=t["spans_"+e.id],a=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(l){l.markedSpans&&((i||(i=t["spans_"+e.id]={}))[a]=l.markedSpans),++a})}function Ff(e){if(!e)return null;for(var t,n=0;n-1&&(ce(u)[P]=m[P],delete m[P])}}return r}function No(e,t,n,r){if(r){var i=e.anchor;if(n){var a=ye(t,i)<0;a!=ye(n,i)<0?(i=t,t=n):a!=ye(t,n)<0&&(t=n)}return new Ye(i,t)}else return new Ye(n||t,t)}function _i(e,t,n,r,i){i==null&&(i=e.cm&&(e.cm.display.shift||e.extend)),wt(e,new Rt([No(e.sel.primary(),t,n,i)],0),r)}function yl(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),a=0;a=t.ch:u.to>t.ch))){if(i&&(it(f,"beforeCursorEnter"),f.explicitlyCleared))if(a.markedSpans){--l;continue}else break;if(!f.atomic)continue;if(n){var P=f.find(r<0?1:-1),J=void 0;if((r<0?A:m)&&(P=Tl(e,P,-r,P&&P.line==t.line?a:null)),P&&P.line==t.line&&(J=ye(P,n))&&(r<0?J<0:J>0))return on(e,P,t,r,i)}var Y=f.find(r<0?-1:1);return(r<0?m:A)&&(Y=Tl(e,Y,r,Y.line==t.line?a:null)),Y?on(e,Y,t,r,i):null}}return t}function wi(e,t,n,r,i){var a=r||1,l=on(e,t,n,a,i)||!i&&on(e,t,n,a,!0)||on(e,t,n,-a,i)||!i&&on(e,t,n,-a,!0);return l||(e.cantEdit=!0,ne(e.first,0))}function Tl(e,t,n,r){return n<0&&t.ch==0?t.line>e.first?Re(e,ne(t.line-1)):null:n>0&&t.ch==(r||Ae(e,t.line)).text.length?t.line=0;--i)El(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else El(e,t)}}function El(e,t){if(!(t.text.length==1&&t.text[0]==""&&ye(t.from,t.to)==0)){var n=Do(e,t);ml(e,t,n,e.cm?e.cm.curOp.id:NaN),On(e,t,n,io(e,t));var r=[];_r(e,function(i,a){!a&&Se(r,i.history)==-1&&(Dl(i.history,t),r.push(i.history)),On(i,t,null,io(i,t))})}}function Si(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!(r&&!n)){for(var i=e.history,a,l=e.sel,u=t=="undo"?i.done:i.undone,f=t=="undo"?i.undone:i.done,m=0;m=0;--Y){var ie=J(Y);if(ie)return ie.v}}}}function zl(e,t){if(t!=0&&(e.first+=t,e.sel=new Rt(Be(e.sel.ranges,function(i){return new Ye(ne(i.anchor.line+t,i.anchor.ch),ne(i.head.line+t,i.head.ch))}),e.sel.primIndex),e.cm)){zt(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.linea&&(t={from:t.from,to:ne(a,Ae(e,a).text.length),text:[t.text[0]],origin:t.origin}),t.removed=ir(e,t.from,t.to),n||(n=Do(e,t)),e.cm?Pf(e.cm,t,r):Io(e,t,r),ki(e,n,ke),e.cantEdit&&wi(e,ne(e.firstLine(),0))&&(e.cantEdit=!1)}}function Pf(e,t,n){var r=e.doc,i=e.display,a=t.from,l=t.to,u=!1,f=a.line;e.options.lineWrapping||(f=k(Zt(Ae(r,a.line))),r.iter(f,l.line+1,function(Y){if(Y==i.maxLine)return u=!0,!0})),r.sel.contains(t.from,t.to)>-1&&Ht(e),Io(r,t,n,Za(e)),e.options.lineWrapping||(r.iter(f,a.line+t.text.length,function(Y){var ie=li(Y);ie>i.maxLineLength&&(i.maxLine=Y,i.maxLineLength=ie,i.maxLineChanged=!0,u=!1)}),u&&(e.curOp.updateMaxLine=!0)),Lc(r,a.line),In(e,400);var m=t.text.length-(l.line-a.line)-1;t.full?zt(e):a.line==l.line&&t.text.length==1&&!dl(e.doc,t)?vr(e,a.line,"text"):zt(e,a.line,l.line+1,m);var A=Ft(e,"changes"),P=Ft(e,"change");if(P||A){var J={from:a,to:l,text:t.text,removed:t.removed,origin:t.origin};P&&ht(e,"change",e,J),A&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(J)}e.display.selForContextMenu=null}function ln(e,t,n,r,i){var a;r||(r=n),ye(r,n)<0&&(a=[r,n],n=a[0],r=a[1]),typeof t=="string"&&(t=e.splitLines(t)),an(e,{from:n,to:r,text:t,origin:i})}function Ml(e,t,n,r){n1||!(this.children[0]instanceof jn))){var u=[];this.collapse(u),this.children=[new jn(u)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var l=i.lines.length%25+25,u=l;u10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;re.display.maxLineLength&&(e.display.maxLine=m,e.display.maxLineLength=A,e.display.maxLineChanged=!0)}r!=null&&e&&this.collapsed&&zt(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&wl(e.doc)),e&&ht(e,"markerCleared",e,this,r,i),t&&Fr(e),this.parent&&this.parent.clear()}},kr.prototype.find=function(e,t){e==null&&this.type=="bookmark"&&(e=1);for(var n,r,i=0;i0||l==0&&a.clearWhenEmpty!==!1)return a;if(a.replacedWith&&(a.collapsed=!0,a.widgetNode=K("span",[a.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||a.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(a.widgetNode.insertLeft=!0)),a.collapsed){if(Sa(e,t.line,t,n,a)||t.line!=n.line&&Sa(e,n.line,t,n,a))throw new Error("Inserting collapsed marker partially overlapping an existing one");Ec()}a.addToHistory&&ml(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var u=t.line,f=e.cm,m;if(e.iter(u,n.line+1,function(P){f&&a.collapsed&&!f.options.lineWrapping&&Zt(P)==f.display.maxLine&&(m=!0),a.collapsed&&u!=t.line&&jt(P,0),Mc(P,new ni(a,u==t.line?t.ch:null,u==n.line?n.ch:null),e.cm&&e.cm.curOp),++u}),a.collapsed&&e.iter(t.line,n.line+1,function(P){mr(e,P)&&jt(P,0)}),a.clearOnEnter&&Fe(a,"beforeCursorEnter",function(){return a.clear()}),a.readOnly&&(Cc(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),a.collapsed&&(a.id=++Il,a.atomic=!0),f){if(m&&(f.curOp.updateMaxLine=!0),a.collapsed)zt(f,t.line,n.line+1);else if(a.className||a.startStyle||a.endStyle||a.css||a.attributes||a.title)for(var A=t.line;A<=n.line;A++)vr(f,A,"text");a.atomic&&wl(f.doc),ht(f,"markerAdded",f,a)}return a}var Bn=function(e,t){this.markers=e,this.primary=t;for(var n=0;n=0;f--)an(this,r[f]);u?_l(this,u):this.cm&&tn(this.cm)}),undo:mt(function(){Si(this,"undo")}),redo:mt(function(){Si(this,"redo")}),undoSelection:mt(function(){Si(this,"undo",!0)}),redoSelection:mt(function(){Si(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=Re(this,e),t=Re(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,function(a){var l=a.markedSpans;if(l)for(var u=0;u=f.to||f.from==null&&i!=e.line||f.from!=null&&i==t.line&&f.from>=t.ch)&&(!n||n(f.marker))&&r.push(f.marker.parent||f.marker)}++i}),r},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=a,++n}),Re(this,ne(n,t))},indexFromPos:function(e){e=Re(this,e);var t=e.ch;if(e.linet&&(t=e.from),e.to!=null&&e.to-1){t.state.draggingText(e),setTimeout(function(){return t.display.input.focus()},20);return}try{var A=e.dataTransfer.getData("Text");if(A){var P;if(t.state.draggingText&&!t.state.draggingText.copy&&(P=t.listSelections()),ki(t.doc,yr(n,n)),P)for(var J=0;J=0;u--)ln(e.doc,"",r[u].from,r[u].to,"+delete");tn(e)})}function Po(e,t,n){var r=se(e.text,t+n,n);return r<0||r>e.text.length?null:r}function jo(e,t,n){var r=Po(e,t.ch,n);return r==null?null:new ne(t.line,r,n<0?"after":"before")}function Ro(e,t,n,r,i){if(e){t.doc.direction=="rtl"&&(i=-i);var a=Pe(n,t.doc.direction);if(a){var l=i<0?ce(a):a[0],u=i<0==(l.level==1),f=u?"after":"before",m;if(l.level>0||t.doc.direction=="rtl"){var A=Qr(t,n);m=i<0?n.text.length-1:0;var P=tr(t,A,m).top;m=De(function(J){return tr(t,A,J).top==P},i<0==(l.level==1)?l.from:l.to-1,m),f=="before"&&(m=Po(n,m,1))}else m=i<0?l.to:l.from;return new ne(r,m,f)}}return new ne(r,i<0?n.text.length:0,i<0?"before":"after")}function Vf(e,t,n,r){var i=Pe(t,e.doc.direction);if(!i)return jo(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var a=Pt(i,n.ch,n.sticky),l=i[a];if(e.doc.direction=="ltr"&&l.level%2==0&&(r>0?l.to>n.ch:l.from=l.from&&J>=A.begin)){var Y=P?"before":"after";return new ne(n.line,J,Y)}}var ie=function(ve,_e,be){for(var Ce=function(Ve,vt){return vt?new ne(n.line,u(Ve,1),"before"):new ne(n.line,Ve,"after")};ve>=0&&ve0==(Ne.level!=1),$e=Ie?be.begin:u(be.end,-1);if(Ne.from<=$e&&$e0?A.end:u(A.begin,-1);return me!=null&&!(r>0&&me==t.text.length)&&(ue=ie(r>0?0:i.length-1,r,m(me)),ue)?ue:null}var $n={selectAll:Ll,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),ke)},killLine:function(e){return cn(e,function(t){if(t.empty()){var n=Ae(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new ne(i.line,i.ch+1),e.replaceRange(a.charAt(i.ch-1)+a.charAt(i.ch-2),ne(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var l=Ae(e.doc,i.line-1).text;l&&(i=new ne(i.line,1),e.replaceRange(a.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),ne(i.line-1,l.length-1),i,"+transpose"))}}n.push(new Ye(i,i))}e.setSelections(n)})},newlineAndIndent:function(e){return Nt(e,function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;re&&ye(t,this.pos)==0&&n==this.button};var Gn,Zn;function od(e,t){var n=+new Date;return Zn&&Zn.compare(n,e,t)?(Gn=Zn=null,"triple"):Gn&&Gn.compare(n,e,t)?(Zn=new Bo(n,e,t),Gn=null,"double"):(Gn=new Bo(n,e,t),Zn=null,"single")}function Yl(e){var t=this,n=t.display;if(!(ot(t,e)||n.activeTouch&&n.input.supportsTouch())){if(n.input.ensurePolled(),n.shift=e.shiftKey,lr(n,e)){g||(n.scroller.draggable=!1,setTimeout(function(){return n.scroller.draggable=!0},100));return}if(!Wo(t,e)){var r=Mr(t,e),i=Ut(e),a=r?od(r,i):"single";pe(t).focus(),i==1&&t.state.selectingText&&t.state.selectingText(e),!(r&&ad(t,i,r,a,e))&&(i==1?r?sd(t,r,a,e):yn(e)==n.scroller&&kt(e):i==2?(r&&_i(t.doc,r),setTimeout(function(){return n.input.focus()},20)):i==3&&(F?t.display.input.onContextMenu(e):wo(t)))}}}function ad(e,t,n,r,i){var a="Click";return r=="double"?a="Double"+a:r=="triple"&&(a="Triple"+a),a=(t==1?"Left":t==2?"Middle":"Right")+a,Kn(e,Hl(a,i),i,function(l){if(typeof l=="string"&&(l=$n[l]),!l)return!1;var u=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),u=l(e,n)!=Ze}finally{e.state.suppressEdits=!1}return u})}function ld(e,t,n){var r=e.getOption("configureMouse"),i=r?r(e,t,n):{};if(i.unit==null){var a=Z?n.shiftKey&&n.metaKey:n.altKey;i.unit=a?"rectangle":t=="single"?"char":t=="double"?"word":"line"}return(i.extend==null||e.doc.extend)&&(i.extend=e.doc.extend||n.shiftKey),i.addNew==null&&(i.addNew=H?n.metaKey:n.ctrlKey),i.moveOnDrag==null&&(i.moveOnDrag=!(H?n.altKey:n.ctrlKey)),i}function sd(e,t,n,r){s?setTimeout(Ee(Qa,e),0):e.curOp.focus=B(de(e));var i=ld(e,n,r),a=e.doc.sel,l;e.options.dragDrop&&eo&&!e.isReadOnly()&&n=="single"&&(l=a.contains(t))>-1&&(ye((l=a.ranges[l]).from(),t)<0||t.xRel>0)&&(ye(l.to(),t)>0||t.xRel<0)?ud(e,r,t,i):cd(e,r,t,i)}function ud(e,t,n,r){var i=e.display,a=!1,l=gt(e,function(m){g&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:wo(e)),_t(i.wrapper.ownerDocument,"mouseup",l),_t(i.wrapper.ownerDocument,"mousemove",u),_t(i.scroller,"dragstart",f),_t(i.scroller,"drop",l),a||(kt(m),r.addNew||_i(e.doc,n,null,null,r.extend),g&&!w||s&&h==9?setTimeout(function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()},20):i.input.focus())}),u=function(m){a=a||Math.abs(t.clientX-m.clientX)+Math.abs(t.clientY-m.clientY)>=10},f=function(){return a=!0};g&&(i.scroller.draggable=!0),e.state.draggingText=l,l.copy=!r.moveOnDrag,Fe(i.wrapper.ownerDocument,"mouseup",l),Fe(i.wrapper.ownerDocument,"mousemove",u),Fe(i.scroller,"dragstart",f),Fe(i.scroller,"drop",l),e.state.delayingBlurEvent=!0,setTimeout(function(){return i.input.focus()},20),i.scroller.dragDrop&&i.scroller.dragDrop()}function Ql(e,t,n){if(n=="char")return new Ye(t,t);if(n=="word")return e.findWordAt(t);if(n=="line")return new Ye(ne(t.line,0),Re(e.doc,ne(t.line+1,0)));var r=n(e,t);return new Ye(r.from,r.to)}function cd(e,t,n,r){s&&wo(e);var i=e.display,a=e.doc;kt(t);var l,u,f=a.sel,m=f.ranges;if(r.addNew&&!r.extend?(u=a.sel.contains(n),u>-1?l=m[u]:l=new Ye(n,n)):(l=a.sel.primary(),u=a.sel.primIndex),r.unit=="rectangle")r.addNew||(l=new Ye(n,n)),n=Mr(e,t,!0,!0),u=-1;else{var A=Ql(e,n,r.unit);r.extend?l=No(l,A.anchor,A.head,r.extend):l=A}r.addNew?u==-1?(u=m.length,wt(a,Yt(e,m.concat([l]),u),{scroll:!1,origin:"*mouse"})):m.length>1&&m[u].empty()&&r.unit=="char"&&!r.extend?(wt(a,Yt(e,m.slice(0,u).concat(m.slice(u+1)),0),{scroll:!1,origin:"*mouse"}),f=a.sel):Oo(a,u,l,Je):(u=0,wt(a,new Rt([l],0),Je),f=a.sel);var P=n;function J(be){if(ye(P,be)!=0)if(P=be,r.unit=="rectangle"){for(var Ce=[],Ne=e.options.tabSize,Ie=Oe(Ae(a,n.line).text,n.ch,Ne),$e=Oe(Ae(a,be.line).text,be.ch,Ne),Ve=Math.min(Ie,$e),vt=Math.max(Ie,$e),rt=Math.min(n.line,be.line),Ot=Math.min(e.lastLine(),Math.max(n.line,be.line));rt<=Ot;rt++){var At=Ae(a,rt).text,ut=Ge(At,Ve,Ne);Ve==vt?Ce.push(new Ye(ne(rt,ut),ne(rt,ut))):At.length>ut&&Ce.push(new Ye(ne(rt,ut),ne(rt,Ge(At,vt,Ne))))}Ce.length||Ce.push(new Ye(n,n)),wt(a,Yt(e,f.ranges.slice(0,u).concat(Ce),u),{origin:"*mouse",scroll:!1}),e.scrollIntoView(be)}else{var Dt=l,yt=Ql(e,be,r.unit),ft=Dt.anchor,ct;ye(yt.anchor,ft)>0?(ct=yt.head,ft=Zr(Dt.from(),yt.anchor)):(ct=yt.anchor,ft=Et(Dt.to(),yt.head));var lt=f.ranges.slice(0);lt[u]=fd(e,new Ye(Re(a,ft),ct)),wt(a,Yt(e,lt,u),Je)}}var Y=i.wrapper.getBoundingClientRect(),ie=0;function ue(be){var Ce=++ie,Ne=Mr(e,be,!0,r.unit=="rectangle");if(Ne)if(ye(Ne,P)!=0){e.curOp.focus=B(de(e)),J(Ne);var Ie=gi(i,a);(Ne.line>=Ie.to||Ne.lineY.bottom?20:0;$e&&setTimeout(gt(e,function(){ie==Ce&&(i.scroller.scrollTop+=$e,ue(be))}),50)}}function me(be){e.state.selectingText=!1,ie=1/0,be&&(kt(be),i.input.focus()),_t(i.wrapper.ownerDocument,"mousemove",ve),_t(i.wrapper.ownerDocument,"mouseup",_e),a.history.lastSelOrigin=null}var ve=gt(e,function(be){be.buttons===0||!Ut(be)?me(be):ue(be)}),_e=gt(e,me);e.state.selectingText=_e,Fe(i.wrapper.ownerDocument,"mousemove",ve),Fe(i.wrapper.ownerDocument,"mouseup",_e)}function fd(e,t){var n=t.anchor,r=t.head,i=Ae(e.doc,n.line);if(ye(n,r)==0&&n.sticky==r.sticky)return t;var a=Pe(i);if(!a)return t;var l=Pt(a,n.ch,n.sticky),u=a[l];if(u.from!=n.ch&&u.to!=n.ch)return t;var f=l+(u.from==n.ch==(u.level!=1)?0:1);if(f==0||f==a.length)return t;var m;if(r.line!=n.line)m=(r.line-n.line)*(e.doc.direction=="ltr"?1:-1)>0;else{var A=Pt(a,r.ch,r.sticky),P=A-l||(r.ch-n.ch)*(u.level==1?-1:1);A==f-1||A==f?m=P<0:m=P>0}var J=a[f+(m?-1:0)],Y=m==(J.level==1),ie=Y?J.from:J.to,ue=Y?"after":"before";return n.ch==ie&&n.sticky==ue?t:new Ye(new ne(n.line,ie,ue),r)}function Vl(e,t,n,r){var i,a;if(t.touches)i=t.touches[0].clientX,a=t.touches[0].clientY;else try{i=t.clientX,a=t.clientY}catch{return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&kt(t);var l=e.display,u=l.lineDiv.getBoundingClientRect();if(a>u.bottom||!Ft(e,n))return Ct(t);a-=u.top-l.viewOffset;for(var f=0;f=i){var A=O(e.doc,a),P=e.display.gutterSpecs[f];return it(e,n,e,A,P.className,t),Ct(t)}}}function Wo(e,t){return Vl(e,t,"gutterClick",!0)}function Jl(e,t){lr(e.display,t)||dd(e,t)||ot(e,t,"contextmenu")||F||e.display.input.onContextMenu(t)}function dd(e,t){return Ft(e,"gutterContextMenu")?Vl(e,t,"gutterContextMenu",!1):!1}function es(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),En(e)}var fn={toString:function(){return"CodeMirror.Init"}},ts={},Ei={};function pd(e){var t=e.optionHandlers;function n(r,i,a,l){e.defaults[r]=i,a&&(t[r]=l?function(u,f,m){m!=fn&&a(u,f,m)}:a)}e.defineOption=n,e.Init=fn,n("value","",function(r,i){return r.setValue(i)},!0),n("mode",null,function(r,i){r.doc.modeOption=i,qo(r)},!0),n("indentUnit",2,qo,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,function(r){Nn(r),En(r),zt(r)},!0),n("lineSeparator",null,function(r,i){if(r.doc.lineSep=i,!!i){var a=[],l=r.doc.first;r.doc.iter(function(f){for(var m=0;;){var A=f.text.indexOf(i,m);if(A==-1)break;m=A+i.length,a.push(ne(l,A))}l++});for(var u=a.length-1;u>=0;u--)ln(r.doc,i,a[u],ne(a[u].line,a[u].ch+i.length))}}),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]/g,function(r,i,a){r.state.specialChars=new RegExp(i.source+(i.test(" ")?"":"| "),"g"),a!=fn&&r.refresh()}),n("specialCharPlaceholder",Hc,function(r){return r.refresh()},!0),n("electricChars",!0),n("inputStyle",M?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),n("spellcheck",!1,function(r,i){return r.getInputField().spellcheck=i},!0),n("autocorrect",!1,function(r,i){return r.getInputField().autocorrect=i},!0),n("autocapitalize",!1,function(r,i){return r.getInputField().autocapitalize=i},!0),n("rtlMoveVisually",!ee),n("wholeLineUpdateBefore",!0),n("theme","default",function(r){es(r),Fn(r)},!0),n("keyMap","default",function(r,i,a){var l=Li(i),u=a!=fn&&Li(a);u&&u.detach&&u.detach(r,l),l.attach&&l.attach(r,u||null)}),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,gd,!0),n("gutters",[],function(r,i){r.display.gutterSpecs=Ao(i,r.options.lineNumbers),Fn(r)},!0),n("fixedGutter",!0,function(r,i){r.display.gutters.style.left=i?yo(r.display)+"px":"0",r.refresh()},!0),n("coverGutterNextToScrollbar",!1,function(r){return rn(r)},!0),n("scrollbarStyle","native",function(r){nl(r),rn(r),r.display.scrollbars.setScrollTop(r.doc.scrollTop),r.display.scrollbars.setScrollLeft(r.doc.scrollLeft)},!0),n("lineNumbers",!1,function(r,i){r.display.gutterSpecs=Ao(r.options.gutters,i),Fn(r)},!0),n("firstLineNumber",1,Fn,!0),n("lineNumberFormatter",function(r){return r},Fn,!0),n("showCursorWhenSelecting",!1,zn,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,function(r,i){i=="nocursor"&&(en(r),r.display.input.blur()),r.display.input.readOnlyChanged(i)}),n("screenReaderLabel",null,function(r,i){i=i===""?null:i,r.display.input.screenReaderLabelChanged(i)}),n("disableInput",!1,function(r,i){i||r.display.input.reset()},!0),n("dragDrop",!0,hd),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,zn,!0),n("singleCursorHeightPerLine",!0,zn,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,Nn,!0),n("addModeClass",!1,Nn,!0),n("pollInterval",100),n("undoDepth",200,function(r,i){return r.doc.history.undoDepth=i}),n("historyEventDelay",1250),n("viewportMargin",10,function(r){return r.refresh()},!0),n("maxHighlightLength",1e4,Nn,!0),n("moveInputWithCursor",!0,function(r,i){i||r.display.input.resetPosition()}),n("tabindex",null,function(r,i){return r.display.input.getField().tabIndex=i||""}),n("autofocus",null),n("direction","ltr",function(r,i){return r.doc.setDirection(i)},!0),n("phrases",null)}function hd(e,t,n){var r=n&&n!=fn;if(!t!=!r){var i=e.display.dragFunctions,a=t?Fe:_t;a(e.display.scroller,"dragstart",i.start),a(e.display.scroller,"dragenter",i.enter),a(e.display.scroller,"dragover",i.over),a(e.display.scroller,"dragleave",i.leave),a(e.display.scroller,"drop",i.drop)}}function gd(e){e.options.lineWrapping?(le(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(Q(e.display.wrapper,"CodeMirror-wrap"),so(e)),xo(e),zt(e),En(e),setTimeout(function(){return rn(e)},100)}function tt(e,t){var n=this;if(!(this instanceof tt))return new tt(e,t);this.options=t=t?ge(t):{},ge(ts,t,!1);var r=t.value;typeof r=="string"?r=new Mt(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new tt.inputStyles[t.inputStyle](this),a=this.display=new Ef(e,r,i,t);a.wrapper.CodeMirror=this,es(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),nl(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new qe,keySeq:null,specialChars:null},t.autofocus&&!M&&a.input.focus(),s&&h<11&&setTimeout(function(){return n.display.input.reset(!0)},20),md(this),Gf(),Ir(this),this.curOp.forceUpdate=!0,pl(this,r),t.autofocus&&!M||this.hasFocus()?setTimeout(function(){n.hasFocus()&&!n.state.focused&&So(n)},20):en(this);for(var l in Ei)Ei.hasOwnProperty(l)&&Ei[l](this,t[l],fn);al(this),t.finishInit&&t.finishInit(this);for(var u=0;u20*20}Fe(t.scroller,"touchstart",function(f){if(!ot(e,f)&&!a(f)&&!Wo(e,f)){t.input.ensurePolled(),clearTimeout(n);var m=+new Date;t.activeTouch={start:m,moved:!1,prev:m-r.end<=300?r:null},f.touches.length==1&&(t.activeTouch.left=f.touches[0].pageX,t.activeTouch.top=f.touches[0].pageY)}}),Fe(t.scroller,"touchmove",function(){t.activeTouch&&(t.activeTouch.moved=!0)}),Fe(t.scroller,"touchend",function(f){var m=t.activeTouch;if(m&&!lr(t,f)&&m.left!=null&&!m.moved&&new Date-m.start<300){var A=e.coordsChar(t.activeTouch,"page"),P;!m.prev||l(m,m.prev)?P=new Ye(A,A):!m.prev.prev||l(m,m.prev.prev)?P=e.findWordAt(A):P=new Ye(ne(A.line,0),Re(e.doc,ne(A.line+1,0))),e.setSelection(P.anchor,P.head),e.focus(),kt(f)}i()}),Fe(t.scroller,"touchcancel",i),Fe(t.scroller,"scroll",function(){t.scroller.clientHeight&&(An(e,t.scroller.scrollTop),Dr(e,t.scroller.scrollLeft,!0),it(e,"scroll",e))}),Fe(t.scroller,"mousewheel",function(f){return ul(e,f)}),Fe(t.scroller,"DOMMouseScroll",function(f){return ul(e,f)}),Fe(t.wrapper,"scroll",function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0}),t.dragFunctions={enter:function(f){ot(e,f)||dr(f)},over:function(f){ot(e,f)||(Kf(e,f),dr(f))},start:function(f){return $f(e,f)},drop:gt(e,Uf),leave:function(f){ot(e,f)||Ol(e)}};var u=t.input.getField();Fe(u,"keyup",function(f){return Zl.call(e,f)}),Fe(u,"keydown",gt(e,Gl)),Fe(u,"keypress",gt(e,Xl)),Fe(u,"focus",function(f){return So(e,f)}),Fe(u,"blur",function(f){return en(e,f)})}var Uo=[];tt.defineInitHook=function(e){return Uo.push(e)};function Xn(e,t,n,r){var i=e.doc,a;n==null&&(n="add"),n=="smart"&&(i.mode.indent?a=wn(e,t).state:n="prev");var l=e.options.tabSize,u=Ae(i,t),f=Oe(u.text,null,l);u.stateAfter&&(u.stateAfter=null);var m=u.text.match(/^\s*/)[0],A;if(!r&&!/\S/.test(u.text))A=0,n="not";else if(n=="smart"&&(A=i.mode.indent(a,u.text.slice(m.length),u.text),A==Ze||A>150)){if(!r)return;n="prev"}n=="prev"?t>i.first?A=Oe(Ae(i,t-1).text,null,l):A=0:n=="add"?A=f+e.options.indentUnit:n=="subtract"?A=f-e.options.indentUnit:typeof n=="number"&&(A=f+n),A=Math.max(0,A);var P="",J=0;if(e.options.indentWithTabs)for(var Y=Math.floor(A/l);Y;--Y)J+=l,P+=" ";if(Jl,f=Bt(t),m=null;if(u&&r.ranges.length>1)if(Qt&&Qt.text.join(` +`)==t){if(r.ranges.length%Qt.text.length==0){m=[];for(var A=0;A=0;J--){var Y=r.ranges[J],ie=Y.from(),ue=Y.to();Y.empty()&&(n&&n>0?ie=ne(ie.line,ie.ch-n):e.state.overwrite&&!u?ue=ne(ue.line,Math.min(Ae(a,ue.line).text.length,ue.ch+ce(f).length)):u&&Qt&&Qt.lineWise&&Qt.text.join(` +`)==f.join(` +`)&&(ie=ue=ne(ie.line,0)));var me={from:ie,to:ue,text:m?m[J%m.length]:f,origin:i||(u?"paste":e.state.cutIncoming>l?"cut":"+input")};an(e.doc,me),ht(e,"inputRead",e,me)}t&&!u&&ns(e,t),tn(e),e.curOp.updateInput<2&&(e.curOp.updateInput=P),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function rs(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),!t.isReadOnly()&&!t.options.disableInput&&t.hasFocus()&&Nt(t,function(){return $o(t,n,0,null,"paste")}),!0}function ns(e,t){if(!(!e.options.electricChars||!e.options.smartIndent))for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var a=e.getModeAt(i.head),l=!1;if(a.electricChars){for(var u=0;u-1){l=Xn(e,i.head.line,"smart");break}}else a.electricInput&&a.electricInput.test(Ae(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=Xn(e,i.head.line,"smart"));l&&ht(e,"electricInput",e,i.head.line)}}}function is(e){for(var t=[],n=[],r=0;ra&&(Xn(this,u.head.line,r,!0),a=u.head.line,l==this.doc.sel.primIndex&&tn(this));else{var f=u.from(),m=u.to(),A=Math.max(a,f.line);a=Math.min(this.lastLine(),m.line-(m.ch?0:1))+1;for(var P=A;P0&&Oo(this.doc,l,new Ye(f,J[l].to()),ke)}}}),getTokenAt:function(r,i){return ga(this,r,i)},getLineTokens:function(r,i){return ga(this,ne(r),i,!0)},getTokenTypeAt:function(r){r=Re(this.doc,r);var i=da(this,Ae(this.doc,r.line)),a=0,l=(i.length-1)/2,u=r.ch,f;if(u==0)f=i[2];else for(;;){var m=a+l>>1;if((m?i[m*2-1]:0)>=u)l=m;else if(i[m*2+1]f&&(r=f,l=!0),u=Ae(this.doc,r)}else u=r;return ci(this,u,{top:0,left:0},i||"page",a||l).top+(l?this.doc.height-ar(u):0)},defaultTextHeight:function(){return Vr(this.display)},defaultCharWidth:function(){return Jr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(r,i,a,l,u){var f=this.display;r=Xt(this,Re(this.doc,r));var m=r.bottom,A=r.left;if(i.style.position="absolute",i.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(i),f.sizer.appendChild(i),l=="over")m=r.top;else if(l=="above"||l=="near"){var P=Math.max(f.wrapper.clientHeight,this.doc.height),J=Math.max(f.sizer.clientWidth,f.lineSpace.clientWidth);(l=="above"||r.bottom+i.offsetHeight>P)&&r.top>i.offsetHeight?m=r.top-i.offsetHeight:r.bottom+i.offsetHeight<=P&&(m=r.bottom),A+i.offsetWidth>J&&(A=J-i.offsetWidth)}i.style.top=m+"px",i.style.left=i.style.right="",u=="right"?(A=f.sizer.clientWidth-i.offsetWidth,i.style.right="0px"):(u=="left"?A=0:u=="middle"&&(A=(f.sizer.clientWidth-i.offsetWidth)/2),i.style.left=A+"px"),a&&hf(this,{left:A,top:m,right:A+i.offsetWidth,bottom:m+i.offsetHeight})},triggerOnKeyDown:Tt(Gl),triggerOnKeyPress:Tt(Xl),triggerOnKeyUp:Zl,triggerOnMouseDown:Tt(Yl),execCommand:function(r){if($n.hasOwnProperty(r))return $n[r].call(null,this)},triggerElectric:Tt(function(r){ns(this,r)}),findPosH:function(r,i,a,l){var u=1;i<0&&(u=-1,i=-i);for(var f=Re(this.doc,r),m=0;m0&&A(a.charAt(l-1));)--l;for(;u.5||this.options.lineWrapping)&&xo(this),it(this,"refresh",this)}),swapDoc:Tt(function(r){var i=this.doc;return i.cm=null,this.state.selectingText&&this.state.selectingText(),pl(this,r),En(this),this.display.input.reset(),Mn(this,r.scrollLeft,r.scrollTop),this.curOp.forceScroll=!0,ht(this,"swapDoc",this,i),i}),phrase:function(r){var i=this.options.phrases;return i&&Object.prototype.hasOwnProperty.call(i,r)?i[r]:r},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},Wt(e),e.registerHelper=function(r,i,a){n.hasOwnProperty(r)||(n[r]=e[r]={_global:[]}),n[r][i]=a},e.registerGlobalHelper=function(r,i,a,l){e.registerHelper(r,i,l),n[r]._global.push({pred:a,val:l})}}function Go(e,t,n,r,i){var a=t,l=n,u=Ae(e,t.line),f=i&&e.direction=="rtl"?-n:n;function m(){var _e=t.line+f;return _e=e.first+e.size?!1:(t=new ne(_e,t.ch,t.sticky),u=Ae(e,_e))}function A(_e){var be;if(r=="codepoint"){var Ce=u.text.charCodeAt(t.ch+(n>0?0:-1));if(isNaN(Ce))be=null;else{var Ne=n>0?Ce>=55296&&Ce<56320:Ce>=56320&&Ce<57343;be=new ne(t.line,Math.max(0,Math.min(u.text.length,t.ch+n*(Ne?2:1))),-n)}}else i?be=Vf(e.cm,u,t,n):be=jo(u,t,n);if(be==null)if(!_e&&m())t=Ro(i,e.cm,u,t.line,f);else return!1;else t=be;return!0}if(r=="char"||r=="codepoint")A();else if(r=="column")A(!0);else if(r=="word"||r=="group")for(var P=null,J=r=="group",Y=e.cm&&e.cm.getHelper(t,"wordChars"),ie=!0;!(n<0&&!A(!ie));ie=!1){var ue=u.text.charAt(t.ch)||` +`,me=Me(ue,Y)?"w":J&&ue==` +`?"n":!J||/\s/.test(ue)?null:"p";if(J&&!ie&&!me&&(me="s"),P&&P!=me){n<0&&(n=1,A(),t.sticky="after");break}if(me&&(P=me),n>0&&!A(!ie))break}var ve=wi(e,t,a,l,!0);return Xe(a,ve)&&(ve.hitSide=!0),ve}function as(e,t,n,r){var i=e.doc,a=t.left,l;if(r=="page"){var u=Math.min(e.display.wrapper.clientHeight,pe(e).innerHeight||i(e).documentElement.clientHeight),f=Math.max(u-.5*Vr(e.display),3);l=(n>0?t.bottom:t.top)+n*f}else r=="line"&&(l=n>0?t.bottom+3:t.top-3);for(var m;m=mo(e,a,l),!!m.outside;){if(n<0?l<=0:l>=i.height){m.hitSide=!0;break}l+=n*5}return m}var Qe=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new qe,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};Qe.prototype.init=function(e){var t=this,n=this,r=n.cm,i=n.div=e.lineDiv;i.contentEditable=!0,Ko(i,r.options.spellcheck,r.options.autocorrect,r.options.autocapitalize);function a(u){for(var f=u.target;f;f=f.parentNode){if(f==i)return!0;if(/\bCodeMirror-(?:line)?widget\b/.test(f.className))break}return!1}Fe(i,"paste",function(u){!a(u)||ot(r,u)||rs(u,r)||h<=11&&setTimeout(gt(r,function(){return t.updateFromDOM()}),20)}),Fe(i,"compositionstart",function(u){t.composing={data:u.data,done:!1}}),Fe(i,"compositionupdate",function(u){t.composing||(t.composing={data:u.data,done:!1})}),Fe(i,"compositionend",function(u){t.composing&&(u.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)}),Fe(i,"touchstart",function(){return n.forceCompositionEnd()}),Fe(i,"input",function(){t.composing||t.readFromDOMSoon()});function l(u){if(!(!a(u)||ot(r,u))){if(r.somethingSelected())zi({lineWise:!1,text:r.getSelections()}),u.type=="cut"&&r.replaceSelection("",null,"cut");else if(r.options.lineWiseCopyCut){var f=is(r);zi({lineWise:!0,text:f.text}),u.type=="cut"&&r.operation(function(){r.setSelections(f.ranges,0,ke),r.replaceSelection("",null,"cut")})}else return;if(u.clipboardData){u.clipboardData.clearData();var m=Qt.text.join(` +`);if(u.clipboardData.setData("Text",m),u.clipboardData.getData("Text")==m){u.preventDefault();return}}var A=os(),P=A.firstChild;Ko(P),r.display.lineSpace.insertBefore(A,r.display.lineSpace.firstChild),P.value=Qt.text.join(` +`);var J=B(ze(i));q(P),setTimeout(function(){r.display.lineSpace.removeChild(A),J.focus(),J==i&&n.showPrimarySelection()},50)}}Fe(i,"copy",l),Fe(i,"cut",l)},Qe.prototype.screenReaderLabelChanged=function(e){e?this.div.setAttribute("aria-label",e):this.div.removeAttribute("aria-label")},Qe.prototype.prepareSelection=function(){var e=Ya(this.cm,!1);return e.focus=B(ze(this.div))==this.div,e},Qe.prototype.showSelection=function(e,t){!e||!this.cm.display.view.length||((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Qe.prototype.getSelection=function(){return this.cm.display.wrapper.ownerDocument.getSelection()},Qe.prototype.showPrimarySelection=function(){var e=this.getSelection(),t=this.cm,n=t.doc.sel.primary(),r=n.from(),i=n.to();if(t.display.viewTo==t.display.viewFrom||r.line>=t.display.viewTo||i.line=t.display.viewFrom&&ls(t,r)||{node:u[0].measure.map[2],offset:0},m=i.linee.firstLine()&&(r=ne(r.line-1,Ae(e.doc,r.line-1).length)),i.ch==Ae(e.doc,i.line).text.length&&i.linet.viewTo-1)return!1;var a,l,u;r.line==t.viewFrom||(a=Ar(e,r.line))==0?(l=k(t.view[0].line),u=t.view[0].node):(l=k(t.view[a].line),u=t.view[a-1].node.nextSibling);var f=Ar(e,i.line),m,A;if(f==t.view.length-1?(m=t.viewTo-1,A=t.lineDiv.lastChild):(m=k(t.view[f+1].line)-1,A=t.view[f+1].node.previousSibling),!u)return!1;for(var P=e.doc.splitLines(yd(e,u,A,l,m)),J=ir(e.doc,ne(l,0),ne(m,Ae(e.doc,m).text.length));P.length>1&&J.length>1;)if(ce(P)==ce(J))P.pop(),J.pop(),m--;else if(P[0]==J[0])P.shift(),J.shift(),l++;else break;for(var Y=0,ie=0,ue=P[0],me=J[0],ve=Math.min(ue.length,me.length);Yr.ch&&_e.charCodeAt(_e.length-ie-1)==be.charCodeAt(be.length-ie-1);)Y--,ie++;P[P.length-1]=_e.slice(0,_e.length-ie).replace(/^\u200b+/,""),P[0]=P[0].slice(Y).replace(/\u200b+$/,"");var Ne=ne(l,Y),Ie=ne(m,J.length?ce(J).length-ie:0);if(P.length>1||P[0]||ye(Ne,Ie))return ln(e.doc,P,Ne,Ie,"+input"),!0},Qe.prototype.ensurePolled=function(){this.forceCompositionEnd()},Qe.prototype.reset=function(){this.forceCompositionEnd()},Qe.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Qe.prototype.readFromDOMSoon=function(){var e=this;this.readDOMTimeout==null&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing)if(e.composing.done)e.composing=null;else return;e.updateFromDOM()},80))},Qe.prototype.updateFromDOM=function(){var e=this;(this.cm.isReadOnly()||!this.pollContent())&&Nt(this.cm,function(){return zt(e.cm)})},Qe.prototype.setUneditable=function(e){e.contentEditable="false"},Qe.prototype.onKeyPress=function(e){e.charCode==0||this.composing||(e.preventDefault(),this.cm.isReadOnly()||gt(this.cm,$o)(this.cm,String.fromCharCode(e.charCode==null?e.keyCode:e.charCode),0))},Qe.prototype.readOnlyChanged=function(e){this.div.contentEditable=String(e!="nocursor")},Qe.prototype.onContextMenu=function(){},Qe.prototype.resetPosition=function(){},Qe.prototype.needsContentAttribute=!0;function ls(e,t){var n=po(e,t.line);if(!n||n.hidden)return null;var r=Ae(e.doc,t.line),i=Na(n,r,t.line),a=Pe(r,e.doc.direction),l="left";if(a){var u=Pt(a,t.ch);l=u%2?"right":"left"}var f=ja(i.map,t.ch,l);return f.offset=f.collapse=="right"?f.end:f.start,f}function bd(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function dn(e,t){return t&&(e.bad=!0),e}function yd(e,t,n,r,i){var a="",l=!1,u=e.doc.lineSeparator(),f=!1;function m(Y){return function(ie){return ie.id==Y}}function A(){l&&(a+=u,f&&(a+=u),l=f=!1)}function P(Y){Y&&(A(),a+=Y)}function J(Y){if(Y.nodeType==1){var ie=Y.getAttribute("cm-text");if(ie){P(ie);return}var ue=Y.getAttribute("cm-marker"),me;if(ue){var ve=e.findMarks(ne(r,0),ne(i+1,0),m(+ue));ve.length&&(me=ve[0].find(0))&&P(ir(e.doc,me.from,me.to).join(u));return}if(Y.getAttribute("contenteditable")=="false")return;var _e=/^(pre|div|p|li|table|br)$/i.test(Y.nodeName);if(!/^br$/i.test(Y.nodeName)&&Y.textContent.length==0)return;_e&&A();for(var be=0;be=9&&t.hasSelection&&(t.hasSelection=null),n.poll()}),Fe(i,"paste",function(l){ot(r,l)||rs(l,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())});function a(l){if(!ot(r,l)){if(r.somethingSelected())zi({lineWise:!1,text:r.getSelections()});else if(r.options.lineWiseCopyCut){var u=is(r);zi({lineWise:!0,text:u.text}),l.type=="cut"?r.setSelections(u.ranges,null,ke):(n.prevInput="",i.value=u.text.join(` +`),q(i))}else return;l.type=="cut"&&(r.state.cutIncoming=+new Date)}}Fe(i,"cut",a),Fe(i,"copy",a),Fe(e.scroller,"paste",function(l){if(!(lr(e,l)||ot(r,l))){if(!i.dispatchEvent){r.state.pasteIncoming=+new Date,n.focus();return}var u=new Event("paste");u.clipboardData=l.clipboardData,i.dispatchEvent(u)}}),Fe(e.lineSpace,"selectstart",function(l){lr(e,l)||kt(l)}),Fe(i,"compositionstart",function(){var l=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:l,range:r.markText(l,r.getCursor("to"),{className:"CodeMirror-composing"})}}),Fe(i,"compositionend",function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)})},st.prototype.createField=function(e){this.wrapper=os(),this.textarea=this.wrapper.firstChild;var t=this.cm.options;Ko(this.textarea,t.spellcheck,t.autocorrect,t.autocapitalize)},st.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},st.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=Ya(e);if(e.options.moveInputWithCursor){var i=Xt(e,n.sel.primary().head,"div"),a=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-a.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-a.left))}return r},st.prototype.showSelection=function(e){var t=this.cm,n=t.display;V(n.cursorDiv,e.cursors),V(n.selectionDiv,e.selection),e.teTop!=null&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},st.prototype.reset=function(e){if(!(this.contextMenuPending||this.composing&&e)){var t=this.cm;if(this.resetting=!0,t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&q(this.textarea),s&&h>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",s&&h>=9&&(this.hasSelection=null));this.resetting=!1}},st.prototype.getField=function(){return this.textarea},st.prototype.supportsTouch=function(){return!1},st.prototype.focus=function(){if(this.cm.options.readOnly!="nocursor"&&(!M||B(ze(this.textarea))!=this.textarea))try{this.textarea.focus()}catch{}},st.prototype.blur=function(){this.textarea.blur()},st.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},st.prototype.receivedFocus=function(){this.slowPoll()},st.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},st.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0;function n(){var r=t.poll();!r&&!e?(e=!0,t.polling.set(60,n)):(t.pollingFast=!1,t.slowPoll())}t.polling.set(20,n)},st.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||this.resetting||!t.state.focused||hr(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(s&&h>=9&&this.hasSelection===i||H&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var a=i.charCodeAt(0);if(a==8203&&!r&&(r="\u200B"),a==8666)return this.reset(),this.cm.execCommand("undo")}for(var l=0,u=Math.min(r.length,i.length);l1e3||i.indexOf(` +`)>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))}),!0},st.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},st.prototype.onKeyPress=function(){s&&h>=9&&(this.hasSelection=null),this.fastPoll()},st.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var a=Mr(n,e),l=r.scroller.scrollTop;if(!a||d)return;var u=n.options.resetSelectionOnContextMenu;u&&n.doc.sel.contains(a)==-1&>(n,wt)(n.doc,yr(a),ke);var f=i.style.cssText,m=t.wrapper.style.cssText,A=t.wrapper.offsetParent.getBoundingClientRect();t.wrapper.style.cssText="position: static",i.style.cssText=`position: absolute; width: 30px; height: 30px; + top: `+(e.clientY-A.top-5)+"px; left: "+(e.clientX-A.left-5)+`px; + z-index: 1000; background: `+(s?"rgba(255, 255, 255, .05)":"transparent")+`; + outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`;var P;g&&(P=i.ownerDocument.defaultView.scrollY),r.input.focus(),g&&i.ownerDocument.defaultView.scrollTo(null,P),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=Y,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll);function J(){if(i.selectionStart!=null){var ue=n.somethingSelected(),me="\u200B"+(ue?i.value:"");i.value="\u21DA",i.value=me,t.prevInput=ue?"":"\u200B",i.selectionStart=1,i.selectionEnd=me.length,r.selForContextMenu=n.doc.sel}}function Y(){if(t.contextMenuPending==Y&&(t.contextMenuPending=!1,t.wrapper.style.cssText=m,i.style.cssText=f,s&&h<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=l),i.selectionStart!=null)){(!s||s&&h<9)&&J();var ue=0,me=function(){r.selForContextMenu==n.doc.sel&&i.selectionStart==0&&i.selectionEnd>0&&t.prevInput=="\u200B"?gt(n,Ll)(n):ue++<10?r.detectingSelectAll=setTimeout(me,500):(r.selForContextMenu=null,r.input.reset())};r.detectingSelectAll=setTimeout(me,200)}}if(s&&h>=9&&J(),F){dr(e);var ie=function(){_t(window,"mouseup",ie),setTimeout(Y,20)};Fe(window,"mouseup",ie)}else setTimeout(Y,50)},st.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled=e=="nocursor",this.textarea.readOnly=!!e},st.prototype.setUneditable=function(){},st.prototype.needsContentAttribute=!1;function _d(e,t){if(t=t?ge(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),t.autofocus==null){var n=B(ze(e));t.autofocus=n==e||e.getAttribute("autofocus")!=null&&n==document.body}function r(){e.value=u.getValue()}var i;if(e.form&&(Fe(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var a=e.form;i=a.submit;try{var l=a.submit=function(){r(),a.submit=i,a.submit(),a.submit=l}}catch{}}t.finishInit=function(f){f.save=r,f.getTextArea=function(){return e},f.toTextArea=function(){f.toTextArea=isNaN,r(),e.parentNode.removeChild(f.getWrapperElement()),e.style.display="",e.form&&(_t(e.form,"submit",r),!t.leaveSubmitMethodAlone&&typeof e.form.submit=="function"&&(e.form.submit=i))}},e.style.display="none";var u=tt(function(f){return e.parentNode.insertBefore(f,e.nextSibling)},t);return u}function kd(e){e.off=_t,e.on=Fe,e.wheelEventPixels=zf,e.Doc=Mt,e.splitLines=Bt,e.countColumn=Oe,e.findColumn=Ge,e.isWordChar=we,e.Pass=Ze,e.signal=it,e.Line=Xr,e.changeEnd=xr,e.scrollbarModel=rl,e.Pos=ne,e.cmpPos=ye,e.modes=Wr,e.mimeModes=Kt,e.resolveMode=Ur,e.getMode=$r,e.modeExtensions=gr,e.extendMode=Kr,e.copyState=Vt,e.startState=Gr,e.innerMode=_n,e.commands=$n,e.keyMap=ur,e.keyName=Bl,e.isModifierKey=Rl,e.lookupKey=un,e.normalizeKeyMap=Qf,e.StringStream=at,e.SharedTextMarker=Bn,e.TextMarker=kr,e.LineWidget=Hn,e.e_preventDefault=kt,e.e_stopPropagation=Hr,e.e_stop=dr,e.addClass=le,e.contains=I,e.rmClass=Q,e.keyNames=wr}pd(tt),vd(tt);var wd="iter insert remove copy getEditor constructor".split(" ");for(var Ai in Mt.prototype)Mt.prototype.hasOwnProperty(Ai)&&Se(wd,Ai)<0&&(tt.prototype[Ai]=function(e){return function(){return e.apply(this.doc,arguments)}}(Mt.prototype[Ai]));return Wt(Mt),tt.inputStyles={textarea:st,contenteditable:Qe},tt.defineMode=function(e){!tt.defaults.mode&&e!="null"&&(tt.defaults.mode=e),Gt.apply(this,arguments)},tt.defineMIME=Cr,tt.defineMode("null",function(){return{token:function(e){return e.skipToEnd()}}}),tt.defineMIME("text/plain","null"),tt.defineExtension=function(e,t){tt.prototype[e]=t},tt.defineDocExtension=function(e,t){Mt.prototype[e]=t},tt.fromTextArea=_d,kd(tt),tt.version="5.65.18",tt})});var Yn=Ke((us,cs)=>{(function(o){typeof us=="object"&&typeof cs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.overlayMode=function(p,v,C){return{startState:function(){return{base:o.startState(p),overlay:o.startState(v),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(b){return{base:o.copyState(p,b.base),overlay:o.copyState(v,b.overlay),basePos:b.basePos,baseCur:null,overlayPos:b.overlayPos,overlayCur:null}},token:function(b,S){return(b!=S.streamSeen||Math.min(S.basePos,S.overlayPos){(function(o){typeof fs=="object"&&typeof ds=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";var p=/^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/,v=/^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/,C=/[*+-]\s/;o.commands.newlineAndIndentContinueMarkdownList=function(S){if(S.getOption("disableInput"))return o.Pass;for(var s=S.listSelections(),h=[],g=0;g\s*$/.test(E),M=!/>\s*$/.test(E);(R||M)&&S.replaceRange("",{line:T.line,ch:0},{line:T.line,ch:T.ch+1}),h[g]=` +`}else{var H=z[1],Z=z[5],ee=!(C.test(z[2])||z[2].indexOf(">")>=0),re=ee?parseInt(z[3],10)+1+z[4]:z[2].replace("x"," ");h[g]=` +`+H+re+Z,ee&&b(S,T)}}S.replaceSelections(h)};function b(S,s){var h=s.line,g=0,T=0,x=p.exec(S.getLine(h)),c=x[1];do{g+=1;var d=h+g,w=S.getLine(d),E=p.exec(w);if(E){var z=E[1],y=parseInt(x[3],10)+g-T,R=parseInt(E[3],10),M=R;if(c===z&&!isNaN(R))y===R&&(M=R+1),y>R&&(M=y+1),S.replaceRange(w.replace(p,z+M+E[4]+E[5]),{line:d,ch:0},{line:d,ch:w.length});else{if(c.length>z.length||c.length{(function(o){typeof hs=="object"&&typeof gs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){o.defineOption("placeholder","",function(h,g,T){var x=T&&T!=o.Init;if(g&&!x)h.on("blur",b),h.on("change",S),h.on("swapDoc",S),o.on(h.getInputField(),"compositionupdate",h.state.placeholderCompose=function(){C(h)}),S(h);else if(!g&&x){h.off("blur",b),h.off("change",S),h.off("swapDoc",S),o.off(h.getInputField(),"compositionupdate",h.state.placeholderCompose),p(h);var c=h.getWrapperElement();c.className=c.className.replace(" CodeMirror-empty","")}g&&!h.hasFocus()&&b(h)});function p(h){h.state.placeholder&&(h.state.placeholder.parentNode.removeChild(h.state.placeholder),h.state.placeholder=null)}function v(h){p(h);var g=h.state.placeholder=document.createElement("pre");g.style.cssText="height: 0; overflow: visible",g.style.direction=h.getOption("direction"),g.className="CodeMirror-placeholder CodeMirror-line-like";var T=h.getOption("placeholder");typeof T=="string"&&(T=document.createTextNode(T)),g.appendChild(T),h.display.lineSpace.insertBefore(g,h.display.lineSpace.firstChild)}function C(h){setTimeout(function(){var g=!1;if(h.lineCount()==1){var T=h.getInputField();g=T.nodeName=="TEXTAREA"?!h.getLine(0).length:!/[^\u200b]/.test(T.querySelector(".CodeMirror-line").textContent)}g?v(h):p(h)},20)}function b(h){s(h)&&v(h)}function S(h){var g=h.getWrapperElement(),T=s(h);g.className=g.className.replace(" CodeMirror-empty","")+(T?" CodeMirror-empty":""),T?v(h):p(h)}function s(h){return h.lineCount()===1&&h.getLine(0)===""}})});var ys=Ke((vs,bs)=>{(function(o){typeof vs=="object"&&typeof bs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineOption("styleSelectedText",!1,function(x,c,d){var w=d&&d!=o.Init;c&&!w?(x.state.markedSelection=[],x.state.markedSelectionStyle=typeof c=="string"?c:"CodeMirror-selectedtext",g(x),x.on("cursorActivity",p),x.on("change",v)):!c&&w&&(x.off("cursorActivity",p),x.off("change",v),h(x),x.state.markedSelection=x.state.markedSelectionStyle=null)});function p(x){x.state.markedSelection&&x.operation(function(){T(x)})}function v(x){x.state.markedSelection&&x.state.markedSelection.length&&x.operation(function(){h(x)})}var C=8,b=o.Pos,S=o.cmpPos;function s(x,c,d,w){if(S(c,d)!=0)for(var E=x.state.markedSelection,z=x.state.markedSelectionStyle,y=c.line;;){var R=y==c.line?c:b(y,0),M=y+C,H=M>=d.line,Z=H?d:b(M,0),ee=x.markText(R,Z,{className:z});if(w==null?E.push(ee):E.splice(w++,0,ee),H)break;y=M}}function h(x){for(var c=x.state.markedSelection,d=0;d1)return g(x);var c=x.getCursor("start"),d=x.getCursor("end"),w=x.state.markedSelection;if(!w.length)return s(x,c,d);var E=w[0].find(),z=w[w.length-1].find();if(!E||!z||d.line-c.line<=C||S(c,z.to)>=0||S(d,E.from)<=0)return g(x);for(;S(c,E.from)>0;)w.shift().clear(),E=w[0].find();for(S(c,E.from)<0&&(E.to.line-c.line0&&(d.line-z.from.line{(function(o){typeof xs=="object"&&typeof _s=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";var p=o.Pos;function v(y){var R=y.flags;return R??(y.ignoreCase?"i":"")+(y.global?"g":"")+(y.multiline?"m":"")}function C(y,R){for(var M=v(y),H=M,Z=0;Zre);N++){var F=y.getLine(ee++);H=H==null?F:H+` +`+F}Z=Z*2,R.lastIndex=M.ch;var D=R.exec(H);if(D){var Q=H.slice(0,D.index).split(` +`),j=D[0].split(` +`),V=M.line+Q.length-1,_=Q[Q.length-1].length;return{from:p(V,_),to:p(V+j.length-1,j.length==1?_+j[0].length:j[j.length-1].length),match:D}}}}function h(y,R,M){for(var H,Z=0;Z<=y.length;){R.lastIndex=Z;var ee=R.exec(y);if(!ee)break;var re=ee.index+ee[0].length;if(re>y.length-M)break;(!H||re>H.index+H[0].length)&&(H=ee),Z=ee.index+1}return H}function g(y,R,M){R=C(R,"g");for(var H=M.line,Z=M.ch,ee=y.firstLine();H>=ee;H--,Z=-1){var re=y.getLine(H),N=h(re,R,Z<0?0:re.length-Z);if(N)return{from:p(H,N.index),to:p(H,N.index+N[0].length),match:N}}}function T(y,R,M){if(!b(R))return g(y,R,M);R=C(R,"gm");for(var H,Z=1,ee=y.getLine(M.line).length-M.ch,re=M.line,N=y.firstLine();re>=N;){for(var F=0;F=N;F++){var D=y.getLine(re--);H=H==null?D:D+` +`+H}Z*=2;var Q=h(H,R,ee);if(Q){var j=H.slice(0,Q.index).split(` +`),V=Q[0].split(` +`),_=re+j.length,K=j[j.length-1].length;return{from:p(_,K),to:p(_+V.length-1,V.length==1?K+V[0].length:V[V.length-1].length),match:Q}}}}var x,c;String.prototype.normalize?(x=function(y){return y.normalize("NFD").toLowerCase()},c=function(y){return y.normalize("NFD")}):(x=function(y){return y.toLowerCase()},c=function(y){return y});function d(y,R,M,H){if(y.length==R.length)return M;for(var Z=0,ee=M+Math.max(0,y.length-R.length);;){if(Z==ee)return Z;var re=Z+ee>>1,N=H(y.slice(0,re)).length;if(N==M)return re;N>M?ee=re:Z=re+1}}function w(y,R,M,H){if(!R.length)return null;var Z=H?x:c,ee=Z(R).split(/\r|\n\r?/);e:for(var re=M.line,N=M.ch,F=y.lastLine()+1-ee.length;re<=F;re++,N=0){var D=y.getLine(re).slice(N),Q=Z(D);if(ee.length==1){var j=Q.indexOf(ee[0]);if(j==-1)continue e;var M=d(D,Q,j,Z)+N;return{from:p(re,d(D,Q,j,Z)+N),to:p(re,d(D,Q,j+ee[0].length,Z)+N)}}else{var V=Q.length-ee[0].length;if(Q.slice(V)!=ee[0])continue e;for(var _=1;_=F;re--,N=-1){var D=y.getLine(re);N>-1&&(D=D.slice(0,N));var Q=Z(D);if(ee.length==1){var j=Q.lastIndexOf(ee[0]);if(j==-1)continue e;return{from:p(re,d(D,Q,j,Z)),to:p(re,d(D,Q,j+ee[0].length,Z))}}else{var V=ee[ee.length-1];if(Q.slice(0,V.length)!=V)continue e;for(var _=1,M=re-ee.length+1;_(this.doc.getLine(R.line)||"").length&&(R.ch=0,R.line++)),o.cmpPos(R,this.doc.clipPos(R))!=0))return this.atOccurrence=!1;var M=this.matches(y,R);if(this.afterEmptyMatch=M&&o.cmpPos(M.from,M.to)==0,M)return this.pos=M,this.atOccurrence=!0,this.pos.match||!0;var H=p(y?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:H,to:H},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(y,R){if(this.atOccurrence){var M=o.splitLines(y);this.doc.replaceRange(M,this.pos.from,this.pos.to,R),this.pos.to=p(this.pos.from.line+M.length-1,M[M.length-1].length+(M.length==1?this.pos.from.ch:0))}}},o.defineExtension("getSearchCursor",function(y,R,M){return new z(this.doc,y,R,M)}),o.defineDocExtension("getSearchCursor",function(y,R,M){return new z(this,y,R,M)}),o.defineExtension("selectMatches",function(y,R){for(var M=[],H=this.getSearchCursor(y,this.getCursor("from"),R);H.findNext()&&!(o.cmpPos(H.to(),this.getCursor("to"))>0);)M.push({anchor:H.from(),head:H.to()});M.length&&this.setSelections(M,0)})})});var Vo=Ke((ws,Ss)=>{(function(o){typeof ws=="object"&&typeof Ss=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(I,B,le,xe,q,L){this.indented=I,this.column=B,this.type=le,this.info=xe,this.align=q,this.prev=L}function v(I,B,le,xe){var q=I.indented;return I.context&&I.context.type=="statement"&&le!="statement"&&(q=I.context.indented),I.context=new p(q,B,le,xe,null,I.context)}function C(I){var B=I.context.type;return(B==")"||B=="]"||B=="}")&&(I.indented=I.context.indented),I.context=I.context.prev}function b(I,B,le){if(B.prevToken=="variable"||B.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(I.string.slice(0,le))||B.typeAtEndOfLine&&I.column()==I.indentation())return!0}function S(I){for(;;){if(!I||I.type=="top")return!0;if(I.type=="}"&&I.prev.info!="namespace")return!1;I=I.prev}}o.defineMode("clike",function(I,B){var le=I.indentUnit,xe=B.statementIndentUnit||le,q=B.dontAlignCalls,L=B.keywords||{},de=B.types||{},ze=B.builtin||{},pe=B.blockKeywords||{},Ee=B.defKeywords||{},ge=B.atoms||{},Oe=B.hooks||{},qe=B.multiLineStrings,Se=B.indentStatements!==!1,je=B.indentSwitch!==!1,Ze=B.namespaceSeparator,ke=B.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,Je=B.numberStart||/[\d\.]/,He=B.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,Ge=B.isOperatorChar||/[+\-*&%=<>!?|\/]/,U=B.isIdentifierChar||/[\w\$_\xa1-\uffff]/,G=B.isReservedIdentifier||!1,ce,Be;function te(we,Me){var Le=we.next();if(Oe[Le]){var $=Oe[Le](we,Me);if($!==!1)return $}if(Le=='"'||Le=="'")return Me.tokenize=fe(Le),Me.tokenize(we,Me);if(Je.test(Le)){if(we.backUp(1),we.match(He))return"number";we.next()}if(ke.test(Le))return ce=Le,null;if(Le=="/"){if(we.eat("*"))return Me.tokenize=oe,oe(we,Me);if(we.eat("/"))return we.skipToEnd(),"comment"}if(Ge.test(Le)){for(;!we.match(/^\/[\/*]/,!1)&&we.eat(Ge););return"operator"}if(we.eatWhile(U),Ze)for(;we.match(Ze);)we.eatWhile(U);var W=we.current();return h(L,W)?(h(pe,W)&&(ce="newstatement"),h(Ee,W)&&(Be=!0),"keyword"):h(de,W)?"type":h(ze,W)||G&&G(W)?(h(pe,W)&&(ce="newstatement"),"builtin"):h(ge,W)?"atom":"variable"}function fe(we){return function(Me,Le){for(var $=!1,W,se=!1;(W=Me.next())!=null;){if(W==we&&!$){se=!0;break}$=!$&&W=="\\"}return(se||!($||qe))&&(Le.tokenize=null),"string"}}function oe(we,Me){for(var Le=!1,$;$=we.next();){if($=="/"&&Le){Me.tokenize=null;break}Le=$=="*"}return"comment"}function Ue(we,Me){B.typeFirstDefinitions&&we.eol()&&S(Me.context)&&(Me.typeAtEndOfLine=b(we,Me,we.pos))}return{startState:function(we){return{tokenize:null,context:new p((we||0)-le,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(we,Me){var Le=Me.context;if(we.sol()&&(Le.align==null&&(Le.align=!1),Me.indented=we.indentation(),Me.startOfLine=!0),we.eatSpace())return Ue(we,Me),null;ce=Be=null;var $=(Me.tokenize||te)(we,Me);if($=="comment"||$=="meta")return $;if(Le.align==null&&(Le.align=!0),ce==";"||ce==":"||ce==","&&we.match(/^\s*(?:\/\/.*)?$/,!1))for(;Me.context.type=="statement";)C(Me);else if(ce=="{")v(Me,we.column(),"}");else if(ce=="[")v(Me,we.column(),"]");else if(ce=="(")v(Me,we.column(),")");else if(ce=="}"){for(;Le.type=="statement";)Le=C(Me);for(Le.type=="}"&&(Le=C(Me));Le.type=="statement";)Le=C(Me)}else ce==Le.type?C(Me):Se&&((Le.type=="}"||Le.type=="top")&&ce!=";"||Le.type=="statement"&&ce=="newstatement")&&v(Me,we.column(),"statement",we.current());if($=="variable"&&(Me.prevToken=="def"||B.typeFirstDefinitions&&b(we,Me,we.start)&&S(Me.context)&&we.match(/^\s*\(/,!1))&&($="def"),Oe.token){var W=Oe.token(we,Me,$);W!==void 0&&($=W)}return $=="def"&&B.styleDefs===!1&&($="variable"),Me.startOfLine=!1,Me.prevToken=Be?"def":$||ce,Ue(we,Me),$},indent:function(we,Me){if(we.tokenize!=te&&we.tokenize!=null||we.typeAtEndOfLine&&S(we.context))return o.Pass;var Le=we.context,$=Me&&Me.charAt(0),W=$==Le.type;if(Le.type=="statement"&&$=="}"&&(Le=Le.prev),B.dontIndentStatements)for(;Le.type=="statement"&&B.dontIndentStatements.test(Le.info);)Le=Le.prev;if(Oe.indent){var se=Oe.indent(we,Le,Me,le);if(typeof se=="number")return se}var De=Le.prev&&Le.prev.info=="switch";if(B.allmanIndentation&&/[{(]/.test($)){for(;Le.type!="top"&&Le.type!="}";)Le=Le.prev;return Le.indented}return Le.type=="statement"?Le.indented+($=="{"?0:xe):Le.align&&(!q||Le.type!=")")?Le.column+(W?0:1):Le.type==")"&&!W?Le.indented+xe:Le.indented+(W?0:le)+(!W&&De&&!/^(?:case|default)\b/.test(Me)?le:0)},electricInput:je?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"brace"}});function s(I){for(var B={},le=I.split(" "),xe=0;xe!?|\/#:@]/,hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},'"':function(I,B){return I.match('""')?(B.tokenize=j,B.tokenize(I,B)):!1},"'":function(I){return I.match(/^(\\[^'\s]+|[^\\'])'/)?"string-2":(I.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(I,B){var le=B.context;return le.type=="}"&&le.align&&I.eat(">")?(B.context=new p(le.indented,le.column,le.type,le.info,null,le.prev),"operator"):!1},"/":function(I,B){return I.eat("*")?(B.tokenize=V(1),B.tokenize(I,B)):!1}},modeProps:{closeBrackets:{pairs:'()[]{}""',triples:'"'}}});function _(I){return function(B,le){for(var xe=!1,q,L=!1;!B.eol();){if(!I&&!xe&&B.match('"')){L=!0;break}if(I&&B.match('"""')){L=!0;break}q=B.next(),!xe&&q=="$"&&B.match("{")&&B.skipTo("}"),xe=!xe&&q=="\\"&&!I}return(L||!I)&&(le.tokenize=null),"string"}}Q("text/x-kotlin",{name:"clike",keywords:s("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam value"),types:s("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:s("catch class do else finally for if where try while enum"),defKeywords:s("class val var object interface fun"),atoms:s("true false null this"),hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},"*":function(I,B){return B.prevToken=="."?"variable":"operator"},'"':function(I,B){return B.tokenize=_(I.match('""')),B.tokenize(I,B)},"/":function(I,B){return I.eat("*")?(B.tokenize=V(1),B.tokenize(I,B)):!1},indent:function(I,B,le,xe){var q=le&&le.charAt(0);if((I.prevToken=="}"||I.prevToken==")")&&le=="")return I.indented;if(I.prevToken=="operator"&&le!="}"&&I.context.type!="}"||I.prevToken=="variable"&&q=="."||(I.prevToken=="}"||I.prevToken==")")&&q==".")return xe*2+B.indented;if(B.align&&B.type=="}")return B.indented+(I.context.type==(le||"").charAt(0)?0:xe)}},modeProps:{closeBrackets:{triples:'"'}}}),Q(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:s("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:s("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:s("for while do if else struct"),builtin:s("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:s("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":M},modeProps:{fold:["brace","include"]}}),Q("text/x-nesc",{name:"clike",keywords:s(g+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:E,blockKeywords:s(y),atoms:s("null true false"),hooks:{"#":M},modeProps:{fold:["brace","include"]}}),Q("text/x-objectivec",{name:"clike",keywords:s(g+" "+x),types:z,builtin:s(c),blockKeywords:s(y+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:s(R+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:s("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Z,hooks:{"#":M,"*":H},modeProps:{fold:["brace","include"]}}),Q("text/x-objectivec++",{name:"clike",keywords:s(g+" "+x+" "+T),types:z,builtin:s(c),blockKeywords:s(y+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:s(R+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:s("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Z,hooks:{"#":M,"*":H,u:re,U:re,L:re,R:re,0:ee,1:ee,2:ee,3:ee,4:ee,5:ee,6:ee,7:ee,8:ee,9:ee,token:function(I,B,le){if(le=="variable"&&I.peek()=="("&&(B.prevToken==";"||B.prevToken==null||B.prevToken=="}")&&N(I.current()))return"def"}},namespaceSeparator:"::",modeProps:{fold:["brace","include"]}}),Q("text/x-squirrel",{name:"clike",keywords:s("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:E,blockKeywords:s("case catch class else for foreach if switch try while"),defKeywords:s("function local class"),typeFirstDefinitions:!0,atoms:s("true false null"),hooks:{"#":M},modeProps:{fold:["brace","include"]}});var K=null;function X(I){return function(B,le){for(var xe=!1,q,L=!1;!B.eol();){if(!xe&&B.match('"')&&(I=="single"||B.match('""'))){L=!0;break}if(!xe&&B.match("``")){K=X(I),L=!0;break}q=B.next(),xe=I=="single"&&!xe&&q=="\\"}return L&&(le.tokenize=null),"string"}}Q("text/x-ceylon",{name:"clike",keywords:s("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(I){var B=I.charAt(0);return B===B.toUpperCase()&&B!==B.toLowerCase()},blockKeywords:s("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:s("class dynamic function interface module object package value"),builtin:s("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:s("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(I){return I.eatWhile(/[\w\$_]/),"meta"},'"':function(I,B){return B.tokenize=X(I.match('""')?"triple":"single"),B.tokenize(I,B)},"`":function(I,B){return!K||!I.match("`")?!1:(B.tokenize=K,K=null,B.tokenize(I,B))},"'":function(I){return I.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"},token:function(I,B,le){if((le=="variable"||le=="type")&&B.prevToken==".")return"variable-2"}},modeProps:{fold:["brace","import"],closeBrackets:{triples:'"'}}})})});var Cs=Ke((Ts,Ls)=>{(function(o){typeof Ts=="object"&&typeof Ls=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("cmake",function(){var p=/({)?[a-zA-Z0-9_]+(})?/;function v(b,S){for(var s,h,g=!1;!b.eol()&&(s=b.next())!=S.pending;){if(s==="$"&&h!="\\"&&S.pending=='"'){g=!0;break}h=s}return g&&b.backUp(1),s==S.pending?S.continueString=!1:S.continueString=!0,"string"}function C(b,S){var s=b.next();return s==="$"?b.match(p)?"variable-2":"variable":S.continueString?(b.backUp(1),v(b,S)):b.match(/(\s+)?\w+\(/)||b.match(/(\s+)?\w+\ \(/)?(b.backUp(1),"def"):s=="#"?(b.skipToEnd(),"comment"):s=="'"||s=='"'?(S.pending=s,v(b,S)):s=="("||s==")"?"bracket":s.match(/[0-9]/)?"number":(b.eatWhile(/[\w-]/),null)}return{startState:function(){var b={};return b.inDefinition=!1,b.inInclude=!1,b.continueString=!1,b.pending=!1,b},token:function(b,S){return b.eatSpace()?null:C(b,S)}}}),o.defineMIME("text/x-cmake","cmake")})});var gn=Ke((Es,zs)=>{(function(o){typeof Es=="object"&&typeof zs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("css",function(F,D){var Q=D.inline;D.propertyKeywords||(D=o.resolveMode("text/css"));var j=F.indentUnit,V=D.tokenHooks,_=D.documentTypes||{},K=D.mediaTypes||{},X=D.mediaFeatures||{},I=D.mediaValueKeywords||{},B=D.propertyKeywords||{},le=D.nonStandardPropertyKeywords||{},xe=D.fontProperties||{},q=D.counterDescriptors||{},L=D.colorKeywords||{},de=D.valueKeywords||{},ze=D.allowNested,pe=D.lineComment,Ee=D.supportsAtComponent===!0,ge=F.highlightNonStandardPropertyKeywords!==!1,Oe,qe;function Se(te,fe){return Oe=fe,te}function je(te,fe){var oe=te.next();if(V[oe]){var Ue=V[oe](te,fe);if(Ue!==!1)return Ue}if(oe=="@")return te.eatWhile(/[\w\\\-]/),Se("def",te.current());if(oe=="="||(oe=="~"||oe=="|")&&te.eat("="))return Se(null,"compare");if(oe=='"'||oe=="'")return fe.tokenize=Ze(oe),fe.tokenize(te,fe);if(oe=="#")return te.eatWhile(/[\w\\\-]/),Se("atom","hash");if(oe=="!")return te.match(/^\s*\w*/),Se("keyword","important");if(/\d/.test(oe)||oe=="."&&te.eat(/\d/))return te.eatWhile(/[\w.%]/),Se("number","unit");if(oe==="-"){if(/[\d.]/.test(te.peek()))return te.eatWhile(/[\w.%]/),Se("number","unit");if(te.match(/^-[\w\\\-]*/))return te.eatWhile(/[\w\\\-]/),te.match(/^\s*:/,!1)?Se("variable-2","variable-definition"):Se("variable-2","variable");if(te.match(/^\w+-/))return Se("meta","meta")}else return/[,+>*\/]/.test(oe)?Se(null,"select-op"):oe=="."&&te.match(/^-?[_a-z][_a-z0-9-]*/i)?Se("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(oe)?Se(null,oe):te.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(te.current())&&(fe.tokenize=ke),Se("variable callee","variable")):/[\w\\\-]/.test(oe)?(te.eatWhile(/[\w\\\-]/),Se("property","word")):Se(null,null)}function Ze(te){return function(fe,oe){for(var Ue=!1,we;(we=fe.next())!=null;){if(we==te&&!Ue){te==")"&&fe.backUp(1);break}Ue=!Ue&&we=="\\"}return(we==te||!Ue&&te!=")")&&(oe.tokenize=null),Se("string","string")}}function ke(te,fe){return te.next(),te.match(/^\s*[\"\')]/,!1)?fe.tokenize=null:fe.tokenize=Ze(")"),Se(null,"(")}function Je(te,fe,oe){this.type=te,this.indent=fe,this.prev=oe}function He(te,fe,oe,Ue){return te.context=new Je(oe,fe.indentation()+(Ue===!1?0:j),te.context),oe}function Ge(te){return te.context.prev&&(te.context=te.context.prev),te.context.type}function U(te,fe,oe){return Be[oe.context.type](te,fe,oe)}function G(te,fe,oe,Ue){for(var we=Ue||1;we>0;we--)oe.context=oe.context.prev;return U(te,fe,oe)}function ce(te){var fe=te.current().toLowerCase();de.hasOwnProperty(fe)?qe="atom":L.hasOwnProperty(fe)?qe="keyword":qe="variable"}var Be={};return Be.top=function(te,fe,oe){if(te=="{")return He(oe,fe,"block");if(te=="}"&&oe.context.prev)return Ge(oe);if(Ee&&/@component/i.test(te))return He(oe,fe,"atComponentBlock");if(/^@(-moz-)?document$/i.test(te))return He(oe,fe,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(te))return He(oe,fe,"atBlock");if(/^@(font-face|counter-style)/i.test(te))return oe.stateArg=te,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(te))return"keyframes";if(te&&te.charAt(0)=="@")return He(oe,fe,"at");if(te=="hash")qe="builtin";else if(te=="word")qe="tag";else{if(te=="variable-definition")return"maybeprop";if(te=="interpolation")return He(oe,fe,"interpolation");if(te==":")return"pseudo";if(ze&&te=="(")return He(oe,fe,"parens")}return oe.context.type},Be.block=function(te,fe,oe){if(te=="word"){var Ue=fe.current().toLowerCase();return B.hasOwnProperty(Ue)?(qe="property","maybeprop"):le.hasOwnProperty(Ue)?(qe=ge?"string-2":"property","maybeprop"):ze?(qe=fe.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(qe+=" error","maybeprop")}else return te=="meta"?"block":!ze&&(te=="hash"||te=="qualifier")?(qe="error","block"):Be.top(te,fe,oe)},Be.maybeprop=function(te,fe,oe){return te==":"?He(oe,fe,"prop"):U(te,fe,oe)},Be.prop=function(te,fe,oe){if(te==";")return Ge(oe);if(te=="{"&&ze)return He(oe,fe,"propBlock");if(te=="}"||te=="{")return G(te,fe,oe);if(te=="(")return He(oe,fe,"parens");if(te=="hash"&&!/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(fe.current()))qe+=" error";else if(te=="word")ce(fe);else if(te=="interpolation")return He(oe,fe,"interpolation");return"prop"},Be.propBlock=function(te,fe,oe){return te=="}"?Ge(oe):te=="word"?(qe="property","maybeprop"):oe.context.type},Be.parens=function(te,fe,oe){return te=="{"||te=="}"?G(te,fe,oe):te==")"?Ge(oe):te=="("?He(oe,fe,"parens"):te=="interpolation"?He(oe,fe,"interpolation"):(te=="word"&&ce(fe),"parens")},Be.pseudo=function(te,fe,oe){return te=="meta"?"pseudo":te=="word"?(qe="variable-3",oe.context.type):U(te,fe,oe)},Be.documentTypes=function(te,fe,oe){return te=="word"&&_.hasOwnProperty(fe.current())?(qe="tag",oe.context.type):Be.atBlock(te,fe,oe)},Be.atBlock=function(te,fe,oe){if(te=="(")return He(oe,fe,"atBlock_parens");if(te=="}"||te==";")return G(te,fe,oe);if(te=="{")return Ge(oe)&&He(oe,fe,ze?"block":"top");if(te=="interpolation")return He(oe,fe,"interpolation");if(te=="word"){var Ue=fe.current().toLowerCase();Ue=="only"||Ue=="not"||Ue=="and"||Ue=="or"?qe="keyword":K.hasOwnProperty(Ue)?qe="attribute":X.hasOwnProperty(Ue)?qe="property":I.hasOwnProperty(Ue)?qe="keyword":B.hasOwnProperty(Ue)?qe="property":le.hasOwnProperty(Ue)?qe=ge?"string-2":"property":de.hasOwnProperty(Ue)?qe="atom":L.hasOwnProperty(Ue)?qe="keyword":qe="error"}return oe.context.type},Be.atComponentBlock=function(te,fe,oe){return te=="}"?G(te,fe,oe):te=="{"?Ge(oe)&&He(oe,fe,ze?"block":"top",!1):(te=="word"&&(qe="error"),oe.context.type)},Be.atBlock_parens=function(te,fe,oe){return te==")"?Ge(oe):te=="{"||te=="}"?G(te,fe,oe,2):Be.atBlock(te,fe,oe)},Be.restricted_atBlock_before=function(te,fe,oe){return te=="{"?He(oe,fe,"restricted_atBlock"):te=="word"&&oe.stateArg=="@counter-style"?(qe="variable","restricted_atBlock_before"):U(te,fe,oe)},Be.restricted_atBlock=function(te,fe,oe){return te=="}"?(oe.stateArg=null,Ge(oe)):te=="word"?(oe.stateArg=="@font-face"&&!xe.hasOwnProperty(fe.current().toLowerCase())||oe.stateArg=="@counter-style"&&!q.hasOwnProperty(fe.current().toLowerCase())?qe="error":qe="property","maybeprop"):"restricted_atBlock"},Be.keyframes=function(te,fe,oe){return te=="word"?(qe="variable","keyframes"):te=="{"?He(oe,fe,"top"):U(te,fe,oe)},Be.at=function(te,fe,oe){return te==";"?Ge(oe):te=="{"||te=="}"?G(te,fe,oe):(te=="word"?qe="tag":te=="hash"&&(qe="builtin"),"at")},Be.interpolation=function(te,fe,oe){return te=="}"?Ge(oe):te=="{"||te==";"?G(te,fe,oe):(te=="word"?qe="variable":te!="variable"&&te!="("&&te!=")"&&(qe="error"),"interpolation")},{startState:function(te){return{tokenize:null,state:Q?"block":"top",stateArg:null,context:new Je(Q?"block":"top",te||0,null)}},token:function(te,fe){if(!fe.tokenize&&te.eatSpace())return null;var oe=(fe.tokenize||je)(te,fe);return oe&&typeof oe=="object"&&(Oe=oe[1],oe=oe[0]),qe=oe,Oe!="comment"&&(fe.state=Be[fe.state](Oe,te,fe)),qe},indent:function(te,fe){var oe=te.context,Ue=fe&&fe.charAt(0),we=oe.indent;return oe.type=="prop"&&(Ue=="}"||Ue==")")&&(oe=oe.prev),oe.prev&&(Ue=="}"&&(oe.type=="block"||oe.type=="top"||oe.type=="interpolation"||oe.type=="restricted_atBlock")?(oe=oe.prev,we=oe.indent):(Ue==")"&&(oe.type=="parens"||oe.type=="atBlock_parens")||Ue=="{"&&(oe.type=="at"||oe.type=="atBlock"))&&(we=Math.max(0,oe.indent-j))),we},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:pe,fold:"brace"}});function p(F){for(var D={},Q=0;Q{(function(o){typeof Ms=="object"&&typeof As=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("diff",function(){var p={"+":"positive","-":"negative","@":"meta"};return{token:function(v){var C=v.string.search(/[\t ]+?$/);if(!v.sol()||C===0)return v.skipToEnd(),("error "+(p[v.string.charAt(0)]||"")).replace(/ $/,"");var b=p[v.peek()]||v.skipToEnd();return C===-1?v.skipToEnd():v.pos=C,b}}}),o.defineMIME("text/x-diff","diff")})});var mn=Ke((qs,Is)=>{(function(o){typeof qs=="object"&&typeof Is=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";var p={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},v={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};o.defineMode("xml",function(C,b){var S=C.indentUnit,s={},h=b.htmlMode?p:v;for(var g in h)s[g]=h[g];for(var g in b)s[g]=b[g];var T,x;function c(_,K){function X(le){return K.tokenize=le,le(_,K)}var I=_.next();if(I=="<")return _.eat("!")?_.eat("[")?_.match("CDATA[")?X(E("atom","]]>")):null:_.match("--")?X(E("comment","-->")):_.match("DOCTYPE",!0,!0)?(_.eatWhile(/[\w\._\-]/),X(z(1))):null:_.eat("?")?(_.eatWhile(/[\w\._\-]/),K.tokenize=E("meta","?>"),"meta"):(T=_.eat("/")?"closeTag":"openTag",K.tokenize=d,"tag bracket");if(I=="&"){var B;return _.eat("#")?_.eat("x")?B=_.eatWhile(/[a-fA-F\d]/)&&_.eat(";"):B=_.eatWhile(/[\d]/)&&_.eat(";"):B=_.eatWhile(/[\w\.\-:]/)&&_.eat(";"),B?"atom":"error"}else return _.eatWhile(/[^&<]/),null}c.isInText=!0;function d(_,K){var X=_.next();if(X==">"||X=="/"&&_.eat(">"))return K.tokenize=c,T=X==">"?"endTag":"selfcloseTag","tag bracket";if(X=="=")return T="equals",null;if(X=="<"){K.tokenize=c,K.state=Z,K.tagName=K.tagStart=null;var I=K.tokenize(_,K);return I?I+" tag error":"tag error"}else return/[\'\"]/.test(X)?(K.tokenize=w(X),K.stringStartCol=_.column(),K.tokenize(_,K)):(_.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function w(_){var K=function(X,I){for(;!X.eol();)if(X.next()==_){I.tokenize=d;break}return"string"};return K.isInAttribute=!0,K}function E(_,K){return function(X,I){for(;!X.eol();){if(X.match(K)){I.tokenize=c;break}X.next()}return _}}function z(_){return function(K,X){for(var I;(I=K.next())!=null;){if(I=="<")return X.tokenize=z(_+1),X.tokenize(K,X);if(I==">")if(_==1){X.tokenize=c;break}else return X.tokenize=z(_-1),X.tokenize(K,X)}return"meta"}}function y(_){return _&&_.toLowerCase()}function R(_,K,X){this.prev=_.context,this.tagName=K||"",this.indent=_.indented,this.startOfLine=X,(s.doNotIndent.hasOwnProperty(K)||_.context&&_.context.noIndent)&&(this.noIndent=!0)}function M(_){_.context&&(_.context=_.context.prev)}function H(_,K){for(var X;;){if(!_.context||(X=_.context.tagName,!s.contextGrabbers.hasOwnProperty(y(X))||!s.contextGrabbers[y(X)].hasOwnProperty(y(K))))return;M(_)}}function Z(_,K,X){return _=="openTag"?(X.tagStart=K.column(),ee):_=="closeTag"?re:Z}function ee(_,K,X){return _=="word"?(X.tagName=K.current(),x="tag",D):s.allowMissingTagName&&_=="endTag"?(x="tag bracket",D(_,K,X)):(x="error",ee)}function re(_,K,X){if(_=="word"){var I=K.current();return X.context&&X.context.tagName!=I&&s.implicitlyClosed.hasOwnProperty(y(X.context.tagName))&&M(X),X.context&&X.context.tagName==I||s.matchClosing===!1?(x="tag",N):(x="tag error",F)}else return s.allowMissingTagName&&_=="endTag"?(x="tag bracket",N(_,K,X)):(x="error",F)}function N(_,K,X){return _!="endTag"?(x="error",N):(M(X),Z)}function F(_,K,X){return x="error",N(_,K,X)}function D(_,K,X){if(_=="word")return x="attribute",Q;if(_=="endTag"||_=="selfcloseTag"){var I=X.tagName,B=X.tagStart;return X.tagName=X.tagStart=null,_=="selfcloseTag"||s.autoSelfClosers.hasOwnProperty(y(I))?H(X,I):(H(X,I),X.context=new R(X,I,B==X.indented)),Z}return x="error",D}function Q(_,K,X){return _=="equals"?j:(s.allowMissing||(x="error"),D(_,K,X))}function j(_,K,X){return _=="string"?V:_=="word"&&s.allowUnquoted?(x="string",D):(x="error",D(_,K,X))}function V(_,K,X){return _=="string"?V:D(_,K,X)}return{startState:function(_){var K={tokenize:c,state:Z,indented:_||0,tagName:null,tagStart:null,context:null};return _!=null&&(K.baseIndent=_),K},token:function(_,K){if(!K.tagName&&_.sol()&&(K.indented=_.indentation()),_.eatSpace())return null;T=null;var X=K.tokenize(_,K);return(X||T)&&X!="comment"&&(x=null,K.state=K.state(T||X,_,K),x&&(X=x=="error"?X+" error":x)),X},indent:function(_,K,X){var I=_.context;if(_.tokenize.isInAttribute)return _.tagStart==_.indented?_.stringStartCol+1:_.indented+S;if(I&&I.noIndent)return o.Pass;if(_.tokenize!=d&&_.tokenize!=c)return X?X.match(/^(\s*)/)[0].length:0;if(_.tagName)return s.multilineTagIndentPastTag!==!1?_.tagStart+_.tagName.length+2:_.tagStart+S*(s.multilineTagIndentFactor||1);if(s.alignCDATA&&/$/,blockCommentStart:"",configuration:s.htmlMode?"html":"xml",helperType:s.htmlMode?"html":"xml",skipAttribute:function(_){_.state==j&&(_.state=D)},xmlCurrentTag:function(_){return _.tagName?{name:_.tagName,close:_.type=="closeTag"}:null},xmlCurrentContext:function(_){for(var K=[],X=_.context;X;X=X.prev)K.push(X.tagName);return K.reverse()}}}),o.defineMIME("text/xml","xml"),o.defineMIME("application/xml","xml"),o.mimeModes.hasOwnProperty("text/html")||o.defineMIME("text/html",{name:"xml",htmlMode:!0})})});var vn=Ke((Fs,Ns)=>{(function(o){typeof Fs=="object"&&typeof Ns=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("javascript",function(p,v){var C=p.indentUnit,b=v.statementIndent,S=v.jsonld,s=v.json||S,h=v.trackScope!==!1,g=v.typescript,T=v.wordCharacters||/[\w$\xa1-\uffff]/,x=function(){function k(pt){return{type:pt,style:"keyword"}}var O=k("keyword a"),ae=k("keyword b"),he=k("keyword c"),ne=k("keyword d"),ye=k("operator"),Xe={type:"atom",style:"atom"};return{if:k("if"),while:O,with:O,else:ae,do:ae,try:ae,finally:ae,return:ne,break:ne,continue:ne,new:k("new"),delete:he,void:he,throw:he,debugger:k("debugger"),var:k("var"),const:k("var"),let:k("var"),function:k("function"),catch:k("catch"),for:k("for"),switch:k("switch"),case:k("case"),default:k("default"),in:ye,typeof:ye,instanceof:ye,true:Xe,false:Xe,null:Xe,undefined:Xe,NaN:Xe,Infinity:Xe,this:k("this"),class:k("class"),super:k("atom"),yield:he,export:k("export"),import:k("import"),extends:he,await:he}}(),c=/[+\-*&%=<>!?|~^@]/,d=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function w(k){for(var O=!1,ae,he=!1;(ae=k.next())!=null;){if(!O){if(ae=="/"&&!he)return;ae=="["?he=!0:he&&ae=="]"&&(he=!1)}O=!O&&ae=="\\"}}var E,z;function y(k,O,ae){return E=k,z=ae,O}function R(k,O){var ae=k.next();if(ae=='"'||ae=="'")return O.tokenize=M(ae),O.tokenize(k,O);if(ae=="."&&k.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return y("number","number");if(ae=="."&&k.match(".."))return y("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(ae))return y(ae);if(ae=="="&&k.eat(">"))return y("=>","operator");if(ae=="0"&&k.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return y("number","number");if(/\d/.test(ae))return k.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),y("number","number");if(ae=="/")return k.eat("*")?(O.tokenize=H,H(k,O)):k.eat("/")?(k.skipToEnd(),y("comment","comment")):jt(k,O,1)?(w(k),k.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),y("regexp","string-2")):(k.eat("="),y("operator","operator",k.current()));if(ae=="`")return O.tokenize=Z,Z(k,O);if(ae=="#"&&k.peek()=="!")return k.skipToEnd(),y("meta","meta");if(ae=="#"&&k.eatWhile(T))return y("variable","property");if(ae=="<"&&k.match("!--")||ae=="-"&&k.match("->")&&!/\S/.test(k.string.slice(0,k.start)))return k.skipToEnd(),y("comment","comment");if(c.test(ae))return(ae!=">"||!O.lexical||O.lexical.type!=">")&&(k.eat("=")?(ae=="!"||ae=="=")&&k.eat("="):/[<>*+\-|&?]/.test(ae)&&(k.eat(ae),ae==">"&&k.eat(ae))),ae=="?"&&k.eat(".")?y("."):y("operator","operator",k.current());if(T.test(ae)){k.eatWhile(T);var he=k.current();if(O.lastType!="."){if(x.propertyIsEnumerable(he)){var ne=x[he];return y(ne.type,ne.style,he)}if(he=="async"&&k.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return y("async","keyword",he)}return y("variable","variable",he)}}function M(k){return function(O,ae){var he=!1,ne;if(S&&O.peek()=="@"&&O.match(d))return ae.tokenize=R,y("jsonld-keyword","meta");for(;(ne=O.next())!=null&&!(ne==k&&!he);)he=!he&&ne=="\\";return he||(ae.tokenize=R),y("string","string")}}function H(k,O){for(var ae=!1,he;he=k.next();){if(he=="/"&&ae){O.tokenize=R;break}ae=he=="*"}return y("comment","comment")}function Z(k,O){for(var ae=!1,he;(he=k.next())!=null;){if(!ae&&(he=="`"||he=="$"&&k.eat("{"))){O.tokenize=R;break}ae=!ae&&he=="\\"}return y("quasi","string-2",k.current())}var ee="([{}])";function re(k,O){O.fatArrowAt&&(O.fatArrowAt=null);var ae=k.string.indexOf("=>",k.start);if(!(ae<0)){if(g){var he=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(k.string.slice(k.start,ae));he&&(ae=he.index)}for(var ne=0,ye=!1,Xe=ae-1;Xe>=0;--Xe){var pt=k.string.charAt(Xe),Et=ee.indexOf(pt);if(Et>=0&&Et<3){if(!ne){++Xe;break}if(--ne==0){pt=="("&&(ye=!0);break}}else if(Et>=3&&Et<6)++ne;else if(T.test(pt))ye=!0;else if(/["'\/`]/.test(pt))for(;;--Xe){if(Xe==0)return;var Zr=k.string.charAt(Xe-1);if(Zr==pt&&k.string.charAt(Xe-2)!="\\"){Xe--;break}}else if(ye&&!ne){++Xe;break}}ye&&!ne&&(O.fatArrowAt=Xe)}}var N={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function F(k,O,ae,he,ne,ye){this.indented=k,this.column=O,this.type=ae,this.prev=ne,this.info=ye,he!=null&&(this.align=he)}function D(k,O){if(!h)return!1;for(var ae=k.localVars;ae;ae=ae.next)if(ae.name==O)return!0;for(var he=k.context;he;he=he.prev)for(var ae=he.vars;ae;ae=ae.next)if(ae.name==O)return!0}function Q(k,O,ae,he,ne){var ye=k.cc;for(j.state=k,j.stream=ne,j.marked=null,j.cc=ye,j.style=O,k.lexical.hasOwnProperty("align")||(k.lexical.align=!0);;){var Xe=ye.length?ye.pop():s?Se:Oe;if(Xe(ae,he)){for(;ye.length&&ye[ye.length-1].lex;)ye.pop()();return j.marked?j.marked:ae=="variable"&&D(k,he)?"variable-2":O}}}var j={state:null,column:null,marked:null,cc:null};function V(){for(var k=arguments.length-1;k>=0;k--)j.cc.push(arguments[k])}function _(){return V.apply(null,arguments),!0}function K(k,O){for(var ae=O;ae;ae=ae.next)if(ae.name==k)return!0;return!1}function X(k){var O=j.state;if(j.marked="def",!!h){if(O.context){if(O.lexical.info=="var"&&O.context&&O.context.block){var ae=I(k,O.context);if(ae!=null){O.context=ae;return}}else if(!K(k,O.localVars)){O.localVars=new xe(k,O.localVars);return}}v.globalVars&&!K(k,O.globalVars)&&(O.globalVars=new xe(k,O.globalVars))}}function I(k,O){if(O)if(O.block){var ae=I(k,O.prev);return ae?ae==O.prev?O:new le(ae,O.vars,!0):null}else return K(k,O.vars)?O:new le(O.prev,new xe(k,O.vars),!1);else return null}function B(k){return k=="public"||k=="private"||k=="protected"||k=="abstract"||k=="readonly"}function le(k,O,ae){this.prev=k,this.vars=O,this.block=ae}function xe(k,O){this.name=k,this.next=O}var q=new xe("this",new xe("arguments",null));function L(){j.state.context=new le(j.state.context,j.state.localVars,!1),j.state.localVars=q}function de(){j.state.context=new le(j.state.context,j.state.localVars,!0),j.state.localVars=null}L.lex=de.lex=!0;function ze(){j.state.localVars=j.state.context.vars,j.state.context=j.state.context.prev}ze.lex=!0;function pe(k,O){var ae=function(){var he=j.state,ne=he.indented;if(he.lexical.type=="stat")ne=he.lexical.indented;else for(var ye=he.lexical;ye&&ye.type==")"&&ye.align;ye=ye.prev)ne=ye.indented;he.lexical=new F(ne,j.stream.column(),k,null,he.lexical,O)};return ae.lex=!0,ae}function Ee(){var k=j.state;k.lexical.prev&&(k.lexical.type==")"&&(k.indented=k.lexical.indented),k.lexical=k.lexical.prev)}Ee.lex=!0;function ge(k){function O(ae){return ae==k?_():k==";"||ae=="}"||ae==")"||ae=="]"?V():_(O)}return O}function Oe(k,O){return k=="var"?_(pe("vardef",O),Hr,ge(";"),Ee):k=="keyword a"?_(pe("form"),Ze,Oe,Ee):k=="keyword b"?_(pe("form"),Oe,Ee):k=="keyword d"?j.stream.match(/^\s*$/,!1)?_():_(pe("stat"),Je,ge(";"),Ee):k=="debugger"?_(ge(";")):k=="{"?_(pe("}"),de,De,Ee,ze):k==";"?_():k=="if"?(j.state.lexical.info=="else"&&j.state.cc[j.state.cc.length-1]==Ee&&j.state.cc.pop()(),_(pe("form"),Ze,Oe,Ee,Br)):k=="function"?_(Bt):k=="for"?_(pe("form"),de,ei,Oe,ze,Ee):k=="class"||g&&O=="interface"?(j.marked="keyword",_(pe("form",k=="class"?k:O),Wr,Ee)):k=="variable"?g&&O=="declare"?(j.marked="keyword",_(Oe)):g&&(O=="module"||O=="enum"||O=="type")&&j.stream.match(/^\s*\w/,!1)?(j.marked="keyword",O=="enum"?_(Ae):O=="type"?_(ti,ge("operator"),Pe,ge(";")):_(pe("form"),Ct,ge("{"),pe("}"),De,Ee,Ee)):g&&O=="namespace"?(j.marked="keyword",_(pe("form"),Se,Oe,Ee)):g&&O=="abstract"?(j.marked="keyword",_(Oe)):_(pe("stat"),Ue):k=="switch"?_(pe("form"),Ze,ge("{"),pe("}","switch"),de,De,Ee,Ee,ze):k=="case"?_(Se,ge(":")):k=="default"?_(ge(":")):k=="catch"?_(pe("form"),L,qe,Oe,Ee,ze):k=="export"?_(pe("stat"),Ur,Ee):k=="import"?_(pe("stat"),gr,Ee):k=="async"?_(Oe):O=="@"?_(Se,Oe):V(pe("stat"),Se,ge(";"),Ee)}function qe(k){if(k=="(")return _($t,ge(")"))}function Se(k,O){return ke(k,O,!1)}function je(k,O){return ke(k,O,!0)}function Ze(k){return k!="("?V():_(pe(")"),Je,ge(")"),Ee)}function ke(k,O,ae){if(j.state.fatArrowAt==j.stream.start){var he=ae?Be:ce;if(k=="(")return _(L,pe(")"),W($t,")"),Ee,ge("=>"),he,ze);if(k=="variable")return V(L,Ct,ge("=>"),he,ze)}var ne=ae?Ge:He;return N.hasOwnProperty(k)?_(ne):k=="function"?_(Bt,ne):k=="class"||g&&O=="interface"?(j.marked="keyword",_(pe("form"),to,Ee)):k=="keyword c"||k=="async"?_(ae?je:Se):k=="("?_(pe(")"),Je,ge(")"),Ee,ne):k=="operator"||k=="spread"?_(ae?je:Se):k=="["?_(pe("]"),at,Ee,ne):k=="{"?se(Me,"}",null,ne):k=="quasi"?V(U,ne):k=="new"?_(te(ae)):_()}function Je(k){return k.match(/[;\}\)\],]/)?V():V(Se)}function He(k,O){return k==","?_(Je):Ge(k,O,!1)}function Ge(k,O,ae){var he=ae==!1?He:Ge,ne=ae==!1?Se:je;if(k=="=>")return _(L,ae?Be:ce,ze);if(k=="operator")return/\+\+|--/.test(O)||g&&O=="!"?_(he):g&&O=="<"&&j.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?_(pe(">"),W(Pe,">"),Ee,he):O=="?"?_(Se,ge(":"),ne):_(ne);if(k=="quasi")return V(U,he);if(k!=";"){if(k=="(")return se(je,")","call",he);if(k==".")return _(we,he);if(k=="[")return _(pe("]"),Je,ge("]"),Ee,he);if(g&&O=="as")return j.marked="keyword",_(Pe,he);if(k=="regexp")return j.state.lastType=j.marked="operator",j.stream.backUp(j.stream.pos-j.stream.start-1),_(ne)}}function U(k,O){return k!="quasi"?V():O.slice(O.length-2)!="${"?_(U):_(Je,G)}function G(k){if(k=="}")return j.marked="string-2",j.state.tokenize=Z,_(U)}function ce(k){return re(j.stream,j.state),V(k=="{"?Oe:Se)}function Be(k){return re(j.stream,j.state),V(k=="{"?Oe:je)}function te(k){return function(O){return O=="."?_(k?oe:fe):O=="variable"&&g?_(Ft,k?Ge:He):V(k?je:Se)}}function fe(k,O){if(O=="target")return j.marked="keyword",_(He)}function oe(k,O){if(O=="target")return j.marked="keyword",_(Ge)}function Ue(k){return k==":"?_(Ee,Oe):V(He,ge(";"),Ee)}function we(k){if(k=="variable")return j.marked="property",_()}function Me(k,O){if(k=="async")return j.marked="property",_(Me);if(k=="variable"||j.style=="keyword"){if(j.marked="property",O=="get"||O=="set")return _(Le);var ae;return g&&j.state.fatArrowAt==j.stream.start&&(ae=j.stream.match(/^\s*:\s*/,!1))&&(j.state.fatArrowAt=j.stream.pos+ae[0].length),_($)}else{if(k=="number"||k=="string")return j.marked=S?"property":j.style+" property",_($);if(k=="jsonld-keyword")return _($);if(g&&B(O))return j.marked="keyword",_(Me);if(k=="[")return _(Se,nt,ge("]"),$);if(k=="spread")return _(je,$);if(O=="*")return j.marked="keyword",_(Me);if(k==":")return V($)}}function Le(k){return k!="variable"?V($):(j.marked="property",_(Bt))}function $(k){if(k==":")return _(je);if(k=="(")return V(Bt)}function W(k,O,ae){function he(ne,ye){if(ae?ae.indexOf(ne)>-1:ne==","){var Xe=j.state.lexical;return Xe.info=="call"&&(Xe.pos=(Xe.pos||0)+1),_(function(pt,Et){return pt==O||Et==O?V():V(k)},he)}return ne==O||ye==O?_():ae&&ae.indexOf(";")>-1?V(k):_(ge(O))}return function(ne,ye){return ne==O||ye==O?_():V(k,he)}}function se(k,O,ae){for(var he=3;he"),Pe);if(k=="quasi")return V(_t,Ht)}function xt(k){if(k=="=>")return _(Pe)}function Fe(k){return k.match(/[\}\)\]]/)?_():k==","||k==";"?_(Fe):V(nr,Fe)}function nr(k,O){if(k=="variable"||j.style=="keyword")return j.marked="property",_(nr);if(O=="?"||k=="number"||k=="string")return _(nr);if(k==":")return _(Pe);if(k=="[")return _(ge("variable"),dt,ge("]"),nr);if(k=="(")return V(hr,nr);if(!k.match(/[;\}\)\],]/))return _()}function _t(k,O){return k!="quasi"?V():O.slice(O.length-2)!="${"?_(_t):_(Pe,it)}function it(k){if(k=="}")return j.marked="string-2",j.state.tokenize=Z,_(_t)}function ot(k,O){return k=="variable"&&j.stream.match(/^\s*[?:]/,!1)||O=="?"?_(ot):k==":"?_(Pe):k=="spread"?_(ot):V(Pe)}function Ht(k,O){if(O=="<")return _(pe(">"),W(Pe,">"),Ee,Ht);if(O=="|"||k=="."||O=="&")return _(Pe);if(k=="[")return _(Pe,ge("]"),Ht);if(O=="extends"||O=="implements")return j.marked="keyword",_(Pe);if(O=="?")return _(Pe,ge(":"),Pe)}function Ft(k,O){if(O=="<")return _(pe(">"),W(Pe,">"),Ee,Ht)}function Wt(){return V(Pe,kt)}function kt(k,O){if(O=="=")return _(Pe)}function Hr(k,O){return O=="enum"?(j.marked="keyword",_(Ae)):V(Ct,nt,Ut,eo)}function Ct(k,O){if(g&&B(O))return j.marked="keyword",_(Ct);if(k=="variable")return X(O),_();if(k=="spread")return _(Ct);if(k=="[")return se(yn,"]");if(k=="{")return se(dr,"}")}function dr(k,O){return k=="variable"&&!j.stream.match(/^\s*:/,!1)?(X(O),_(Ut)):(k=="variable"&&(j.marked="property"),k=="spread"?_(Ct):k=="}"?V():k=="["?_(Se,ge("]"),ge(":"),dr):_(ge(":"),Ct,Ut))}function yn(){return V(Ct,Ut)}function Ut(k,O){if(O=="=")return _(je)}function eo(k){if(k==",")return _(Hr)}function Br(k,O){if(k=="keyword b"&&O=="else")return _(pe("form","else"),Oe,Ee)}function ei(k,O){if(O=="await")return _(ei);if(k=="(")return _(pe(")"),xn,Ee)}function xn(k){return k=="var"?_(Hr,pr):k=="variable"?_(pr):V(pr)}function pr(k,O){return k==")"?_():k==";"?_(pr):O=="in"||O=="of"?(j.marked="keyword",_(Se,pr)):V(Se,pr)}function Bt(k,O){if(O=="*")return j.marked="keyword",_(Bt);if(k=="variable")return X(O),_(Bt);if(k=="(")return _(L,pe(")"),W($t,")"),Ee,Pt,Oe,ze);if(g&&O=="<")return _(pe(">"),W(Wt,">"),Ee,Bt)}function hr(k,O){if(O=="*")return j.marked="keyword",_(hr);if(k=="variable")return X(O),_(hr);if(k=="(")return _(L,pe(")"),W($t,")"),Ee,Pt,ze);if(g&&O=="<")return _(pe(">"),W(Wt,">"),Ee,hr)}function ti(k,O){if(k=="keyword"||k=="variable")return j.marked="type",_(ti);if(O=="<")return _(pe(">"),W(Wt,">"),Ee)}function $t(k,O){return O=="@"&&_(Se,$t),k=="spread"?_($t):g&&B(O)?(j.marked="keyword",_($t)):g&&k=="this"?_(nt,Ut):V(Ct,nt,Ut)}function to(k,O){return k=="variable"?Wr(k,O):Kt(k,O)}function Wr(k,O){if(k=="variable")return X(O),_(Kt)}function Kt(k,O){if(O=="<")return _(pe(">"),W(Wt,">"),Ee,Kt);if(O=="extends"||O=="implements"||g&&k==",")return O=="implements"&&(j.marked="keyword"),_(g?Pe:Se,Kt);if(k=="{")return _(pe("}"),Gt,Ee)}function Gt(k,O){if(k=="async"||k=="variable"&&(O=="static"||O=="get"||O=="set"||g&&B(O))&&j.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1))return j.marked="keyword",_(Gt);if(k=="variable"||j.style=="keyword")return j.marked="property",_(Cr,Gt);if(k=="number"||k=="string")return _(Cr,Gt);if(k=="[")return _(Se,nt,ge("]"),Cr,Gt);if(O=="*")return j.marked="keyword",_(Gt);if(g&&k=="(")return V(hr,Gt);if(k==";"||k==",")return _(Gt);if(k=="}")return _();if(O=="@")return _(Se,Gt)}function Cr(k,O){if(O=="!"||O=="?")return _(Cr);if(k==":")return _(Pe,Ut);if(O=="=")return _(je);var ae=j.state.lexical.prev,he=ae&&ae.info=="interface";return V(he?hr:Bt)}function Ur(k,O){return O=="*"?(j.marked="keyword",_(Gr,ge(";"))):O=="default"?(j.marked="keyword",_(Se,ge(";"))):k=="{"?_(W($r,"}"),Gr,ge(";")):V(Oe)}function $r(k,O){if(O=="as")return j.marked="keyword",_(ge("variable"));if(k=="variable")return V(je,$r)}function gr(k){return k=="string"?_():k=="("?V(Se):k=="."?V(He):V(Kr,Vt,Gr)}function Kr(k,O){return k=="{"?se(Kr,"}"):(k=="variable"&&X(O),O=="*"&&(j.marked="keyword"),_(_n))}function Vt(k){if(k==",")return _(Kr,Vt)}function _n(k,O){if(O=="as")return j.marked="keyword",_(Kr)}function Gr(k,O){if(O=="from")return j.marked="keyword",_(Se)}function at(k){return k=="]"?_():V(W(je,"]"))}function Ae(){return V(pe("form"),Ct,ge("{"),pe("}"),W(ir,"}"),Ee,Ee)}function ir(){return V(Ct,Ut)}function kn(k,O){return k.lastType=="operator"||k.lastType==","||c.test(O.charAt(0))||/[,.]/.test(O.charAt(0))}function jt(k,O,ae){return O.tokenize==R&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(O.lastType)||O.lastType=="quasi"&&/\{\s*$/.test(k.string.slice(0,k.pos-(ae||0)))}return{startState:function(k){var O={tokenize:R,lastType:"sof",cc:[],lexical:new F((k||0)-C,0,"block",!1),localVars:v.localVars,context:v.localVars&&new le(null,null,!1),indented:k||0};return v.globalVars&&typeof v.globalVars=="object"&&(O.globalVars=v.globalVars),O},token:function(k,O){if(k.sol()&&(O.lexical.hasOwnProperty("align")||(O.lexical.align=!1),O.indented=k.indentation(),re(k,O)),O.tokenize!=H&&k.eatSpace())return null;var ae=O.tokenize(k,O);return E=="comment"?ae:(O.lastType=E=="operator"&&(z=="++"||z=="--")?"incdec":E,Q(O,ae,E,z,k))},indent:function(k,O){if(k.tokenize==H||k.tokenize==Z)return o.Pass;if(k.tokenize!=R)return 0;var ae=O&&O.charAt(0),he=k.lexical,ne;if(!/^\s*else\b/.test(O))for(var ye=k.cc.length-1;ye>=0;--ye){var Xe=k.cc[ye];if(Xe==Ee)he=he.prev;else if(Xe!=Br&&Xe!=ze)break}for(;(he.type=="stat"||he.type=="form")&&(ae=="}"||(ne=k.cc[k.cc.length-1])&&(ne==He||ne==Ge)&&!/^[,\.=+\-*:?[\(]/.test(O));)he=he.prev;b&&he.type==")"&&he.prev.type=="stat"&&(he=he.prev);var pt=he.type,Et=ae==pt;return pt=="vardef"?he.indented+(k.lastType=="operator"||k.lastType==","?he.info.length+1:0):pt=="form"&&ae=="{"?he.indented:pt=="form"?he.indented+C:pt=="stat"?he.indented+(kn(k,O)?b||C:0):he.info=="switch"&&!Et&&v.doubleIndentSwitch!=!1?he.indented+(/^(?:case|default)\b/.test(O)?C:2*C):he.align?he.column+(Et?0:1):he.indented+(Et?0:C)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:s?null:"/*",blockCommentEnd:s?null:"*/",blockCommentContinue:s?null:" * ",lineComment:s?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:s?"json":"javascript",jsonldMode:S,jsonMode:s,expressionAllowed:jt,skipExpression:function(k){Q(k,"atom","atom","true",new o.StringStream("",2,null))}}}),o.registerHelper("wordChars","javascript",/[\w$]/),o.defineMIME("text/javascript","javascript"),o.defineMIME("text/ecmascript","javascript"),o.defineMIME("application/javascript","javascript"),o.defineMIME("application/x-javascript","javascript"),o.defineMIME("application/ecmascript","javascript"),o.defineMIME("application/json",{name:"javascript",json:!0}),o.defineMIME("application/x-json",{name:"javascript",json:!0}),o.defineMIME("application/manifest+json",{name:"javascript",json:!0}),o.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),o.defineMIME("text/typescript",{name:"javascript",typescript:!0}),o.defineMIME("application/typescript",{name:"javascript",typescript:!0})})});var Qn=Ke((Os,Ps)=>{(function(o){typeof Os=="object"&&typeof Ps=="object"?o(We(),mn(),vn(),gn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],o):o(CodeMirror)})(function(o){"use strict";var p={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]};function v(T,x,c){var d=T.current(),w=d.search(x);return w>-1?T.backUp(d.length-w):d.match(/<\/?$/)&&(T.backUp(d.length),T.match(x,!1)||T.match(d)),c}var C={};function b(T){var x=C[T];return x||(C[T]=new RegExp("\\s+"+T+`\\s*=\\s*('|")?([^'"]+)('|")?\\s*`))}function S(T,x){var c=T.match(b(x));return c?/^\s*(.*?)\s*$/.exec(c[2])[1]:""}function s(T,x){return new RegExp((x?"^":"")+"","i")}function h(T,x){for(var c in T)for(var d=x[c]||(x[c]=[]),w=T[c],E=w.length-1;E>=0;E--)d.unshift(w[E])}function g(T,x){for(var c=0;c=0;z--)d.script.unshift(["type",E[z].matches,E[z].mode]);function y(R,M){var H=c.token(R,M.htmlState),Z=/\btag\b/.test(H),ee;if(Z&&!/[<>\s\/]/.test(R.current())&&(ee=M.htmlState.tagName&&M.htmlState.tagName.toLowerCase())&&d.hasOwnProperty(ee))M.inTag=ee+" ";else if(M.inTag&&Z&&/>$/.test(R.current())){var re=/^([\S]+) (.*)/.exec(M.inTag);M.inTag=null;var N=R.current()==">"&&g(d[re[1]],re[2]),F=o.getMode(T,N),D=s(re[1],!0),Q=s(re[1],!1);M.token=function(j,V){return j.match(D,!1)?(V.token=y,V.localState=V.localMode=null,null):v(j,Q,V.localMode.token(j,V.localState))},M.localMode=F,M.localState=o.startState(F,c.indent(M.htmlState,"",""))}else M.inTag&&(M.inTag+=R.current(),R.eol()&&(M.inTag+=" "));return H}return{startState:function(){var R=o.startState(c);return{token:y,inTag:null,localMode:null,localState:null,htmlState:R}},copyState:function(R){var M;return R.localState&&(M=o.copyState(R.localMode,R.localState)),{token:R.token,inTag:R.inTag,localMode:R.localMode,localState:M,htmlState:o.copyState(c,R.htmlState)}},token:function(R,M){return M.token(R,M)},indent:function(R,M,H){return!R.localMode||/^\s*<\//.test(M)?c.indent(R.htmlState,M,H):R.localMode.indent?R.localMode.indent(R.localState,M,H):o.Pass},innerMode:function(R){return{state:R.localState||R.htmlState,mode:R.localMode||c}}}},"xml","javascript","css"),o.defineMIME("text/html","htmlmixed")})});var Hs=Ke((js,Rs)=>{(function(o){typeof js=="object"&&typeof Rs=="object"?o(We(),Qn(),Yn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../../addon/mode/overlay"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("django:inner",function(){var p=["block","endblock","for","endfor","true","false","filter","endfilter","loop","none","self","super","if","elif","endif","as","else","import","with","endwith","without","context","ifequal","endifequal","ifnotequal","endifnotequal","extends","include","load","comment","endcomment","empty","url","static","trans","blocktrans","endblocktrans","now","regroup","lorem","ifchanged","endifchanged","firstof","debug","cycle","csrf_token","autoescape","endautoescape","spaceless","endspaceless","ssi","templatetag","verbatim","endverbatim","widthratio"],v=["add","addslashes","capfirst","center","cut","date","default","default_if_none","dictsort","dictsortreversed","divisibleby","escape","escapejs","filesizeformat","first","floatformat","force_escape","get_digit","iriencode","join","last","length","length_is","linebreaks","linebreaksbr","linenumbers","ljust","lower","make_list","phone2numeric","pluralize","pprint","random","removetags","rjust","safe","safeseq","slice","slugify","stringformat","striptags","time","timesince","timeuntil","title","truncatechars","truncatechars_html","truncatewords","truncatewords_html","unordered_list","upper","urlencode","urlize","urlizetrunc","wordcount","wordwrap","yesno"],C=["==","!=","<",">","<=",">="],b=["in","not","or","and"];p=new RegExp("^\\b("+p.join("|")+")\\b"),v=new RegExp("^\\b("+v.join("|")+")\\b"),C=new RegExp("^\\b("+C.join("|")+")\\b"),b=new RegExp("^\\b("+b.join("|")+")\\b");function S(c,d){if(c.match("{{"))return d.tokenize=h,"tag";if(c.match("{%"))return d.tokenize=g,"tag";if(c.match("{#"))return d.tokenize=T,"comment";for(;c.next()!=null&&!c.match(/\{[{%#]/,!1););return null}function s(c,d){return function(w,E){if(!E.escapeNext&&w.eat(c))E.tokenize=d;else{E.escapeNext&&(E.escapeNext=!1);var z=w.next();z=="\\"&&(E.escapeNext=!0)}return"string"}}function h(c,d){if(d.waitDot){if(d.waitDot=!1,c.peek()!=".")return"null";if(c.match(/\.\W+/))return"error";if(c.eat("."))return d.waitProperty=!0,"null";throw Error("Unexpected error while waiting for property.")}if(d.waitPipe){if(d.waitPipe=!1,c.peek()!="|")return"null";if(c.match(/\.\W+/))return"error";if(c.eat("|"))return d.waitFilter=!0,"null";throw Error("Unexpected error while waiting for filter.")}return d.waitProperty&&(d.waitProperty=!1,c.match(/\b(\w+)\b/))?(d.waitDot=!0,d.waitPipe=!0,"property"):d.waitFilter&&(d.waitFilter=!1,c.match(v))?"variable-2":c.eatSpace()?(d.waitProperty=!1,"null"):c.match(/\b\d+(\.\d+)?\b/)?"number":c.match("'")?(d.tokenize=s("'",d.tokenize),"string"):c.match('"')?(d.tokenize=s('"',d.tokenize),"string"):c.match(/\b(\w+)\b/)&&!d.foundVariable?(d.waitDot=!0,d.waitPipe=!0,"variable"):c.match("}}")?(d.waitProperty=null,d.waitFilter=null,d.waitDot=null,d.waitPipe=null,d.tokenize=S,"tag"):(c.next(),"null")}function g(c,d){if(d.waitDot){if(d.waitDot=!1,c.peek()!=".")return"null";if(c.match(/\.\W+/))return"error";if(c.eat("."))return d.waitProperty=!0,"null";throw Error("Unexpected error while waiting for property.")}if(d.waitPipe){if(d.waitPipe=!1,c.peek()!="|")return"null";if(c.match(/\.\W+/))return"error";if(c.eat("|"))return d.waitFilter=!0,"null";throw Error("Unexpected error while waiting for filter.")}if(d.waitProperty&&(d.waitProperty=!1,c.match(/\b(\w+)\b/)))return d.waitDot=!0,d.waitPipe=!0,"property";if(d.waitFilter&&(d.waitFilter=!1,c.match(v)))return"variable-2";if(c.eatSpace())return d.waitProperty=!1,"null";if(c.match(/\b\d+(\.\d+)?\b/))return"number";if(c.match("'"))return d.tokenize=s("'",d.tokenize),"string";if(c.match('"'))return d.tokenize=s('"',d.tokenize),"string";if(c.match(C))return"operator";if(c.match(b))return"keyword";var w=c.match(p);return w?(w[0]=="comment"&&(d.blockCommentTag=!0),"keyword"):c.match(/\b(\w+)\b/)?(d.waitDot=!0,d.waitPipe=!0,"variable"):c.match("%}")?(d.waitProperty=null,d.waitFilter=null,d.waitDot=null,d.waitPipe=null,d.blockCommentTag?(d.blockCommentTag=!1,d.tokenize=x):d.tokenize=S,"tag"):(c.next(),"null")}function T(c,d){return c.match(/^.*?#\}/)?d.tokenize=S:c.skipToEnd(),"comment"}function x(c,d){return c.match(/\{%\s*endcomment\s*%\}/,!1)?(d.tokenize=g,c.match("{%"),"tag"):(c.next(),"comment")}return{startState:function(){return{tokenize:S}},token:function(c,d){return d.tokenize(c,d)},blockCommentStart:"{% comment %}",blockCommentEnd:"{% endcomment %}"}}),o.defineMode("django",function(p){var v=o.getMode(p,"text/html"),C=o.getMode(p,"django:inner");return o.overlayMode(v,C)}),o.defineMIME("text/x-django","django")})});var Di=Ke((Bs,Ws)=>{(function(o){typeof Bs=="object"&&typeof Ws=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineSimpleMode=function(x,c){o.defineMode(x,function(d){return o.simpleMode(d,c)})},o.simpleMode=function(x,c){p(c,"start");var d={},w=c.meta||{},E=!1;for(var z in c)if(z!=w&&c.hasOwnProperty(z))for(var y=d[z]=[],R=c[z],M=0;M2&&H.token&&typeof H.token!="string"){for(var re=2;re-1)return o.Pass;var z=d.indent.length-1,y=x[d.state];e:for(;;){for(var R=0;R{(function(o){typeof Us=="object"&&typeof $s=="object"?o(We(),Di()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple"],o):o(CodeMirror)})(function(o){"use strict";var p="from",v=new RegExp("^(\\s*)\\b("+p+")\\b","i"),C=["run","cmd","entrypoint","shell"],b=new RegExp("^(\\s*)("+C.join("|")+")(\\s+\\[)","i"),S="expose",s=new RegExp("^(\\s*)("+S+")(\\s+)","i"),h=["arg","from","maintainer","label","env","add","copy","volume","user","workdir","onbuild","stopsignal","healthcheck","shell"],g=[p,S].concat(C).concat(h),T="("+g.join("|")+")",x=new RegExp("^(\\s*)"+T+"(\\s*)(#.*)?$","i"),c=new RegExp("^(\\s*)"+T+"(\\s+)","i");o.defineSimpleMode("dockerfile",{start:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:v,token:[null,"keyword"],sol:!0,next:"from"},{regex:x,token:[null,"keyword",null,"error"],sol:!0},{regex:b,token:[null,"keyword",null],sol:!0,next:"array"},{regex:s,token:[null,"keyword",null],sol:!0,next:"expose"},{regex:c,token:[null,"keyword",null],sol:!0,next:"arguments"},{regex:/./,token:null}],from:[{regex:/\s*$/,token:null,next:"start"},{regex:/(\s*)(#.*)$/,token:[null,"error"],next:"start"},{regex:/(\s*\S+\s+)(as)/i,token:[null,"keyword"],next:"start"},{token:null,next:"start"}],single:[{regex:/(?:[^\\']|\\.)/,token:"string"},{regex:/'/,token:"string",pop:!0}],double:[{regex:/(?:[^\\"]|\\.)/,token:"string"},{regex:/"/,token:"string",pop:!0}],array:[{regex:/\]/,token:null,next:"start"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"}],expose:[{regex:/\d+$/,token:"number",next:"start"},{regex:/[^\d]+$/,token:null,next:"start"},{regex:/\d+/,token:"number"},{regex:/[^\d]+/,token:null},{token:null,next:"start"}],arguments:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:/"(?:[^\\"]|\\.)*"?$/,token:"string",next:"start"},{regex:/"/,token:"string",push:"double"},{regex:/'(?:[^\\']|\\.)*'?$/,token:"string",next:"start"},{regex:/'/,token:"string",push:"single"},{regex:/[^#"']+[\\`]$/,token:null},{regex:/[^#"']+$/,token:null,next:"start"},{regex:/[^#"']+/,token:null},{token:null,next:"start"}],meta:{lineComment:"#"}}),o.defineMIME("text/x-dockerfile","dockerfile")})});var Xs=Ke((Gs,Zs)=>{(function(o){typeof Gs=="object"&&typeof Zs=="object"?o(We()):typeof define=="function"&&define.amd?define(["../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"PGP",mimes:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],mode:"asciiarmor",ext:["asc","pgp","sig"]},{name:"ASN.1",mime:"text/x-ttcn-asn",mode:"asn.1",ext:["asn","asn1"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"Brainfuck",mime:"text/x-brainfuck",mode:"brainfuck",ext:["b","bf"]},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h","ino"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy","cbl"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp","cs"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj","cljc","cljx"]},{name:"ClojureScript",mime:"text/x-clojurescript",mode:"clojure",ext:["cljs"]},{name:"Closure Stylesheets (GSS)",mime:"text/x-gss",mode:"css",ext:["gss"]},{name:"CMake",mime:"text/x-cmake",mode:"cmake",ext:["cmake","cmake.in"],file:/^CMakeLists\.txt$/},{name:"CoffeeScript",mimes:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"Crystal",mime:"text/x-crystal",mode:"crystal",ext:["cr"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"edn",mime:"application/edn",mode:"clojure",ext:["edn"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Elm",mime:"text/x-elm",mode:"elm",ext:["elm"]},{name:"Embedded JavaScript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Esper",mime:"text/x-esper",mode:"sql"},{name:"Factor",mime:"text/x-factor",mode:"factor",ext:["factor"]},{name:"FCL",mime:"text/x-fcl",mode:"fcl"},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90","f95"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history)\.md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy","gradle"],file:/^Jenkinsfile$/},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haskell (Literate)",mime:"text/x-literate-haskell",mode:"haskell-literate",ext:["lhs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm","handlebars","hbs"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Pug",mime:"text/x-pug",mode:"pug",ext:["jade","pug"],alias:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"JSX",mime:"text/jsx",mode:"jsx",ext:["jsx"]},{name:"Jinja2",mime:"text/jinja2",mode:"jinja2",ext:["j2","jinja","jinja2"]},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"],alias:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"clike",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Mathematica",mime:"text/x-mathematica",mode:"mathematica",ext:["m","nb","wl","wls"]},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MUMPS",mime:"text/x-mumps",mode:"mumps",ext:["mps"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"mbox",mime:"application/mbox",mode:"mbox",ext:["mbox"]},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NSIS",mime:"text/x-nsis",mode:"nsis",ext:["nsh","nsi"]},{name:"NTriples",mimes:["application/n-triples","application/n-quads","text/n-triples"],mode:"ntriples",ext:["nt","nq"]},{name:"Objective-C",mime:"text/x-objectivec",mode:"clike",ext:["m"],alias:["objective-c","objc"]},{name:"Objective-C++",mime:"text/x-objectivec++",mode:"clike",ext:["mm"],alias:["objective-c++","objc++"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Oz",mime:"text/x-oz",mode:"oz",ext:["oz"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mimes:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],mode:"php",ext:["php","php3","php4","php5","php7","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"PostgreSQL",mime:"text/x-pgsql",mode:"sql"},{name:"PowerShell",mime:"application/x-powershell",mode:"powershell",ext:["ps1","psd1","psm1"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"ProtoBuf",mime:"text/x-protobuf",mode:"protobuf",ext:["proto"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["BUILD","bzl","py","pyw"],file:/^(BUCK|BUILD)$/},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r","R"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"SAS",mime:"text/x-sas",mode:"sas",ext:["sas"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mimes:["text/x-sh","application/x-sh"],mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"],file:/^PKGBUILD$/},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"SML",mime:"text/x-sml",mode:"mllike",ext:["sml","sig","fun","smackspec"]},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"SQLite",mime:"text/x-sqlite",mode:"sql"},{name:"Squirrel",mime:"text/x-squirrel",mode:"clike",ext:["nut"]},{name:"Stylus",mime:"text/x-styl",mode:"stylus",ext:["styl"]},{name:"Swift",mime:"text/x-swift",mode:"swift",ext:["swift"]},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx","tex"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v","sv","svh"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"troff",mime:"text/troff",mode:"troff",ext:["1","2","3","4","5","6","7","8","9"]},{name:"TTCN",mime:"text/x-ttcn",mode:"ttcn",ext:["ttcn","ttcn3","ttcnpp"]},{name:"TTCN_CFG",mime:"text/x-ttcn-cfg",mode:"ttcn-cfg",ext:["cfg"]},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"TypeScript-JSX",mime:"text/typescript-jsx",mode:"jsx",ext:["tsx"],alias:["tsx"]},{name:"Twig",mime:"text/x-twig",mode:"twig"},{name:"Web IDL",mime:"text/x-webidl",mode:"webidl",ext:["webidl"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"VHDL",mime:"text/x-vhdl",mode:"vhdl",ext:["vhd","vhdl"]},{name:"Vue.js Component",mimes:["script/x-vue","text/x-vue"],mode:"vue",ext:["vue"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd","svg"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"Yacas",mime:"text/x-yacas",mode:"yacas",ext:["ys"]},{name:"YAML",mimes:["text/x-yaml","text/yaml"],mode:"yaml",ext:["yaml","yml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]},{name:"mscgen",mime:"text/x-mscgen",mode:"mscgen",ext:["mscgen","mscin","msc"]},{name:"xu",mime:"text/x-xu",mode:"mscgen",ext:["xu"]},{name:"msgenny",mime:"text/x-msgenny",mode:"mscgen",ext:["msgenny"]},{name:"WebAssembly",mime:"text/webassembly",mode:"wast",ext:["wat","wast"]}];for(var p=0;p-1&&C.substring(s+1,C.length);if(h)return o.findModeByExtension(h)},o.findModeByName=function(C){C=C.toLowerCase();for(var b=0;b{(function(o){typeof Ys=="object"&&typeof Qs=="object"?o(We(),mn(),Xs()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../meta"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("markdown",function(p,v){var C=o.getMode(p,"text/html"),b=C.name=="null";function S(q){if(o.findModeByName){var L=o.findModeByName(q);L&&(q=L.mime||L.mimes[0])}var de=o.getMode(p,q);return de.name=="null"?null:de}v.highlightFormatting===void 0&&(v.highlightFormatting=!1),v.maxBlockquoteDepth===void 0&&(v.maxBlockquoteDepth=0),v.taskLists===void 0&&(v.taskLists=!1),v.strikethrough===void 0&&(v.strikethrough=!1),v.emoji===void 0&&(v.emoji=!1),v.fencedCodeBlockHighlighting===void 0&&(v.fencedCodeBlockHighlighting=!0),v.fencedCodeBlockDefaultMode===void 0&&(v.fencedCodeBlockDefaultMode="text/plain"),v.xml===void 0&&(v.xml=!0),v.tokenTypeOverrides===void 0&&(v.tokenTypeOverrides={});var s={header:"header",code:"comment",quote:"quote",list1:"variable-2",list2:"variable-3",list3:"keyword",hr:"hr",image:"image",imageAltText:"image-alt-text",imageMarker:"image-marker",formatting:"formatting",linkInline:"link",linkEmail:"link",linkText:"link",linkHref:"string",em:"em",strong:"strong",strikethrough:"strikethrough",emoji:"builtin"};for(var h in s)s.hasOwnProperty(h)&&v.tokenTypeOverrides[h]&&(s[h]=v.tokenTypeOverrides[h]);var g=/^([*\-_])(?:\s*\1){2,}\s*$/,T=/^(?:[*\-+]|^[0-9]+([.)]))\s+/,x=/^\[(x| )\](?=\s)/i,c=v.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,d=/^ {0,3}(?:\={1,}|-{2,})\s*$/,w=/^[^#!\[\]*_\\<>` "'(~:]+/,E=/^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/,z=/^\s*\[[^\]]+?\]:.*$/,y=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/,R=" ";function M(q,L,de){return L.f=L.inline=de,de(q,L)}function H(q,L,de){return L.f=L.block=de,de(q,L)}function Z(q){return!q||!/\S/.test(q.string)}function ee(q){if(q.linkTitle=!1,q.linkHref=!1,q.linkText=!1,q.em=!1,q.strong=!1,q.strikethrough=!1,q.quote=0,q.indentedCode=!1,q.f==N){var L=b;if(!L){var de=o.innerMode(C,q.htmlState);L=de.mode.name=="xml"&&de.state.tagStart===null&&!de.state.context&&de.state.tokenize.isInText}L&&(q.f=j,q.block=re,q.htmlState=null)}return q.trailingSpace=0,q.trailingSpaceNewLine=!1,q.prevLine=q.thisLine,q.thisLine={stream:null},null}function re(q,L){var de=q.column()===L.indentation,ze=Z(L.prevLine.stream),pe=L.indentedCode,Ee=L.prevLine.hr,ge=L.list!==!1,Oe=(L.listStack[L.listStack.length-1]||0)+3;L.indentedCode=!1;var qe=L.indentation;if(L.indentationDiff===null&&(L.indentationDiff=L.indentation,ge)){for(L.list=null;qe=4&&(pe||L.prevLine.fencedCodeEnd||L.prevLine.header||ze))return q.skipToEnd(),L.indentedCode=!0,s.code;if(q.eatSpace())return null;if(de&&L.indentation<=Oe&&(Ze=q.match(c))&&Ze[1].length<=6)return L.quote=0,L.header=Ze[1].length,L.thisLine.header=!0,v.highlightFormatting&&(L.formatting="header"),L.f=L.inline,D(L);if(L.indentation<=Oe&&q.eat(">"))return L.quote=de?1:L.quote+1,v.highlightFormatting&&(L.formatting="quote"),q.eatSpace(),D(L);if(!je&&!L.setext&&de&&L.indentation<=Oe&&(Ze=q.match(T))){var ke=Ze[1]?"ol":"ul";return L.indentation=qe+q.current().length,L.list=!0,L.quote=0,L.listStack.push(L.indentation),L.em=!1,L.strong=!1,L.code=!1,L.strikethrough=!1,v.taskLists&&q.match(x,!1)&&(L.taskList=!0),L.f=L.inline,v.highlightFormatting&&(L.formatting=["list","list-"+ke]),D(L)}else{if(de&&L.indentation<=Oe&&(Ze=q.match(E,!0)))return L.quote=0,L.fencedEndRE=new RegExp(Ze[1]+"+ *$"),L.localMode=v.fencedCodeBlockHighlighting&&S(Ze[2]||v.fencedCodeBlockDefaultMode),L.localMode&&(L.localState=o.startState(L.localMode)),L.f=L.block=F,v.highlightFormatting&&(L.formatting="code-block"),L.code=-1,D(L);if(L.setext||(!Se||!ge)&&!L.quote&&L.list===!1&&!L.code&&!je&&!z.test(q.string)&&(Ze=q.lookAhead(1))&&(Ze=Ze.match(d)))return L.setext?(L.header=L.setext,L.setext=0,q.skipToEnd(),v.highlightFormatting&&(L.formatting="header")):(L.header=Ze[0].charAt(0)=="="?1:2,L.setext=L.header),L.thisLine.header=!0,L.f=L.inline,D(L);if(je)return q.skipToEnd(),L.hr=!0,L.thisLine.hr=!0,s.hr;if(q.peek()==="[")return M(q,L,I)}return M(q,L,L.inline)}function N(q,L){var de=C.token(q,L.htmlState);if(!b){var ze=o.innerMode(C,L.htmlState);(ze.mode.name=="xml"&&ze.state.tagStart===null&&!ze.state.context&&ze.state.tokenize.isInText||L.md_inside&&q.current().indexOf(">")>-1)&&(L.f=j,L.block=re,L.htmlState=null)}return de}function F(q,L){var de=L.listStack[L.listStack.length-1]||0,ze=L.indentation=q.quote?L.push(s.formatting+"-"+q.formatting[de]+"-"+q.quote):L.push("error"))}if(q.taskOpen)return L.push("meta"),L.length?L.join(" "):null;if(q.taskClosed)return L.push("property"),L.length?L.join(" "):null;if(q.linkHref?L.push(s.linkHref,"url"):(q.strong&&L.push(s.strong),q.em&&L.push(s.em),q.strikethrough&&L.push(s.strikethrough),q.emoji&&L.push(s.emoji),q.linkText&&L.push(s.linkText),q.code&&L.push(s.code),q.image&&L.push(s.image),q.imageAltText&&L.push(s.imageAltText,"link"),q.imageMarker&&L.push(s.imageMarker)),q.header&&L.push(s.header,s.header+"-"+q.header),q.quote&&(L.push(s.quote),!v.maxBlockquoteDepth||v.maxBlockquoteDepth>=q.quote?L.push(s.quote+"-"+q.quote):L.push(s.quote+"-"+v.maxBlockquoteDepth)),q.list!==!1){var ze=(q.listStack.length-1)%3;ze?ze===1?L.push(s.list2):L.push(s.list3):L.push(s.list1)}return q.trailingSpaceNewLine?L.push("trailing-space-new-line"):q.trailingSpace&&L.push("trailing-space-"+(q.trailingSpace%2?"a":"b")),L.length?L.join(" "):null}function Q(q,L){if(q.match(w,!0))return D(L)}function j(q,L){var de=L.text(q,L);if(typeof de<"u")return de;if(L.list)return L.list=null,D(L);if(L.taskList){var ze=q.match(x,!0)[1]===" ";return ze?L.taskOpen=!0:L.taskClosed=!0,v.highlightFormatting&&(L.formatting="task"),L.taskList=!1,D(L)}if(L.taskOpen=!1,L.taskClosed=!1,L.header&&q.match(/^#+$/,!0))return v.highlightFormatting&&(L.formatting="header"),D(L);var pe=q.next();if(L.linkTitle){L.linkTitle=!1;var Ee=pe;pe==="("&&(Ee=")"),Ee=(Ee+"").replace(/([.?*+^\[\]\\(){}|-])/g,"\\$1");var ge="^\\s*(?:[^"+Ee+"\\\\]+|\\\\\\\\|\\\\.)"+Ee;if(q.match(new RegExp(ge),!0))return s.linkHref}if(pe==="`"){var Oe=L.formatting;v.highlightFormatting&&(L.formatting="code"),q.eatWhile("`");var qe=q.current().length;if(L.code==0&&(!L.quote||qe==1))return L.code=qe,D(L);if(qe==L.code){var Se=D(L);return L.code=0,Se}else return L.formatting=Oe,D(L)}else if(L.code)return D(L);if(pe==="\\"&&(q.next(),v.highlightFormatting)){var je=D(L),Ze=s.formatting+"-escape";return je?je+" "+Ze:Ze}if(pe==="!"&&q.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return L.imageMarker=!0,L.image=!0,v.highlightFormatting&&(L.formatting="image"),D(L);if(pe==="["&&L.imageMarker&&q.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/,!1))return L.imageMarker=!1,L.imageAltText=!0,v.highlightFormatting&&(L.formatting="image"),D(L);if(pe==="]"&&L.imageAltText){v.highlightFormatting&&(L.formatting="image");var je=D(L);return L.imageAltText=!1,L.image=!1,L.inline=L.f=_,je}if(pe==="["&&!L.image)return L.linkText&&q.match(/^.*?\]/)||(L.linkText=!0,v.highlightFormatting&&(L.formatting="link")),D(L);if(pe==="]"&&L.linkText){v.highlightFormatting&&(L.formatting="link");var je=D(L);return L.linkText=!1,L.inline=L.f=q.match(/\(.*?\)| ?\[.*?\]/,!1)?_:j,je}if(pe==="<"&&q.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){L.f=L.inline=V,v.highlightFormatting&&(L.formatting="link");var je=D(L);return je?je+=" ":je="",je+s.linkInline}if(pe==="<"&&q.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){L.f=L.inline=V,v.highlightFormatting&&(L.formatting="link");var je=D(L);return je?je+=" ":je="",je+s.linkEmail}if(v.xml&&pe==="<"&&q.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i,!1)){var ke=q.string.indexOf(">",q.pos);if(ke!=-1){var Je=q.string.substring(q.start,ke);/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(Je)&&(L.md_inside=!0)}return q.backUp(1),L.htmlState=o.startState(C),H(q,L,N)}if(v.xml&&pe==="<"&&q.match(/^\/\w*?>/))return L.md_inside=!1,"tag";if(pe==="*"||pe==="_"){for(var He=1,Ge=q.pos==1?" ":q.string.charAt(q.pos-2);He<3&&q.eat(pe);)He++;var U=q.peek()||" ",G=!/\s/.test(U)&&(!y.test(U)||/\s/.test(Ge)||y.test(Ge)),ce=!/\s/.test(Ge)&&(!y.test(Ge)||/\s/.test(U)||y.test(U)),Be=null,te=null;if(He%2&&(!L.em&&G&&(pe==="*"||!ce||y.test(Ge))?Be=!0:L.em==pe&&ce&&(pe==="*"||!G||y.test(U))&&(Be=!1)),He>1&&(!L.strong&&G&&(pe==="*"||!ce||y.test(Ge))?te=!0:L.strong==pe&&ce&&(pe==="*"||!G||y.test(U))&&(te=!1)),te!=null||Be!=null){v.highlightFormatting&&(L.formatting=Be==null?"strong":te==null?"em":"strong em"),Be===!0&&(L.em=pe),te===!0&&(L.strong=pe);var Se=D(L);return Be===!1&&(L.em=!1),te===!1&&(L.strong=!1),Se}}else if(pe===" "&&(q.eat("*")||q.eat("_"))){if(q.peek()===" ")return D(L);q.backUp(1)}if(v.strikethrough){if(pe==="~"&&q.eatWhile(pe)){if(L.strikethrough){v.highlightFormatting&&(L.formatting="strikethrough");var Se=D(L);return L.strikethrough=!1,Se}else if(q.match(/^[^\s]/,!1))return L.strikethrough=!0,v.highlightFormatting&&(L.formatting="strikethrough"),D(L)}else if(pe===" "&&q.match("~~",!0)){if(q.peek()===" ")return D(L);q.backUp(2)}}if(v.emoji&&pe===":"&&q.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)){L.emoji=!0,v.highlightFormatting&&(L.formatting="emoji");var fe=D(L);return L.emoji=!1,fe}return pe===" "&&(q.match(/^ +$/,!1)?L.trailingSpace++:L.trailingSpace&&(L.trailingSpaceNewLine=!0)),D(L)}function V(q,L){var de=q.next();if(de===">"){L.f=L.inline=j,v.highlightFormatting&&(L.formatting="link");var ze=D(L);return ze?ze+=" ":ze="",ze+s.linkInline}return q.match(/^[^>]+/,!0),s.linkInline}function _(q,L){if(q.eatSpace())return null;var de=q.next();return de==="("||de==="["?(L.f=L.inline=X(de==="("?")":"]"),v.highlightFormatting&&(L.formatting="link-string"),L.linkHref=!0,D(L)):"error"}var K={")":/^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,"]":/^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/};function X(q){return function(L,de){var ze=L.next();if(ze===q){de.f=de.inline=j,v.highlightFormatting&&(de.formatting="link-string");var pe=D(de);return de.linkHref=!1,pe}return L.match(K[q]),de.linkHref=!0,D(de)}}function I(q,L){return q.match(/^([^\]\\]|\\.)*\]:/,!1)?(L.f=B,q.next(),v.highlightFormatting&&(L.formatting="link"),L.linkText=!0,D(L)):M(q,L,j)}function B(q,L){if(q.match("]:",!0)){L.f=L.inline=le,v.highlightFormatting&&(L.formatting="link");var de=D(L);return L.linkText=!1,de}return q.match(/^([^\]\\]|\\.)+/,!0),s.linkText}function le(q,L){return q.eatSpace()?null:(q.match(/^[^\s]+/,!0),q.peek()===void 0?L.linkTitle=!0:q.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/,!0),L.f=L.inline=j,s.linkHref+" url")}var xe={startState:function(){return{f:re,prevLine:{stream:null},thisLine:{stream:null},block:re,htmlState:null,indentation:0,inline:j,text:Q,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(q){return{f:q.f,prevLine:q.prevLine,thisLine:q.thisLine,block:q.block,htmlState:q.htmlState&&o.copyState(C,q.htmlState),indentation:q.indentation,localMode:q.localMode,localState:q.localMode?o.copyState(q.localMode,q.localState):null,inline:q.inline,text:q.text,formatting:!1,linkText:q.linkText,linkTitle:q.linkTitle,linkHref:q.linkHref,code:q.code,em:q.em,strong:q.strong,strikethrough:q.strikethrough,emoji:q.emoji,header:q.header,setext:q.setext,hr:q.hr,taskList:q.taskList,list:q.list,listStack:q.listStack.slice(0),quote:q.quote,indentedCode:q.indentedCode,trailingSpace:q.trailingSpace,trailingSpaceNewLine:q.trailingSpaceNewLine,md_inside:q.md_inside,fencedEndRE:q.fencedEndRE}},token:function(q,L){if(L.formatting=!1,q!=L.thisLine.stream){if(L.header=0,L.hr=!1,q.match(/^\s*$/,!0))return ee(L),null;if(L.prevLine=L.thisLine,L.thisLine={stream:q},L.taskList=!1,L.trailingSpace=0,L.trailingSpaceNewLine=!1,!L.localState&&(L.f=L.block,L.f!=N)){var de=q.match(/^\s*/,!0)[0].replace(/\t/g,R).length;if(L.indentation=de,L.indentationDiff=null,de>0)return null}}return L.f(q,L)},innerMode:function(q){return q.block==N?{state:q.htmlState,mode:C}:q.localState?{state:q.localState,mode:q.localMode}:{state:q,mode:xe}},indent:function(q,L,de){return q.block==N&&C.indent?C.indent(q.htmlState,L,de):q.localState&&q.localMode.indent?q.localMode.indent(q.localState,L,de):o.Pass},blankLine:ee,getType:D,blockCommentStart:"",closeBrackets:"()[]{}''\"\"``",fold:"markdown"};return xe},"xml"),o.defineMIME("text/markdown","markdown"),o.defineMIME("text/x-markdown","markdown")})});var eu=Ke((Vs,Js)=>{(function(o){typeof Vs=="object"&&typeof Js=="object"?o(We(),Jo(),Yn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../markdown/markdown","../../addon/mode/overlay"],o):o(CodeMirror)})(function(o){"use strict";var p=/^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i;o.defineMode("gfm",function(v,C){var b=0;function S(T){return T.code=!1,null}var s={startState:function(){return{code:!1,codeBlock:!1,ateSpace:!1}},copyState:function(T){return{code:T.code,codeBlock:T.codeBlock,ateSpace:T.ateSpace}},token:function(T,x){if(x.combineTokens=null,x.codeBlock)return T.match(/^```+/)?(x.codeBlock=!1,null):(T.skipToEnd(),null);if(T.sol()&&(x.code=!1),T.sol()&&T.match(/^```+/))return T.skipToEnd(),x.codeBlock=!0,null;if(T.peek()==="`"){T.next();var c=T.pos;T.eatWhile("`");var d=1+T.pos-c;return x.code?d===b&&(x.code=!1):(b=d,x.code=!0),null}else if(x.code)return T.next(),null;if(T.eatSpace())return x.ateSpace=!0,null;if((T.sol()||x.ateSpace)&&(x.ateSpace=!1,C.gitHubSpice!==!1)){if(T.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/))return x.combineTokens=!0,"link";if(T.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/))return x.combineTokens=!0,"link"}return T.match(p)&&T.string.slice(T.start-2,T.start)!="]("&&(T.start==0||/\W/.test(T.string.charAt(T.start-1)))?(x.combineTokens=!0,"link"):(T.next(),null)},blankLine:S},h={taskLists:!0,strikethrough:!0,emoji:!0};for(var g in C)h[g]=C[g];return h.name="markdown",o.overlayMode(o.getMode(v,h),s)},"markdown"),o.defineMIME("text/x-gfm","gfm")})});var nu=Ke((tu,ru)=>{(function(o){typeof tu=="object"&&typeof ru=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("go",function(p){var v=p.indentUnit,C={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0,any:!0,comparable:!0},b={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},S=/[+\-*&^%:=<>!|\/]/,s;function h(w,E){var z=w.next();if(z=='"'||z=="'"||z=="`")return E.tokenize=g(z),E.tokenize(w,E);if(/[\d\.]/.test(z))return z=="."?w.match(/^[0-9_]+([eE][\-+]?[0-9_]+)?/):z=="0"?w.match(/^[xX][0-9a-fA-F_]+/)||w.match(/^[0-7_]+/):w.match(/^[0-9_]*\.?[0-9_]*([eE][\-+]?[0-9_]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(z))return s=z,null;if(z=="/"){if(w.eat("*"))return E.tokenize=T,T(w,E);if(w.eat("/"))return w.skipToEnd(),"comment"}if(S.test(z))return w.eatWhile(S),"operator";w.eatWhile(/[\w\$_\xa1-\uffff]/);var y=w.current();return C.propertyIsEnumerable(y)?((y=="case"||y=="default")&&(s="case"),"keyword"):b.propertyIsEnumerable(y)?"atom":"variable"}function g(w){return function(E,z){for(var y=!1,R,M=!1;(R=E.next())!=null;){if(R==w&&!y){M=!0;break}y=!y&&w!="`"&&R=="\\"}return(M||!(y||w=="`"))&&(z.tokenize=h),"string"}}function T(w,E){for(var z=!1,y;y=w.next();){if(y=="/"&&z){E.tokenize=h;break}z=y=="*"}return"comment"}function x(w,E,z,y,R){this.indented=w,this.column=E,this.type=z,this.align=y,this.prev=R}function c(w,E,z){return w.context=new x(w.indented,E,z,null,w.context)}function d(w){if(w.context.prev){var E=w.context.type;return(E==")"||E=="]"||E=="}")&&(w.indented=w.context.indented),w.context=w.context.prev}}return{startState:function(w){return{tokenize:null,context:new x((w||0)-v,0,"top",!1),indented:0,startOfLine:!0}},token:function(w,E){var z=E.context;if(w.sol()&&(z.align==null&&(z.align=!1),E.indented=w.indentation(),E.startOfLine=!0,z.type=="case"&&(z.type="}")),w.eatSpace())return null;s=null;var y=(E.tokenize||h)(w,E);return y=="comment"||(z.align==null&&(z.align=!0),s=="{"?c(E,w.column(),"}"):s=="["?c(E,w.column(),"]"):s=="("?c(E,w.column(),")"):s=="case"?z.type="case":(s=="}"&&z.type=="}"||s==z.type)&&d(E),E.startOfLine=!1),y},indent:function(w,E){if(w.tokenize!=h&&w.tokenize!=null)return o.Pass;var z=w.context,y=E&&E.charAt(0);if(z.type=="case"&&/^(?:case|default)\b/.test(E))return w.context.type="}",z.indented;var R=y==z.type;return z.align?z.column+(R?0:1):z.indented+(R?0:v)},electricChars:"{}):",closeBrackets:"()[]{}''\"\"``",fold:"brace",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"}}),o.defineMIME("text/x-go","go")})});var au=Ke((iu,ou)=>{(function(o){typeof iu=="object"&&typeof ou=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("http",function(){function p(T,x){return T.skipToEnd(),x.cur=h,"error"}function v(T,x){return T.match(/^HTTP\/\d\.\d/)?(x.cur=C,"keyword"):T.match(/^[A-Z]+/)&&/[ \t]/.test(T.peek())?(x.cur=S,"keyword"):p(T,x)}function C(T,x){var c=T.match(/^\d+/);if(!c)return p(T,x);x.cur=b;var d=Number(c[0]);return d>=100&&d<200?"positive informational":d>=200&&d<300?"positive success":d>=300&&d<400?"positive redirect":d>=400&&d<500?"negative client-error":d>=500&&d<600?"negative server-error":"error"}function b(T,x){return T.skipToEnd(),x.cur=h,null}function S(T,x){return T.eatWhile(/\S/),x.cur=s,"string-2"}function s(T,x){return T.match(/^HTTP\/\d\.\d$/)?(x.cur=h,"keyword"):p(T,x)}function h(T){return T.sol()&&!T.eat(/[ \t]/)?T.match(/^.*?:/)?"atom":(T.skipToEnd(),"error"):(T.skipToEnd(),"string")}function g(T){return T.skipToEnd(),null}return{token:function(T,x){var c=x.cur;return c!=h&&c!=g&&T.eatSpace()?null:c(T,x)},blankLine:function(T){T.cur=g},startState:function(){return{cur:v}}}}),o.defineMIME("message/http","http")})});var uu=Ke((lu,su)=>{(function(o){typeof lu=="object"&&typeof su=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("jinja2",function(){var p=["and","as","block","endblock","by","cycle","debug","else","elif","extends","filter","endfilter","firstof","do","for","endfor","if","endif","ifchanged","endifchanged","ifequal","endifequal","ifnotequal","set","raw","endraw","endifnotequal","in","include","load","not","now","or","parsed","regroup","reversed","spaceless","call","endcall","macro","endmacro","endspaceless","ssi","templatetag","openblock","closeblock","openvariable","closevariable","without","context","openbrace","closebrace","opencomment","closecomment","widthratio","url","with","endwith","get_current_language","trans","endtrans","noop","blocktrans","endblocktrans","get_available_languages","get_current_language_bidi","pluralize","autoescape","endautoescape"],v=/^[+\-*&%=<>!?|~^]/,C=/^[:\[\(\{]/,b=["true","false"],S=/^(\d[+\-\*\/])?\d+(\.\d+)?/;p=new RegExp("(("+p.join(")|(")+"))\\b"),b=new RegExp("(("+b.join(")|(")+"))\\b");function s(h,g){var T=h.peek();if(g.incomment)return h.skipTo("#}")?(h.eatWhile(/\#|}/),g.incomment=!1):h.skipToEnd(),"comment";if(g.intag){if(g.operator){if(g.operator=!1,h.match(b))return"atom";if(h.match(S))return"number"}if(g.sign){if(g.sign=!1,h.match(b))return"atom";if(h.match(S))return"number"}if(g.instring)return T==g.instring&&(g.instring=!1),h.next(),"string";if(T=="'"||T=='"')return g.instring=T,h.next(),"string";if(g.inbraces>0&&T==")")h.next(),g.inbraces--;else if(T=="(")h.next(),g.inbraces++;else if(g.inbrackets>0&&T=="]")h.next(),g.inbrackets--;else if(T=="[")h.next(),g.inbrackets++;else{if(!g.lineTag&&(h.match(g.intag+"}")||h.eat("-")&&h.match(g.intag+"}")))return g.intag=!1,"tag";if(h.match(v))return g.operator=!0,"operator";if(h.match(C))g.sign=!0;else{if(h.column()==1&&g.lineTag&&h.match(p))return"keyword";if(h.eat(" ")||h.sol()){if(h.match(p))return"keyword";if(h.match(b))return"atom";if(h.match(S))return"number";h.sol()&&h.next()}else h.next()}}return"variable"}else if(h.eat("{")){if(h.eat("#"))return g.incomment=!0,h.skipTo("#}")?(h.eatWhile(/\#|}/),g.incomment=!1):h.skipToEnd(),"comment";if(T=h.eat(/\{|%/))return g.intag=T,g.inbraces=0,g.inbrackets=0,T=="{"&&(g.intag="}"),h.eat("-"),"tag"}else if(h.eat("#")){if(h.peek()=="#")return h.skipToEnd(),"comment";if(!h.eol())return g.intag=!0,g.lineTag=!0,g.inbraces=0,g.inbrackets=0,"tag"}h.next()}return{startState:function(){return{tokenize:s,inbrackets:0,inbraces:0}},token:function(h,g){var T=g.tokenize(h,g);return h.eol()&&g.lineTag&&!g.instring&&g.inbraces==0&&g.inbrackets==0&&(g.intag=!1,g.lineTag=!1),T},blockCommentStart:"{#",blockCommentEnd:"#}",lineComment:"##"}}),o.defineMIME("text/jinja2","jinja2")})});var du=Ke((cu,fu)=>{(function(o){typeof cu=="object"&&typeof fu=="object"?o(We(),mn(),vn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript"],o):o(CodeMirror)})(function(o){"use strict";function p(C,b,S,s){this.state=C,this.mode=b,this.depth=S,this.prev=s}function v(C){return new p(o.copyState(C.mode,C.state),C.mode,C.depth,C.prev&&v(C.prev))}o.defineMode("jsx",function(C,b){var S=o.getMode(C,{name:"xml",allowMissing:!0,multilineTagIndentPastTag:!1,allowMissingTagName:!0}),s=o.getMode(C,b&&b.base||"javascript");function h(c){var d=c.tagName;c.tagName=null;var w=S.indent(c,"","");return c.tagName=d,w}function g(c,d){return d.context.mode==S?T(c,d,d.context):x(c,d,d.context)}function T(c,d,w){if(w.depth==2)return c.match(/^.*?\*\//)?w.depth=1:c.skipToEnd(),"comment";if(c.peek()=="{"){S.skipAttribute(w.state);var E=h(w.state),z=w.state.context;if(z&&c.match(/^[^>]*>\s*$/,!1)){for(;z.prev&&!z.startOfLine;)z=z.prev;z.startOfLine?E-=C.indentUnit:w.prev.state.lexical&&(E=w.prev.state.lexical.indented)}else w.depth==1&&(E+=C.indentUnit);return d.context=new p(o.startState(s,E),s,0,d.context),null}if(w.depth==1){if(c.peek()=="<")return S.skipAttribute(w.state),d.context=new p(o.startState(S,h(w.state)),S,0,d.context),null;if(c.match("//"))return c.skipToEnd(),"comment";if(c.match("/*"))return w.depth=2,g(c,d)}var y=S.token(c,w.state),R=c.current(),M;return/\btag\b/.test(y)?/>$/.test(R)?w.state.context?w.depth=0:d.context=d.context.prev:/^-1&&c.backUp(R.length-M),y}function x(c,d,w){if(c.peek()=="<"&&!c.match(/^<([^<>]|<[^>]*>)+,\s*>/,!1)&&s.expressionAllowed(c,w.state))return d.context=new p(o.startState(S,s.indent(w.state,"","")),S,0,d.context),s.skipExpression(w.state),null;var E=s.token(c,w.state);if(!E&&w.depth!=null){var z=c.current();z=="{"?w.depth++:z=="}"&&--w.depth==0&&(d.context=d.context.prev)}return E}return{startState:function(){return{context:new p(o.startState(s),s)}},copyState:function(c){return{context:v(c.context)}},token:g,indent:function(c,d,w){return c.context.mode.indent(c.context.state,d,w)},innerMode:function(c){return c.context}}},"xml","javascript"),o.defineMIME("text/jsx","jsx"),o.defineMIME("text/typescript-jsx",{name:"jsx",base:{name:"javascript",typescript:!0}})})});var gu=Ke((pu,hu)=>{(function(o){typeof pu=="object"&&typeof hu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("nginx",function(p){function v(w){for(var E={},z=w.split(" "),y=0;y*\/]/.test(y)?g(null,"select-op"):/[;{}:\[\]]/.test(y)?g(null,y):(w.eatWhile(/[\w\\\-]/),g("variable","variable"))}function x(w,E){for(var z=!1,y;(y=w.next())!=null;){if(z&&y=="/"){E.tokenize=T;break}z=y=="*"}return g("comment","comment")}function c(w,E){for(var z=0,y;(y=w.next())!=null;){if(z>=2&&y==">"){E.tokenize=T;break}z=y=="-"?z+1:0}return g("comment","comment")}function d(w){return function(E,z){for(var y=!1,R;(R=E.next())!=null&&!(R==w&&!y);)y=!y&&R=="\\";return y||(z.tokenize=T),g("string","string")}}return{startState:function(w){return{tokenize:T,baseIndent:w||0,stack:[]}},token:function(w,E){if(w.eatSpace())return null;h=null;var z=E.tokenize(w,E),y=E.stack[E.stack.length-1];return h=="hash"&&y=="rule"?z="atom":z=="variable"&&(y=="rule"?z="number":(!y||y=="@media{")&&(z="tag")),y=="rule"&&/^[\{\};]$/.test(h)&&E.stack.pop(),h=="{"?y=="@media"?E.stack[E.stack.length-1]="@media{":E.stack.push("{"):h=="}"?E.stack.pop():h=="@media"?E.stack.push("@media"):y=="{"&&h!="comment"&&E.stack.push("rule"),z},indent:function(w,E){var z=w.stack.length;return/^\}/.test(E)&&(z-=w.stack[w.stack.length-1]=="rule"?2:1),w.baseIndent+z*s},electricChars:"}"}}),o.defineMIME("text/x-nginx-conf","nginx")})});var bu=Ke((mu,vu)=>{(function(o){typeof mu=="object"&&typeof vu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("pascal",function(){function p(T){for(var x={},c=T.split(" "),d=0;d!?|\/]/;function S(T,x){var c=T.next();if(c=="#"&&x.startOfLine)return T.skipToEnd(),"meta";if(c=='"'||c=="'")return x.tokenize=s(c),x.tokenize(T,x);if(c=="("&&T.eat("*"))return x.tokenize=h,h(T,x);if(c=="{")return x.tokenize=g,g(T,x);if(/[\[\]\(\),;\:\.]/.test(c))return null;if(/\d/.test(c))return T.eatWhile(/[\w\.]/),"number";if(c=="/"&&T.eat("/"))return T.skipToEnd(),"comment";if(b.test(c))return T.eatWhile(b),"operator";T.eatWhile(/[\w\$_]/);var d=T.current();return v.propertyIsEnumerable(d)?"keyword":C.propertyIsEnumerable(d)?"atom":"variable"}function s(T){return function(x,c){for(var d=!1,w,E=!1;(w=x.next())!=null;){if(w==T&&!d){E=!0;break}d=!d&&w=="\\"}return(E||!d)&&(c.tokenize=null),"string"}}function h(T,x){for(var c=!1,d;d=T.next();){if(d==")"&&c){x.tokenize=null;break}c=d=="*"}return"comment"}function g(T,x){for(var c;c=T.next();)if(c=="}"){x.tokenize=null;break}return"comment"}return{startState:function(){return{tokenize:null}},token:function(T,x){if(T.eatSpace())return null;var c=(x.tokenize||S)(T,x);return c=="comment"||c=="meta",c},electricChars:"{}"}}),o.defineMIME("text/x-pascal","pascal")})});var _u=Ke((yu,xu)=>{(function(o){typeof yu=="object"&&typeof xu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("perl",function(){var S={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},s="string-2",h=/[goseximacplud]/;function g(c,d,w,E,z){return d.chain=null,d.style=null,d.tail=null,d.tokenize=function(y,R){for(var M=!1,H,Z=0;H=y.next();){if(H===w[Z]&&!M)return w[++Z]!==void 0?(R.chain=w[Z],R.style=E,R.tail=z):z&&y.eatWhile(z),R.tokenize=x,E;M=!M&&H=="\\"}return E},d.tokenize(c,d)}function T(c,d,w){return d.tokenize=function(E,z){return E.string==w&&(z.tokenize=x),E.skipToEnd(),"string"},d.tokenize(c,d)}function x(c,d){if(c.eatSpace())return null;if(d.chain)return g(c,d,d.chain,d.style,d.tail);if(c.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))return"number";if(c.match(/^<<(?=[_a-zA-Z])/))return c.eatWhile(/\w/),T(c,d,c.current().substr(2));if(c.sol()&&c.match(/^\=item(?!\w)/))return T(c,d,"=cut");var w=c.next();if(w=='"'||w=="'"){if(v(c,3)=="<<"+w){var E=c.pos;c.eatWhile(/\w/);var z=c.current().substr(1);if(z&&c.eat(w))return T(c,d,z);c.pos=E}return g(c,d,[w],"string")}if(w=="q"){var y=p(c,-2);if(!(y&&/\w/.test(y))){if(y=p(c,0),y=="x"){if(y=p(c,1),y=="(")return b(c,2),g(c,d,[")"],s,h);if(y=="[")return b(c,2),g(c,d,["]"],s,h);if(y=="{")return b(c,2),g(c,d,["}"],s,h);if(y=="<")return b(c,2),g(c,d,[">"],s,h);if(/[\^'"!~\/]/.test(y))return b(c,1),g(c,d,[c.eat(y)],s,h)}else if(y=="q"){if(y=p(c,1),y=="(")return b(c,2),g(c,d,[")"],"string");if(y=="[")return b(c,2),g(c,d,["]"],"string");if(y=="{")return b(c,2),g(c,d,["}"],"string");if(y=="<")return b(c,2),g(c,d,[">"],"string");if(/[\^'"!~\/]/.test(y))return b(c,1),g(c,d,[c.eat(y)],"string")}else if(y=="w"){if(y=p(c,1),y=="(")return b(c,2),g(c,d,[")"],"bracket");if(y=="[")return b(c,2),g(c,d,["]"],"bracket");if(y=="{")return b(c,2),g(c,d,["}"],"bracket");if(y=="<")return b(c,2),g(c,d,[">"],"bracket");if(/[\^'"!~\/]/.test(y))return b(c,1),g(c,d,[c.eat(y)],"bracket")}else if(y=="r"){if(y=p(c,1),y=="(")return b(c,2),g(c,d,[")"],s,h);if(y=="[")return b(c,2),g(c,d,["]"],s,h);if(y=="{")return b(c,2),g(c,d,["}"],s,h);if(y=="<")return b(c,2),g(c,d,[">"],s,h);if(/[\^'"!~\/]/.test(y))return b(c,1),g(c,d,[c.eat(y)],s,h)}else if(/[\^'"!~\/(\[{<]/.test(y)){if(y=="(")return b(c,1),g(c,d,[")"],"string");if(y=="[")return b(c,1),g(c,d,["]"],"string");if(y=="{")return b(c,1),g(c,d,["}"],"string");if(y=="<")return b(c,1),g(c,d,[">"],"string");if(/[\^'"!~\/]/.test(y))return g(c,d,[c.eat(y)],"string")}}}if(w=="m"){var y=p(c,-2);if(!(y&&/\w/.test(y))&&(y=c.eat(/[(\[{<\^'"!~\/]/),y)){if(/[\^'"!~\/]/.test(y))return g(c,d,[y],s,h);if(y=="(")return g(c,d,[")"],s,h);if(y=="[")return g(c,d,["]"],s,h);if(y=="{")return g(c,d,["}"],s,h);if(y=="<")return g(c,d,[">"],s,h)}}if(w=="s"){var y=/[\/>\]})\w]/.test(p(c,-2));if(!y&&(y=c.eat(/[(\[{<\^'"!~\/]/),y))return y=="["?g(c,d,["]","]"],s,h):y=="{"?g(c,d,["}","}"],s,h):y=="<"?g(c,d,[">",">"],s,h):y=="("?g(c,d,[")",")"],s,h):g(c,d,[y,y],s,h)}if(w=="y"){var y=/[\/>\]})\w]/.test(p(c,-2));if(!y&&(y=c.eat(/[(\[{<\^'"!~\/]/),y))return y=="["?g(c,d,["]","]"],s,h):y=="{"?g(c,d,["}","}"],s,h):y=="<"?g(c,d,[">",">"],s,h):y=="("?g(c,d,[")",")"],s,h):g(c,d,[y,y],s,h)}if(w=="t"){var y=/[\/>\]})\w]/.test(p(c,-2));if(!y&&(y=c.eat("r"),y&&(y=c.eat(/[(\[{<\^'"!~\/]/),y)))return y=="["?g(c,d,["]","]"],s,h):y=="{"?g(c,d,["}","}"],s,h):y=="<"?g(c,d,[">",">"],s,h):y=="("?g(c,d,[")",")"],s,h):g(c,d,[y,y],s,h)}if(w=="`")return g(c,d,[w],"variable-2");if(w=="/")return/~\s*$/.test(v(c))?g(c,d,[w],s,h):"operator";if(w=="$"){var E=c.pos;if(c.eatWhile(/\d/)||c.eat("{")&&c.eatWhile(/\d/)&&c.eat("}"))return"variable-2";c.pos=E}if(/[$@%]/.test(w)){var E=c.pos;if(c.eat("^")&&c.eat(/[A-Z]/)||!/[@$%&]/.test(p(c,-2))&&c.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var y=c.current();if(S[y])return"variable-2"}c.pos=E}if(/[$@%&]/.test(w)&&(c.eatWhile(/[\w$]/)||c.eat("{")&&c.eatWhile(/[\w$]/)&&c.eat("}"))){var y=c.current();return S[y]?"variable-2":"variable"}if(w=="#"&&p(c,-2)!="$")return c.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(w)){var E=c.pos;if(c.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),S[c.current()])return"operator";c.pos=E}if(w=="_"&&c.pos==1){if(C(c,6)=="_END__")return g(c,d,["\0"],"comment");if(C(c,7)=="_DATA__")return g(c,d,["\0"],"variable-2");if(C(c,7)=="_C__")return g(c,d,["\0"],"string")}if(/\w/.test(w)){var E=c.pos;if(p(c,-2)=="{"&&(p(c,0)=="}"||c.eatWhile(/\w/)&&p(c,0)=="}"))return"string";c.pos=E}if(/[A-Z]/.test(w)){var R=p(c,-2),E=c.pos;if(c.eatWhile(/[A-Z_]/),/[\da-z]/.test(p(c,0)))c.pos=E;else{var y=S[c.current()];return y?(y[1]&&(y=y[0]),R!=":"?y==1?"keyword":y==2?"def":y==3?"atom":y==4?"operator":y==5?"variable-2":"meta":"meta"):"meta"}}if(/[a-zA-Z_]/.test(w)){var R=p(c,-2);c.eatWhile(/\w/);var y=S[c.current()];return y?(y[1]&&(y=y[0]),R!=":"?y==1?"keyword":y==2?"def":y==3?"atom":y==4?"operator":y==5?"variable-2":"meta":"meta"):"meta"}return null}return{startState:function(){return{tokenize:x,chain:null,style:null,tail:null}},token:function(c,d){return(d.tokenize||x)(c,d)},lineComment:"#"}}),o.registerHelper("wordChars","perl",/[\w$]/),o.defineMIME("text/x-perl","perl");function p(S,s){return S.string.charAt(S.pos+(s||0))}function v(S,s){if(s){var h=S.pos-s;return S.string.substr(h>=0?h:0,s)}else return S.string.substr(0,S.pos-1)}function C(S,s){var h=S.string.length,g=h-S.pos+1;return S.string.substr(S.pos,s&&s=(g=S.string.length-1)?S.pos=g:S.pos=h}})});var Su=Ke((ku,wu)=>{(function(o){typeof ku=="object"&&typeof wu=="object"?o(We(),Qn(),Vo()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../clike/clike"],o):o(CodeMirror)})(function(o){"use strict";function p(T){for(var x={},c=T.split(" "),d=0;d\w/,!1)&&(x.tokenize=v([[["->",null]],[[/[\w]+/,"variable"]]],c,d)),"variable-2";for(var w=!1;!T.eol()&&(w||d===!1||!T.match("{$",!1)&&!T.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!w&&T.match(c)){x.tokenize=null,x.tokStack.pop(),x.tokStack.pop();break}w=T.next()=="\\"&&!w}return"string"}var S="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile enum extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally readonly match",s="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",h="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage memory_get_peak_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";o.registerHelper("hintWords","php",[S,s,h].join(" ").split(" ")),o.registerHelper("wordChars","php",/[\w$]/);var g={name:"clike",helperType:"php",keywords:p(S),blockKeywords:p("catch do else elseif for foreach if switch try while finally"),defKeywords:p("class enum function interface namespace trait"),atoms:p(s),builtin:p(h),multiLineStrings:!0,hooks:{$:function(T){return T.eatWhile(/[\w\$_]/),"variable-2"},"<":function(T,x){var c;if(c=T.match(/^<<\s*/)){var d=T.eat(/['"]/);T.eatWhile(/[\w\.]/);var w=T.current().slice(c[0].length+(d?2:1));if(d&&T.eat(d),w)return(x.tokStack||(x.tokStack=[])).push(w,0),x.tokenize=C(w,d!="'"),"string"}return!1},"#":function(T){for(;!T.eol()&&!T.match("?>",!1);)T.next();return"comment"},"/":function(T){if(T.eat("/")){for(;!T.eol()&&!T.match("?>",!1);)T.next();return"comment"}return!1},'"':function(T,x){return(x.tokStack||(x.tokStack=[])).push('"',0),x.tokenize=C('"'),"string"},"{":function(T,x){return x.tokStack&&x.tokStack.length&&x.tokStack[x.tokStack.length-1]++,!1},"}":function(T,x){return x.tokStack&&x.tokStack.length>0&&!--x.tokStack[x.tokStack.length-1]&&(x.tokenize=C(x.tokStack[x.tokStack.length-2])),!1}}};o.defineMode("php",function(T,x){var c=o.getMode(T,x&&x.htmlMode||"text/html"),d=o.getMode(T,g);function w(E,z){var y=z.curMode==d;if(E.sol()&&z.pending&&z.pending!='"'&&z.pending!="'"&&(z.pending=null),y)return y&&z.php.tokenize==null&&E.match("?>")?(z.curMode=c,z.curState=z.html,z.php.context.prev||(z.php=null),"meta"):d.token(E,z.curState);if(E.match(/^<\?\w*/))return z.curMode=d,z.php||(z.php=o.startState(d,c.indent(z.html,"",""))),z.curState=z.php,"meta";if(z.pending=='"'||z.pending=="'"){for(;!E.eol()&&E.next()!=z.pending;);var R="string"}else if(z.pending&&E.pos/.test(M)?z.pending=Z[0]:z.pending={end:E.pos,style:R},E.backUp(M.length-H)),R}return{startState:function(){var E=o.startState(c),z=x.startOpen?o.startState(d):null;return{html:E,php:z,curMode:x.startOpen?d:c,curState:x.startOpen?z:E,pending:null}},copyState:function(E){var z=E.html,y=o.copyState(c,z),R=E.php,M=R&&o.copyState(d,R),H;return E.curMode==c?H=y:H=M,{html:y,php:M,curMode:E.curMode,curState:H,pending:E.pending}},token:w,indent:function(E,z,y){return E.curMode!=d&&/^\s*<\//.test(z)||E.curMode==d&&/^\?>/.test(z)?c.indent(E.html,z,y):E.curMode.indent(E.curState,z,y)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(E){return{state:E.curState,mode:E.curMode}}}},"htmlmixed","clike"),o.defineMIME("application/x-httpd-php","php"),o.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),o.defineMIME("text/x-php",g)})});var Cu=Ke((Tu,Lu)=>{(function(o){typeof Tu=="object"&&typeof Lu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(s){return new RegExp("^(("+s.join(")|(")+"))\\b","i")}var v=["package","message","import","syntax","required","optional","repeated","reserved","default","extensions","packed","bool","bytes","double","enum","float","string","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","option","service","rpc","returns"],C=p(v);o.registerHelper("hintWords","protobuf",v);var b=new RegExp("^[_A-Za-z\xA1-\uFFFF][_A-Za-z0-9\xA1-\uFFFF]*");function S(s){return s.eatSpace()?null:s.match("//")?(s.skipToEnd(),"comment"):s.match(/^[0-9\.+-]/,!1)&&(s.match(/^[+-]?0x[0-9a-fA-F]+/)||s.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/)||s.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))?"number":s.match(/^"([^"]|(""))*"/)||s.match(/^'([^']|(''))*'/)?"string":s.match(C)?"keyword":s.match(b)?"variable":(s.next(),null)}o.defineMode("protobuf",function(){return{token:S,fold:"brace"}}),o.defineMIME("text/x-protobuf","protobuf")})});var Mu=Ke((Eu,zu)=>{(function(o){typeof Eu=="object"&&typeof zu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(h){return new RegExp("^(("+h.join(")|(")+"))\\b")}var v=p(["and","or","not","is"]),C=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in","False","True"],b=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];o.registerHelper("hintWords","python",C.concat(b).concat(["exec","print"]));function S(h){return h.scopes[h.scopes.length-1]}o.defineMode("python",function(h,g){for(var T="error",x=g.delimiters||g.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,c=[g.singleOperators,g.doubleOperators,g.doubleDelimiters,g.tripleDelimiters,g.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],d=0;dB?D(X):le0&&j(K,X)&&(xe+=" "+T),xe}}return re(K,X)}function re(K,X,I){if(K.eatSpace())return null;if(!I&&K.match(/^#.*/))return"comment";if(K.match(/^[0-9\.]/,!1)){var B=!1;if(K.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(B=!0),K.match(/^[\d_]+\.\d*/)&&(B=!0),K.match(/^\.\d+/)&&(B=!0),B)return K.eat(/J/i),"number";var le=!1;if(K.match(/^0x[0-9a-f_]+/i)&&(le=!0),K.match(/^0b[01_]+/i)&&(le=!0),K.match(/^0o[0-7_]+/i)&&(le=!0),K.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(K.eat(/J/i),le=!0),K.match(/^0(?![\dx])/i)&&(le=!0),le)return K.eat(/L/i),"number"}if(K.match(M)){var xe=K.current().toLowerCase().indexOf("f")!==-1;return xe?(X.tokenize=N(K.current(),X.tokenize),X.tokenize(K,X)):(X.tokenize=F(K.current(),X.tokenize),X.tokenize(K,X))}for(var q=0;q=0;)K=K.substr(1);var I=K.length==1,B="string";function le(q){return function(L,de){var ze=re(L,de,!0);return ze=="punctuation"&&(L.current()=="{"?de.tokenize=le(q+1):L.current()=="}"&&(q>1?de.tokenize=le(q-1):de.tokenize=xe)),ze}}function xe(q,L){for(;!q.eol();)if(q.eatWhile(/[^'"\{\}\\]/),q.eat("\\")){if(q.next(),I&&q.eol())return B}else{if(q.match(K))return L.tokenize=X,B;if(q.match("{{"))return B;if(q.match("{",!1))return L.tokenize=le(0),q.current()?B:L.tokenize(q,L);if(q.match("}}"))return B;if(q.match("}"))return T;q.eat(/['"]/)}if(I){if(g.singleLineStringErrors)return T;L.tokenize=X}return B}return xe.isString=!0,xe}function F(K,X){for(;"rubf".indexOf(K.charAt(0).toLowerCase())>=0;)K=K.substr(1);var I=K.length==1,B="string";function le(xe,q){for(;!xe.eol();)if(xe.eatWhile(/[^'"\\]/),xe.eat("\\")){if(xe.next(),I&&xe.eol())return B}else{if(xe.match(K))return q.tokenize=X,B;xe.eat(/['"]/)}if(I){if(g.singleLineStringErrors)return T;q.tokenize=X}return B}return le.isString=!0,le}function D(K){for(;S(K).type!="py";)K.scopes.pop();K.scopes.push({offset:S(K).offset+h.indentUnit,type:"py",align:null})}function Q(K,X,I){var B=K.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:K.column()+1;X.scopes.push({offset:X.indent+w,type:I,align:B})}function j(K,X){for(var I=K.indentation();X.scopes.length>1&&S(X).offset>I;){if(S(X).type!="py")return!0;X.scopes.pop()}return S(X).offset!=I}function V(K,X){K.sol()&&(X.beginningOfLine=!0,X.dedent=!1);var I=X.tokenize(K,X),B=K.current();if(X.beginningOfLine&&B=="@")return K.match(R,!1)?"meta":y?"operator":T;if(/\S/.test(B)&&(X.beginningOfLine=!1),(I=="variable"||I=="builtin")&&X.lastToken=="meta"&&(I="meta"),(B=="pass"||B=="return")&&(X.dedent=!0),B=="lambda"&&(X.lambda=!0),B==":"&&!X.lambda&&S(X).type=="py"&&K.match(/^\s*(?:#|$)/,!1)&&D(X),B.length==1&&!/string|comment/.test(I)){var le="[({".indexOf(B);if(le!=-1&&Q(K,X,"])}".slice(le,le+1)),le="])}".indexOf(B),le!=-1)if(S(X).type==B)X.indent=X.scopes.pop().offset-w;else return T}return X.dedent&&K.eol()&&S(X).type=="py"&&X.scopes.length>1&&X.scopes.pop(),I}var _={startState:function(K){return{tokenize:ee,scopes:[{offset:K||0,type:"py",align:null}],indent:K||0,lastToken:null,lambda:!1,dedent:0}},token:function(K,X){var I=X.errorToken;I&&(X.errorToken=!1);var B=V(K,X);return B&&B!="comment"&&(X.lastToken=B=="keyword"||B=="punctuation"?K.current():B),B=="punctuation"&&(B=null),K.eol()&&X.lambda&&(X.lambda=!1),I?B+" "+T:B},indent:function(K,X){if(K.tokenize!=ee)return K.tokenize.isString?o.Pass:0;var I=S(K),B=I.type==X.charAt(0)||I.type=="py"&&!K.dedent&&/^(else:|elif |except |finally:)/.test(X);return I.align!=null?I.align-(B?1:0):I.offset-(B?w:0)},electricInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/,closeBrackets:{triples:`'"`},lineComment:"#",fold:"indent"};return _}),o.defineMIME("text/x-python","python");var s=function(h){return h.split(" ")};o.defineMIME("text/x-cython",{name:"python",extra_keywords:s("by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE")})})});var qu=Ke((Au,Du)=>{(function(o){typeof Au=="object"&&typeof Du=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(g){for(var T={},x=0,c=g.length;x]/)?(M.eat(/[\<\>]/),"atom"):M.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":M.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(M.eatWhile(/[\w$\xa1-\uffff]/),M.eat(/[\?\!\=]/),"atom"):"operator";if(Z=="@"&&M.match(/^@?[a-zA-Z_\xa1-\uffff]/))return M.eat("@"),M.eatWhile(/[\w\xa1-\uffff]/),"variable-2";if(Z=="$")return M.eat(/[a-zA-Z_]/)?M.eatWhile(/[\w]/):M.eat(/\d/)?M.eat(/\d/):M.next(),"variable-3";if(/[a-zA-Z_\xa1-\uffff]/.test(Z))return M.eatWhile(/[\w\xa1-\uffff]/),M.eat(/[\?\!]/),M.eat(":")?"atom":"ident";if(Z=="|"&&(H.varList||H.lastTok=="{"||H.lastTok=="do"))return T="|",null;if(/[\(\)\[\]{}\\;]/.test(Z))return T=Z,null;if(Z=="-"&&M.eat(">"))return"arrow";if(/[=+\-\/*:\.^%<>~|]/.test(Z)){var D=M.eatWhile(/[=+\-\/*:\.^%<>~|]/);return Z=="."&&!D&&(T="."),"operator"}else return null}}}function d(M){for(var H=M.pos,Z=0,ee,re=!1,N=!1;(ee=M.next())!=null;)if(N)N=!1;else{if("[{(".indexOf(ee)>-1)Z++;else if("]})".indexOf(ee)>-1){if(Z--,Z<0)break}else if(ee=="/"&&Z==0){re=!0;break}N=ee=="\\"}return M.backUp(M.pos-H),re}function w(M){return M||(M=1),function(H,Z){if(H.peek()=="}"){if(M==1)return Z.tokenize.pop(),Z.tokenize[Z.tokenize.length-1](H,Z);Z.tokenize[Z.tokenize.length-1]=w(M-1)}else H.peek()=="{"&&(Z.tokenize[Z.tokenize.length-1]=w(M+1));return c(H,Z)}}function E(){var M=!1;return function(H,Z){return M?(Z.tokenize.pop(),Z.tokenize[Z.tokenize.length-1](H,Z)):(M=!0,c(H,Z))}}function z(M,H,Z,ee){return function(re,N){var F=!1,D;for(N.context.type==="read-quoted-paused"&&(N.context=N.context.prev,re.eat("}"));(D=re.next())!=null;){if(D==M&&(ee||!F)){N.tokenize.pop();break}if(Z&&D=="#"&&!F){if(re.eat("{")){M=="}"&&(N.context={prev:N.context,type:"read-quoted-paused"}),N.tokenize.push(w());break}else if(/[@\$]/.test(re.peek())){N.tokenize.push(E());break}}F=!F&&D=="\\"}return H}}function y(M,H){return function(Z,ee){return H&&Z.eatSpace(),Z.match(M)?ee.tokenize.pop():Z.skipToEnd(),"string"}}function R(M,H){return M.sol()&&M.match("=end")&&M.eol()&&H.tokenize.pop(),M.skipToEnd(),"comment"}return{startState:function(){return{tokenize:[c],indented:0,context:{type:"top",indented:-g.indentUnit},continuedLine:!1,lastTok:null,varList:!1}},token:function(M,H){T=null,M.sol()&&(H.indented=M.indentation());var Z=H.tokenize[H.tokenize.length-1](M,H),ee,re=T;if(Z=="ident"){var N=M.current();Z=H.lastTok=="."?"property":C.propertyIsEnumerable(M.current())?"keyword":/^[A-Z]/.test(N)?"tag":H.lastTok=="def"||H.lastTok=="class"||H.varList?"def":"variable",Z=="keyword"&&(re=N,b.propertyIsEnumerable(N)?ee="indent":S.propertyIsEnumerable(N)?ee="dedent":((N=="if"||N=="unless")&&M.column()==M.indentation()||N=="do"&&H.context.indented{(function(o){typeof Iu=="object"&&typeof Fu=="object"?o(We(),Di()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple"],o):o(CodeMirror)})(function(o){"use strict";o.defineSimpleMode("rust",{start:[{regex:/b?"/,token:"string",next:"string"},{regex:/b?r"/,token:"string",next:"string_raw"},{regex:/b?r#+"/,token:"string",next:"string_raw_hash"},{regex:/'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/,token:"string-2"},{regex:/b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/,token:"string-2"},{regex:/(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,token:"number"},{regex:/(let(?:\s+mut)?|fn|enum|mod|struct|type|union)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/(?:abstract|alignof|as|async|await|box|break|continue|const|crate|do|dyn|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,token:"keyword"},{regex:/\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/,token:"atom"},{regex:/\b(?:true|false|Some|None|Ok|Err)\b/,token:"builtin"},{regex:/\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/#!?\[.*\]/,token:"meta"},{regex:/\/\/.*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/[a-zA-Z_]\w*!/,token:"variable-3"},{regex:/[a-zA-Z_]\w*/,token:"variable"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0}],string:[{regex:/"/,token:"string",next:"start"},{regex:/(?:[^\\"]|\\(?:.|$))*/,token:"string"}],string_raw:[{regex:/"/,token:"string",next:"start"},{regex:/[^"]*/,token:"string"}],string_raw_hash:[{regex:/"#+/,token:"string",next:"start"},{regex:/(?:[^"]|"(?!#))*/,token:"string"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],meta:{dontIndentStates:["comment"],electricInput:/^\s*\}$/,blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}}),o.defineMIME("text/x-rustsrc","rust"),o.defineMIME("text/rust","rust")})});var ea=Ke((Ou,Pu)=>{(function(o){typeof Ou=="object"&&typeof Pu=="object"?o(We(),gn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../css/css"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("sass",function(p){var v=o.mimeModes["text/css"],C=v.propertyKeywords||{},b=v.colorKeywords||{},S=v.valueKeywords||{},s=v.fontProperties||{};function h(N){return new RegExp("^"+N.join("|"))}var g=["true","false","null","auto"],T=new RegExp("^"+g.join("|")),x=["\\(","\\)","=",">","<","==",">=","<=","\\+","-","\\!=","/","\\*","%","and","or","not",";","\\{","\\}",":"],c=h(x),d=/^::?[a-zA-Z_][\w\-]*/,w;function E(N){return!N.peek()||N.match(/\s+$/,!1)}function z(N,F){var D=N.peek();return D===")"?(N.next(),F.tokenizer=ee,"operator"):D==="("?(N.next(),N.eatSpace(),"operator"):D==="'"||D==='"'?(F.tokenizer=R(N.next()),"string"):(F.tokenizer=R(")",!1),"string")}function y(N,F){return function(D,Q){return D.sol()&&D.indentation()<=N?(Q.tokenizer=ee,ee(D,Q)):(F&&D.skipTo("*/")?(D.next(),D.next(),Q.tokenizer=ee):D.skipToEnd(),"comment")}}function R(N,F){F==null&&(F=!0);function D(Q,j){var V=Q.next(),_=Q.peek(),K=Q.string.charAt(Q.pos-2),X=V!=="\\"&&_===N||V===N&&K!=="\\";return X?(V!==N&&F&&Q.next(),E(Q)&&(j.cursorHalf=0),j.tokenizer=ee,"string"):V==="#"&&_==="{"?(j.tokenizer=M(D),Q.next(),"operator"):"string"}return D}function M(N){return function(F,D){return F.peek()==="}"?(F.next(),D.tokenizer=N,"operator"):ee(F,D)}}function H(N){if(N.indentCount==0){N.indentCount++;var F=N.scopes[0].offset,D=F+p.indentUnit;N.scopes.unshift({offset:D})}}function Z(N){N.scopes.length!=1&&N.scopes.shift()}function ee(N,F){var D=N.peek();if(N.match("/*"))return F.tokenizer=y(N.indentation(),!0),F.tokenizer(N,F);if(N.match("//"))return F.tokenizer=y(N.indentation(),!1),F.tokenizer(N,F);if(N.match("#{"))return F.tokenizer=M(ee),"operator";if(D==='"'||D==="'")return N.next(),F.tokenizer=R(D),"string";if(F.cursorHalf){if(D==="#"&&(N.next(),N.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/))||N.match(/^-?[0-9\.]+/))return E(N)&&(F.cursorHalf=0),"number";if(N.match(/^(px|em|in)\b/))return E(N)&&(F.cursorHalf=0),"unit";if(N.match(T))return E(N)&&(F.cursorHalf=0),"keyword";if(N.match(/^url/)&&N.peek()==="(")return F.tokenizer=z,E(N)&&(F.cursorHalf=0),"atom";if(D==="$")return N.next(),N.eatWhile(/[\w-]/),E(N)&&(F.cursorHalf=0),"variable-2";if(D==="!")return N.next(),F.cursorHalf=0,N.match(/^[\w]+/)?"keyword":"operator";if(N.match(c))return E(N)&&(F.cursorHalf=0),"operator";if(N.eatWhile(/[\w-]/))return E(N)&&(F.cursorHalf=0),w=N.current().toLowerCase(),S.hasOwnProperty(w)?"atom":b.hasOwnProperty(w)?"keyword":C.hasOwnProperty(w)?(F.prevProp=N.current().toLowerCase(),"property"):"tag";if(E(N))return F.cursorHalf=0,null}else{if(D==="-"&&N.match(/^-\w+-/))return"meta";if(D==="."){if(N.next(),N.match(/^[\w-]+/))return H(F),"qualifier";if(N.peek()==="#")return H(F),"tag"}if(D==="#"){if(N.next(),N.match(/^[\w-]+/))return H(F),"builtin";if(N.peek()==="#")return H(F),"tag"}if(D==="$")return N.next(),N.eatWhile(/[\w-]/),"variable-2";if(N.match(/^-?[0-9\.]+/))return"number";if(N.match(/^(px|em|in)\b/))return"unit";if(N.match(T))return"keyword";if(N.match(/^url/)&&N.peek()==="(")return F.tokenizer=z,"atom";if(D==="="&&N.match(/^=[\w-]+/))return H(F),"meta";if(D==="+"&&N.match(/^\+[\w-]+/))return"variable-3";if(D==="@"&&N.match("@extend")&&(N.match(/\s*[\w]/)||Z(F)),N.match(/^@(else if|if|media|else|for|each|while|mixin|function)/))return H(F),"def";if(D==="@")return N.next(),N.eatWhile(/[\w-]/),"def";if(N.eatWhile(/[\w-]/))if(N.match(/ *: *[\w-\+\$#!\("']/,!1)){w=N.current().toLowerCase();var Q=F.prevProp+"-"+w;return C.hasOwnProperty(Q)?"property":C.hasOwnProperty(w)?(F.prevProp=w,"property"):s.hasOwnProperty(w)?"property":"tag"}else return N.match(/ *:/,!1)?(H(F),F.cursorHalf=1,F.prevProp=N.current().toLowerCase(),"property"):(N.match(/ *,/,!1)||H(F),"tag");if(D===":")return N.match(d)?"variable-3":(N.next(),F.cursorHalf=1,"operator")}return N.match(c)?"operator":(N.next(),null)}function re(N,F){N.sol()&&(F.indentCount=0);var D=F.tokenizer(N,F),Q=N.current();if((Q==="@return"||Q==="}")&&Z(F),D!==null){for(var j=N.pos-Q.length,V=j+p.indentUnit*F.indentCount,_=[],K=0;K{(function(o){typeof ju=="object"&&typeof Ru=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("shell",function(){var p={};function v(d,w){for(var E=0;E1&&d.eat("$");var E=d.next();return/['"({]/.test(E)?(w.tokens[0]=h(E,E=="("?"quote":E=="{"?"def":"string"),c(d,w)):(/\d/.test(E)||d.eatWhile(/\w/),w.tokens.shift(),"def")};function x(d){return function(w,E){return w.sol()&&w.string==d&&E.tokens.shift(),w.skipToEnd(),"string-2"}}function c(d,w){return(w.tokens[0]||s)(d,w)}return{startState:function(){return{tokens:[]}},token:function(d,w){return c(d,w)},closeBrackets:"()[]{}''\"\"``",lineComment:"#",fold:"brace"}}),o.defineMIME("text/x-sh","shell"),o.defineMIME("application/x-sh","shell")})});var Uu=Ke((Bu,Wu)=>{(function(o){typeof Bu=="object"&&typeof Wu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("sql",function(g,T){var x=T.client||{},c=T.atoms||{false:!0,true:!0,null:!0},d=T.builtin||s(h),w=T.keywords||s(S),E=T.operatorChars||/^[*+\-%<>!=&|~^\/]/,z=T.support||{},y=T.hooks||{},R=T.dateSQL||{date:!0,time:!0,timestamp:!0},M=T.backslashStringEscapes!==!1,H=T.brackets||/^[\{}\(\)\[\]]/,Z=T.punctuation||/^[;.,:]/;function ee(Q,j){var V=Q.next();if(y[V]){var _=y[V](Q,j);if(_!==!1)return _}if(z.hexNumber&&(V=="0"&&Q.match(/^[xX][0-9a-fA-F]+/)||(V=="x"||V=="X")&&Q.match(/^'[0-9a-fA-F]*'/)))return"number";if(z.binaryNumber&&((V=="b"||V=="B")&&Q.match(/^'[01]*'/)||V=="0"&&Q.match(/^b[01]+/)))return"number";if(V.charCodeAt(0)>47&&V.charCodeAt(0)<58)return Q.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),z.decimallessFloat&&Q.match(/^\.(?!\.)/),"number";if(V=="?"&&(Q.eatSpace()||Q.eol()||Q.eat(";")))return"variable-3";if(V=="'"||V=='"'&&z.doubleQuote)return j.tokenize=re(V),j.tokenize(Q,j);if((z.nCharCast&&(V=="n"||V=="N")||z.charsetCast&&V=="_"&&Q.match(/[a-z][a-z0-9]*/i))&&(Q.peek()=="'"||Q.peek()=='"'))return"keyword";if(z.escapeConstant&&(V=="e"||V=="E")&&(Q.peek()=="'"||Q.peek()=='"'&&z.doubleQuote))return j.tokenize=function(X,I){return(I.tokenize=re(X.next(),!0))(X,I)},"keyword";if(z.commentSlashSlash&&V=="/"&&Q.eat("/"))return Q.skipToEnd(),"comment";if(z.commentHash&&V=="#"||V=="-"&&Q.eat("-")&&(!z.commentSpaceRequired||Q.eat(" ")))return Q.skipToEnd(),"comment";if(V=="/"&&Q.eat("*"))return j.tokenize=N(1),j.tokenize(Q,j);if(V=="."){if(z.zerolessFloat&&Q.match(/^(?:\d+(?:e[+-]?\d+)?)/i))return"number";if(Q.match(/^\.+/))return null;if(Q.match(/^[\w\d_$#]+/))return"variable-2"}else{if(E.test(V))return Q.eatWhile(E),"operator";if(H.test(V))return"bracket";if(Z.test(V))return Q.eatWhile(Z),"punctuation";if(V=="{"&&(Q.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||Q.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";Q.eatWhile(/^[_\w\d]/);var K=Q.current().toLowerCase();return R.hasOwnProperty(K)&&(Q.match(/^( )+'[^']*'/)||Q.match(/^( )+"[^"]*"/))?"number":c.hasOwnProperty(K)?"atom":d.hasOwnProperty(K)?"type":w.hasOwnProperty(K)?"keyword":x.hasOwnProperty(K)?"builtin":null}}function re(Q,j){return function(V,_){for(var K=!1,X;(X=V.next())!=null;){if(X==Q&&!K){_.tokenize=ee;break}K=(M||j)&&!K&&X=="\\"}return"string"}}function N(Q){return function(j,V){var _=j.match(/^.*?(\/\*|\*\/)/);return _?_[1]=="/*"?V.tokenize=N(Q+1):Q>1?V.tokenize=N(Q-1):V.tokenize=ee:j.skipToEnd(),"comment"}}function F(Q,j,V){j.context={prev:j.context,indent:Q.indentation(),col:Q.column(),type:V}}function D(Q){Q.indent=Q.context.indent,Q.context=Q.context.prev}return{startState:function(){return{tokenize:ee,context:null}},token:function(Q,j){if(Q.sol()&&j.context&&j.context.align==null&&(j.context.align=!1),j.tokenize==ee&&Q.eatSpace())return null;var V=j.tokenize(Q,j);if(V=="comment")return V;j.context&&j.context.align==null&&(j.context.align=!0);var _=Q.current();return _=="("?F(Q,j,")"):_=="["?F(Q,j,"]"):j.context&&j.context.type==_&&D(j),V},indent:function(Q,j){var V=Q.context;if(!V)return o.Pass;var _=j.charAt(0)==V.type;return V.align?V.col+(_?0:1):V.indent+(_?0:g.indentUnit)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:z.commentSlashSlash?"//":z.commentHash?"#":"--",closeBrackets:"()[]{}''\"\"``",config:T}});function p(g){for(var T;(T=g.next())!=null;)if(T=="`"&&!g.eat("`"))return"variable-2";return g.backUp(g.current().length-1),g.eatWhile(/\w/)?"variable-2":null}function v(g){for(var T;(T=g.next())!=null;)if(T=='"'&&!g.eat('"'))return"variable-2";return g.backUp(g.current().length-1),g.eatWhile(/\w/)?"variable-2":null}function C(g){return g.eat("@")&&(g.match("session."),g.match("local."),g.match("global.")),g.eat("'")?(g.match(/^.*'/),"variable-2"):g.eat('"')?(g.match(/^.*"/),"variable-2"):g.eat("`")?(g.match(/^.*`/),"variable-2"):g.match(/^[0-9a-zA-Z$\.\_]+/)?"variable-2":null}function b(g){return g.eat("N")?"atom":g.match(/^[a-zA-Z.#!?]/)?"variable-2":null}var S="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function s(g){for(var T={},x=g.split(" "),c=0;c!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:s("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":C}}),o.defineMIME("text/x-mysql",{name:"sql",client:s("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:s(S+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:s("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:s("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:s("date time timestamp"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":C,"`":p,"\\":b}}),o.defineMIME("text/x-mariadb",{name:"sql",client:s("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:s(S+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:s("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:s("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:s("date time timestamp"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":C,"`":p,"\\":b}}),o.defineMIME("text/x-sqlite",{name:"sql",client:s("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:s(S+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:s("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:s("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:s("date time timestamp datetime"),support:s("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":C,":":C,"?":C,$:C,'"':v,"`":p}}),o.defineMIME("text/x-cassandra",{name:"sql",client:{},keywords:s("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:s("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:s("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:s("commentSlashSlash decimallessFloat"),hooks:{}}),o.defineMIME("text/x-plsql",{name:"sql",client:s("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:s("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:s("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:s("date time timestamp"),support:s("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),o.defineMIME("text/x-hive",{name:"sql",keywords:s("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:s("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:s("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:s("date timestamp"),support:s("doubleQuote binaryNumber hexNumber")}),o.defineMIME("text/x-pgsql",{name:"sql",client:s("source"),keywords:s(S+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:s("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time zone timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:s("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:s("date time timestamp"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),o.defineMIME("text/x-gql",{name:"sql",keywords:s("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:s("false true"),builtin:s("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),o.defineMIME("text/x-gpsql",{name:"sql",client:s("source"),keywords:s("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:s("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:s("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:s("date time timestamp"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),o.defineMIME("text/x-sparksql",{name:"sql",keywords:s("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:s("abs acos acosh add_months aggregate and any approx_count_distinct approx_percentile array array_contains array_distinct array_except array_intersect array_join array_max array_min array_position array_remove array_repeat array_sort array_union arrays_overlap arrays_zip ascii asin asinh assert_true atan atan2 atanh avg base64 between bigint bin binary bit_and bit_count bit_get bit_length bit_or bit_xor bool_and bool_or boolean bround btrim cardinality case cast cbrt ceil ceiling char char_length character_length chr coalesce collect_list collect_set concat concat_ws conv corr cos cosh cot count count_if count_min_sketch covar_pop covar_samp crc32 cume_dist current_catalog current_database current_date current_timestamp current_timezone current_user date date_add date_format date_from_unix_date date_part date_sub date_trunc datediff day dayofmonth dayofweek dayofyear decimal decode degrees delimited dense_rank div double e element_at elt encode every exists exp explode explode_outer expm1 extract factorial filter find_in_set first first_value flatten float floor forall format_number format_string from_csv from_json from_unixtime from_utc_timestamp get_json_object getbit greatest grouping grouping_id hash hex hour hypot if ifnull in initcap inline inline_outer input_file_block_length input_file_block_start input_file_name inputformat instr int isnan isnotnull isnull java_method json_array_length json_object_keys json_tuple kurtosis lag last last_day last_value lcase lead least left length levenshtein like ln locate log log10 log1p log2 lower lpad ltrim make_date make_dt_interval make_interval make_timestamp make_ym_interval map map_concat map_entries map_filter map_from_arrays map_from_entries map_keys map_values map_zip_with max max_by md5 mean min min_by minute mod monotonically_increasing_id month months_between named_struct nanvl negative next_day not now nth_value ntile nullif nvl nvl2 octet_length or outputformat overlay parse_url percent_rank percentile percentile_approx pi pmod posexplode posexplode_outer position positive pow power printf quarter radians raise_error rand randn random rank rcfile reflect regexp regexp_extract regexp_extract_all regexp_like regexp_replace repeat replace reverse right rint rlike round row_number rpad rtrim schema_of_csv schema_of_json second sentences sequence sequencefile serde session_window sha sha1 sha2 shiftleft shiftright shiftrightunsigned shuffle sign signum sin sinh size skewness slice smallint some sort_array soundex space spark_partition_id split sqrt stack std stddev stddev_pop stddev_samp str_to_map string struct substr substring substring_index sum tan tanh textfile timestamp timestamp_micros timestamp_millis timestamp_seconds tinyint to_csv to_date to_json to_timestamp to_unix_timestamp to_utc_timestamp transform transform_keys transform_values translate trim trunc try_add try_divide typeof ucase unbase64 unhex uniontype unix_date unix_micros unix_millis unix_seconds unix_timestamp upper uuid var_pop var_samp variance version weekday weekofyear when width_bucket window xpath xpath_boolean xpath_double xpath_float xpath_int xpath_long xpath_number xpath_short xpath_string xxhash64 year zip_with"),atoms:s("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:s("date time timestamp"),support:s("doubleQuote zerolessFloat")}),o.defineMIME("text/x-esper",{name:"sql",client:s("source"),keywords:s("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:s("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:s("time"),support:s("decimallessFloat zerolessFloat binaryNumber hexNumber")}),o.defineMIME("text/x-trino",{name:"sql",keywords:s("abs absent acos add admin after all all_match alter analyze and any any_match approx_distinct approx_most_frequent approx_percentile approx_set arbitrary array_agg array_distinct array_except array_intersect array_join array_max array_min array_position array_remove array_sort array_union arrays_overlap as asc asin at at_timezone atan atan2 authorization avg bar bernoulli beta_cdf between bing_tile bing_tile_at bing_tile_coordinates bing_tile_polygon bing_tile_quadkey bing_tile_zoom_level bing_tiles_around bit_count bitwise_and bitwise_and_agg bitwise_left_shift bitwise_not bitwise_or bitwise_or_agg bitwise_right_shift bitwise_right_shift_arithmetic bitwise_xor bool_and bool_or both by call cardinality cascade case cast catalogs cbrt ceil ceiling char2hexint checksum chr classify coalesce codepoint column columns combinations comment commit committed concat concat_ws conditional constraint contains contains_sequence convex_hull_agg copartition corr cos cosh cosine_similarity count count_if covar_pop covar_samp crc32 create cross cube cume_dist current current_catalog current_date current_groups current_path current_role current_schema current_time current_timestamp current_timezone current_user data date_add date_diff date_format date_parse date_trunc day day_of_month day_of_week day_of_year deallocate default define definer degrees delete dense_rank deny desc describe descriptor distinct distributed dow doy drop e element_at else empty empty_approx_set encoding end error escape evaluate_classifier_predictions every except excluding execute exists exp explain extract false features fetch filter final first first_value flatten floor following for format format_datetime format_number from from_base from_base32 from_base64 from_base64url from_big_endian_32 from_big_endian_64 from_encoded_polyline from_geojson_geometry from_hex from_ieee754_32 from_ieee754_64 from_iso8601_date from_iso8601_timestamp from_iso8601_timestamp_nanos from_unixtime from_unixtime_nanos from_utf8 full functions geometric_mean geometry_from_hadoop_shape geometry_invalid_reason geometry_nearest_points geometry_to_bing_tiles geometry_union geometry_union_agg grant granted grants graphviz great_circle_distance greatest group grouping groups hamming_distance hash_counts having histogram hmac_md5 hmac_sha1 hmac_sha256 hmac_sha512 hour human_readable_seconds if ignore in including index infinity initial inner input insert intersect intersection_cardinality into inverse_beta_cdf inverse_normal_cdf invoker io is is_finite is_infinite is_json_scalar is_nan isolation jaccard_index join json_array json_array_contains json_array_get json_array_length json_exists json_extract json_extract_scalar json_format json_object json_parse json_query json_size json_value keep key keys kurtosis lag last last_day_of_month last_value lateral lead leading learn_classifier learn_libsvm_classifier learn_libsvm_regressor learn_regressor least left length level levenshtein_distance like limit line_interpolate_point line_interpolate_points line_locate_point listagg ln local localtime localtimestamp log log10 log2 logical lower lpad ltrim luhn_check make_set_digest map_agg map_concat map_entries map_filter map_from_entries map_keys map_union map_values map_zip_with match match_recognize matched matches materialized max max_by md5 measures merge merge_set_digest millisecond min min_by minute mod month multimap_agg multimap_from_entries murmur3 nan natural next nfc nfd nfkc nfkd ngrams no none none_match normal_cdf normalize not now nth_value ntile null nullif nulls numeric_histogram object objectid_timestamp of offset omit on one only option or order ordinality outer output over overflow parse_data_size parse_datetime parse_duration partition partitions passing past path pattern per percent_rank permute pi position pow power preceding prepare privileges properties prune qdigest_agg quarter quotes radians rand random range rank read recursive reduce reduce_agg refresh regexp_count regexp_extract regexp_extract_all regexp_like regexp_position regexp_replace regexp_split regr_intercept regr_slope regress rename render repeat repeatable replace reset respect restrict returning reverse revoke rgb right role roles rollback rollup round row_number rows rpad rtrim running scalar schema schemas second security seek select sequence serializable session set sets sha1 sha256 sha512 show shuffle sign simplify_geometry sin skewness skip slice some soundex spatial_partitioning spatial_partitions split split_part split_to_map split_to_multimap spooky_hash_v2_32 spooky_hash_v2_64 sqrt st_area st_asbinary st_astext st_boundary st_buffer st_centroid st_contains st_convexhull st_coorddim st_crosses st_difference st_dimension st_disjoint st_distance st_endpoint st_envelope st_envelopeaspts st_equals st_exteriorring st_geometries st_geometryfromtext st_geometryn st_geometrytype st_geomfrombinary st_interiorringn st_interiorrings st_intersection st_intersects st_isclosed st_isempty st_isring st_issimple st_isvalid st_length st_linefromtext st_linestring st_multipoint st_numgeometries st_numinteriorring st_numpoints st_overlaps st_point st_pointn st_points st_polygon st_relate st_startpoint st_symdifference st_touches st_union st_within st_x st_xmax st_xmin st_y st_ymax st_ymin start starts_with stats stddev stddev_pop stddev_samp string strpos subset substr substring sum system table tables tablesample tan tanh tdigest_agg text then ties timestamp_objectid timezone_hour timezone_minute to to_base to_base32 to_base64 to_base64url to_big_endian_32 to_big_endian_64 to_char to_date to_encoded_polyline to_geojson_geometry to_geometry to_hex to_ieee754_32 to_ieee754_64 to_iso8601 to_milliseconds to_spherical_geography to_timestamp to_unixtime to_utf8 trailing transaction transform transform_keys transform_values translate trim trim_array true truncate try try_cast type typeof uescape unbounded uncommitted unconditional union unique unknown unmatched unnest update upper url_decode url_encode url_extract_fragment url_extract_host url_extract_parameter url_extract_path url_extract_port url_extract_protocol url_extract_query use user using utf16 utf32 utf8 validate value value_at_quantile values values_at_quantiles var_pop var_samp variance verbose version view week week_of_year when where width_bucket wilson_interval_lower wilson_interval_upper window with with_timezone within without word_stem work wrapper write xxhash64 year year_of_week yow zip zip_with"),builtin:s("array bigint bingtile boolean char codepoints color date decimal double function geometry hyperloglog int integer interval ipaddress joniregexp json json2016 jsonpath kdbtree likepattern map model objectid p4hyperloglog precision qdigest re2jregexp real regressor row setdigest smallint sphericalgeography tdigest time timestamp tinyint uuid varbinary varchar zone"),atoms:s("false true null unknown"),operatorChars:/^[[\]|<>=!\-+*/%]/,dateSQL:s("date time timestamp zone"),support:s("decimallessFloat zerolessFloat hexNumber")})})});var ta=Ke(($u,Ku)=>{(function(o){typeof $u=="object"&&typeof Ku=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("stylus",function(M){for(var H=M.indentUnit,Z="",ee=y(p),re=/^(a|b|i|s|col|em)$/i,N=y(S),F=y(s),D=y(T),Q=y(g),j=y(v),V=z(v),_=y(b),K=y(C),X=y(h),I=/^\s*([.]{2,3}|&&|\|\||\*\*|[?!=:]?=|[-+*\/%<>]=?|\?:|\~)/,B=z(x),le=y(c),xe=new RegExp(/^\-(moz|ms|o|webkit)-/i),q=y(d),L="",de={},ze,pe,Ee,ge;Z.length|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/),W.context.line.firstWord=L?L[0].replace(/^\s*/,""):"",W.context.line.indent=$.indentation(),ze=$.peek(),$.match("//"))return $.skipToEnd(),["comment","comment"];if($.match("/*"))return W.tokenize=qe,qe($,W);if(ze=='"'||ze=="'")return $.next(),W.tokenize=Se(ze),W.tokenize($,W);if(ze=="@")return $.next(),$.eatWhile(/[\w\\-]/),["def",$.current()];if(ze=="#"){if($.next(),$.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b(?!-)/i))return["atom","atom"];if($.match(/^[a-z][\w-]*/i))return["builtin","hash"]}return $.match(xe)?["meta","vendor-prefixes"]:$.match(/^-?[0-9]?\.?[0-9]/)?($.eatWhile(/[a-z%]/i),["number","unit"]):ze=="!"?($.next(),[$.match(/^(important|optional)/i)?"keyword":"operator","important"]):ze=="."&&$.match(/^\.[a-z][\w-]*/i)?["qualifier","qualifier"]:$.match(V)?($.peek()=="("&&(W.tokenize=je),["property","word"]):$.match(/^[a-z][\w-]*\(/i)?($.backUp(1),["keyword","mixin"]):$.match(/^(\+|-)[a-z][\w-]*\(/i)?($.backUp(1),["keyword","block-mixin"]):$.string.match(/^\s*&/)&&$.match(/^[-_]+[a-z][\w-]*/)?["qualifier","qualifier"]:$.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)?($.backUp(1),["variable-3","reference"]):$.match(/^&{1}\s*$/)?["variable-3","reference"]:$.match(B)?["operator","operator"]:$.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)?$.match(/^(\.|\[)[\w-\'\"\]]+/i,!1)&&!U($.current())?($.match("."),["variable-2","variable-name"]):["variable-2","word"]:$.match(I)?["operator",$.current()]:/[:;,{}\[\]\(\)]/.test(ze)?($.next(),[null,ze]):($.next(),[null,null])}function qe($,W){for(var se=!1,De;(De=$.next())!=null;){if(se&&De=="/"){W.tokenize=null;break}se=De=="*"}return["comment","comment"]}function Se($){return function(W,se){for(var De=!1,nt;(nt=W.next())!=null;){if(nt==$&&!De){$==")"&&W.backUp(1);break}De=!De&&nt=="\\"}return(nt==$||!De&&$!=")")&&(se.tokenize=null),["string","string"]}}function je($,W){return $.next(),$.match(/\s*[\"\')]/,!1)?W.tokenize=null:W.tokenize=Se(")"),[null,"("]}function Ze($,W,se,De){this.type=$,this.indent=W,this.prev=se,this.line=De||{firstWord:"",indent:0}}function ke($,W,se,De){return De=De>=0?De:H,$.context=new Ze(se,W.indentation()+De,$.context),se}function Je($,W){var se=$.context.indent-H;return W=W||!1,$.context=$.context.prev,W&&($.context.indent=se),$.context.type}function He($,W,se){return de[se.context.type]($,W,se)}function Ge($,W,se,De){for(var nt=De||1;nt>0;nt--)se.context=se.context.prev;return He($,W,se)}function U($){return $.toLowerCase()in ee}function G($){return $=$.toLowerCase(),$ in N||$ in X}function ce($){return $.toLowerCase()in le}function Be($){return $.toLowerCase().match(xe)}function te($){var W=$.toLowerCase(),se="variable-2";return U($)?se="tag":ce($)?se="block-keyword":G($)?se="property":W in D||W in q?se="atom":W=="return"||W in Q?se="keyword":$.match(/^[A-Z]/)&&(se="string"),se}function fe($,W){return Me(W)&&($=="{"||$=="]"||$=="hash"||$=="qualifier")||$=="block-mixin"}function oe($,W){return $=="{"&&W.match(/^\s*\$?[\w-]+/i,!1)}function Ue($,W){return $==":"&&W.match(/^[a-z-]+/,!1)}function we($){return $.sol()||$.string.match(new RegExp("^\\s*"+R($.current())))}function Me($){return $.eol()||$.match(/^\s*$/,!1)}function Le($){var W=/^\s*[-_]*[a-z0-9]+[\w-]*/i,se=typeof $=="string"?$.match(W):$.string.match(W);return se?se[0].replace(/^\s*/,""):""}return de.block=function($,W,se){if($=="comment"&&we(W)||$==","&&Me(W)||$=="mixin")return ke(se,W,"block",0);if(oe($,W))return ke(se,W,"interpolation");if(Me(W)&&$=="]"&&!/^\s*(\.|#|:|\[|\*|&)/.test(W.string)&&!U(Le(W)))return ke(se,W,"block",0);if(fe($,W))return ke(se,W,"block");if($=="}"&&Me(W))return ke(se,W,"block",0);if($=="variable-name")return W.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)||ce(Le(W))?ke(se,W,"variableName"):ke(se,W,"variableName",0);if($=="=")return!Me(W)&&!ce(Le(W))?ke(se,W,"block",0):ke(se,W,"block");if($=="*"&&(Me(W)||W.match(/\s*(,|\.|#|\[|:|{)/,!1)))return ge="tag",ke(se,W,"block");if(Ue($,W))return ke(se,W,"pseudo");if(/@(font-face|media|supports|(-moz-)?document)/.test($))return ke(se,W,Me(W)?"block":"atBlock");if(/@(-(moz|ms|o|webkit)-)?keyframes$/.test($))return ke(se,W,"keyframes");if(/@extends?/.test($))return ke(se,W,"extend",0);if($&&$.charAt(0)=="@")return W.indentation()>0&&G(W.current().slice(1))?(ge="variable-2","block"):/(@import|@require|@charset)/.test($)?ke(se,W,"block",0):ke(se,W,"block");if($=="reference"&&Me(W))return ke(se,W,"block");if($=="(")return ke(se,W,"parens");if($=="vendor-prefixes")return ke(se,W,"vendorPrefixes");if($=="word"){var De=W.current();if(ge=te(De),ge=="property")return we(W)?ke(se,W,"block",0):(ge="atom","block");if(ge=="tag"){if(/embed|menu|pre|progress|sub|table/.test(De)&&G(Le(W))||W.string.match(new RegExp("\\[\\s*"+De+"|"+De+"\\s*\\]")))return ge="atom","block";if(re.test(De)&&(we(W)&&W.string.match(/=/)||!we(W)&&!W.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/)&&!U(Le(W))))return ge="variable-2",ce(Le(W))?"block":ke(se,W,"block",0);if(Me(W))return ke(se,W,"block")}if(ge=="block-keyword")return ge="keyword",W.current(/(if|unless)/)&&!we(W)?"block":ke(se,W,"block");if(De=="return")return ke(se,W,"block",0);if(ge=="variable-2"&&W.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/))return ke(se,W,"block")}return se.context.type},de.parens=function($,W,se){if($=="(")return ke(se,W,"parens");if($==")")return se.context.prev.type=="parens"?Je(se):W.string.match(/^[a-z][\w-]*\(/i)&&Me(W)||ce(Le(W))||/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(Le(W))||!W.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/)&&U(Le(W))?ke(se,W,"block"):W.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/)||W.string.match(/^\s*(\(|\)|[0-9])/)||W.string.match(/^\s+[a-z][\w-]*\(/i)||W.string.match(/^\s+[\$-]?[a-z]/i)?ke(se,W,"block",0):Me(W)?ke(se,W,"block"):ke(se,W,"block",0);if($&&$.charAt(0)=="@"&&G(W.current().slice(1))&&(ge="variable-2"),$=="word"){var De=W.current();ge=te(De),ge=="tag"&&re.test(De)&&(ge="variable-2"),(ge=="property"||De=="to")&&(ge="atom")}return $=="variable-name"?ke(se,W,"variableName"):Ue($,W)?ke(se,W,"pseudo"):se.context.type},de.vendorPrefixes=function($,W,se){return $=="word"?(ge="property",ke(se,W,"block",0)):Je(se)},de.pseudo=function($,W,se){return G(Le(W.string))?Ge($,W,se):(W.match(/^[a-z-]+/),ge="variable-3",Me(W)?ke(se,W,"block"):Je(se))},de.atBlock=function($,W,se){if($=="(")return ke(se,W,"atBlock_parens");if(fe($,W))return ke(se,W,"block");if(oe($,W))return ke(se,W,"interpolation");if($=="word"){var De=W.current().toLowerCase();if(/^(only|not|and|or)$/.test(De)?ge="keyword":j.hasOwnProperty(De)?ge="tag":K.hasOwnProperty(De)?ge="attribute":_.hasOwnProperty(De)?ge="property":F.hasOwnProperty(De)?ge="string-2":ge=te(W.current()),ge=="tag"&&Me(W))return ke(se,W,"block")}return $=="operator"&&/^(not|and|or)$/.test(W.current())&&(ge="keyword"),se.context.type},de.atBlock_parens=function($,W,se){if($=="{"||$=="}")return se.context.type;if($==")")return Me(W)?ke(se,W,"block"):ke(se,W,"atBlock");if($=="word"){var De=W.current().toLowerCase();return ge=te(De),/^(max|min)/.test(De)&&(ge="property"),ge=="tag"&&(re.test(De)?ge="variable-2":ge="atom"),se.context.type}return de.atBlock($,W,se)},de.keyframes=function($,W,se){return W.indentation()=="0"&&($=="}"&&we(W)||$=="]"||$=="hash"||$=="qualifier"||U(W.current()))?Ge($,W,se):$=="{"?ke(se,W,"keyframes"):$=="}"?we(W)?Je(se,!0):ke(se,W,"keyframes"):$=="unit"&&/^[0-9]+\%$/.test(W.current())?ke(se,W,"keyframes"):$=="word"&&(ge=te(W.current()),ge=="block-keyword")?(ge="keyword",ke(se,W,"keyframes")):/@(font-face|media|supports|(-moz-)?document)/.test($)?ke(se,W,Me(W)?"block":"atBlock"):$=="mixin"?ke(se,W,"block",0):se.context.type},de.interpolation=function($,W,se){return $=="{"&&Je(se)&&ke(se,W,"block"),$=="}"?W.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i)||W.string.match(/^\s*[a-z]/i)&&U(Le(W))?ke(se,W,"block"):!W.string.match(/^(\{|\s*\&)/)||W.match(/\s*[\w-]/,!1)?ke(se,W,"block",0):ke(se,W,"block"):$=="variable-name"?ke(se,W,"variableName",0):($=="word"&&(ge=te(W.current()),ge=="tag"&&(ge="atom")),se.context.type)},de.extend=function($,W,se){return $=="["||$=="="?"extend":$=="]"?Je(se):$=="word"?(ge=te(W.current()),"extend"):Je(se)},de.variableName=function($,W,se){return $=="string"||$=="["||$=="]"||W.current().match(/^(\.|\$)/)?(W.current().match(/^\.[\w-]+/i)&&(ge="variable-2"),"variableName"):Ge($,W,se)},{startState:function($){return{tokenize:null,state:"block",context:new Ze("block",$||0,null)}},token:function($,W){return!W.tokenize&&$.eatSpace()?null:(pe=(W.tokenize||Oe)($,W),pe&&typeof pe=="object"&&(Ee=pe[1],pe=pe[0]),ge=pe,W.state=de[W.state](Ee,$,W),ge)},indent:function($,W,se){var De=$.context,nt=W&&W.charAt(0),dt=De.indent,Pt=Le(W),It=se.match(/^\s*/)[0].replace(/\t/g,Z).length,Pe=$.context.prev?$.context.prev.line.firstWord:"",xt=$.context.prev?$.context.prev.line.indent:It;return De.prev&&(nt=="}"&&(De.type=="block"||De.type=="atBlock"||De.type=="keyframes")||nt==")"&&(De.type=="parens"||De.type=="atBlock_parens")||nt=="{"&&De.type=="at")?dt=De.indent-H:/(\})/.test(nt)||(/@|\$|\d/.test(nt)||/^\{/.test(W)||/^\s*\/(\/|\*)/.test(W)||/^\s*\/\*/.test(Pe)||/^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(W)||/^(\+|-)?[a-z][\w-]*\(/i.test(W)||/^return/.test(W)||ce(Pt)?dt=It:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(nt)||U(Pt)?/\,\s*$/.test(Pe)?dt=xt:/^\s+/.test(se)&&(/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(Pe)||U(Pe))?dt=It<=xt?xt:xt+H:dt=It:!/,\s*$/.test(se)&&(Be(Pt)||G(Pt))&&(ce(Pe)?dt=It<=xt?xt:xt+H:/^\{/.test(Pe)?dt=It<=xt?It:xt+H:Be(Pe)||G(Pe)?dt=It>=xt?xt:It:/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(Pe)||/=\s*$/.test(Pe)||U(Pe)||/^\$[\w-\.\[\]\'\"]/.test(Pe)?dt=xt+H:dt=It)),dt},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:"//",fold:"indent"}});var p=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video"],v=["domain","regexp","url-prefix","url"],C=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],b=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","dynamic-range","video-dynamic-range"],S=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"],s=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],h=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],g=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],T=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","high","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","standard","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around","unset"],x=["in","and","or","not","is not","is a","is","isnt","defined","if unless"],c=["for","if","else","unless","from","to"],d=["null","true","false","href","title","type","not-allowed","readonly","disabled"],w=["@font-face","@keyframes","@media","@viewport","@page","@host","@supports","@block","@css"],E=p.concat(v,C,b,S,s,g,T,h,x,c,d,w);function z(M){return M=M.sort(function(H,Z){return Z>H}),new RegExp("^(("+M.join(")|(")+"))\\b")}function y(M){for(var H={},Z=0;Z{(function(o){typeof Gu=="object"&&typeof Zu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";function p(N){for(var F={},D=0;D~^?!",h=":;,.(){}[]",g=/^\-?0b[01][01_]*/,T=/^\-?0o[0-7][0-7_]*/,x=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,c=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,d=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,w=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,E=/^\#[A-Za-z]+/,z=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function y(N,F,D){if(N.sol()&&(F.indented=N.indentation()),N.eatSpace())return null;var Q=N.peek();if(Q=="/"){if(N.match("//"))return N.skipToEnd(),"comment";if(N.match("/*"))return F.tokenize.push(H),H(N,F)}if(N.match(E))return"builtin";if(N.match(z))return"attribute";if(N.match(g)||N.match(T)||N.match(x)||N.match(c))return"number";if(N.match(w))return"property";if(s.indexOf(Q)>-1)return N.next(),"operator";if(h.indexOf(Q)>-1)return N.next(),N.match(".."),"punctuation";var j;if(j=N.match(/("""|"|')/)){var V=M.bind(null,j[0]);return F.tokenize.push(V),V(N,F)}if(N.match(d)){var _=N.current();return S.hasOwnProperty(_)?"variable-2":b.hasOwnProperty(_)?"atom":v.hasOwnProperty(_)?(C.hasOwnProperty(_)&&(F.prev="define"),"keyword"):D=="define"?"def":"variable"}return N.next(),null}function R(){var N=0;return function(F,D,Q){var j=y(F,D,Q);if(j=="punctuation"){if(F.current()=="(")++N;else if(F.current()==")"){if(N==0)return F.backUp(1),D.tokenize.pop(),D.tokenize[D.tokenize.length-1](F,D);--N}}return j}}function M(N,F,D){for(var Q=N.length==1,j,V=!1;j=F.peek();)if(V){if(F.next(),j=="(")return D.tokenize.push(R()),"string";V=!1}else{if(F.match(N))return D.tokenize.pop(),"string";F.next(),V=j=="\\"}return Q&&D.tokenize.pop(),"string"}function H(N,F){for(var D;D=N.next();)if(D==="/"&&N.eat("*"))F.tokenize.push(H);else if(D==="*"&&N.eat("/")){F.tokenize.pop();break}return"comment"}function Z(N,F,D){this.prev=N,this.align=F,this.indented=D}function ee(N,F){var D=F.match(/^\s*($|\/[\/\*])/,!1)?null:F.column()+1;N.context=new Z(N.context,D,N.indented)}function re(N){N.context&&(N.indented=N.context.indented,N.context=N.context.prev)}o.defineMode("swift",function(N){return{startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(F,D){var Q=D.prev;D.prev=null;var j=D.tokenize[D.tokenize.length-1]||y,V=j(F,D,Q);if(!V||V=="comment"?D.prev=Q:D.prev||(D.prev=V),V=="punctuation"){var _=/[\(\[\{]|([\]\)\}])/.exec(F.current());_&&(_[1]?re:ee)(D,F)}return V},indent:function(F,D){var Q=F.context;if(!Q)return 0;var j=/^[\]\}\)]/.test(D);return Q.align!=null?Q.align-(j?1:0):Q.indented+(j?0:N.indentUnit)},electricInput:/^\s*[\)\}\]]$/,lineComment:"//",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace",closeBrackets:"()[]{}''\"\"``"}}),o.defineMIME("text/x-swift","swift")})});var Vu=Ke((Yu,Qu)=>{(function(o){typeof Yu=="object"&&typeof Qu=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("coffeescript",function(p,v){var C="error";function b(F){return new RegExp("^(("+F.join(")|(")+"))\\b")}var S=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,s=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,h=/^[_A-Za-z$][_A-Za-z$0-9]*/,g=/^@[_A-Za-z$][_A-Za-z$0-9]*/,T=b(["and","or","not","is","isnt","in","instanceof","typeof"]),x=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],c=["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"],d=b(x.concat(c));x=b(x);var w=/^('{3}|\"{3}|['\"])/,E=/^(\/{3}|\/)/,z=["Infinity","NaN","undefined","null","true","false","on","off","yes","no"],y=b(z);function R(F,D){if(F.sol()){D.scope.align===null&&(D.scope.align=!1);var Q=D.scope.offset;if(F.eatSpace()){var j=F.indentation();return j>Q&&D.scope.type=="coffee"?"indent":j0&&ee(F,D)}if(F.eatSpace())return null;var V=F.peek();if(F.match("####"))return F.skipToEnd(),"comment";if(F.match("###"))return D.tokenize=H,D.tokenize(F,D);if(V==="#")return F.skipToEnd(),"comment";if(F.match(/^-?[0-9\.]/,!1)){var _=!1;if(F.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(_=!0),F.match(/^-?\d+\.\d*/)&&(_=!0),F.match(/^-?\.\d+/)&&(_=!0),_)return F.peek()=="."&&F.backUp(1),"number";var K=!1;if(F.match(/^-?0x[0-9a-f]+/i)&&(K=!0),F.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(K=!0),F.match(/^-?0(?![\dx])/i)&&(K=!0),K)return"number"}if(F.match(w))return D.tokenize=M(F.current(),!1,"string"),D.tokenize(F,D);if(F.match(E)){if(F.current()!="/"||F.match(/^.*\//,!1))return D.tokenize=M(F.current(),!0,"string-2"),D.tokenize(F,D);F.backUp(1)}return F.match(S)||F.match(T)?"operator":F.match(s)?"punctuation":F.match(y)?"atom":F.match(g)||D.prop&&F.match(h)?"property":F.match(d)?"keyword":F.match(h)?"variable":(F.next(),C)}function M(F,D,Q){return function(j,V){for(;!j.eol();)if(j.eatWhile(/[^'"\/\\]/),j.eat("\\")){if(j.next(),D&&j.eol())return Q}else{if(j.match(F))return V.tokenize=R,Q;j.eat(/['"\/]/)}return D&&(v.singleLineStringErrors?Q=C:V.tokenize=R),Q}}function H(F,D){for(;!F.eol();){if(F.eatWhile(/[^#]/),F.match("###")){D.tokenize=R;break}F.eatWhile("#")}return"comment"}function Z(F,D,Q){Q=Q||"coffee";for(var j=0,V=!1,_=null,K=D.scope;K;K=K.prev)if(K.type==="coffee"||K.type=="}"){j=K.offset+p.indentUnit;break}Q!=="coffee"?(V=null,_=F.column()+F.current().length):D.scope.align&&(D.scope.align=!1),D.scope={offset:j,type:Q,prev:D.scope,align:V,alignOffset:_}}function ee(F,D){if(D.scope.prev)if(D.scope.type==="coffee"){for(var Q=F.indentation(),j=!1,V=D.scope;V;V=V.prev)if(Q===V.offset){j=!0;break}if(!j)return!0;for(;D.scope.prev&&D.scope.offset!==Q;)D.scope=D.scope.prev;return!1}else return D.scope=D.scope.prev,!1}function re(F,D){var Q=D.tokenize(F,D),j=F.current();j==="return"&&(D.dedent=!0),((j==="->"||j==="=>")&&F.eol()||Q==="indent")&&Z(F,D);var V="[({".indexOf(j);if(V!==-1&&Z(F,D,"])}".slice(V,V+1)),x.exec(j)&&Z(F,D),j=="then"&&ee(F,D),Q==="dedent"&&ee(F,D))return C;if(V="])}".indexOf(j),V!==-1){for(;D.scope.type=="coffee"&&D.scope.prev;)D.scope=D.scope.prev;D.scope.type==j&&(D.scope=D.scope.prev)}return D.dedent&&F.eol()&&(D.scope.type=="coffee"&&D.scope.prev&&(D.scope=D.scope.prev),D.dedent=!1),Q}var N={startState:function(F){return{tokenize:R,scope:{offset:F||0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(F,D){var Q=D.scope.align===null&&D.scope;Q&&F.sol()&&(Q.align=!1);var j=re(F,D);return j&&j!="comment"&&(Q&&(Q.align=!0),D.prop=j=="punctuation"&&F.current()=="."),j},indent:function(F,D){if(F.tokenize!=R)return 0;var Q=F.scope,j=D&&"])}".indexOf(D.charAt(0))>-1;if(j)for(;Q.type=="coffee"&&Q.prev;)Q=Q.prev;var V=j&&Q.type===D.charAt(0);return Q.align?Q.alignOffset-(V?1:0):(V?Q.prev:Q).offset},lineComment:"#",fold:"indent"};return N}),o.defineMIME("application/vnd.coffeescript","coffeescript"),o.defineMIME("text/x-coffeescript","coffeescript"),o.defineMIME("text/coffeescript","coffeescript")})});var tc=Ke((Ju,ec)=>{(function(o){typeof Ju=="object"&&typeof ec=="object"?o(We(),vn(),gn(),Qn()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../javascript/javascript","../css/css","../htmlmixed/htmlmixed"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("pug",function(p){var v="keyword",C="meta",b="builtin",S="qualifier",s={"{":"}","(":")","[":"]"},h=o.getMode(p,"javascript");function g(){this.javaScriptLine=!1,this.javaScriptLineExcludesColon=!1,this.javaScriptArguments=!1,this.javaScriptArgumentsDepth=0,this.isInterpolating=!1,this.interpolationNesting=0,this.jsState=o.startState(h),this.restOfLine="",this.isIncludeFiltered=!1,this.isEach=!1,this.lastTag="",this.scriptType="",this.isAttrs=!1,this.attrsNest=[],this.inAttributeName=!0,this.attributeIsType=!1,this.attrValue="",this.indentOf=1/0,this.indentToken="",this.innerMode=null,this.innerState=null,this.innerModeForLine=!1}g.prototype.copy=function(){var U=new g;return U.javaScriptLine=this.javaScriptLine,U.javaScriptLineExcludesColon=this.javaScriptLineExcludesColon,U.javaScriptArguments=this.javaScriptArguments,U.javaScriptArgumentsDepth=this.javaScriptArgumentsDepth,U.isInterpolating=this.isInterpolating,U.interpolationNesting=this.interpolationNesting,U.jsState=o.copyState(h,this.jsState),U.innerMode=this.innerMode,this.innerMode&&this.innerState&&(U.innerState=o.copyState(this.innerMode,this.innerState)),U.restOfLine=this.restOfLine,U.isIncludeFiltered=this.isIncludeFiltered,U.isEach=this.isEach,U.lastTag=this.lastTag,U.scriptType=this.scriptType,U.isAttrs=this.isAttrs,U.attrsNest=this.attrsNest.slice(),U.inAttributeName=this.inAttributeName,U.attributeIsType=this.attributeIsType,U.attrValue=this.attrValue,U.indentOf=this.indentOf,U.indentToken=this.indentToken,U.innerModeForLine=this.innerModeForLine,U};function T(U,G){if(U.sol()&&(G.javaScriptLine=!1,G.javaScriptLineExcludesColon=!1),G.javaScriptLine){if(G.javaScriptLineExcludesColon&&U.peek()===":"){G.javaScriptLine=!1,G.javaScriptLineExcludesColon=!1;return}var ce=h.token(U,G.jsState);return U.eol()&&(G.javaScriptLine=!1),ce||!0}}function x(U,G){if(G.javaScriptArguments){if(G.javaScriptArgumentsDepth===0&&U.peek()!=="("){G.javaScriptArguments=!1;return}if(U.peek()==="("?G.javaScriptArgumentsDepth++:U.peek()===")"&&G.javaScriptArgumentsDepth--,G.javaScriptArgumentsDepth===0){G.javaScriptArguments=!1;return}var ce=h.token(U,G.jsState);return ce||!0}}function c(U){if(U.match(/^yield\b/))return"keyword"}function d(U){if(U.match(/^(?:doctype) *([^\n]+)?/))return C}function w(U,G){if(U.match("#{"))return G.isInterpolating=!0,G.interpolationNesting=0,"punctuation"}function E(U,G){if(G.isInterpolating){if(U.peek()==="}"){if(G.interpolationNesting--,G.interpolationNesting<0)return U.next(),G.isInterpolating=!1,"punctuation"}else U.peek()==="{"&&G.interpolationNesting++;return h.token(U,G.jsState)||!0}}function z(U,G){if(U.match(/^case\b/))return G.javaScriptLine=!0,v}function y(U,G){if(U.match(/^when\b/))return G.javaScriptLine=!0,G.javaScriptLineExcludesColon=!0,v}function R(U){if(U.match(/^default\b/))return v}function M(U,G){if(U.match(/^extends?\b/))return G.restOfLine="string",v}function H(U,G){if(U.match(/^append\b/))return G.restOfLine="variable",v}function Z(U,G){if(U.match(/^prepend\b/))return G.restOfLine="variable",v}function ee(U,G){if(U.match(/^block\b *(?:(prepend|append)\b)?/))return G.restOfLine="variable",v}function re(U,G){if(U.match(/^include\b/))return G.restOfLine="string",v}function N(U,G){if(U.match(/^include:([a-zA-Z0-9\-]+)/,!1)&&U.match("include"))return G.isIncludeFiltered=!0,v}function F(U,G){if(G.isIncludeFiltered){var ce=B(U,G);return G.isIncludeFiltered=!1,G.restOfLine="string",ce}}function D(U,G){if(U.match(/^mixin\b/))return G.javaScriptLine=!0,v}function Q(U,G){if(U.match(/^\+([-\w]+)/))return U.match(/^\( *[-\w]+ *=/,!1)||(G.javaScriptArguments=!0,G.javaScriptArgumentsDepth=0),"variable";if(U.match("+#{",!1))return U.next(),G.mixinCallAfter=!0,w(U,G)}function j(U,G){if(G.mixinCallAfter)return G.mixinCallAfter=!1,U.match(/^\( *[-\w]+ *=/,!1)||(G.javaScriptArguments=!0,G.javaScriptArgumentsDepth=0),!0}function V(U,G){if(U.match(/^(if|unless|else if|else)\b/))return G.javaScriptLine=!0,v}function _(U,G){if(U.match(/^(- *)?(each|for)\b/))return G.isEach=!0,v}function K(U,G){if(G.isEach){if(U.match(/^ in\b/))return G.javaScriptLine=!0,G.isEach=!1,v;if(U.sol()||U.eol())G.isEach=!1;else if(U.next()){for(;!U.match(/^ in\b/,!1)&&U.next(););return"variable"}}}function X(U,G){if(U.match(/^while\b/))return G.javaScriptLine=!0,v}function I(U,G){var ce;if(ce=U.match(/^(\w(?:[-:\w]*\w)?)\/?/))return G.lastTag=ce[1].toLowerCase(),G.lastTag==="script"&&(G.scriptType="application/javascript"),"tag"}function B(U,G){if(U.match(/^:([\w\-]+)/)){var ce;return p&&p.innerModes&&(ce=p.innerModes(U.current().substring(1))),ce||(ce=U.current().substring(1)),typeof ce=="string"&&(ce=o.getMode(p,ce)),je(U,G,ce),"atom"}}function le(U,G){if(U.match(/^(!?=|-)/))return G.javaScriptLine=!0,"punctuation"}function xe(U){if(U.match(/^#([\w-]+)/))return b}function q(U){if(U.match(/^\.([\w-]+)/))return S}function L(U,G){if(U.peek()=="(")return U.next(),G.isAttrs=!0,G.attrsNest=[],G.inAttributeName=!0,G.attrValue="",G.attributeIsType=!1,"punctuation"}function de(U,G){if(G.isAttrs){if(s[U.peek()]&&G.attrsNest.push(s[U.peek()]),G.attrsNest[G.attrsNest.length-1]===U.peek())G.attrsNest.pop();else if(U.eat(")"))return G.isAttrs=!1,"punctuation";if(G.inAttributeName&&U.match(/^[^=,\)!]+/))return(U.peek()==="="||U.peek()==="!")&&(G.inAttributeName=!1,G.jsState=o.startState(h),G.lastTag==="script"&&U.current().trim().toLowerCase()==="type"?G.attributeIsType=!0:G.attributeIsType=!1),"attribute";var ce=h.token(U,G.jsState);if(G.attributeIsType&&ce==="string"&&(G.scriptType=U.current().toString()),G.attrsNest.length===0&&(ce==="string"||ce==="variable"||ce==="keyword"))try{return Function("","var x "+G.attrValue.replace(/,\s*$/,"").replace(/^!/,"")),G.inAttributeName=!0,G.attrValue="",U.backUp(U.current().length),de(U,G)}catch{}return G.attrValue+=U.current(),ce||!0}}function ze(U,G){if(U.match(/^&attributes\b/))return G.javaScriptArguments=!0,G.javaScriptArgumentsDepth=0,"keyword"}function pe(U){if(U.sol()&&U.eatSpace())return"indent"}function Ee(U,G){if(U.match(/^ *\/\/(-)?([^\n]*)/))return G.indentOf=U.indentation(),G.indentToken="comment","comment"}function ge(U){if(U.match(/^: */))return"colon"}function Oe(U,G){if(U.match(/^(?:\| ?| )([^\n]+)/))return"string";if(U.match(/^(<[^\n]*)/,!1))return je(U,G,"htmlmixed"),G.innerModeForLine=!0,Ze(U,G,!0)}function qe(U,G){if(U.eat(".")){var ce=null;return G.lastTag==="script"&&G.scriptType.toLowerCase().indexOf("javascript")!=-1?ce=G.scriptType.toLowerCase().replace(/"|'/g,""):G.lastTag==="style"&&(ce="css"),je(U,G,ce),"dot"}}function Se(U){return U.next(),null}function je(U,G,ce){ce=o.mimeModes[ce]||ce,ce=p.innerModes&&p.innerModes(ce)||ce,ce=o.mimeModes[ce]||ce,ce=o.getMode(p,ce),G.indentOf=U.indentation(),ce&&ce.name!=="null"?G.innerMode=ce:G.indentToken="string"}function Ze(U,G,ce){if(U.indentation()>G.indentOf||G.innerModeForLine&&!U.sol()||ce)return G.innerMode?(G.innerState||(G.innerState=G.innerMode.startState?o.startState(G.innerMode,U.indentation()):{}),U.hideFirstChars(G.indentOf+2,function(){return G.innerMode.token(U,G.innerState)||!0})):(U.skipToEnd(),G.indentToken);U.sol()&&(G.indentOf=1/0,G.indentToken=null,G.innerMode=null,G.innerState=null)}function ke(U,G){if(U.sol()&&(G.restOfLine=""),G.restOfLine){U.skipToEnd();var ce=G.restOfLine;return G.restOfLine="",ce}}function Je(){return new g}function He(U){return U.copy()}function Ge(U,G){var ce=Ze(U,G)||ke(U,G)||E(U,G)||F(U,G)||K(U,G)||de(U,G)||T(U,G)||x(U,G)||j(U,G)||c(U)||d(U)||w(U,G)||z(U,G)||y(U,G)||R(U)||M(U,G)||H(U,G)||Z(U,G)||ee(U,G)||re(U,G)||N(U,G)||D(U,G)||Q(U,G)||V(U,G)||_(U,G)||X(U,G)||I(U,G)||B(U,G)||le(U,G)||xe(U)||q(U)||L(U,G)||ze(U,G)||pe(U)||Oe(U,G)||Ee(U,G)||ge(U)||qe(U,G)||Se(U);return ce===!0?null:ce}return{startState:Je,copyState:He,token:Ge}},"javascript","css","htmlmixed"),o.defineMIME("text/x-pug","pug"),o.defineMIME("text/x-jade","pug")})});var ic=Ke((rc,nc)=>{(function(o){typeof rc=="object"&&typeof nc=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.multiplexingMode=function(p){var v=Array.prototype.slice.call(arguments,1);function C(b,S,s,h){if(typeof S=="string"){var g=b.indexOf(S,s);return h&&g>-1?g+S.length:g}var T=S.exec(s?b.slice(s):b);return T?T.index+s+(h?T[0].length:0):-1}return{startState:function(){return{outer:o.startState(p),innerActive:null,inner:null,startingInner:!1}},copyState:function(b){return{outer:o.copyState(p,b.outer),innerActive:b.innerActive,inner:b.innerActive&&o.copyState(b.innerActive.mode,b.inner),startingInner:b.startingInner}},token:function(b,S){if(S.innerActive){var E=S.innerActive,h=b.string;if(!E.close&&b.sol())return S.innerActive=S.inner=null,this.token(b,S);var x=E.close&&!S.startingInner?C(h,E.close,b.pos,E.parseDelimiters):-1;if(x==b.pos&&!E.parseDelimiters)return b.match(E.close),S.innerActive=S.inner=null,E.delimStyle&&E.delimStyle+" "+E.delimStyle+"-close";x>-1&&(b.string=h.slice(0,x));var z=E.mode.token(b,S.inner);return x>-1?b.string=h:b.pos>b.start&&(S.startingInner=!1),x==b.pos&&E.parseDelimiters&&(S.innerActive=S.inner=null),E.innerStyle&&(z?z=z+" "+E.innerStyle:z=E.innerStyle),z}else{for(var s=1/0,h=b.string,g=0;g{(function(o){typeof oc=="object"&&typeof ac=="object"?o(We(),Di(),ic()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../../addon/mode/simple","../../addon/mode/multiplex"],o):o(CodeMirror)})(function(o){"use strict";o.defineSimpleMode("handlebars-tags",{start:[{regex:/\{\{\{/,push:"handlebars_raw",token:"tag"},{regex:/\{\{!--/,push:"dash_comment",token:"comment"},{regex:/\{\{!/,push:"comment",token:"comment"},{regex:/\{\{/,push:"handlebars",token:"tag"}],handlebars_raw:[{regex:/\}\}\}/,pop:!0,token:"tag"}],handlebars:[{regex:/\}\}/,pop:!0,token:"tag"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"},{regex:/'(?:[^\\']|\\.)*'?/,token:"string"},{regex:/>|[#\/]([A-Za-z_]\w*)/,token:"keyword"},{regex:/(?:else|this)\b/,token:"keyword"},{regex:/\d+/i,token:"number"},{regex:/=|~|@|true|false/,token:"atom"},{regex:/(?:\.\.\/)*(?:[A-Za-z_][\w\.]*)+/,token:"variable-2"}],dash_comment:[{regex:/--\}\}/,pop:!0,token:"comment"},{regex:/./,token:"comment"}],comment:[{regex:/\}\}/,pop:!0,token:"comment"},{regex:/./,token:"comment"}],meta:{blockCommentStart:"{{--",blockCommentEnd:"--}}"}}),o.defineMode("handlebars",function(p,v){var C=o.getMode(p,"handlebars-tags");return!v||!v.base?C:o.multiplexingMode(o.getMode(p,v.base),{open:"{{",close:/\}\}\}?/,mode:C,parseDelimiters:!0})}),o.defineMIME("text/x-handlebars-template","handlebars")})});var cc=Ke((sc,uc)=>{(function(o){"use strict";typeof sc=="object"&&typeof uc=="object"?o(We(),Yn(),mn(),vn(),Vu(),gn(),ea(),ta(),tc(),lc()):typeof define=="function"&&define.amd?define(["../../lib/codemirror","../../addon/mode/overlay","../xml/xml","../javascript/javascript","../coffeescript/coffeescript","../css/css","../sass/sass","../stylus/stylus","../pug/pug","../handlebars/handlebars"],o):o(CodeMirror)})(function(o){var p={script:[["lang",/coffee(script)?/,"coffeescript"],["type",/^(?:text|application)\/(?:x-)?coffee(?:script)?$/,"coffeescript"],["lang",/^babel$/,"javascript"],["type",/^text\/babel$/,"javascript"],["type",/^text\/ecmascript-\d+$/,"javascript"]],style:[["lang",/^stylus$/i,"stylus"],["lang",/^sass$/i,"sass"],["lang",/^less$/i,"text/x-less"],["lang",/^scss$/i,"text/x-scss"],["type",/^(text\/)?(x-)?styl(us)?$/i,"stylus"],["type",/^text\/sass/i,"sass"],["type",/^(text\/)?(x-)?scss$/i,"text/x-scss"],["type",/^(text\/)?(x-)?less$/i,"text/x-less"]],template:[["lang",/^vue-template$/i,"vue"],["lang",/^pug$/i,"pug"],["lang",/^handlebars$/i,"handlebars"],["type",/^(text\/)?(x-)?pug$/i,"pug"],["type",/^text\/x-handlebars-template$/i,"handlebars"],[null,null,"vue-template"]]};o.defineMode("vue-template",function(v,C){var b={token:function(S){if(S.match(/^\{\{.*?\}\}/))return"meta mustache";for(;S.next()&&!S.match("{{",!1););return null}};return o.overlayMode(o.getMode(v,C.backdrop||"text/html"),b)}),o.defineMode("vue",function(v){return o.getMode(v,{name:"htmlmixed",tags:p})},"htmlmixed","xml","javascript","coffeescript","css","sass","stylus","pug","handlebars"),o.defineMIME("script/x-vue","vue"),o.defineMIME("text/x-vue","vue")})});var pc=Ke((fc,dc)=>{(function(o){typeof fc=="object"&&typeof dc=="object"?o(We()):typeof define=="function"&&define.amd?define(["../../lib/codemirror"],o):o(CodeMirror)})(function(o){"use strict";o.defineMode("yaml",function(){var p=["true","false","on","off","yes","no"],v=new RegExp("\\b(("+p.join(")|(")+"))$","i");return{token:function(C,b){var S=C.peek(),s=b.escaped;if(b.escaped=!1,S=="#"&&(C.pos==0||/\s/.test(C.string.charAt(C.pos-1))))return C.skipToEnd(),"comment";if(C.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(b.literal&&C.indentation()>b.keyCol)return C.skipToEnd(),"string";if(b.literal&&(b.literal=!1),C.sol()){if(b.keyCol=0,b.pair=!1,b.pairStart=!1,C.match("---")||C.match("..."))return"def";if(C.match(/\s*-\s+/))return"meta"}if(C.match(/^(\{|\}|\[|\])/))return S=="{"?b.inlinePairs++:S=="}"?b.inlinePairs--:S=="["?b.inlineList++:b.inlineList--,"meta";if(b.inlineList>0&&!s&&S==",")return C.next(),"meta";if(b.inlinePairs>0&&!s&&S==",")return b.keyCol=0,b.pair=!1,b.pairStart=!1,C.next(),"meta";if(b.pairStart){if(C.match(/^\s*(\||\>)\s*/))return b.literal=!0,"meta";if(C.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable-2";if(b.inlinePairs==0&&C.match(/^\s*-?[0-9\.\,]+\s?$/)||b.inlinePairs>0&&C.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(C.match(v))return"keyword"}return!b.pair&&C.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^\s,\[\]{}#&*!|>'"%@`])[^#:]*(?=:($|\s))/)?(b.pair=!0,b.keyCol=C.indentation(),"atom"):b.pair&&C.match(/^:\s*/)?(b.pairStart=!0,"meta"):(b.pairStart=!1,b.escaped=S=="\\",C.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},lineComment:"#",fold:"indent"}}),o.defineMIME("text/x-yaml","yaml"),o.defineMIME("text/yaml","yaml")})});var $d={};function qd(o){for(var p;(p=Md.exec(o))!==null;){var v=p[0];if(v.indexOf("target=")===-1){var C=v.replace(/>$/,' target="_blank">');o=o.replace(v,C)}}return o}function Id(o){for(var p=new DOMParser,v=p.parseFromString(o,"text/html"),C=v.getElementsByTagName("li"),b=0;b0){for(var d=document.createElement("i"),w=0;w=0&&(x=s.getLineHandle(d),!v(x));d--);var R=s.getTokenAt({line:d,ch:1}),M=C(R).fencedChars,H,Z,ee,re;v(s.getLineHandle(h.line))?(H="",Z=h.line):v(s.getLineHandle(h.line-1))?(H="",Z=h.line-1):(H=M+` +`,Z=h.line),v(s.getLineHandle(g.line))?(ee="",re=g.line,g.ch===0&&(re+=1)):g.ch!==0&&v(s.getLineHandle(g.line+1))?(ee="",re=g.line+1):(ee=M+` +`,re=g.line+1),g.ch===0&&(re-=1),s.operation(function(){s.replaceRange(ee,{line:re,ch:0},{line:re+(ee?0:1),ch:0}),s.replaceRange(H,{line:Z,ch:0},{line:Z+(H?0:1),ch:0})}),s.setSelection({line:Z+(H?1:0),ch:0},{line:re+(H?1:-1),ch:0}),s.focus()}else{var N=h.line;if(v(s.getLineHandle(h.line))&&(b(s,h.line+1)==="fenced"?(d=h.line,N=h.line+1):(w=h.line,N=h.line-1)),d===void 0)for(d=N;d>=0&&(x=s.getLineHandle(d),!v(x));d--);if(w===void 0)for(E=s.lineCount(),w=N;w=0;d--)if(x=s.getLineHandle(d),!x.text.match(/^\s*$/)&&b(s,d,x)!=="indented"){d+=1;break}for(E=s.lineCount(),w=h.line;w\s+/,"unordered-list":C,"ordered-list":C},T=function(E,z){var y={quote:">","unordered-list":v,"ordered-list":"%%i."};return y[E].replace("%%i",z)},x=function(E,z){var y={quote:">","unordered-list":"\\"+v,"ordered-list":"\\d+."},R=new RegExp(y[E]);return z&&R.test(z)},c=function(E,z,y){var R=C.exec(z),M=T(E,d);return R!==null?(x(E,R[2])&&(M=""),z=R[1]+M+R[3]+z.replace(b,"").replace(g[E],"$1")):y==!1&&(z=M+" "+z),z},d=1,w=s.line;w<=h.line;w++)(function(E){var z=o.getLine(E);S[p]?z=z.replace(g[p],"$1"):(p=="unordered-list"&&(z=c("ordered-list",z,!0)),z=c(p,z,!1),d+=1),o.replaceRange(z,{line:E,ch:0},{line:E,ch:99999999999999})})(w);o.focus()}}function xc(o,p,v,C){if(!(!o.codemirror||o.isPreviewActive())){var b=o.codemirror,S=Tr(b),s=S[p];if(!s){Rr(b,s,v,C);return}var h=b.getCursor("start"),g=b.getCursor("end"),T=b.getLine(h.line),x=T.slice(0,h.ch),c=T.slice(h.ch);p=="link"?x=x.replace(/(.*)[^!]\[/,"$1"):p=="image"&&(x=x.replace(/(.*)!\[$/,"$1")),c=c.replace(/]\(.*?\)/,""),b.replaceRange(x+c,{line:h.line,ch:0},{line:h.line,ch:99999999999999}),h.ch-=v[0].length,h!==g&&(g.ch-=v[0].length),b.setSelection(h,g),b.focus()}}function sa(o,p,v,C){if(!(!o.codemirror||o.isPreviewActive())){C=typeof C>"u"?v:C;var b=o.codemirror,S=Tr(b),s,h=v,g=C,T=b.getCursor("start"),x=b.getCursor("end");S[p]?(s=b.getLine(T.line),h=s.slice(0,T.ch),g=s.slice(T.ch),p=="bold"?(h=h.replace(/(\*\*|__)(?![\s\S]*(\*\*|__))/,""),g=g.replace(/(\*\*|__)/,"")):p=="italic"?(h=h.replace(/(\*|_)(?![\s\S]*(\*|_))/,""),g=g.replace(/(\*|_)/,"")):p=="strikethrough"&&(h=h.replace(/(\*\*|~~)(?![\s\S]*(\*\*|~~))/,""),g=g.replace(/(\*\*|~~)/,"")),b.replaceRange(h+g,{line:T.line,ch:0},{line:T.line,ch:99999999999999}),p=="bold"||p=="strikethrough"?(T.ch-=2,T!==x&&(x.ch-=2)):p=="italic"&&(T.ch-=1,T!==x&&(x.ch-=1))):(s=b.getSelection(),p=="bold"?(s=s.split("**").join(""),s=s.split("__").join("")):p=="italic"?(s=s.split("*").join(""),s=s.split("_").join("")):p=="strikethrough"&&(s=s.split("~~").join("")),b.replaceSelection(h+s+g),T.ch+=v.length,x.ch=T.ch+s.length),b.setSelection(T,x),b.focus()}}function Pd(o){if(!o.getWrapperElement().lastChild.classList.contains("editor-preview-active"))for(var p=o.getCursor("start"),v=o.getCursor("end"),C,b=p.line;b<=v.line;b++)C=o.getLine(b),C=C.replace(/^[ ]*([# ]+|\*|-|[> ]+|[0-9]+(.|\)))[ ]*/,""),o.replaceRange(C,{line:b,ch:0},{line:b,ch:99999999999999})}function Ii(o,p){if(Math.abs(o)<1024)return""+o+p[0];var v=0;do o/=1024,++v;while(Math.abs(o)>=1024&&v=19968?C+=v[b].length:C+=1;return C}function Te(o){o=o||{},o.parent=this;var p=!0;if(o.autoDownloadFontAwesome===!1&&(p=!1),o.autoDownloadFontAwesome!==!0)for(var v=document.styleSheets,C=0;C-1&&(p=!1);if(p){var b=document.createElement("link");b.rel="stylesheet",b.href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css",document.getElementsByTagName("head")[0].appendChild(b)}if(o.element)this.element=o.element;else if(o.element===null){console.log("EasyMDE: Error. No element was found.");return}if(o.toolbar===void 0){o.toolbar=[];for(var S in Pr)Object.prototype.hasOwnProperty.call(Pr,S)&&(S.indexOf("separator-")!=-1&&o.toolbar.push("|"),(Pr[S].default===!0||o.showIcons&&o.showIcons.constructor===Array&&o.showIcons.indexOf(S)!=-1)&&o.toolbar.push(S))}if(Object.prototype.hasOwnProperty.call(o,"previewClass")||(o.previewClass="editor-preview"),Object.prototype.hasOwnProperty.call(o,"status")||(o.status=["autosave","lines","words","cursor"],o.uploadImage&&o.status.unshift("upload-image")),o.previewRender||(o.previewRender=function(h){return this.parent.markdown(h)}),o.parsingConfig=fr({highlightFormatting:!0},o.parsingConfig||{}),o.insertTexts=fr({},jd,o.insertTexts||{}),o.promptTexts=fr({},Rd,o.promptTexts||{}),o.blockStyles=fr({},Bd,o.blockStyles||{}),o.autosave!=null&&(o.autosave.timeFormat=fr({},Hd,o.autosave.timeFormat||{})),o.iconClassMap=fr({},et,o.iconClassMap||{}),o.shortcuts=fr({},Ad,o.shortcuts||{}),o.maxHeight=o.maxHeight||void 0,o.direction=o.direction||"ltr",typeof o.maxHeight<"u"?o.minHeight=o.maxHeight:o.minHeight=o.minHeight||"300px",o.errorCallback=o.errorCallback||function(h){alert(h)},o.uploadImage=o.uploadImage||!1,o.imageMaxSize=o.imageMaxSize||2097152,o.imageAccept=o.imageAccept||"image/png, image/jpeg, image/gif, image/avif",o.imageTexts=fr({},Wd,o.imageTexts||{}),o.errorMessages=fr({},Ud,o.errorMessages||{}),o.imagePathAbsolute=o.imagePathAbsolute||!1,o.imageCSRFName=o.imageCSRFName||"csrfmiddlewaretoken",o.imageCSRFHeader=o.imageCSRFHeader||!1,o.autosave!=null&&o.autosave.unique_id!=null&&o.autosave.unique_id!=""&&(o.autosave.uniqueId=o.autosave.unique_id),o.overlayMode&&o.overlayMode.combine===void 0&&(o.overlayMode.combine=!0),this.options=o,this.render(),o.initialValue&&(!this.options.autosave||this.options.autosave.foundSavedValue!==!0)&&this.value(o.initialValue),o.uploadImage){var s=this;this.codemirror.on("dragenter",function(h,g){s.updateStatusBar("upload-image",s.options.imageTexts.sbOnDragEnter),g.stopPropagation(),g.preventDefault()}),this.codemirror.on("dragend",function(h,g){s.updateStatusBar("upload-image",s.options.imageTexts.sbInit),g.stopPropagation(),g.preventDefault()}),this.codemirror.on("dragleave",function(h,g){s.updateStatusBar("upload-image",s.options.imageTexts.sbInit),g.stopPropagation(),g.preventDefault()}),this.codemirror.on("dragover",function(h,g){s.updateStatusBar("upload-image",s.options.imageTexts.sbOnDragEnter),g.stopPropagation(),g.preventDefault()}),this.codemirror.on("drop",function(h,g){g.stopPropagation(),g.preventDefault(),o.imageUploadFunction?s.uploadImagesUsingCustomFunction(o.imageUploadFunction,g.dataTransfer.files):s.uploadImages(g.dataTransfer.files)}),this.codemirror.on("paste",function(h,g){o.imageUploadFunction?s.uploadImagesUsingCustomFunction(o.imageUploadFunction,g.clipboardData.files):s.uploadImages(g.clipboardData.files)})}}function kc(){if(typeof localStorage=="object")try{localStorage.setItem("smde_localStorage",1),localStorage.removeItem("smde_localStorage")}catch{return!1}else return!1;return!0}var mc,Md,Vn,Ad,Dd,ra,hc,et,Pr,jd,Rd,Hd,Bd,Wd,Ud,wc=Cd(()=>{mc=/Mac/.test(navigator.platform),Md=new RegExp(/()+?/g),Vn={toggleBold:Fi,toggleItalic:Ni,drawLink:Gi,toggleHeadingSmaller:Jn,toggleHeadingBigger:Ri,drawImage:Zi,toggleBlockquote:ji,toggleOrderedList:$i,toggleUnorderedList:Ui,toggleCodeBlock:Pi,togglePreview:Ji,toggleStrikethrough:Oi,toggleHeading1:Hi,toggleHeading2:Bi,toggleHeading3:Wi,toggleHeading4:na,toggleHeading5:ia,toggleHeading6:oa,cleanBlock:Ki,drawTable:Xi,drawHorizontalRule:Yi,undo:Qi,redo:Vi,toggleSideBySide:bn,toggleFullScreen:jr},Ad={toggleBold:"Cmd-B",toggleItalic:"Cmd-I",drawLink:"Cmd-K",toggleHeadingSmaller:"Cmd-H",toggleHeadingBigger:"Shift-Cmd-H",toggleHeading1:"Ctrl+Alt+1",toggleHeading2:"Ctrl+Alt+2",toggleHeading3:"Ctrl+Alt+3",toggleHeading4:"Ctrl+Alt+4",toggleHeading5:"Ctrl+Alt+5",toggleHeading6:"Ctrl+Alt+6",cleanBlock:"Cmd-E",drawImage:"Cmd-Alt-I",toggleBlockquote:"Cmd-'",toggleOrderedList:"Cmd-Alt-L",toggleUnorderedList:"Cmd-L",toggleCodeBlock:"Cmd-Alt-C",togglePreview:"Cmd-P",toggleSideBySide:"F9",toggleFullScreen:"F11"},Dd=function(o){for(var p in Vn)if(Vn[p]===o)return p;return null},ra=function(){var o=!1;return function(p){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(p)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(p.substr(0,4)))&&(o=!0)}(navigator.userAgent||navigator.vendor||window.opera),o};hc="";et={bold:"fa fa-bold",italic:"fa fa-italic",strikethrough:"fa fa-strikethrough",heading:"fa fa-header fa-heading","heading-smaller":"fa fa-header fa-heading header-smaller","heading-bigger":"fa fa-header fa-heading header-bigger","heading-1":"fa fa-header fa-heading header-1","heading-2":"fa fa-header fa-heading header-2","heading-3":"fa fa-header fa-heading header-3",code:"fa fa-code",quote:"fa fa-quote-left","ordered-list":"fa fa-list-ol","unordered-list":"fa fa-list-ul","clean-block":"fa fa-eraser",link:"fa fa-link",image:"fa fa-image","upload-image":"fa fa-image",table:"fa fa-table","horizontal-rule":"fa fa-minus",preview:"fa fa-eye","side-by-side":"fa fa-columns",fullscreen:"fa fa-arrows-alt",guide:"fa fa-question-circle",undo:"fa fa-undo",redo:"fa fa-repeat fa-redo"},Pr={bold:{name:"bold",action:Fi,className:et.bold,title:"Bold",default:!0},italic:{name:"italic",action:Ni,className:et.italic,title:"Italic",default:!0},strikethrough:{name:"strikethrough",action:Oi,className:et.strikethrough,title:"Strikethrough"},heading:{name:"heading",action:Jn,className:et.heading,title:"Heading",default:!0},"heading-smaller":{name:"heading-smaller",action:Jn,className:et["heading-smaller"],title:"Smaller Heading"},"heading-bigger":{name:"heading-bigger",action:Ri,className:et["heading-bigger"],title:"Bigger Heading"},"heading-1":{name:"heading-1",action:Hi,className:et["heading-1"],title:"Big Heading"},"heading-2":{name:"heading-2",action:Bi,className:et["heading-2"],title:"Medium Heading"},"heading-3":{name:"heading-3",action:Wi,className:et["heading-3"],title:"Small Heading"},"separator-1":{name:"separator-1"},code:{name:"code",action:Pi,className:et.code,title:"Code"},quote:{name:"quote",action:ji,className:et.quote,title:"Quote",default:!0},"unordered-list":{name:"unordered-list",action:Ui,className:et["unordered-list"],title:"Generic List",default:!0},"ordered-list":{name:"ordered-list",action:$i,className:et["ordered-list"],title:"Numbered List",default:!0},"clean-block":{name:"clean-block",action:Ki,className:et["clean-block"],title:"Clean block"},"separator-2":{name:"separator-2"},link:{name:"link",action:Gi,className:et.link,title:"Create Link",default:!0},image:{name:"image",action:Zi,className:et.image,title:"Insert Image",default:!0},"upload-image":{name:"upload-image",action:aa,className:et["upload-image"],title:"Import an image"},table:{name:"table",action:Xi,className:et.table,title:"Insert Table"},"horizontal-rule":{name:"horizontal-rule",action:Yi,className:et["horizontal-rule"],title:"Insert Horizontal Line"},"separator-3":{name:"separator-3"},preview:{name:"preview",action:Ji,className:et.preview,noDisable:!0,title:"Toggle Preview",default:!0},"side-by-side":{name:"side-by-side",action:bn,className:et["side-by-side"],noDisable:!0,noMobile:!0,title:"Toggle Side by Side",default:!0},fullscreen:{name:"fullscreen",action:jr,className:et.fullscreen,noDisable:!0,noMobile:!0,title:"Toggle Fullscreen",default:!0},"separator-4":{name:"separator-4"},guide:{name:"guide",action:"https://www.markdownguide.org/basic-syntax/",className:et.guide,noDisable:!0,title:"Markdown Guide",default:!0},"separator-5":{name:"separator-5"},undo:{name:"undo",action:Qi,className:et.undo,noDisable:!0,title:"Undo"},redo:{name:"redo",action:Vi,className:et.redo,noDisable:!0,title:"Redo"}},jd={link:["[","](#url#)"],image:["![","](#url#)"],uploadedImage:["![](#url#)",""],table:["",` + +| Column 1 | Column 2 | Column 3 | +| -------- | -------- | -------- | +| Text | Text | Text | + +`],horizontalRule:["",` + +----- + +`]},Rd={link:"URL for the link:",image:"URL of the image:"},Hd={locale:"en-US",format:{hour:"2-digit",minute:"2-digit"}},Bd={bold:"**",code:"```",italic:"*"},Wd={sbInit:"Attach files by drag and dropping or pasting from clipboard.",sbOnDragEnter:"Drop image to upload it.",sbOnDrop:"Uploading image #images_names#...",sbProgress:"Uploading #file_name#: #progress#%",sbOnUploaded:"Uploaded #image_name#",sizeUnits:" B, KB, MB"},Ud={noFileGiven:"You must select a file.",typeNotAllowed:"This image type is not allowed.",fileTooLarge:`Image #image_name# is too big (#image_size#). +Maximum file size is #image_max_size#.`,importError:"Something went wrong when uploading the image #image_name#."};Te.prototype.uploadImages=function(o,p,v){if(o.length!==0){for(var C=[],b=0;b=2){var H=M[1];if(p.imagesPreviewHandler){var Z=p.imagesPreviewHandler(M[1]);typeof Z=="string"&&(H=Z)}if(window.EMDEimagesCache[H])w(R,window.EMDEimagesCache[H]);else{var ee=document.createElement("img");ee.onload=function(){window.EMDEimagesCache[H]={naturalWidth:ee.naturalWidth,naturalHeight:ee.naturalHeight,url:H},w(R,window.EMDEimagesCache[H])},ee.src=H}}}})}this.codemirror.on("update",function(){E()}),this.gui.sideBySide=this.createSideBySide(),this._rendered=this.element,(p.autofocus===!0||o.autofocus)&&this.codemirror.focus();var z=this.codemirror;setTimeout(function(){z.refresh()}.bind(z),0)};Te.prototype.cleanup=function(){document.removeEventListener("keydown",this.documentOnKeyDown)};Te.prototype.autosave=function(){if(kc()){var o=this;if(this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==""){console.log("EasyMDE: You must set a uniqueId to use the autosave feature");return}this.options.autosave.binded!==!0&&(o.element.form!=null&&o.element.form!=null&&o.element.form.addEventListener("submit",function(){clearTimeout(o.autosaveTimeoutId),o.autosaveTimeoutId=void 0,localStorage.removeItem("smde_"+o.options.autosave.uniqueId)}),this.options.autosave.binded=!0),this.options.autosave.loaded!==!0&&(typeof localStorage.getItem("smde_"+this.options.autosave.uniqueId)=="string"&&localStorage.getItem("smde_"+this.options.autosave.uniqueId)!=""&&(this.codemirror.setValue(localStorage.getItem("smde_"+this.options.autosave.uniqueId)),this.options.autosave.foundSavedValue=!0),this.options.autosave.loaded=!0);var p=o.value();p!==""?localStorage.setItem("smde_"+this.options.autosave.uniqueId,p):localStorage.removeItem("smde_"+this.options.autosave.uniqueId);var v=document.getElementById("autosaved");if(v!=null&&v!=null&&v!=""){var C=new Date,b=new Intl.DateTimeFormat([this.options.autosave.timeFormat.locale,"en-US"],this.options.autosave.timeFormat.format).format(C),S=this.options.autosave.text==null?"Autosaved: ":this.options.autosave.text;v.innerHTML=S+b}}else console.log("EasyMDE: localStorage not available, cannot autosave")};Te.prototype.clearAutosavedValue=function(){if(kc()){if(this.options.autosave==null||this.options.autosave.uniqueId==null||this.options.autosave.uniqueId==""){console.log("EasyMDE: You must set a uniqueId to clear the autosave value");return}localStorage.removeItem("smde_"+this.options.autosave.uniqueId)}else console.log("EasyMDE: localStorage not available, cannot autosave")};Te.prototype.openBrowseFileWindow=function(o,p){var v=this,C=this.gui.toolbar.getElementsByClassName("imageInput")[0];C.click();function b(S){v.options.imageUploadFunction?v.uploadImagesUsingCustomFunction(v.options.imageUploadFunction,S.target.files):v.uploadImages(S.target.files,o,p),C.removeEventListener("change",b)}C.addEventListener("change",b)};Te.prototype.uploadImage=function(o,p,v){var C=this;p=p||function(T){yc(C,T)};function b(g){C.updateStatusBar("upload-image",g),setTimeout(function(){C.updateStatusBar("upload-image",C.options.imageTexts.sbInit)},1e4),v&&typeof v=="function"&&v(g),C.options.errorCallback(g)}function S(g){var T=C.options.imageTexts.sizeUnits.split(",");return g.replace("#image_name#",o.name).replace("#image_size#",Ii(o.size,T)).replace("#image_max_size#",Ii(C.options.imageMaxSize,T))}if(o.size>this.options.imageMaxSize){b(S(this.options.errorMessages.fileTooLarge));return}var s=new FormData;s.append("image",o),C.options.imageCSRFToken&&!C.options.imageCSRFHeader&&s.append(C.options.imageCSRFName,C.options.imageCSRFToken);var h=new XMLHttpRequest;h.upload.onprogress=function(g){if(g.lengthComputable){var T=""+Math.round(g.loaded*100/g.total);C.updateStatusBar("upload-image",C.options.imageTexts.sbProgress.replace("#file_name#",o.name).replace("#progress#",T))}},h.open("POST",this.options.imageUploadEndpoint),C.options.imageCSRFToken&&C.options.imageCSRFHeader&&h.setRequestHeader(C.options.imageCSRFName,C.options.imageCSRFToken),h.onload=function(){try{var g=JSON.parse(this.responseText)}catch{console.error("EasyMDE: The server did not return a valid json."),b(S(C.options.errorMessages.importError));return}this.status===200&&g&&!g.error&&g.data&&g.data.filePath?p((C.options.imagePathAbsolute?"":window.location.origin+"/")+g.data.filePath):g.error&&g.error in C.options.errorMessages?b(S(C.options.errorMessages[g.error])):g.error?b(S(g.error)):(console.error("EasyMDE: Received an unexpected response after uploading the image."+this.status+" ("+this.statusText+")"),b(S(C.options.errorMessages.importError)))},h.onerror=function(g){console.error("EasyMDE: An unexpected error occurred when trying to upload the image."+g.target.status+" ("+g.target.statusText+")"),b(C.options.errorMessages.importError)},h.send(s)};Te.prototype.uploadImageUsingCustomFunction=function(o,p){var v=this;function C(s){yc(v,s)}function b(s){var h=S(s);v.updateStatusBar("upload-image",h),setTimeout(function(){v.updateStatusBar("upload-image",v.options.imageTexts.sbInit)},1e4),v.options.errorCallback(h)}function S(s){var h=v.options.imageTexts.sizeUnits.split(",");return s.replace("#image_name#",p.name).replace("#image_size#",Ii(p.size,h)).replace("#image_max_size#",Ii(v.options.imageMaxSize,h))}o.apply(this,[p,C,b])};Te.prototype.setPreviewMaxHeight=function(){var o=this.codemirror,p=o.getWrapperElement(),v=p.nextSibling,C=parseInt(window.getComputedStyle(p).paddingTop),b=parseInt(window.getComputedStyle(p).borderTopWidth),S=parseInt(this.options.maxHeight),s=S+C*2+b*2,h=s.toString()+"px";v.style.height=h};Te.prototype.createSideBySide=function(){var o=this.codemirror,p=o.getWrapperElement(),v=p.nextSibling;if(!v||!v.classList.contains("editor-preview-side")){if(v=document.createElement("div"),v.className="editor-preview-side",this.options.previewClass)if(Array.isArray(this.options.previewClass))for(var C=0;C{try{let E=w[w.length-1];if(E.origin==="+input"){let z="(https://)",y=E.text[E.text.length-1];if(y.endsWith(z)&&y!=="[]"+z){let R=E.from,M=E.to,Z=E.text.length>1?0:R.ch;setTimeout(()=>{d.setSelection({line:M.line,ch:Z+y.lastIndexOf("(")+1},{line:M.line,ch:Z+y.lastIndexOf(")")})},25)}}}catch{}}),this.editor.codemirror.on("change",Alpine.debounce(()=>{this.editor&&(this.state=this.editor.value(),p&&this.$wire.call("$refresh"))},C??300)),v&&this.editor.codemirror.on("blur",()=>this.$wire.call("$refresh")),this.$watch("state",()=>{this.editor&&(this.editor.codemirror.hasFocus()||Alpine.raw(this.editor).value(this.state??""))}),h&&h(this)},destroy:function(){this.editor.cleanup(),this.editor=null},getToolbar:function(){let d=[];return x.includes("bold")&&d.push({name:"bold",action:EasyMDE.toggleBold,title:T.toolbar_buttons?.bold}),x.includes("italic")&&d.push({name:"italic",action:EasyMDE.toggleItalic,title:T.toolbar_buttons?.italic}),x.includes("strike")&&d.push({name:"strikethrough",action:EasyMDE.toggleStrikethrough,title:T.toolbar_buttons?.strike}),x.includes("link")&&d.push({name:"link",action:EasyMDE.drawLink,title:T.toolbar_buttons?.link}),["bold","italic","strike","link"].some(w=>x.includes(w))&&["heading"].some(w=>x.includes(w))&&d.push("|"),x.includes("heading")&&d.push({name:"heading",action:EasyMDE.toggleHeadingSmaller,title:T.toolbar_buttons?.heading}),["heading"].some(w=>x.includes(w))&&["blockquote","codeBlock","bulletList","orderedList"].some(w=>x.includes(w))&&d.push("|"),x.includes("blockquote")&&d.push({name:"quote",action:EasyMDE.toggleBlockquote,title:T.toolbar_buttons?.blockquote}),x.includes("codeBlock")&&d.push({name:"code",action:EasyMDE.toggleCodeBlock,title:T.toolbar_buttons?.code_block}),x.includes("bulletList")&&d.push({name:"unordered-list",action:EasyMDE.toggleUnorderedList,title:T.toolbar_buttons?.bullet_list}),x.includes("orderedList")&&d.push({name:"ordered-list",action:EasyMDE.toggleOrderedList,title:T.toolbar_buttons?.ordered_list}),["blockquote","codeBlock","bulletList","orderedList"].some(w=>x.includes(w))&&["table","attachFiles"].some(w=>x.includes(w))&&d.push("|"),x.includes("table")&&d.push({name:"table",action:EasyMDE.drawTable,title:T.toolbar_buttons?.table}),x.includes("attachFiles")&&d.push({name:"upload-image",action:EasyMDE.drawUploadedImage,title:T.toolbar_buttons?.attach_files}),["table","attachFiles"].some(w=>x.includes(w))&&["undo","redo"].some(w=>x.includes(w))&&d.push("|"),x.includes("undo")&&d.push({name:"undo",action:EasyMDE.undo,title:T.toolbar_buttons?.undo}),x.includes("redo")&&d.push({name:"redo",action:EasyMDE.redo,title:T.toolbar_buttons?.redo}),d}}}export{Kd as default}; diff --git a/ems-sense/public/js/filament/forms/components/rich-editor.js b/ems-sense/public/js/filament/forms/components/rich-editor.js new file mode 100644 index 0000000..121e40e --- /dev/null +++ b/ems-sense/public/js/filament/forms/components/rich-editor.js @@ -0,0 +1,150 @@ +var po="2.1.12",wt="[data-trix-attachment]",mi={preview:{presentation:"gallery",caption:{name:!0,size:!0}},file:{caption:{size:!0}}},W={default:{tagName:"div",parse:!1},quote:{tagName:"blockquote",nestable:!0},heading1:{tagName:"h1",terminal:!0,breakOnReturn:!0,group:!1},code:{tagName:"pre",terminal:!0,htmlAttributes:["language"],text:{plaintext:!0}},bulletList:{tagName:"ul",parse:!1},bullet:{tagName:"li",listAttribute:"bulletList",group:!1,nestable:!0,test(i){return Gi(i.parentNode)===W[this.listAttribute].tagName}},numberList:{tagName:"ol",parse:!1},number:{tagName:"li",listAttribute:"numberList",group:!1,nestable:!0,test(i){return Gi(i.parentNode)===W[this.listAttribute].tagName}},attachmentGallery:{tagName:"div",exclusive:!0,terminal:!0,parse:!1,group:!1}},Gi=i=>{var t;return i==null||(t=i.tagName)===null||t===void 0?void 0:t.toLowerCase()},$i=navigator.userAgent.match(/android\s([0-9]+.*Chrome)/i),Sn=$i&&parseInt($i[1]),xe={composesExistingText:/Android.*Chrome/.test(navigator.userAgent),recentAndroid:Sn&&Sn>12,samsungAndroid:Sn&&navigator.userAgent.match(/Android.*SM-/),forcesObjectResizing:/Trident.*rv:11/.test(navigator.userAgent),supportsInputEvents:typeof InputEvent<"u"&&["data","getTargetRanges","inputType"].every(i=>i in InputEvent.prototype)},Lr={ADD_ATTR:["language"],SAFE_FOR_XML:!1,RETURN_DOM:!0},m={attachFiles:"Attach Files",bold:"Bold",bullets:"Bullets",byte:"Byte",bytes:"Bytes",captionPlaceholder:"Add a caption\u2026",code:"Code",heading1:"Heading",indent:"Increase Level",italic:"Italic",link:"Link",numbers:"Numbers",outdent:"Decrease Level",quote:"Quote",redo:"Redo",remove:"Remove",strike:"Strikethrough",undo:"Undo",unlink:"Unlink",url:"URL",urlPlaceholder:"Enter a URL\u2026",GB:"GB",KB:"KB",MB:"MB",PB:"PB",TB:"TB"},fo=[m.bytes,m.KB,m.MB,m.GB,m.TB,m.PB],Dr={prefix:"IEC",precision:2,formatter(i){switch(i){case 0:return"0 ".concat(m.bytes);case 1:return"1 ".concat(m.byte);default:let t;this.prefix==="SI"?t=1e3:this.prefix==="IEC"&&(t=1024);let e=Math.floor(Math.log(i)/Math.log(t)),n=(i/Math.pow(t,e)).toFixed(this.precision).replace(/0*$/,"").replace(/\.$/,"");return"".concat(n," ").concat(fo[e])}}},ln="\uFEFF",bt="\xA0",Nr=function(i){for(let t in i){let e=i[t];this[t]=e}return this},pi=document.documentElement,bo=pi.matches,S=function(i){let{onElement:t,matchingSelector:e,withCallback:n,inPhase:r,preventDefault:o,times:s}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=t||pi,c=e,u=r==="capturing",d=function(C){s!=null&&--s==0&&d.destroy();let T=vt(C.target,{matchingSelector:c});T!=null&&(n?.call(T,C,T),o&&C.preventDefault())};return d.destroy=()=>l.removeEventListener(i,d,u),l.addEventListener(i,d,u),d},he=function(i){let{onElement:t,bubbles:e,cancelable:n,attributes:r}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=t??pi;e=e!==!1,n=n!==!1;let s=document.createEvent("Events");return s.initEvent(i,e,n),r!=null&&Nr.call(s,r),o.dispatchEvent(s)},Ir=function(i,t){if(i?.nodeType===1)return bo.call(i,t)},vt=function(i){let{matchingSelector:t,untilNode:e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};for(;i&&i.nodeType!==Node.ELEMENT_NODE;)i=i.parentNode;if(i!=null){if(t==null)return i;if(i.closest&&e==null)return i.closest(t);for(;i&&i!==e;){if(Ir(i,t))return i;i=i.parentNode}}},fi=i=>document.activeElement!==i&&Tt(i,document.activeElement),Tt=function(i,t){if(i&&t)for(;t;){if(t===i)return!0;t=t.parentNode}},kn=function(i){var t;if((t=i)===null||t===void 0||!t.parentNode)return;let e=0;for(i=i.previousSibling;i;)e++,i=i.previousSibling;return e},At=i=>{var t;return i==null||(t=i.parentNode)===null||t===void 0?void 0:t.removeChild(i)},je=function(i){let{onlyNodesOfType:t,usingFilter:e,expandEntityReferences:n}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(()=>{switch(t){case"element":return NodeFilter.SHOW_ELEMENT;case"text":return NodeFilter.SHOW_TEXT;case"comment":return NodeFilter.SHOW_COMMENT;default:return NodeFilter.SHOW_ALL}})();return document.createTreeWalker(i,r,e??null,n===!0)},j=i=>{var t;return i==null||(t=i.tagName)===null||t===void 0?void 0:t.toLowerCase()},p=function(i){let t,e,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};typeof i=="object"?(n=i,i=n.tagName):n={attributes:n};let r=document.createElement(i);if(n.editable!=null&&(n.attributes==null&&(n.attributes={}),n.attributes.contenteditable=n.editable),n.attributes)for(t in n.attributes)e=n.attributes[t],r.setAttribute(t,e);if(n.style)for(t in n.style)e=n.style[t],r.style[t]=e;if(n.data)for(t in n.data)e=n.data[t],r.dataset[t]=e;return n.className&&n.className.split(" ").forEach(o=>{r.classList.add(o)}),n.textContent&&(r.textContent=n.textContent),n.childNodes&&[].concat(n.childNodes).forEach(o=>{r.appendChild(o)}),r},ie,de=function(){if(ie!=null)return ie;ie=[];for(let i in W){let t=W[i];t.tagName&&ie.push(t.tagName)}return ie},Rn=i=>qt(i?.firstChild),Yi=function(i){let{strict:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{strict:!0};return t?qt(i):qt(i)||!qt(i.firstChild)&&function(e){return de().includes(j(e))&&!de().includes(j(e.firstChild))}(i)},qt=i=>vo(i)&&i?.data==="block",vo=i=>i?.nodeType===Node.COMMENT_NODE,Ht=function(i){let{name:t}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(i)return ge(i)?i.data===ln?!t||i.parentNode.dataset.trixCursorTarget===t:void 0:Ht(i.firstChild)},Lt=i=>Ir(i,wt),Or=i=>ge(i)&&i?.data==="",ge=i=>i?.nodeType===Node.TEXT_NODE,bi={level2Enabled:!0,getLevel(){return this.level2Enabled&&xe.supportsInputEvents?2:0},pickFiles(i){let t=p("input",{type:"file",multiple:!0,hidden:!0,id:this.fileInputId});t.addEventListener("change",()=>{i(t.files),At(t)}),At(document.getElementById(this.fileInputId)),document.body.appendChild(t),t.click()}},Me={removeBlankTableCells:!1,tableCellSeparator:" | ",tableRowSeparator:` +`},It={bold:{tagName:"strong",inheritable:!0,parser(i){let t=window.getComputedStyle(i);return t.fontWeight==="bold"||t.fontWeight>=600}},italic:{tagName:"em",inheritable:!0,parser:i=>window.getComputedStyle(i).fontStyle==="italic"},href:{groupTagName:"a",parser(i){let t="a:not(".concat(wt,")"),e=i.closest(t);if(e)return e.getAttribute("href")}},strike:{tagName:"del",inheritable:!0},frozen:{style:{backgroundColor:"highlight"}}},Fr={getDefaultHTML:()=>`
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
`)},Yn={interval:5e3},Ce=Object.freeze({__proto__:null,attachments:mi,blockAttributes:W,browser:xe,css:{attachment:"attachment",attachmentCaption:"attachment__caption",attachmentCaptionEditor:"attachment__caption-editor",attachmentMetadata:"attachment__metadata",attachmentMetadataContainer:"attachment__metadata-container",attachmentName:"attachment__name",attachmentProgress:"attachment__progress",attachmentSize:"attachment__size",attachmentToolbar:"attachment__toolbar",attachmentGallery:"attachment-gallery"},dompurify:Lr,fileSize:Dr,input:bi,keyNames:{8:"backspace",9:"tab",13:"return",27:"escape",37:"left",39:"right",46:"delete",68:"d",72:"h",79:"o"},lang:m,parser:Me,textAttributes:It,toolbar:Fr,undo:Yn}),R=class{static proxyMethod(t){let{name:e,toMethod:n,toProperty:r,optional:o}=Ao(t);this.prototype[e]=function(){let s,l;var c,u;return n?l=o?(c=this[n])===null||c===void 0?void 0:c.call(this):this[n]():r&&(l=this[r]),o?(s=(u=l)===null||u===void 0?void 0:u[e],s?Xi.call(s,l,arguments):void 0):(s=l[e],Xi.call(s,l,arguments))}}},Ao=function(i){let t=i.match(yo);if(!t)throw new Error("can't parse @proxyMethod expression: ".concat(i));let e={name:t[4]};return t[2]!=null?e.toMethod=t[1]:e.toProperty=t[1],t[3]!=null&&(e.optional=!0),e},{apply:Xi}=Function.prototype,yo=new RegExp("^(.+?)(\\(\\))?(\\?)?\\.(.+?)$"),Tn,wn,Ln,Ot=class extends R{static box(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return t instanceof this?t:this.fromUCS2String(t?.toString())}static fromUCS2String(t){return new this(t,Xn(t))}static fromCodepoints(t){return new this(Zn(t),t)}constructor(t,e){super(...arguments),this.ucs2String=t,this.codepoints=e,this.length=this.codepoints.length,this.ucs2Length=this.ucs2String.length}offsetToUCS2Offset(t){return Zn(this.codepoints.slice(0,Math.max(0,t))).length}offsetFromUCS2Offset(t){return Xn(this.ucs2String.slice(0,Math.max(0,t))).length}slice(){return this.constructor.fromCodepoints(this.codepoints.slice(...arguments))}charAt(t){return this.slice(t,t+1)}isEqualTo(t){return this.constructor.box(t).ucs2String===this.ucs2String}toJSON(){return this.ucs2String}getCacheKey(){return this.ucs2String}toString(){return this.ucs2String}},xo=((Tn=Array.from)===null||Tn===void 0?void 0:Tn.call(Array,"\u{1F47C}").length)===1,Co=((wn=" ".codePointAt)===null||wn===void 0?void 0:wn.call(" ",0))!=null,Eo=((Ln=String.fromCodePoint)===null||Ln===void 0?void 0:Ln.call(String,32,128124))===" \u{1F47C}",Xn,Zn;Xn=xo&&Co?i=>Array.from(i).map(t=>t.codePointAt(0)):function(i){let t=[],e=0,{length:n}=i;for(;eString.fromCodePoint(...Array.from(i||[])):function(i){return(()=>{let t=[];return Array.from(i).forEach(e=>{let n="";e>65535&&(e-=65536,n+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t.push(n+String.fromCharCode(e))}),t})().join("")};var So=0,dt=class extends R{static fromJSONString(t){return this.fromJSON(JSON.parse(t))}constructor(){super(...arguments),this.id=++So}hasSameConstructorAs(t){return this.constructor===t?.constructor}isEqualTo(t){return this===t}inspect(){let t=[],e=this.contentsForInspection()||{};for(let n in e){let r=e[n];t.push("".concat(n,"=").concat(r))}return"#<".concat(this.constructor.name,":").concat(this.id).concat(t.length?" ".concat(t.join(", ")):"",">")}contentsForInspection(){}toJSONString(){return JSON.stringify(this)}toUTF16String(){return Ot.box(this)}getCacheKey(){return this.id.toString()}},Ft=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(i.length!==t.length)return!1;for(let e=0;e1?e-1:0),r=1;r(Dn||(Dn=wo().concat(To())),Dn),L=i=>W[i],To=()=>(Nn||(Nn=Object.keys(W)),Nn),ti=i=>It[i],wo=()=>(In||(In=Object.keys(It)),In),Pr=function(i,t){Lo(i).textContent=t.replace(/%t/g,i)},Lo=function(i){let t=document.createElement("style");t.setAttribute("type","text/css"),t.setAttribute("data-tag-name",i.toLowerCase());let e=Do();return e&&t.setAttribute("nonce",e),document.head.insertBefore(t,document.head.firstChild),t},Do=function(){let i=Zi("trix-csp-nonce")||Zi("csp-nonce");if(i){let{nonce:t,content:e}=i;return t==""?e:t}},Zi=i=>document.head.querySelector("meta[name=".concat(i,"]")),Qi={"application/x-trix-feature-detection":"test"},Mr=function(i){let t=i.getData("text/plain"),e=i.getData("text/html");if(!t||!e)return t?.length;{let{body:n}=new DOMParser().parseFromString(e,"text/html");if(n.textContent===t)return!n.querySelector("*")}},Br=/Mac|^iP/.test(navigator.platform)?i=>i.metaKey:i=>i.ctrlKey,Ai=i=>setTimeout(i,1),_r=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t={};for(let e in i){let n=i[e];t[e]=n}return t},Xt=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Object.keys(i).length!==Object.keys(t).length)return!1;for(let e in i)if(i[e]!==t[e])return!1;return!0},y=function(i){if(i!=null)return Array.isArray(i)||(i=[i,i]),[tr(i[0]),tr(i[1]!=null?i[1]:i[0])]},ht=function(i){if(i==null)return;let[t,e]=y(i);return ei(t,e)},We=function(i,t){if(i==null||t==null)return;let[e,n]=y(i),[r,o]=y(t);return ei(e,r)&&ei(n,o)},tr=function(i){return typeof i=="number"?i:_r(i)},ei=function(i,t){return typeof i=="number"?i===t:Xt(i,t)},Ue=class extends R{constructor(){super(...arguments),this.update=this.update.bind(this),this.selectionManagers=[]}start(){this.started||(this.started=!0,document.addEventListener("selectionchange",this.update,!0))}stop(){if(this.started)return this.started=!1,document.removeEventListener("selectionchange",this.update,!0)}registerSelectionManager(t){if(!this.selectionManagers.includes(t))return this.selectionManagers.push(t),this.start()}unregisterSelectionManager(t){if(this.selectionManagers=this.selectionManagers.filter(e=>e!==t),this.selectionManagers.length===0)return this.stop()}notifySelectionManagersOfSelectionChange(){return this.selectionManagers.map(t=>t.selectionDidChange())}update(){this.notifySelectionManagersOfSelectionChange()}reset(){this.update()}},Pt=new Ue,jr=function(){let i=window.getSelection();if(i.rangeCount>0)return i},me=function(){var i;let t=(i=jr())===null||i===void 0?void 0:i.getRangeAt(0);if(t&&!No(t))return t},Wr=function(i){let t=window.getSelection();return t.removeAllRanges(),t.addRange(i),Pt.update()},No=i=>er(i.startContainer)||er(i.endContainer),er=i=>!Object.getPrototypeOf(i),ue=i=>i.replace(new RegExp("".concat(ln),"g"),"").replace(new RegExp("".concat(bt),"g")," "),yi=new RegExp("[^\\S".concat(bt,"]")),xi=i=>i.replace(new RegExp("".concat(yi.source),"g")," ").replace(/\ {2,}/g," "),nr=function(i,t){if(i.isEqualTo(t))return["",""];let e=On(i,t),{length:n}=e.utf16String,r;if(n){let{offset:o}=e,s=i.codepoints.slice(0,o).concat(i.codepoints.slice(o+n));r=On(t,Ot.fromCodepoints(s))}else r=On(t,i);return[e.utf16String.toString(),r.utf16String.toString()]},On=function(i,t){let e=0,n=i.length,r=t.length;for(;ee+1&&i.charAt(n-1).isEqualTo(t.charAt(r-1));)n--,r--;return{utf16String:i.slice(e,n),offset:e}},U=class extends dt{static fromCommonAttributesOfObjects(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(!t.length)return new this;let e=re(t[0]),n=e.getKeys();return t.slice(1).forEach(r=>{n=e.getKeysCommonToHash(re(r)),e=e.slice(n)}),e}static box(t){return re(t)}constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(...arguments),this.values=Be(t)}add(t,e){return this.merge(Io(t,e))}remove(t){return new U(Be(this.values,t))}get(t){return this.values[t]}has(t){return t in this.values}merge(t){return new U(Oo(this.values,Fo(t)))}slice(t){let e={};return Array.from(t).forEach(n=>{this.has(n)&&(e[n]=this.values[n])}),new U(e)}getKeys(){return Object.keys(this.values)}getKeysCommonToHash(t){return t=re(t),this.getKeys().filter(e=>this.values[e]===t.values[e])}isEqualTo(t){return Ft(this.toArray(),re(t).toArray())}isEmpty(){return this.getKeys().length===0}toArray(){if(!this.array){let t=[];for(let e in this.values){let n=this.values[e];t.push(t.push(e,n))}this.array=t.slice(0)}return this.array}toObject(){return Be(this.values)}toJSON(){return this.toObject()}contentsForInspection(){return{values:JSON.stringify(this.values)}}},Io=function(i,t){let e={};return e[i]=t,e},Oo=function(i,t){let e=Be(i);for(let n in t){let r=t[n];e[n]=r}return e},Be=function(i,t){let e={};return Object.keys(i).sort().forEach(n=>{n!==t&&(e[n]=i[n])}),e},re=function(i){return i instanceof U?i:new U(i)},Fo=function(i){return i instanceof U?i.values:i},fe=class{static groupObjects(){let t,e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],{depth:n,asTree:r}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};r&&n==null&&(n=0);let o=[];return Array.from(e).forEach(s=>{var l;if(t){var c,u,d;if((c=s.canBeGrouped)!==null&&c!==void 0&&c.call(s,n)&&(u=(d=t[t.length-1]).canBeGroupedWith)!==null&&u!==void 0&&u.call(d,s,n))return void t.push(s);o.push(new this(t,{depth:n,asTree:r})),t=null}(l=s.canBeGrouped)!==null&&l!==void 0&&l.call(s,n)?t=[s]:o.push(s)}),t&&o.push(new this(t,{depth:n,asTree:r})),o}constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],{depth:e,asTree:n}=arguments.length>1?arguments[1]:void 0;this.objects=t,n&&(this.depth=e,this.objects=this.constructor.groupObjects(this.objects,{asTree:n,depth:this.depth+1}))}getObjects(){return this.objects}getDepth(){return this.depth}getCacheKey(){let t=["objectGroup"];return Array.from(this.getObjects()).forEach(e=>{t.push(e.getCacheKey())}),t.join("/")}},ni=class extends R{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];super(...arguments),this.objects={},Array.from(t).forEach(e=>{let n=JSON.stringify(e);this.objects[n]==null&&(this.objects[n]=e)})}find(t){let e=JSON.stringify(t);return this.objects[e]}},ii=class{constructor(t){this.reset(t)}add(t){let e=ir(t);this.elements[e]=t}remove(t){let e=ir(t),n=this.elements[e];if(n)return delete this.elements[e],n}reset(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return this.elements={},Array.from(t).forEach(e=>{this.add(e)}),t}},ir=i=>i.dataset.trixStoreKey,Jt=class extends R{isPerforming(){return this.performing===!0}hasPerformed(){return this.performed===!0}hasSucceeded(){return this.performed&&this.succeeded}hasFailed(){return this.performed&&!this.succeeded}getPromise(){return this.promise||(this.promise=new Promise((t,e)=>(this.performing=!0,this.perform((n,r)=>{this.succeeded=n,this.performing=!1,this.performed=!0,this.succeeded?t(r):e(r)})))),this.promise}perform(t){return t(!1)}release(){var t,e;(t=this.promise)===null||t===void 0||(e=t.cancel)===null||e===void 0||e.call(t),this.promise=null,this.performing=null,this.performed=null,this.succeeded=null}};Jt.proxyMethod("getPromise().then"),Jt.proxyMethod("getPromise().catch");var gt=class extends R{constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(...arguments),this.object=t,this.options=e,this.childViews=[],this.rootView=this}getNodes(){return this.nodes||(this.nodes=this.createNodes()),this.nodes.map(t=>t.cloneNode(!0))}invalidate(){var t;return this.nodes=null,this.childViews=[],(t=this.parentView)===null||t===void 0?void 0:t.invalidate()}invalidateViewForObject(t){var e;return(e=this.findViewForObject(t))===null||e===void 0?void 0:e.invalidate()}findOrCreateCachedChildView(t,e,n){let r=this.getCachedViewForObject(e);return r?this.recordChildView(r):(r=this.createChildView(...arguments),this.cacheViewForObject(r,e)),r}createChildView(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};e instanceof fe&&(n.viewClass=t,t=ri);let r=new t(e,n);return this.recordChildView(r)}recordChildView(t){return t.parentView=this,t.rootView=this.rootView,this.childViews.push(t),t}getAllChildViews(){let t=[];return this.childViews.forEach(e=>{t.push(e),t=t.concat(e.getAllChildViews())}),t}findElement(){return this.findElementForObject(this.object)}findElementForObject(t){let e=t?.id;if(e)return this.rootView.element.querySelector("[data-trix-id='".concat(e,"']"))}findViewForObject(t){for(let e of this.getAllChildViews())if(e.object===t)return e}getViewCache(){return this.rootView!==this?this.rootView.getViewCache():this.isViewCachingEnabled()?(this.viewCache||(this.viewCache={}),this.viewCache):void 0}isViewCachingEnabled(){return this.shouldCacheViews!==!1}enableViewCaching(){this.shouldCacheViews=!0}disableViewCaching(){this.shouldCacheViews=!1}getCachedViewForObject(t){var e;return(e=this.getViewCache())===null||e===void 0?void 0:e[t.getCacheKey()]}cacheViewForObject(t,e){let n=this.getViewCache();n&&(n[e.getCacheKey()]=t)}garbageCollectCachedViews(){let t=this.getViewCache();if(t){let e=this.getAllChildViews().concat(this).map(n=>n.object.getCacheKey());for(let n in t)e.includes(n)||delete t[n]}}},ri=class extends gt{constructor(){super(...arguments),this.objectGroup=this.object,this.viewClass=this.options.viewClass,delete this.options.viewClass}getChildViews(){return this.childViews.length||Array.from(this.objectGroup.getObjects()).forEach(t=>{this.findOrCreateCachedChildView(this.viewClass,t,this.options)}),this.childViews}createNodes(){let t=this.createContainerElement();return this.getChildViews().forEach(e=>{Array.from(e.getNodes()).forEach(n=>{t.appendChild(n)})}),[t]}createContainerElement(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.objectGroup.getDepth();return this.getChildViews()[0].createContainerElement(t)}};var{entries:Ur,setPrototypeOf:rr,isFrozen:Po,getPrototypeOf:Mo,getOwnPropertyDescriptor:Bo}=Object,{freeze:V,seal:Y,create:Vr}=Object,{apply:oi,construct:si}=typeof Reflect<"u"&&Reflect;V||(V=function(i){return i}),Y||(Y=function(i){return i}),oi||(oi=function(i,t,e){return i.apply(t,e)}),si||(si=function(i,t){return new i(...t)});var Ne=G(Array.prototype.forEach),or=G(Array.prototype.pop),oe=G(Array.prototype.push),_e=G(String.prototype.toLowerCase),Fn=G(String.prototype.toString),sr=G(String.prototype.match),se=G(String.prototype.replace),_o=G(String.prototype.indexOf),jo=G(String.prototype.trim),X=G(Object.prototype.hasOwnProperty),_=G(RegExp.prototype.test),ae=(ar=TypeError,function(){for(var i=arguments.length,t=new Array(i),e=0;e1?e-1:0),r=1;r2&&arguments[2]!==void 0?arguments[2]:_e;rr&&rr(i,null);let n=t.length;for(;n--;){let r=t[n];if(typeof r=="string"){let o=e(r);o!==r&&(Po(t)||(t[n]=o),r=o)}i[r]=!0}return i}function Wo(i){for(let t=0;t/gm),Ho=Y(/\$\{[\w\W]*}/gm),Jo=Y(/^data-[\-\w.\u00B7-\uFFFF]+$/),Ko=Y(/^aria-[\-\w]+$/),zr=Y(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Go=Y(/^(?:\w+script|data):/i),$o=Y(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),qr=Y(/^html$/i),Yo=Y(/^[a-z][.\w]*(-[.\w]+)+$/i),dr=Object.freeze({__proto__:null,ARIA_ATTR:Ko,ATTR_WHITESPACE:$o,CUSTOM_ELEMENT:Yo,DATA_ATTR:Jo,DOCTYPE_NAME:qr,ERB_EXPR:qo,IS_ALLOWED_URI:zr,IS_SCRIPT_OR_DATA:Go,MUSTACHE_EXPR:zo,TMPLIT_EXPR:Ho}),Xo=1,Zo=3,Qo=7,ts=8,es=9,ns=function(){return typeof window>"u"?null:window},Ve=function i(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ns(),e=a=>i(a);if(e.version="3.2.3",e.removed=[],!t||!t.document||t.document.nodeType!==es)return e.isSupported=!1,e;let{document:n}=t,r=n,o=r.currentScript,{DocumentFragment:s,HTMLTemplateElement:l,Node:c,Element:u,NodeFilter:d,NamedNodeMap:C=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:T,DOMParser:H,trustedTypes:tt}=t,M=u.prototype,pt=le(M,"cloneNode"),Ct=le(M,"remove"),Zt=le(M,"nextSibling"),Qt=le(M,"childNodes"),F=le(M,"parentNode");if(typeof l=="function"){let a=n.createElement("template");a.content&&a.content.ownerDocument&&(n=a.content.ownerDocument)}let k,ot="",{implementation:Et,createNodeIterator:eo,createDocumentFragment:no,getElementsByTagName:io}=n,{importNode:ro}=r,J={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};e.isSupported=typeof Ur=="function"&&typeof F=="function"&&Et&&Et.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:un,ERB_EXPR:hn,TMPLIT_EXPR:dn,DATA_ATTR:oo,ARIA_ATTR:so,IS_SCRIPT_OR_DATA:ao,ATTR_WHITESPACE:Ei,CUSTOM_ELEMENT:lo}=dr,{IS_ALLOWED_URI:Si}=dr,N=null,ki=b({},[...lr,...Pn,...Mn,...Bn,...cr]),O=null,Ri=b({},[...ur,..._n,...hr,...Ie]),w=Object.seal(Vr(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),te=null,gn=null,Ti=!0,mn=!0,wi=!1,Li=!0,Bt=!1,pn=!0,St=!1,fn=!1,bn=!1,_t=!1,Ee=!1,Se=!1,Di=!0,Ni=!1,vn=!0,ee=!1,jt={},Wt=null,Ii=b({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Oi=null,Fi=b({},["audio","video","img","source","image","track"]),An=null,Pi=b({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ke="http://www.w3.org/1998/Math/MathML",Re="http://www.w3.org/2000/svg",st="http://www.w3.org/1999/xhtml",Ut=st,yn=!1,xn=null,co=b({},[ke,Re,st],Fn),Te=b({},["mi","mo","mn","ms","mtext"]),we=b({},["annotation-xml"]),uo=b({},["title","style","font","a","script"]),ne=null,ho=["application/xhtml+xml","text/html"],I=null,Vt=null,go=n.createElement("form"),Mi=function(a){return a instanceof RegExp||a instanceof Function},Cn=function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!Vt||Vt!==a){if(a&&typeof a=="object"||(a={}),a=Rt(a),ne=ho.indexOf(a.PARSER_MEDIA_TYPE)===-1?"text/html":a.PARSER_MEDIA_TYPE,I=ne==="application/xhtml+xml"?Fn:_e,N=X(a,"ALLOWED_TAGS")?b({},a.ALLOWED_TAGS,I):ki,O=X(a,"ALLOWED_ATTR")?b({},a.ALLOWED_ATTR,I):Ri,xn=X(a,"ALLOWED_NAMESPACES")?b({},a.ALLOWED_NAMESPACES,Fn):co,An=X(a,"ADD_URI_SAFE_ATTR")?b(Rt(Pi),a.ADD_URI_SAFE_ATTR,I):Pi,Oi=X(a,"ADD_DATA_URI_TAGS")?b(Rt(Fi),a.ADD_DATA_URI_TAGS,I):Fi,Wt=X(a,"FORBID_CONTENTS")?b({},a.FORBID_CONTENTS,I):Ii,te=X(a,"FORBID_TAGS")?b({},a.FORBID_TAGS,I):{},gn=X(a,"FORBID_ATTR")?b({},a.FORBID_ATTR,I):{},jt=!!X(a,"USE_PROFILES")&&a.USE_PROFILES,Ti=a.ALLOW_ARIA_ATTR!==!1,mn=a.ALLOW_DATA_ATTR!==!1,wi=a.ALLOW_UNKNOWN_PROTOCOLS||!1,Li=a.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Bt=a.SAFE_FOR_TEMPLATES||!1,pn=a.SAFE_FOR_XML!==!1,St=a.WHOLE_DOCUMENT||!1,_t=a.RETURN_DOM||!1,Ee=a.RETURN_DOM_FRAGMENT||!1,Se=a.RETURN_TRUSTED_TYPE||!1,bn=a.FORCE_BODY||!1,Di=a.SANITIZE_DOM!==!1,Ni=a.SANITIZE_NAMED_PROPS||!1,vn=a.KEEP_CONTENT!==!1,ee=a.IN_PLACE||!1,Si=a.ALLOWED_URI_REGEXP||zr,Ut=a.NAMESPACE||st,Te=a.MATHML_TEXT_INTEGRATION_POINTS||Te,we=a.HTML_INTEGRATION_POINTS||we,w=a.CUSTOM_ELEMENT_HANDLING||{},a.CUSTOM_ELEMENT_HANDLING&&Mi(a.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(w.tagNameCheck=a.CUSTOM_ELEMENT_HANDLING.tagNameCheck),a.CUSTOM_ELEMENT_HANDLING&&Mi(a.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(w.attributeNameCheck=a.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),a.CUSTOM_ELEMENT_HANDLING&&typeof a.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(w.allowCustomizedBuiltInElements=a.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Bt&&(mn=!1),Ee&&(_t=!0),jt&&(N=b({},cr),O=[],jt.html===!0&&(b(N,lr),b(O,ur)),jt.svg===!0&&(b(N,Pn),b(O,_n),b(O,Ie)),jt.svgFilters===!0&&(b(N,Mn),b(O,_n),b(O,Ie)),jt.mathMl===!0&&(b(N,Bn),b(O,hr),b(O,Ie))),a.ADD_TAGS&&(N===ki&&(N=Rt(N)),b(N,a.ADD_TAGS,I)),a.ADD_ATTR&&(O===Ri&&(O=Rt(O)),b(O,a.ADD_ATTR,I)),a.ADD_URI_SAFE_ATTR&&b(An,a.ADD_URI_SAFE_ATTR,I),a.FORBID_CONTENTS&&(Wt===Ii&&(Wt=Rt(Wt)),b(Wt,a.FORBID_CONTENTS,I)),vn&&(N["#text"]=!0),St&&b(N,["html","head","body"]),N.table&&(b(N,["tbody"]),delete te.tbody),a.TRUSTED_TYPES_POLICY){if(typeof a.TRUSTED_TYPES_POLICY.createHTML!="function")throw ae('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof a.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw ae('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');k=a.TRUSTED_TYPES_POLICY,ot=k.createHTML("")}else k===void 0&&(k=function(g,h){if(typeof g!="object"||typeof g.createPolicy!="function")return null;let v=null,A="data-tt-policy-suffix";h&&h.hasAttribute(A)&&(v=h.getAttribute(A));let f="dompurify"+(v?"#"+v:"");try{return g.createPolicy(f,{createHTML:D=>D,createScriptURL:D=>D})}catch{return console.warn("TrustedTypes policy "+f+" could not be created."),null}}(tt,o)),k!==null&&typeof ot=="string"&&(ot=k.createHTML(""));V&&V(a),Vt=a}},Bi=b({},[...Pn,...Mn,...Uo]),_i=b({},[...Bn,...Vo]),et=function(a){oe(e.removed,{element:a});try{F(a).removeChild(a)}catch{Ct(a)}},Le=function(a,g){try{oe(e.removed,{attribute:g.getAttributeNode(a),from:g})}catch{oe(e.removed,{attribute:null,from:g})}if(g.removeAttribute(a),a==="is")if(_t||Ee)try{et(g)}catch{}else try{g.setAttribute(a,"")}catch{}},ji=function(a){let g=null,h=null;if(bn)a=""+a;else{let f=sr(a,/^[\r\n\t ]+/);h=f&&f[0]}ne==="application/xhtml+xml"&&Ut===st&&(a=''+a+"");let v=k?k.createHTML(a):a;if(Ut===st)try{g=new H().parseFromString(v,ne)}catch{}if(!g||!g.documentElement){g=Et.createDocument(Ut,"template",null);try{g.documentElement.innerHTML=yn?ot:v}catch{}}let A=g.body||g.documentElement;return a&&h&&A.insertBefore(n.createTextNode(h),A.childNodes[0]||null),Ut===st?io.call(g,St?"html":"body")[0]:St?g.documentElement:A},Wi=function(a){return eo.call(a.ownerDocument||a,a,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT|d.SHOW_PROCESSING_INSTRUCTION|d.SHOW_CDATA_SECTION,null)},En=function(a){return a instanceof T&&(typeof a.nodeName!="string"||typeof a.textContent!="string"||typeof a.removeChild!="function"||!(a.attributes instanceof C)||typeof a.removeAttribute!="function"||typeof a.setAttribute!="function"||typeof a.namespaceURI!="string"||typeof a.insertBefore!="function"||typeof a.hasChildNodes!="function")},Ui=function(a){return typeof c=="function"&&a instanceof c};function at(a,g,h){Ne(a,v=>{v.call(e,g,h,Vt)})}let Vi=function(a){let g=null;if(at(J.beforeSanitizeElements,a,null),En(a))return et(a),!0;let h=I(a.nodeName);if(at(J.uponSanitizeElement,a,{tagName:h,allowedTags:N}),a.hasChildNodes()&&!Ui(a.firstElementChild)&&_(/<[/\w]/g,a.innerHTML)&&_(/<[/\w]/g,a.textContent)||a.nodeType===Qo||pn&&a.nodeType===ts&&_(/<[/\w]/g,a.data))return et(a),!0;if(!N[h]||te[h]){if(!te[h]&&qi(h)&&(w.tagNameCheck instanceof RegExp&&_(w.tagNameCheck,h)||w.tagNameCheck instanceof Function&&w.tagNameCheck(h)))return!1;if(vn&&!Wt[h]){let v=F(a)||a.parentNode,A=Qt(a)||a.childNodes;if(A&&v)for(let f=A.length-1;f>=0;--f){let D=pt(A[f],!0);D.__removalCount=(a.__removalCount||0)+1,v.insertBefore(D,Zt(a))}}return et(a),!0}return a instanceof u&&!function(v){let A=F(v);A&&A.tagName||(A={namespaceURI:Ut,tagName:"template"});let f=_e(v.tagName),D=_e(A.tagName);return!!xn[v.namespaceURI]&&(v.namespaceURI===Re?A.namespaceURI===st?f==="svg":A.namespaceURI===ke?f==="svg"&&(D==="annotation-xml"||Te[D]):!!Bi[f]:v.namespaceURI===ke?A.namespaceURI===st?f==="math":A.namespaceURI===Re?f==="math"&&we[D]:!!_i[f]:v.namespaceURI===st?!(A.namespaceURI===Re&&!we[D])&&!(A.namespaceURI===ke&&!Te[D])&&!_i[f]&&(uo[f]||!Bi[f]):!(ne!=="application/xhtml+xml"||!xn[v.namespaceURI]))}(a)?(et(a),!0):h!=="noscript"&&h!=="noembed"&&h!=="noframes"||!_(/<\/no(script|embed|frames)/i,a.innerHTML)?(Bt&&a.nodeType===Zo&&(g=a.textContent,Ne([un,hn,dn],v=>{g=se(g,v," ")}),a.textContent!==g&&(oe(e.removed,{element:a.cloneNode()}),a.textContent=g)),at(J.afterSanitizeElements,a,null),!1):(et(a),!0)},zi=function(a,g,h){if(Di&&(g==="id"||g==="name")&&(h in n||h in go))return!1;if(!(mn&&!gn[g]&&_(oo,g))){if(!(Ti&&_(so,g))){if(!O[g]||gn[g]){if(!(qi(a)&&(w.tagNameCheck instanceof RegExp&&_(w.tagNameCheck,a)||w.tagNameCheck instanceof Function&&w.tagNameCheck(a))&&(w.attributeNameCheck instanceof RegExp&&_(w.attributeNameCheck,g)||w.attributeNameCheck instanceof Function&&w.attributeNameCheck(g))||g==="is"&&w.allowCustomizedBuiltInElements&&(w.tagNameCheck instanceof RegExp&&_(w.tagNameCheck,h)||w.tagNameCheck instanceof Function&&w.tagNameCheck(h))))return!1}else if(!An[g]){if(!_(Si,se(h,Ei,""))){if((g!=="src"&&g!=="xlink:href"&&g!=="href"||a==="script"||_o(h,"data:")!==0||!Oi[a])&&!(wi&&!_(ao,se(h,Ei,"")))){if(h)return!1}}}}}return!0},qi=function(a){return a!=="annotation-xml"&&sr(a,lo)},Hi=function(a){at(J.beforeSanitizeAttributes,a,null);let{attributes:g}=a;if(!g||En(a))return;let h={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:O,forceKeepAttr:void 0},v=g.length;for(;v--;){let A=g[v],{name:f,namespaceURI:D,value:lt}=A,nt=I(f),B=f==="value"?lt:jo(lt);if(h.attrName=nt,h.attrValue=B,h.keepAttr=!0,h.forceKeepAttr=void 0,at(J.uponSanitizeAttribute,a,h),B=h.attrValue,!Ni||nt!=="id"&&nt!=="name"||(Le(f,a),B="user-content-"+B),pn&&_(/((--!?|])>)|<\/(style|title)/i,B)){Le(f,a);continue}if(h.forceKeepAttr||(Le(f,a),!h.keepAttr))continue;if(!Li&&_(/\/>/i,B)){Le(f,a);continue}Bt&&Ne([un,hn,dn],Ki=>{B=se(B,Ki," ")});let Ji=I(a.nodeName);if(zi(Ji,nt,B)){if(k&&typeof tt=="object"&&typeof tt.getAttributeType=="function"&&!D)switch(tt.getAttributeType(Ji,nt)){case"TrustedHTML":B=k.createHTML(B);break;case"TrustedScriptURL":B=k.createScriptURL(B)}try{D?a.setAttributeNS(D,f,B):a.setAttribute(f,B),En(a)?et(a):or(e.removed)}catch{}}}at(J.afterSanitizeAttributes,a,null)},mo=function a(g){let h=null,v=Wi(g);for(at(J.beforeSanitizeShadowDOM,g,null);h=v.nextNode();)at(J.uponSanitizeShadowNode,h,null),Vi(h),Hi(h),h.content instanceof s&&a(h.content);at(J.afterSanitizeShadowDOM,g,null)};return e.sanitize=function(a){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},h=null,v=null,A=null,f=null;if(yn=!a,yn&&(a=""),typeof a!="string"&&!Ui(a)){if(typeof a.toString!="function")throw ae("toString is not a function");if(typeof(a=a.toString())!="string")throw ae("dirty is not a string, aborting")}if(!e.isSupported)return a;if(fn||Cn(g),e.removed=[],typeof a=="string"&&(ee=!1),ee){if(a.nodeName){let nt=I(a.nodeName);if(!N[nt]||te[nt])throw ae("root node is forbidden and cannot be sanitized in-place")}}else if(a instanceof c)h=ji(""),v=h.ownerDocument.importNode(a,!0),v.nodeType===Xo&&v.nodeName==="BODY"||v.nodeName==="HTML"?h=v:h.appendChild(v);else{if(!_t&&!Bt&&!St&&a.indexOf("<")===-1)return k&&Se?k.createHTML(a):a;if(h=ji(a),!h)return _t?null:Se?ot:""}h&&bn&&et(h.firstChild);let D=Wi(ee?a:h);for(;A=D.nextNode();)Vi(A),Hi(A),A.content instanceof s&&mo(A.content);if(ee)return a;if(_t){if(Ee)for(f=no.call(h.ownerDocument);h.firstChild;)f.appendChild(h.firstChild);else f=h;return(O.shadowroot||O.shadowrootmode)&&(f=ro.call(r,f,!0)),f}let lt=St?h.outerHTML:h.innerHTML;return St&&N["!doctype"]&&h.ownerDocument&&h.ownerDocument.doctype&&h.ownerDocument.doctype.name&&_(qr,h.ownerDocument.doctype.name)&&(lt=" +`+lt),Bt&&Ne([un,hn,dn],nt=>{lt=se(lt,nt," ")}),k&&Se?k.createHTML(lt):lt},e.setConfig=function(){Cn(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),fn=!0},e.clearConfig=function(){Vt=null,fn=!1},e.isValidAttribute=function(a,g,h){Vt||Cn({});let v=I(a),A=I(g);return zi(v,A,h)},e.addHook=function(a,g){typeof g=="function"&&oe(J[a],g)},e.removeHook=function(a){return or(J[a])},e.removeHooks=function(a){J[a]=[]},e.removeAllHooks=function(){J={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},e}();Ve.addHook("uponSanitizeAttribute",function(i,t){/^data-trix-/.test(t.attrName)&&(t.forceKeepAttr=!0)});var is="style href src width height language class".split(" "),rs="javascript:".split(" "),os="script iframe form noscript".split(" "),Kt=class extends R{static setHTML(t,e){let n=new this(e).sanitize(),r=n.getHTML?n.getHTML():n.outerHTML;t.innerHTML=r}static sanitize(t,e){let n=new this(t,e);return n.sanitize(),n}constructor(t){let{allowedAttributes:e,forbiddenProtocols:n,forbiddenElements:r}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(...arguments),this.allowedAttributes=e||is,this.forbiddenProtocols=n||rs,this.forbiddenElements=r||os,this.body=ss(t)}sanitize(){return this.sanitizeElements(),this.normalizeListElementNesting(),Ve.setConfig(Lr),this.body=Ve.sanitize(this.body),this.body}getHTML(){return this.body.innerHTML}getBody(){return this.body}sanitizeElements(){let t=je(this.body),e=[];for(;t.nextNode();){let n=t.currentNode;switch(n.nodeType){case Node.ELEMENT_NODE:this.elementIsRemovable(n)?e.push(n):this.sanitizeElement(n);break;case Node.COMMENT_NODE:e.push(n)}}return e.forEach(n=>At(n)),this.body}sanitizeElement(t){return t.hasAttribute("href")&&this.forbiddenProtocols.includes(t.protocol)&&t.removeAttribute("href"),Array.from(t.attributes).forEach(e=>{let{name:n}=e;this.allowedAttributes.includes(n)||n.indexOf("data-trix")===0||t.removeAttribute(n)}),t}normalizeListElementNesting(){return Array.from(this.body.querySelectorAll("ul,ol")).forEach(t=>{let e=t.previousElementSibling;e&&j(e)==="li"&&e.appendChild(t)}),this.body}elementIsRemovable(t){if(t?.nodeType===Node.ELEMENT_NODE)return this.elementIsForbidden(t)||this.elementIsntSerializable(t)}elementIsForbidden(t){return this.forbiddenElements.includes(j(t))}elementIsntSerializable(t){return t.getAttribute("data-trix-serialize")==="false"&&!Lt(t)}},ss=function(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";i=i.replace(/<\/html[^>]*>[^]*$/i,"");let t=document.implementation.createHTMLDocument("");return t.documentElement.innerHTML=i,Array.from(t.head.querySelectorAll("style")).forEach(e=>{t.body.appendChild(e)}),t.body},{css:ft}=Ce,be=class extends gt{constructor(){super(...arguments),this.attachment=this.object,this.attachment.uploadProgressDelegate=this,this.attachmentPiece=this.options.piece}createContentNodes(){return[]}createNodes(){let t,e=t=p({tagName:"figure",className:this.getClassName(),data:this.getData(),editable:!1}),n=this.getHref();return n&&(t=p({tagName:"a",editable:!1,attributes:{href:n,tabindex:-1}}),e.appendChild(t)),this.attachment.hasContent()?Kt.setHTML(t,this.attachment.getContent()):this.createContentNodes().forEach(r=>{t.appendChild(r)}),t.appendChild(this.createCaptionElement()),this.attachment.isPending()&&(this.progressElement=p({tagName:"progress",attributes:{class:ft.attachmentProgress,value:this.attachment.getUploadProgress(),max:100},data:{trixMutable:!0,trixStoreKey:["progressElement",this.attachment.id].join("/")}}),e.appendChild(this.progressElement)),[gr("left"),e,gr("right")]}createCaptionElement(){let t=p({tagName:"figcaption",className:ft.attachmentCaption}),e=this.attachmentPiece.getCaption();if(e)t.classList.add("".concat(ft.attachmentCaption,"--edited")),t.textContent=e;else{let n,r,o=this.getCaptionConfig();if(o.name&&(n=this.attachment.getFilename()),o.size&&(r=this.attachment.getFormattedFilesize()),n){let s=p({tagName:"span",className:ft.attachmentName,textContent:n});t.appendChild(s)}if(r){n&&t.appendChild(document.createTextNode(" "));let s=p({tagName:"span",className:ft.attachmentSize,textContent:r});t.appendChild(s)}}return t}getClassName(){let t=[ft.attachment,"".concat(ft.attachment,"--").concat(this.attachment.getType())],e=this.attachment.getExtension();return e&&t.push("".concat(ft.attachment,"--").concat(e)),t.join(" ")}getData(){let t={trixAttachment:JSON.stringify(this.attachment),trixContentType:this.attachment.getContentType(),trixId:this.attachment.id},{attributes:e}=this.attachmentPiece;return e.isEmpty()||(t.trixAttributes=JSON.stringify(e)),this.attachment.isPending()&&(t.trixSerialize=!1),t}getHref(){if(!as(this.attachment.getContent(),"a"))return this.attachment.getHref()}getCaptionConfig(){var t;let e=this.attachment.getType(),n=_r((t=mi[e])===null||t===void 0?void 0:t.caption);return e==="file"&&(n.name=!0),n}findProgressElement(){var t;return(t=this.findElement())===null||t===void 0?void 0:t.querySelector("progress")}attachmentDidChangeUploadProgress(){let t=this.attachment.getUploadProgress(),e=this.findProgressElement();e&&(e.value=t)}},gr=i=>p({tagName:"span",textContent:ln,data:{trixCursorTarget:i,trixSerialize:!1}}),as=function(i,t){let e=p("div");return Kt.setHTML(e,i||""),e.querySelector(t)},ze=class extends be{constructor(){super(...arguments),this.attachment.previewDelegate=this}createContentNodes(){return this.image=p({tagName:"img",attributes:{src:""},data:{trixMutable:!0}}),this.refresh(this.image),[this.image]}createCaptionElement(){let t=super.createCaptionElement(...arguments);return t.textContent||t.setAttribute("data-trix-placeholder",m.captionPlaceholder),t}refresh(t){var e;if(t||(t=(e=this.findElement())===null||e===void 0?void 0:e.querySelector("img")),t)return this.updateAttributesForImage(t)}updateAttributesForImage(t){let e=this.attachment.getURL(),n=this.attachment.getPreviewURL();if(t.src=n||e,n===e)t.removeAttribute("data-trix-serialized-attributes");else{let l=JSON.stringify({src:e});t.setAttribute("data-trix-serialized-attributes",l)}let r=this.attachment.getWidth(),o=this.attachment.getHeight();r!=null&&(t.width=r),o!=null&&(t.height=o);let s=["imageElement",this.attachment.id,t.src,t.width,t.height].join("/");t.dataset.trixStoreKey=s}attachmentDidChangeAttributes(){return this.refresh(this.image),this.refresh()}},qe=class extends gt{constructor(){super(...arguments),this.piece=this.object,this.attributes=this.piece.getAttributes(),this.textConfig=this.options.textConfig,this.context=this.options.context,this.piece.attachment?this.attachment=this.piece.attachment:this.string=this.piece.toString()}createNodes(){let t=this.attachment?this.createAttachmentNodes():this.createStringNodes(),e=this.createElement();if(e){let n=function(r){for(;(o=r)!==null&&o!==void 0&&o.firstElementChild;){var o;r=r.firstElementChild}return r}(e);Array.from(t).forEach(r=>{n.appendChild(r)}),t=[e]}return t}createAttachmentNodes(){let t=this.attachment.isPreviewable()?ze:be;return this.createChildView(t,this.piece.attachment,{piece:this.piece}).getNodes()}createStringNodes(){var t;if((t=this.textConfig)!==null&&t!==void 0&&t.plaintext)return[document.createTextNode(this.string)];{let e=[],n=this.string.split(` +`);for(let r=0;r0){let s=p("br");e.push(s)}if(o.length){let s=document.createTextNode(this.preserveSpaces(o));e.push(s)}}return e}}createElement(){let t,e,n,r={};for(e in this.attributes){n=this.attributes[e];let s=ti(e);if(s){if(s.tagName){var o;let l=p(s.tagName);o?(o.appendChild(l),o=l):t=o=l}if(s.styleProperty&&(r[s.styleProperty]=n),s.style)for(e in s.style)n=s.style[e],r[e]=n}}if(Object.keys(r).length)for(e in t||(t=p("span")),r)n=r[e],t.style[e]=n;return t}createContainerElement(){for(let t in this.attributes){let e=this.attributes[t],n=ti(t);if(n&&n.groupTagName){let r={};return r[t]=e,p(n.groupTagName,r)}}}preserveSpaces(t){return this.context.isLast&&(t=t.replace(/\ $/,bt)),t=t.replace(/(\S)\ {3}(\S)/g,"$1 ".concat(bt," $2")).replace(/\ {2}/g,"".concat(bt," ")).replace(/\ {2}/g," ".concat(bt)),(this.context.isFirst||this.context.followsWhitespace)&&(t=t.replace(/^\ /,bt)),t}},He=class extends gt{constructor(){super(...arguments),this.text=this.object,this.textConfig=this.options.textConfig}createNodes(){let t=[],e=fe.groupObjects(this.getPieces()),n=e.length-1;for(let o=0;o!t.hasAttribute("blockBreak"))}},ls=i=>/\s$/.test(i?.toString()),{css:mr}=Ce,Je=class extends gt{constructor(){super(...arguments),this.block=this.object,this.attributes=this.block.getAttributes()}createNodes(){let t=[document.createComment("block")];if(this.block.isEmpty())t.push(p("br"));else{var e;let n=(e=L(this.block.getLastAttribute()))===null||e===void 0?void 0:e.text,r=this.findOrCreateCachedChildView(He,this.block.text,{textConfig:n});t.push(...Array.from(r.getNodes()||[])),this.shouldAddExtraNewlineElement()&&t.push(p("br"))}if(this.attributes.length)return t;{let n,{tagName:r}=W.default;this.block.isRTL()&&(n={dir:"rtl"});let o=p({tagName:r,attributes:n});return t.forEach(s=>o.appendChild(s)),[o]}}createContainerElement(t){let e={},n,r=this.attributes[t],{tagName:o,htmlAttributes:s=[]}=L(r);if(t===0&&this.block.isRTL()&&Object.assign(e,{dir:"rtl"}),r==="attachmentGallery"){let l=this.block.getBlockBreakPosition();n="".concat(mr.attachmentGallery," ").concat(mr.attachmentGallery,"--").concat(l)}return Object.entries(this.block.htmlAttributes).forEach(l=>{let[c,u]=l;s.includes(c)&&(e[c]=u)}),p({tagName:o,className:n,attributes:e})}shouldAddExtraNewlineElement(){return/\n\n$/.test(this.block.toString())}},Gt=class extends gt{static render(t){let e=p("div"),n=new this(t,{element:e});return n.render(),n.sync(),e}constructor(){super(...arguments),this.element=this.options.element,this.elementStore=new ii,this.setDocument(this.object)}setDocument(t){t.isEqualTo(this.document)||(this.document=this.object=t)}render(){if(this.childViews=[],this.shadowElement=p("div"),!this.document.isEmpty()){let t=fe.groupObjects(this.document.getBlocks(),{asTree:!0});Array.from(t).forEach(e=>{let n=this.findOrCreateCachedChildView(Je,e);Array.from(n.getNodes()).map(r=>this.shadowElement.appendChild(r))})}}isSynced(){return cs(this.shadowElement,this.element)}sync(){let t=this.createDocumentFragmentForSync();for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild);return this.element.appendChild(t),this.didSync()}didSync(){return this.elementStore.reset(pr(this.element)),Ai(()=>this.garbageCollectCachedViews())}createDocumentFragmentForSync(){let t=document.createDocumentFragment();return Array.from(this.shadowElement.childNodes).forEach(e=>{t.appendChild(e.cloneNode(!0))}),Array.from(pr(t)).forEach(e=>{let n=this.elementStore.remove(e);n&&e.parentNode.replaceChild(n,e)}),t}},pr=i=>i.querySelectorAll("[data-trix-store-key]"),cs=(i,t)=>fr(i.innerHTML)===fr(t.innerHTML),fr=i=>i.replace(/ /g," ");function Oe(i){var t,e;function n(o,s){try{var l=i[o](s),c=l.value,u=c instanceof us;Promise.resolve(u?c.v:c).then(function(d){if(u){var C=o==="return"?"return":"next";if(!c.k||d.done)return n(C,d);d=i[C](d).value}r(l.done?"return":"normal",d)},function(d){n("throw",d)})}catch(d){r("throw",d)}}function r(o,s){switch(o){case"return":t.resolve({value:s,done:!0});break;case"throw":t.reject(s);break;default:t.resolve({value:s,done:!1})}(t=t.next)?n(t.key,t.arg):e=null}this._invoke=function(o,s){return new Promise(function(l,c){var u={key:o,arg:s,resolve:l,reject:c,next:null};e?e=e.next=u:(t=e=u,n(o,s))})},typeof i.return!="function"&&(this.return=void 0)}function us(i,t){this.v=i,this.k=t}function q(i,t,e){return(t=hs(t))in i?Object.defineProperty(i,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):i[t]=e,i}function hs(i){var t=function(e,n){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,n||"default");if(typeof o!="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}(i,"string");return typeof t=="symbol"?t:String(t)}Oe.prototype[typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Oe.prototype.next=function(i){return this._invoke("next",i)},Oe.prototype.throw=function(i){return this._invoke("throw",i)},Oe.prototype.return=function(i){return this._invoke("return",i)};function x(i,t){return ds(i,Hr(i,t,"get"))}function Ci(i,t,e){return gs(i,Hr(i,t,"set"),e),e}function Hr(i,t,e){if(!t.has(i))throw new TypeError("attempted to "+e+" private field on non-instance");return t.get(i)}function ds(i,t){return t.get?t.get.call(i):t.value}function gs(i,t,e){if(t.set)t.set.call(i,e);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=e}}function Fe(i,t,e){if(!t.has(i))throw new TypeError("attempted to get private field on non-instance");return e}function Jr(i,t){if(t.has(i))throw new TypeError("Cannot initialize the same private elements twice on an object")}function pe(i,t,e){Jr(i,t),t.set(i,e)}var mt=class extends dt{static registerType(t,e){e.type=t,this.types[t]=e}static fromJSON(t){let e=this.types[t.type];if(e)return e.fromJSON(t)}constructor(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(...arguments),this.attributes=U.box(e)}copyWithAttributes(t){return new this.constructor(this.getValue(),t)}copyWithAdditionalAttributes(t){return this.copyWithAttributes(this.attributes.merge(t))}copyWithoutAttribute(t){return this.copyWithAttributes(this.attributes.remove(t))}copy(){return this.copyWithAttributes(this.attributes)}getAttribute(t){return this.attributes.get(t)}getAttributesHash(){return this.attributes}getAttributes(){return this.attributes.toObject()}hasAttribute(t){return this.attributes.has(t)}hasSameStringValueAsPiece(t){return t&&this.toString()===t.toString()}hasSameAttributesAsPiece(t){return t&&(this.attributes===t.attributes||this.attributes.isEqualTo(t.attributes))}isBlockBreak(){return!1}isEqualTo(t){return super.isEqualTo(...arguments)||this.hasSameConstructorAs(t)&&this.hasSameStringValueAsPiece(t)&&this.hasSameAttributesAsPiece(t)}isEmpty(){return this.length===0}isSerializable(){return!0}toJSON(){return{type:this.constructor.type,attributes:this.getAttributes()}}contentsForInspection(){return{type:this.constructor.type,attributes:this.attributes.inspect()}}canBeGrouped(){return this.hasAttribute("href")}canBeGroupedWith(t){return this.getAttribute("href")===t.getAttribute("href")}getLength(){return this.length}canBeConsolidatedWith(t){return!1}};q(mt,"types",{});var Ke=class extends Jt{constructor(t){super(...arguments),this.url=t}perform(t){let e=new Image;e.onload=()=>(e.width=this.width=e.naturalWidth,e.height=this.height=e.naturalHeight,t(!0,e)),e.onerror=()=>t(!1),e.src=this.url}},yt=class extends dt{static attachmentForFile(t){let e=new this(this.attributesForFile(t));return e.setFile(t),e}static attributesForFile(t){return new U({filename:t.name,filesize:t.size,contentType:t.type})}static fromJSON(t){return new this(t)}constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(t),this.releaseFile=this.releaseFile.bind(this),this.attributes=U.box(t),this.didChangeAttributes()}getAttribute(t){return this.attributes.get(t)}hasAttribute(t){return this.attributes.has(t)}getAttributes(){return this.attributes.toObject()}setAttributes(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=this.attributes.merge(t);var n,r,o,s;if(!this.attributes.isEqualTo(e))return this.attributes=e,this.didChangeAttributes(),(n=this.previewDelegate)===null||n===void 0||(r=n.attachmentDidChangeAttributes)===null||r===void 0||r.call(n,this),(o=this.delegate)===null||o===void 0||(s=o.attachmentDidChangeAttributes)===null||s===void 0?void 0:s.call(o,this)}didChangeAttributes(){if(this.isPreviewable())return this.preloadURL()}isPending(){return this.file!=null&&!(this.getURL()||this.getHref())}isPreviewable(){return this.attributes.has("previewable")?this.attributes.get("previewable"):yt.previewablePattern.test(this.getContentType())}getType(){return this.hasContent()?"content":this.isPreviewable()?"preview":"file"}getURL(){return this.attributes.get("url")}getHref(){return this.attributes.get("href")}getFilename(){return this.attributes.get("filename")||""}getFilesize(){return this.attributes.get("filesize")}getFormattedFilesize(){let t=this.attributes.get("filesize");return typeof t=="number"?Dr.formatter(t):""}getExtension(){var t;return(t=this.getFilename().match(/\.(\w+)$/))===null||t===void 0?void 0:t[1].toLowerCase()}getContentType(){return this.attributes.get("contentType")}hasContent(){return this.attributes.has("content")}getContent(){return this.attributes.get("content")}getWidth(){return this.attributes.get("width")}getHeight(){return this.attributes.get("height")}getFile(){return this.file}setFile(t){if(this.file=t,this.isPreviewable())return this.preloadFile()}releaseFile(){this.releasePreloadedFile(),this.file=null}getUploadProgress(){return this.uploadProgress!=null?this.uploadProgress:0}setUploadProgress(t){var e,n;if(this.uploadProgress!==t)return this.uploadProgress=t,(e=this.uploadProgressDelegate)===null||e===void 0||(n=e.attachmentDidChangeUploadProgress)===null||n===void 0?void 0:n.call(e,this)}toJSON(){return this.getAttributes()}getCacheKey(){return[super.getCacheKey(...arguments),this.attributes.getCacheKey(),this.getPreviewURL()].join("/")}getPreviewURL(){return this.previewURL||this.preloadingURL}setPreviewURL(t){var e,n,r,o;if(t!==this.getPreviewURL())return this.previewURL=t,(e=this.previewDelegate)===null||e===void 0||(n=e.attachmentDidChangeAttributes)===null||n===void 0||n.call(e,this),(r=this.delegate)===null||r===void 0||(o=r.attachmentDidChangePreviewURL)===null||o===void 0?void 0:o.call(r,this)}preloadURL(){return this.preload(this.getURL(),this.releaseFile)}preloadFile(){if(this.file)return this.fileObjectURL=URL.createObjectURL(this.file),this.preload(this.fileObjectURL)}releasePreloadedFile(){this.fileObjectURL&&(URL.revokeObjectURL(this.fileObjectURL),this.fileObjectURL=null)}preload(t,e){if(t&&t!==this.getPreviewURL())return this.preloadingURL=t,new Ke(t).then(n=>{let{width:r,height:o}=n;return this.getWidth()&&this.getHeight()||this.setAttributes({width:r,height:o}),this.preloadingURL=null,this.setPreviewURL(t),e?.()}).catch(()=>(this.preloadingURL=null,e?.()))}};q(yt,"previewablePattern",/^image(\/(gif|png|webp|jpe?g)|$)/);var xt=class extends mt{static fromJSON(t){return new this(yt.fromJSON(t.attachment),t.attributes)}constructor(t){super(...arguments),this.attachment=t,this.length=1,this.ensureAttachmentExclusivelyHasAttribute("href"),this.attachment.hasContent()||this.removeProhibitedAttributes()}ensureAttachmentExclusivelyHasAttribute(t){this.hasAttribute(t)&&(this.attachment.hasAttribute(t)||this.attachment.setAttributes(this.attributes.slice([t])),this.attributes=this.attributes.remove(t))}removeProhibitedAttributes(){let t=this.attributes.slice(xt.permittedAttributes);t.isEqualTo(this.attributes)||(this.attributes=t)}getValue(){return this.attachment}isSerializable(){return!this.attachment.isPending()}getCaption(){return this.attributes.get("caption")||""}isEqualTo(t){var e;return super.isEqualTo(t)&&this.attachment.id===(t==null||(e=t.attachment)===null||e===void 0?void 0:e.id)}toString(){return"\uFFFC"}toJSON(){let t=super.toJSON(...arguments);return t.attachment=this.attachment,t}getCacheKey(){return[super.getCacheKey(...arguments),this.attachment.getCacheKey()].join("/")}toConsole(){return JSON.stringify(this.toString())}};q(xt,"permittedAttributes",["caption","presentation"]),mt.registerType("attachment",xt);var ve=class extends mt{static fromJSON(t){return new this(t.string,t.attributes)}constructor(t){super(...arguments),this.string=(e=>e.replace(/\r\n?/g,` +`))(t),this.length=this.string.length}getValue(){return this.string}toString(){return this.string.toString()}isBlockBreak(){return this.toString()===` +`&&this.getAttribute("blockBreak")===!0}toJSON(){let t=super.toJSON(...arguments);return t.string=this.string,t}canBeConsolidatedWith(t){return t&&this.hasSameConstructorAs(t)&&this.hasSameAttributesAsPiece(t)}consolidateWith(t){return new this.constructor(this.toString()+t.toString(),this.attributes)}splitAtOffset(t){let e,n;return t===0?(e=null,n=this):t===this.length?(e=this,n=null):(e=new this.constructor(this.string.slice(0,t),this.attributes),n=new this.constructor(this.string.slice(t),this.attributes)),[e,n]}toConsole(){let{string:t}=this;return t.length>15&&(t=t.slice(0,14)+"\u2026"),JSON.stringify(t.toString())}};mt.registerType("string",ve);var $t=class extends dt{static box(t){return t instanceof this?t:new this(t)}constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];super(...arguments),this.objects=t.slice(0),this.length=this.objects.length}indexOf(t){return this.objects.indexOf(t)}splice(){for(var t=arguments.length,e=new Array(t),n=0;nt(e,n))}insertObjectAtIndex(t,e){return this.splice(e,0,t)}insertSplittableListAtIndex(t,e){return this.splice(e,0,...t.objects)}insertSplittableListAtPosition(t,e){let[n,r]=this.splitObjectAtPosition(e);return new this.constructor(n).insertSplittableListAtIndex(t,r)}editObjectAtIndex(t,e){return this.replaceObjectAtIndex(e(this.objects[t]),t)}replaceObjectAtIndex(t,e){return this.splice(e,1,t)}removeObjectAtIndex(t){return this.splice(t,1)}getObjectAtIndex(t){return this.objects[t]}getSplittableListInRange(t){let[e,n,r]=this.splitObjectsAtRange(t);return new this.constructor(e.slice(n,r+1))}selectSplittableList(t){let e=this.objects.filter(n=>t(n));return new this.constructor(e)}removeObjectsInRange(t){let[e,n,r]=this.splitObjectsAtRange(t);return new this.constructor(e).splice(n,r-n+1)}transformObjectsInRange(t,e){let[n,r,o]=this.splitObjectsAtRange(t),s=n.map((l,c)=>r<=c&&c<=o?e(l):l);return new this.constructor(s)}splitObjectsAtRange(t){let e,[n,r,o]=this.splitObjectAtPosition(ps(t));return[n,e]=new this.constructor(n).splitObjectAtPosition(fs(t)+o),[n,r,e-1]}getObjectAtPosition(t){let{index:e}=this.findIndexAndOffsetAtPosition(t);return this.objects[e]}splitObjectAtPosition(t){let e,n,{index:r,offset:o}=this.findIndexAndOffsetAtPosition(t),s=this.objects.slice(0);if(r!=null)if(o===0)e=r,n=0;else{let l=this.getObjectAtIndex(r),[c,u]=l.splitAtOffset(o);s.splice(r,1,c,u),e=r+1,n=c.getLength()-o}else e=s.length,n=0;return[s,e,n]}consolidate(){let t=[],e=this.objects[0];return this.objects.slice(1).forEach(n=>{var r,o;(r=(o=e).canBeConsolidatedWith)!==null&&r!==void 0&&r.call(o,n)?e=e.consolidateWith(n):(t.push(e),e=n)}),e&&t.push(e),new this.constructor(t)}consolidateFromIndexToIndex(t,e){let n=this.objects.slice(0).slice(t,e+1),r=new this.constructor(n).consolidate().toArray();return this.splice(t,n.length,...r)}findIndexAndOffsetAtPosition(t){let e,n=0;for(e=0;ethis.endPosition+=t.getLength())),this.endPosition}toString(){return this.objects.join("")}toArray(){return this.objects.slice(0)}toJSON(){return this.toArray()}isEqualTo(t){return super.isEqualTo(...arguments)||ms(this.objects,t?.objects)}contentsForInspection(){return{objects:"[".concat(this.objects.map(t=>t.inspect()).join(", "),"]")}}},ms=function(i){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(i.length!==t.length)return!1;let e=!0;for(let n=0;ni[0],fs=i=>i[1],K=class extends dt{static textForAttachmentWithAttributes(t,e){return new this([new xt(t,e)])}static textForStringWithAttributes(t,e){return new this([new ve(t,e)])}static fromJSON(t){return new this(Array.from(t).map(e=>mt.fromJSON(e)))}constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];super(...arguments);let e=t.filter(n=>!n.isEmpty());this.pieceList=new $t(e)}copy(){return this.copyWithPieceList(this.pieceList)}copyWithPieceList(t){return new this.constructor(t.consolidate().toArray())}copyUsingObjectMap(t){let e=this.getPieces().map(n=>t.find(n)||n);return new this.constructor(e)}appendText(t){return this.insertTextAtPosition(t,this.getLength())}insertTextAtPosition(t,e){return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList,e))}removeTextAtRange(t){return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t))}replaceTextAtRange(t,e){return this.removeTextAtRange(e).insertTextAtPosition(t,e[0])}moveTextFromRangeToPosition(t,e){if(t[0]<=e&&e<=t[1])return;let n=this.getTextAtRange(t),r=n.getLength();return t[0]n.copyWithAdditionalAttributes(t)))}removeAttributeAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,n=>n.copyWithoutAttribute(t)))}setAttributesAtRange(t,e){return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e,n=>n.copyWithAttributes(t)))}getAttributesAtPosition(t){var e;return((e=this.pieceList.getObjectAtPosition(t))===null||e===void 0?void 0:e.getAttributes())||{}}getCommonAttributes(){let t=Array.from(this.pieceList.toArray()).map(e=>e.getAttributes());return U.fromCommonAttributesOfObjects(t).toObject()}getCommonAttributesAtRange(t){return this.getTextAtRange(t).getCommonAttributes()||{}}getExpandedRangeForAttributeAtOffset(t,e){let n,r=n=e,o=this.getLength();for(;r>0&&this.getCommonAttributesAtRange([r-1,n])[t];)r--;for(;n!!t.attachment)}getAttachments(){return this.getAttachmentPieces().map(t=>t.attachment)}getAttachmentAndPositionById(t){let e=0;for(let r of this.pieceList.toArray()){var n;if(((n=r.attachment)===null||n===void 0?void 0:n.id)===t)return{attachment:r.attachment,position:e};e+=r.length}return{attachment:null,position:null}}getAttachmentById(t){let{attachment:e}=this.getAttachmentAndPositionById(t);return e}getRangeOfAttachment(t){let e=this.getAttachmentAndPositionById(t.id),n=e.position;if(t=e.attachment)return[n,n+1]}updateAttributesForAttachment(t,e){let n=this.getRangeOfAttachment(e);return n?this.addAttributesAtRange(t,n):this}getLength(){return this.pieceList.getEndPosition()}isEmpty(){return this.getLength()===0}isEqualTo(t){var e;return super.isEqualTo(t)||(t==null||(e=t.pieceList)===null||e===void 0?void 0:e.isEqualTo(this.pieceList))}isBlockBreak(){return this.getLength()===1&&this.pieceList.getObjectAtIndex(0).isBlockBreak()}eachPiece(t){return this.pieceList.eachObject(t)}getPieces(){return this.pieceList.toArray()}getPieceAtPosition(t){return this.pieceList.getObjectAtPosition(t)}contentsForInspection(){return{pieceList:this.pieceList.inspect()}}toSerializableText(){let t=this.pieceList.selectSplittableList(e=>e.isSerializable());return this.copyWithPieceList(t)}toString(){return this.pieceList.toString()}toJSON(){return this.pieceList.toJSON()}toConsole(){return JSON.stringify(this.pieceList.toArray().map(t=>JSON.parse(t.toConsole())))}getDirection(){return Ro(this.toString())}isRTL(){return this.getDirection()==="rtl"}},$=class extends dt{static fromJSON(t){return new this(K.fromJSON(t.text),t.attributes,t.htmlAttributes)}constructor(t,e,n){super(...arguments),this.text=bs(t||new K),this.attributes=e||[],this.htmlAttributes=n||{}}isEmpty(){return this.text.isBlockBreak()}isEqualTo(t){return!!super.isEqualTo(t)||this.text.isEqualTo(t?.text)&&Ft(this.attributes,t?.attributes)&&Xt(this.htmlAttributes,t?.htmlAttributes)}copyWithText(t){return new $(t,this.attributes,this.htmlAttributes)}copyWithoutText(){return this.copyWithText(null)}copyWithAttributes(t){return new $(this.text,t,this.htmlAttributes)}copyWithoutAttributes(){return this.copyWithAttributes(null)}copyUsingObjectMap(t){let e=t.find(this.text);return e?this.copyWithText(e):this.copyWithText(this.text.copyUsingObjectMap(t))}addAttribute(t){let e=this.attributes.concat(br(t));return this.copyWithAttributes(e)}addHTMLAttribute(t,e){let n=Object.assign({},this.htmlAttributes,{[t]:e});return new $(this.text,this.attributes,n)}removeAttribute(t){let{listAttribute:e}=L(t),n=Ar(Ar(this.attributes,t),e);return this.copyWithAttributes(n)}removeLastAttribute(){return this.removeAttribute(this.getLastAttribute())}getLastAttribute(){return vr(this.attributes)}getAttributes(){return this.attributes.slice(0)}getAttributeLevel(){return this.attributes.length}getAttributeAtLevel(t){return this.attributes[t-1]}hasAttribute(t){return this.attributes.includes(t)}hasAttributes(){return this.getAttributeLevel()>0}getLastNestableAttribute(){return vr(this.getNestableAttributes())}getNestableAttributes(){return this.attributes.filter(t=>L(t).nestable)}getNestingLevel(){return this.getNestableAttributes().length}decreaseNestingLevel(){let t=this.getLastNestableAttribute();return t?this.removeAttribute(t):this}increaseNestingLevel(){let t=this.getLastNestableAttribute();if(t){let e=this.attributes.lastIndexOf(t),n=vi(this.attributes,e+1,0,...br(t));return this.copyWithAttributes(n)}return this}getListItemAttributes(){return this.attributes.filter(t=>L(t).listAttribute)}isListItem(){var t;return(t=L(this.getLastAttribute()))===null||t===void 0?void 0:t.listAttribute}isTerminalBlock(){var t;return(t=L(this.getLastAttribute()))===null||t===void 0?void 0:t.terminal}breaksOnReturn(){var t;return(t=L(this.getLastAttribute()))===null||t===void 0?void 0:t.breakOnReturn}findLineBreakInDirectionFromPosition(t,e){let n=this.toString(),r;switch(t){case"forward":r=n.indexOf(` +`,e);break;case"backward":r=n.slice(0,e).lastIndexOf(` +`)}if(r!==-1)return r}contentsForInspection(){return{text:this.text.inspect(),attributes:this.attributes}}toString(){return this.text.toString()}toJSON(){return{text:this.text,attributes:this.attributes,htmlAttributes:this.htmlAttributes}}getDirection(){return this.text.getDirection()}isRTL(){return this.text.isRTL()}getLength(){return this.text.getLength()}canBeConsolidatedWith(t){return!this.hasAttributes()&&!t.hasAttributes()&&this.getDirection()===t.getDirection()}consolidateWith(t){let e=K.textForStringWithAttributes(` +`),n=this.getTextWithoutBlockBreak().appendText(e);return this.copyWithText(n.appendText(t.text))}splitAtOffset(t){let e,n;return t===0?(e=null,n=this):t===this.getLength()?(e=this,n=null):(e=this.copyWithText(this.text.getTextAtRange([0,t])),n=this.copyWithText(this.text.getTextAtRange([t,this.getLength()]))),[e,n]}getBlockBreakPosition(){return this.text.getLength()-1}getTextWithoutBlockBreak(){return Kr(this.text)?this.text.getTextAtRange([0,this.getBlockBreakPosition()]):this.text.copy()}canBeGrouped(t){return this.attributes[t]}canBeGroupedWith(t,e){let n=t.getAttributes(),r=n[e],o=this.attributes[e];return o===r&&!(L(o).group===!1&&!(()=>{if(!De){De=[];for(let s in W){let{listAttribute:l}=W[s];l!=null&&De.push(l)}}return De})().includes(n[e+1]))&&(this.getDirection()===t.getDirection()||t.isEmpty())}},bs=function(i){return i=vs(i),i=ys(i)},vs=function(i){let t=!1,e=i.getPieces(),n=e.slice(0,e.length-1),r=e[e.length-1];return r?(n=n.map(o=>o.isBlockBreak()?(t=!0,xs(o)):o),t?new K([...n,r]):i):i},As=K.textForStringWithAttributes(` +`,{blockBreak:!0}),ys=function(i){return Kr(i)?i:i.appendText(As)},Kr=function(i){let t=i.getLength();return t===0?!1:i.getTextAtRange([t-1,t]).isBlockBreak()},xs=i=>i.copyWithoutAttribute("blockBreak"),br=function(i){let{listAttribute:t}=L(i);return t?[t,i]:[i]},vr=i=>i.slice(-1)[0],Ar=function(i,t){let e=i.lastIndexOf(t);return e===-1?i:vi(i,e,1)},z=class extends dt{static fromJSON(t){return new this(Array.from(t).map(e=>$.fromJSON(e)))}static fromString(t,e){let n=K.textForStringWithAttributes(t,e);return new this([new $(n)])}constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];super(...arguments),t.length===0&&(t=[new $]),this.blockList=$t.box(t)}isEmpty(){let t=this.getBlockAtIndex(0);return this.blockList.length===1&&t.isEmpty()&&!t.hasAttributes()}copy(){let t=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).consolidateBlocks?this.blockList.consolidate().toArray():this.blockList.toArray();return new this.constructor(t)}copyUsingObjectsFromDocument(t){let e=new ni(t.getObjects());return this.copyUsingObjectMap(e)}copyUsingObjectMap(t){let e=this.getBlocks().map(n=>t.find(n)||n.copyUsingObjectMap(t));return new this.constructor(e)}copyWithBaseBlockAttributes(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=this.getBlocks().map(n=>{let r=t.concat(n.getAttributes());return n.copyWithAttributes(r)});return new this.constructor(e)}replaceBlock(t,e){let n=this.blockList.indexOf(t);return n===-1?this:new this.constructor(this.blockList.replaceObjectAtIndex(e,n))}insertDocumentAtRange(t,e){let{blockList:n}=t;e=y(e);let[r]=e,{index:o,offset:s}=this.locationFromPosition(r),l=this,c=this.getBlockAtPosition(r);return ht(e)&&c.isEmpty()&&!c.hasAttributes()?l=new this.constructor(l.blockList.removeObjectAtIndex(o)):c.getBlockBreakPosition()===s&&r++,l=l.removeTextAtRange(e),new this.constructor(l.blockList.insertSplittableListAtPosition(n,r))}mergeDocumentAtRange(t,e){let n,r;e=y(e);let[o]=e,s=this.locationFromPosition(o),l=this.getBlockAtIndex(s.index).getAttributes(),c=t.getBaseBlockAttributes(),u=l.slice(-c.length);if(Ft(c,u)){let T=l.slice(0,-c.length);n=t.copyWithBaseBlockAttributes(T)}else n=t.copy({consolidateBlocks:!0}).copyWithBaseBlockAttributes(l);let d=n.getBlockCount(),C=n.getBlockAtIndex(0);if(Ft(l,C.getAttributes())){let T=C.getTextWithoutBlockBreak();if(r=this.insertTextAtRange(T,e),d>1){n=new this.constructor(n.getBlocks().slice(1));let H=o+T.getLength();r=r.insertDocumentAtRange(n,H)}}else r=this.insertDocumentAtRange(n,e);return r}insertTextAtRange(t,e){e=y(e);let[n]=e,{index:r,offset:o}=this.locationFromPosition(n),s=this.removeTextAtRange(e);return new this.constructor(s.blockList.editObjectAtIndex(r,l=>l.copyWithText(l.text.insertTextAtPosition(t,o))))}removeTextAtRange(t){let e;t=y(t);let[n,r]=t;if(ht(t))return this;let[o,s]=Array.from(this.locationRangeFromRange(t)),l=o.index,c=o.offset,u=this.getBlockAtIndex(l),d=s.index,C=s.offset,T=this.getBlockAtIndex(d);if(r-n==1&&u.getBlockBreakPosition()===c&&T.getBlockBreakPosition()!==C&&T.text.getStringAtPosition(C)===` +`)e=this.blockList.editObjectAtIndex(d,H=>H.copyWithText(H.text.removeTextAtRange([C,C+1])));else{let H,tt=u.text.getTextAtRange([0,c]),M=T.text.getTextAtRange([C,T.getLength()]),pt=tt.appendText(M);H=l!==d&&c===0&&u.getAttributeLevel()>=T.getAttributeLevel()?T.copyWithText(pt):u.copyWithText(pt);let Ct=d+1-l;e=this.blockList.splice(l,Ct,H)}return new this.constructor(e)}moveTextFromRangeToPosition(t,e){let n;t=y(t);let[r,o]=t;if(r<=e&&e<=o)return this;let s=this.getDocumentAtRange(t),l=this.removeTextAtRange(t),c=rr=r.editObjectAtIndex(l,function(){return L(t)?o.addAttribute(t,e):s[0]===s[1]?o:o.copyWithText(o.text.addAttributeAtRange(t,e,s))})),new this.constructor(r)}addAttribute(t,e){let{blockList:n}=this;return this.eachBlock((r,o)=>n=n.editObjectAtIndex(o,()=>r.addAttribute(t,e))),new this.constructor(n)}removeAttributeAtRange(t,e){let{blockList:n}=this;return this.eachBlockAtRange(e,function(r,o,s){L(t)?n=n.editObjectAtIndex(s,()=>r.removeAttribute(t)):o[0]!==o[1]&&(n=n.editObjectAtIndex(s,()=>r.copyWithText(r.text.removeAttributeAtRange(t,o))))}),new this.constructor(n)}updateAttributesForAttachment(t,e){let n=this.getRangeOfAttachment(e),[r]=Array.from(n),{index:o}=this.locationFromPosition(r),s=this.getTextAtIndex(o);return new this.constructor(this.blockList.editObjectAtIndex(o,l=>l.copyWithText(s.updateAttributesForAttachment(t,e))))}removeAttributeForAttachment(t,e){let n=this.getRangeOfAttachment(e);return this.removeAttributeAtRange(t,n)}setHTMLAttributeAtPosition(t,e,n){let r=this.getBlockAtPosition(t),o=r.addHTMLAttribute(e,n);return this.replaceBlock(r,o)}insertBlockBreakAtRange(t){let e;t=y(t);let[n]=t,{offset:r}=this.locationFromPosition(n),o=this.removeTextAtRange(t);return r===0&&(e=[new $]),new this.constructor(o.blockList.insertSplittableListAtPosition(new $t(e),n))}applyBlockAttributeAtRange(t,e,n){let r=this.expandRangeToLineBreaksAndSplitBlocks(n),o=r.document;n=r.range;let s=L(t);if(s.listAttribute){o=o.removeLastListAttributeAtRange(n,{exceptAttributeName:t});let l=o.convertLineBreaksToBlockBreaksInRange(n);o=l.document,n=l.range}else o=s.exclusive?o.removeBlockAttributesAtRange(n):s.terminal?o.removeLastTerminalAttributeAtRange(n):o.consolidateBlocksAtRange(n);return o.addAttributeAtRange(t,e,n)}removeLastListAttributeAtRange(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{blockList:n}=this;return this.eachBlockAtRange(t,function(r,o,s){let l=r.getLastAttribute();l&&L(l).listAttribute&&l!==e.exceptAttributeName&&(n=n.editObjectAtIndex(s,()=>r.removeAttribute(l)))}),new this.constructor(n)}removeLastTerminalAttributeAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,function(n,r,o){let s=n.getLastAttribute();s&&L(s).terminal&&(e=e.editObjectAtIndex(o,()=>n.removeAttribute(s)))}),new this.constructor(e)}removeBlockAttributesAtRange(t){let{blockList:e}=this;return this.eachBlockAtRange(t,function(n,r,o){n.hasAttributes()&&(e=e.editObjectAtIndex(o,()=>n.copyWithoutAttributes()))}),new this.constructor(e)}expandRangeToLineBreaksAndSplitBlocks(t){let e;t=y(t);let[n,r]=t,o=this.locationFromPosition(n),s=this.locationFromPosition(r),l=this,c=l.getBlockAtIndex(o.index);if(o.offset=c.findLineBreakInDirectionFromPosition("backward",o.offset),o.offset!=null&&(e=l.positionFromLocation(o),l=l.insertBlockBreakAtRange([e,e+1]),s.index+=1,s.offset-=l.getBlockAtIndex(o.index).getLength(),o.index+=1),o.offset=0,s.offset===0&&s.index>o.index)s.index-=1,s.offset=l.getBlockAtIndex(s.index).getBlockBreakPosition();else{let u=l.getBlockAtIndex(s.index);u.text.getStringAtRange([s.offset-1,s.offset])===` +`?s.offset-=1:s.offset=u.findLineBreakInDirectionFromPosition("forward",s.offset),s.offset!==u.getBlockBreakPosition()&&(e=l.positionFromLocation(s),l=l.insertBlockBreakAtRange([e,e+1]))}return n=l.positionFromLocation(o),r=l.positionFromLocation(s),{document:l,range:t=y([n,r])}}convertLineBreaksToBlockBreaksInRange(t){t=y(t);let[e]=t,n=this.getStringAtRange(t).slice(0,-1),r=this;return n.replace(/.*?\n/g,function(o){e+=o.length,r=r.insertBlockBreakAtRange([e-1,e])}),{document:r,range:t}}consolidateBlocksAtRange(t){t=y(t);let[e,n]=t,r=this.locationFromPosition(e).index,o=this.locationFromPosition(n).index;return new this.constructor(this.blockList.consolidateFromIndexToIndex(r,o))}getDocumentAtRange(t){t=y(t);let e=this.blockList.getSplittableListInRange(t).toArray();return new this.constructor(e)}getStringAtRange(t){let e,n=t=y(t);return n[n.length-1]!==this.getLength()&&(e=-1),this.getDocumentAtRange(t).toString().slice(0,e)}getBlockAtIndex(t){return this.blockList.getObjectAtIndex(t)}getBlockAtPosition(t){let{index:e}=this.locationFromPosition(t);return this.getBlockAtIndex(e)}getTextAtIndex(t){var e;return(e=this.getBlockAtIndex(t))===null||e===void 0?void 0:e.text}getTextAtPosition(t){let{index:e}=this.locationFromPosition(t);return this.getTextAtIndex(e)}getPieceAtPosition(t){let{index:e,offset:n}=this.locationFromPosition(t);return this.getTextAtIndex(e).getPieceAtPosition(n)}getCharacterAtPosition(t){let{index:e,offset:n}=this.locationFromPosition(t);return this.getTextAtIndex(e).getStringAtRange([n,n+1])}getLength(){return this.blockList.getEndPosition()}getBlocks(){return this.blockList.toArray()}getBlockCount(){return this.blockList.length}getEditCount(){return this.editCount}eachBlock(t){return this.blockList.eachObject(t)}eachBlockAtRange(t,e){let n,r;t=y(t);let[o,s]=t,l=this.locationFromPosition(o),c=this.locationFromPosition(s);if(l.index===c.index)return n=this.getBlockAtIndex(l.index),r=[l.offset,c.offset],e(n,r,l.index);for(let u=l.index;u<=c.index;u++)if(n=this.getBlockAtIndex(u),n){switch(u){case l.index:r=[l.offset,n.text.getLength()];break;case c.index:r=[0,c.offset];break;default:r=[0,n.text.getLength()]}e(n,r,u)}}getCommonAttributesAtRange(t){t=y(t);let[e]=t;if(ht(t))return this.getCommonAttributesAtPosition(e);{let n=[],r=[];return this.eachBlockAtRange(t,function(o,s){if(s[0]!==s[1])return n.push(o.text.getCommonAttributesAtRange(s)),r.push(yr(o))}),U.fromCommonAttributesOfObjects(n).merge(U.fromCommonAttributesOfObjects(r)).toObject()}}getCommonAttributesAtPosition(t){let e,n,{index:r,offset:o}=this.locationFromPosition(t),s=this.getBlockAtIndex(r);if(!s)return{};let l=yr(s),c=s.text.getAttributesAtPosition(o),u=s.text.getAttributesAtPosition(o-1),d=Object.keys(It).filter(C=>It[C].inheritable);for(e in u)n=u[e],(n===c[e]||d.includes(e))&&(l[e]=n);return l}getRangeOfCommonAttributeAtPosition(t,e){let{index:n,offset:r}=this.locationFromPosition(e),o=this.getTextAtIndex(n),[s,l]=Array.from(o.getExpandedRangeForAttributeAtOffset(t,r)),c=this.positionFromLocation({index:n,offset:s}),u=this.positionFromLocation({index:n,offset:l});return y([c,u])}getBaseBlockAttributes(){let t=this.getBlockAtIndex(0).getAttributes();for(let e=1;e{let o=[];for(let s=0;s{let{text:n}=e;return t=t.concat(n.getAttachmentPieces())}),t}getAttachments(){return this.getAttachmentPieces().map(t=>t.attachment)}getRangeOfAttachment(t){let e=0,n=this.blockList.toArray();for(let r=0;r{let o=r.getLength();r.hasAttribute(t)&&n.push([e,e+o]),e+=o}),n}findRangesForTextAttribute(t){let{withValue:e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=0,r=[],o=[];return this.getPieces().forEach(s=>{let l=s.getLength();(function(c){return e?c.getAttribute(t)===e:c.hasAttribute(t)})(s)&&(r[1]===n?r[1]=n+l:o.push(r=[n,n+l])),n+=l}),o}locationFromPosition(t){let e=this.blockList.findIndexAndOffsetAtPosition(Math.max(0,t));if(e.index!=null)return e;{let n=this.getBlocks();return{index:n.length-1,offset:n[n.length-1].getLength()}}}positionFromLocation(t){return this.blockList.findPositionAtIndexAndOffset(t.index,t.offset)}locationRangeFromPosition(t){return y(this.locationFromPosition(t))}locationRangeFromRange(t){if(!(t=y(t)))return;let[e,n]=Array.from(t),r=this.locationFromPosition(e),o=this.locationFromPosition(n);return y([r,o])}rangeFromLocationRange(t){let e;t=y(t);let n=this.positionFromLocation(t[0]);return ht(t)||(e=this.positionFromLocation(t[1])),y([n,e])}isEqualTo(t){return this.blockList.isEqualTo(t?.blockList)}getTexts(){return this.getBlocks().map(t=>t.text)}getPieces(){let t=[];return Array.from(this.getTexts()).forEach(e=>{t.push(...Array.from(e.getPieces()||[]))}),t}getObjects(){return this.getBlocks().concat(this.getTexts()).concat(this.getPieces())}toSerializableDocument(){let t=[];return this.blockList.eachObject(e=>t.push(e.copyWithText(e.text.toSerializableText()))),new this.constructor(t)}toString(){return this.blockList.toString()}toJSON(){return this.blockList.toJSON()}toConsole(){return JSON.stringify(this.blockList.toArray().map(t=>JSON.parse(t.text.toConsole())))}},yr=function(i){let t={},e=i.getLastAttribute();return e&&(t[e]=!0),t},jn=function(i){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return{string:i=ue(i),attributes:t,type:"string"}},xr=(i,t)=>{try{return JSON.parse(i.getAttribute("data-trix-".concat(t)))}catch{return{}}},Mt=class extends R{static parse(t,e){let n=new this(t,e);return n.parse(),n}constructor(t){let{referenceElement:e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(...arguments),this.html=t,this.referenceElement=e,this.blocks=[],this.blockElements=[],this.processedElements=[]}getDocument(){return z.fromJSON(this.blocks)}parse(){try{this.createHiddenContainer(),Kt.setHTML(this.containerElement,this.html);let t=je(this.containerElement,{usingFilter:Es});for(;t.nextNode();)this.processNode(t.currentNode);return this.translateBlockElementMarginsToNewlines()}finally{this.removeHiddenContainer()}}createHiddenContainer(){return this.referenceElement?(this.containerElement=this.referenceElement.cloneNode(!1),this.containerElement.removeAttribute("id"),this.containerElement.setAttribute("data-trix-internal",""),this.containerElement.style.display="none",this.referenceElement.parentNode.insertBefore(this.containerElement,this.referenceElement.nextSibling)):(this.containerElement=p({tagName:"div",style:{display:"none"}}),document.body.appendChild(this.containerElement))}removeHiddenContainer(){return At(this.containerElement)}processNode(t){switch(t.nodeType){case Node.TEXT_NODE:if(!this.isInsignificantTextNode(t))return this.appendBlockForTextNode(t),this.processTextNode(t);break;case Node.ELEMENT_NODE:return this.appendBlockForElement(t),this.processElement(t)}}appendBlockForTextNode(t){let e=t.parentNode;if(e===this.currentBlockElement&&this.isBlockElement(t.previousSibling))return this.appendStringWithAttributes(` +`);if(e===this.containerElement||this.isBlockElement(e)){var n;let r=this.getBlockAttributes(e),o=this.getBlockHTMLAttributes(e);Ft(r,(n=this.currentBlock)===null||n===void 0?void 0:n.attributes)||(this.currentBlock=this.appendBlockForAttributesWithElement(r,e,o),this.currentBlockElement=e)}}appendBlockForElement(t){let e=this.isBlockElement(t),n=Tt(this.currentBlockElement,t);if(e&&!this.isBlockElement(t.firstChild)){if(!this.isInsignificantTextNode(t.firstChild)||!this.isBlockElement(t.firstElementChild)){let r=this.getBlockAttributes(t),o=this.getBlockHTMLAttributes(t);if(t.firstChild){if(n&&Ft(r,this.currentBlock.attributes))return this.appendStringWithAttributes(` +`);this.currentBlock=this.appendBlockForAttributesWithElement(r,t,o),this.currentBlockElement=t}}}else if(this.currentBlockElement&&!n&&!e){let r=this.findParentBlockElement(t);if(r)return this.appendBlockForElement(r);this.currentBlock=this.appendEmptyBlock(),this.currentBlockElement=null}}findParentBlockElement(t){let{parentElement:e}=t;for(;e&&e!==this.containerElement;){if(this.isBlockElement(e)&&this.blockElements.includes(e))return e;e=e.parentElement}return null}processTextNode(t){let e=t.data;var n;return Cr(t.parentNode)||(e=xi(e),Gr((n=t.previousSibling)===null||n===void 0?void 0:n.textContent)&&(e=Ss(e))),this.appendStringWithAttributes(e,this.getTextAttributes(t.parentNode))}processElement(t){let e;if(Lt(t)){if(e=xr(t,"attachment"),Object.keys(e).length){let n=this.getTextAttributes(t);this.appendAttachmentWithAttributes(e,n),t.innerHTML=""}return this.processedElements.push(t)}switch(j(t)){case"br":return this.isExtraBR(t)||this.isBlockElement(t.nextSibling)||this.appendStringWithAttributes(` +`,this.getTextAttributes(t)),this.processedElements.push(t);case"img":e={url:t.getAttribute("src"),contentType:"image"};let n=(r=>{let o=r.getAttribute("width"),s=r.getAttribute("height"),l={};return o&&(l.width=parseInt(o,10)),s&&(l.height=parseInt(s,10)),l})(t);for(let r in n){let o=n[r];e[r]=o}return this.appendAttachmentWithAttributes(e,this.getTextAttributes(t)),this.processedElements.push(t);case"tr":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(Me.tableRowSeparator);break;case"td":if(this.needsTableSeparator(t))return this.appendStringWithAttributes(Me.tableCellSeparator)}}appendBlockForAttributesWithElement(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.blockElements.push(e);let r=function(){return{text:[],attributes:arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},htmlAttributes:arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}}}(t,n);return this.blocks.push(r),r}appendEmptyBlock(){return this.appendBlockForAttributesWithElement([],null)}appendStringWithAttributes(t,e){return this.appendPiece(jn(t,e))}appendAttachmentWithAttributes(t,e){return this.appendPiece(function(n){return{attachment:n,attributes:arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},type:"attachment"}}(t,e))}appendPiece(t){return this.blocks.length===0&&this.appendEmptyBlock(),this.blocks[this.blocks.length-1].text.push(t)}appendStringToTextAtIndex(t,e){let{text:n}=this.blocks[e],r=n[n.length-1];if(r?.type!=="string")return n.push(jn(t));r.string+=t}prependStringToTextAtIndex(t,e){let{text:n}=this.blocks[e],r=n[0];if(r?.type!=="string")return n.unshift(jn(t));r.string=t+r.string}getTextAttributes(t){let e,n={};for(let r in It){let o=It[r];if(o.tagName&&vt(t,{matchingSelector:o.tagName,untilNode:this.containerElement}))n[r]=!0;else if(o.parser){if(e=o.parser(t),e){let s=!1;for(let l of this.findBlockElementAncestors(t))if(o.parser(l)===e){s=!0;break}s||(n[r]=e)}}else o.styleProperty&&(e=t.style[o.styleProperty],e&&(n[r]=e))}if(Lt(t)){let r=xr(t,"attributes");for(let o in r)e=r[o],n[o]=e}return n}getBlockAttributes(t){let e=[];for(;t&&t!==this.containerElement;){for(let r in W){let o=W[r];var n;o.parse!==!1&&j(t)===o.tagName&&((n=o.test)!==null&&n!==void 0&&n.call(o,t)||!o.test)&&(e.push(r),o.listAttribute&&e.push(o.listAttribute))}t=t.parentNode}return e.reverse()}getBlockHTMLAttributes(t){let e={},n=Object.values(W).find(r=>r.tagName===j(t));return(n?.htmlAttributes||[]).forEach(r=>{t.hasAttribute(r)&&(e[r]=t.getAttribute(r))}),e}findBlockElementAncestors(t){let e=[];for(;t&&t!==this.containerElement;){let n=j(t);de().includes(n)&&e.push(t),t=t.parentNode}return e}isBlockElement(t){if(t?.nodeType===Node.ELEMENT_NODE&&!Lt(t)&&!vt(t,{matchingSelector:"td",untilNode:this.containerElement}))return de().includes(j(t))||window.getComputedStyle(t).display==="block"}isInsignificantTextNode(t){if(t?.nodeType!==Node.TEXT_NODE||!ks(t.data))return;let{parentNode:e,previousSibling:n,nextSibling:r}=t;return Cs(e.previousSibling)&&!this.isBlockElement(e.previousSibling)||Cr(e)?void 0:!n||this.isBlockElement(n)||!r||this.isBlockElement(r)}isExtraBR(t){return j(t)==="br"&&this.isBlockElement(t.parentNode)&&t.parentNode.lastChild===t}needsTableSeparator(t){if(Me.removeBlankTableCells){var e;let n=(e=t.previousSibling)===null||e===void 0?void 0:e.textContent;return n&&/\S/.test(n)}return t.previousSibling}translateBlockElementMarginsToNewlines(){let t=this.getMarginOfDefaultBlockElement();for(let e=0;e2*t.top&&this.prependStringToTextAtIndex(` +`,e),n.bottom>2*t.bottom&&this.appendStringToTextAtIndex(` +`,e))}}getMarginOfBlockElementAtIndex(t){let e=this.blockElements[t];if(e&&e.textContent&&!de().includes(j(e))&&!this.processedElements.includes(e))return Er(e)}getMarginOfDefaultBlockElement(){let t=p(W.default.tagName);return this.containerElement.appendChild(t),Er(t)}},Cr=function(i){let{whiteSpace:t}=window.getComputedStyle(i);return["pre","pre-wrap","pre-line"].includes(t)},Cs=i=>i&&!Gr(i.textContent),Er=function(i){let t=window.getComputedStyle(i);if(t.display==="block")return{top:parseInt(t.marginTop),bottom:parseInt(t.marginBottom)}},Es=function(i){return j(i)==="style"?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},Ss=i=>i.replace(new RegExp("^".concat(yi.source,"+")),""),ks=i=>new RegExp("^".concat(yi.source,"*$")).test(i),Gr=i=>/\s$/.test(i),Rs=["contenteditable","data-trix-id","data-trix-store-key","data-trix-mutable","data-trix-placeholder","tabindex"],ai="data-trix-serialized-attributes",Ts="[".concat(ai,"]"),ws=new RegExp("","g"),Ls={"application/json":function(i){let t;if(i instanceof z)t=i;else{if(!(i instanceof HTMLElement))throw new Error("unserializable object");t=Mt.parse(i.innerHTML).getDocument()}return t.toSerializableDocument().toJSONString()},"text/html":function(i){let t;if(i instanceof z)t=Gt.render(i);else{if(!(i instanceof HTMLElement))throw new Error("unserializable object");t=i.cloneNode(!0)}return Array.from(t.querySelectorAll("[data-trix-serialize=false]")).forEach(e=>{At(e)}),Rs.forEach(e=>{Array.from(t.querySelectorAll("[".concat(e,"]"))).forEach(n=>{n.removeAttribute(e)})}),Array.from(t.querySelectorAll(Ts)).forEach(e=>{try{let n=JSON.parse(e.getAttribute(ai));e.removeAttribute(ai);for(let r in n){let o=n[r];e.setAttribute(r,o)}}catch{}}),t.innerHTML.replace(ws,"")}},Ds=Object.freeze({__proto__:null}),E=class extends R{constructor(t,e){super(...arguments),this.attachmentManager=t,this.attachment=e,this.id=this.attachment.id,this.file=this.attachment.file}remove(){return this.attachmentManager.requestRemovalOfAttachment(this.attachment)}};E.proxyMethod("attachment.getAttribute"),E.proxyMethod("attachment.hasAttribute"),E.proxyMethod("attachment.setAttribute"),E.proxyMethod("attachment.getAttributes"),E.proxyMethod("attachment.setAttributes"),E.proxyMethod("attachment.isPending"),E.proxyMethod("attachment.isPreviewable"),E.proxyMethod("attachment.getURL"),E.proxyMethod("attachment.getHref"),E.proxyMethod("attachment.getFilename"),E.proxyMethod("attachment.getFilesize"),E.proxyMethod("attachment.getFormattedFilesize"),E.proxyMethod("attachment.getExtension"),E.proxyMethod("attachment.getContentType"),E.proxyMethod("attachment.getFile"),E.proxyMethod("attachment.setFile"),E.proxyMethod("attachment.releaseFile"),E.proxyMethod("attachment.getUploadProgress"),E.proxyMethod("attachment.setUploadProgress");var Ge=class extends R{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];super(...arguments),this.managedAttachments={},Array.from(t).forEach(e=>{this.manageAttachment(e)})}getAttachments(){let t=[];for(let e in this.managedAttachments){let n=this.managedAttachments[e];t.push(n)}return t}manageAttachment(t){return this.managedAttachments[t.id]||(this.managedAttachments[t.id]=new E(this,t)),this.managedAttachments[t.id]}attachmentIsManaged(t){return t.id in this.managedAttachments}requestRemovalOfAttachment(t){var e,n;if(this.attachmentIsManaged(t))return(e=this.delegate)===null||e===void 0||(n=e.attachmentManagerDidRequestRemovalOfAttachment)===null||n===void 0?void 0:n.call(e,t)}unmanageAttachment(t){let e=this.managedAttachments[t.id];return delete this.managedAttachments[t.id],e}},$e=class{constructor(t){this.composition=t,this.document=this.composition.document;let e=this.composition.getSelectedRange();this.startPosition=e[0],this.endPosition=e[1],this.startLocation=this.document.locationFromPosition(this.startPosition),this.endLocation=this.document.locationFromPosition(this.endPosition),this.block=this.document.getBlockAtIndex(this.endLocation.index),this.breaksOnReturn=this.block.breaksOnReturn(),this.previousCharacter=this.block.text.getStringAtPosition(this.endLocation.offset-1),this.nextCharacter=this.block.text.getStringAtPosition(this.endLocation.offset)}shouldInsertBlockBreak(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?this.startLocation.offset!==0:this.breaksOnReturn&&this.nextCharacter!==` +`}shouldBreakFormattedBlock(){return this.block.hasAttributes()&&!this.block.isListItem()&&(this.breaksOnReturn&&this.nextCharacter===` +`||this.previousCharacter===` +`)}shouldDecreaseListLevel(){return this.block.hasAttributes()&&this.block.isListItem()&&this.block.isEmpty()}shouldPrependListItem(){return this.block.isListItem()&&this.startLocation.offset===0&&!this.block.isEmpty()}shouldRemoveLastBlockAttribute(){return this.block.hasAttributes()&&!this.block.isListItem()&&this.block.isEmpty()}},rt=class extends R{constructor(){super(...arguments),this.document=new z,this.attachments=[],this.currentAttributes={},this.revision=0}setDocument(t){var e,n;if(!t.isEqualTo(this.document))return this.document=t,this.refreshAttachments(),this.revision++,(e=this.delegate)===null||e===void 0||(n=e.compositionDidChangeDocument)===null||n===void 0?void 0:n.call(e,t)}getSnapshot(){return{document:this.document,selectedRange:this.getSelectedRange()}}loadSnapshot(t){var e,n,r,o;let{document:s,selectedRange:l}=t;return(e=this.delegate)===null||e===void 0||(n=e.compositionWillLoadSnapshot)===null||n===void 0||n.call(e),this.setDocument(s??new z),this.setSelection(l??[0,0]),(r=this.delegate)===null||r===void 0||(o=r.compositionDidLoadSnapshot)===null||o===void 0?void 0:o.call(r)}insertText(t){let{updatePosition:e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{updatePosition:!0},n=this.getSelectedRange();this.setDocument(this.document.insertTextAtRange(t,n));let r=n[0],o=r+t.getLength();return e&&this.setSelection(o),this.notifyDelegateOfInsertionAtRange([r,o])}insertBlock(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new $,e=new z([t]);return this.insertDocument(e)}insertDocument(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new z,e=this.getSelectedRange();this.setDocument(this.document.insertDocumentAtRange(t,e));let n=e[0],r=n+t.getLength();return this.setSelection(r),this.notifyDelegateOfInsertionAtRange([n,r])}insertString(t,e){let n=this.getCurrentTextAttributes(),r=K.textForStringWithAttributes(t,n);return this.insertText(r,e)}insertBlockBreak(){let t=this.getSelectedRange();this.setDocument(this.document.insertBlockBreakAtRange(t));let e=t[0],n=e+1;return this.setSelection(n),this.notifyDelegateOfInsertionAtRange([e,n])}insertLineBreak(){let t=new $e(this);if(t.shouldDecreaseListLevel())return this.decreaseListLevel(),this.setSelection(t.startPosition);if(t.shouldPrependListItem()){let e=new z([t.block.copyWithoutText()]);return this.insertDocument(e)}return t.shouldInsertBlockBreak()?this.insertBlockBreak():t.shouldRemoveLastBlockAttribute()?this.removeLastBlockAttribute():t.shouldBreakFormattedBlock()?this.breakFormattedBlock(t):this.insertString(` +`)}insertHTML(t){let e=Mt.parse(t).getDocument(),n=this.getSelectedRange();this.setDocument(this.document.mergeDocumentAtRange(e,n));let r=n[0],o=r+e.getLength()-1;return this.setSelection(o),this.notifyDelegateOfInsertionAtRange([r,o])}replaceHTML(t){let e=Mt.parse(t).getDocument().copyUsingObjectsFromDocument(this.document),n=this.getLocationRange({strict:!1}),r=this.document.rangeFromLocationRange(n);return this.setDocument(e),this.setSelection(r)}insertFile(t){return this.insertFiles([t])}insertFiles(t){let e=[];return Array.from(t).forEach(n=>{var r;if((r=this.delegate)!==null&&r!==void 0&&r.compositionShouldAcceptFile(n)){let o=yt.attachmentForFile(n);e.push(o)}}),this.insertAttachments(e)}insertAttachment(t){return this.insertAttachments([t])}insertAttachments(t){let e=new K;return Array.from(t).forEach(n=>{var r;let o=n.getType(),s=(r=mi[o])===null||r===void 0?void 0:r.presentation,l=this.getCurrentTextAttributes();s&&(l.presentation=s);let c=K.textForAttachmentWithAttributes(n,l);e=e.appendText(c)}),this.insertText(e)}shouldManageDeletingInDirection(t){let e=this.getLocationRange();if(ht(e)){if(t==="backward"&&e[0].offset===0||this.shouldManageMovingCursorInDirection(t))return!0}else if(e[0].index!==e[1].index)return!0;return!1}deleteInDirection(t){let e,n,r,{length:o}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=this.getLocationRange(),l=this.getSelectedRange(),c=ht(l);if(c?n=t==="backward"&&s[0].offset===0:r=s[0].index!==s[1].index,n&&this.canDecreaseBlockAttributeLevel()){let u=this.getBlock();if(u.isListItem()?this.decreaseListLevel():this.decreaseBlockAttributeLevel(),this.setSelection(l[0]),u.isEmpty())return!1}return c&&(l=this.getExpandedRangeInDirection(t,{length:o}),t==="backward"&&(e=this.getAttachmentAtRange(l))),e?(this.editAttachment(e),!1):(this.setDocument(this.document.removeTextAtRange(l)),this.setSelection(l[0]),!n&&!r&&void 0)}moveTextFromRange(t){let[e]=Array.from(this.getSelectedRange());return this.setDocument(this.document.moveTextFromRangeToPosition(t,e)),this.setSelection(e)}removeAttachment(t){let e=this.document.getRangeOfAttachment(t);if(e)return this.stopEditingAttachment(),this.setDocument(this.document.removeTextAtRange(e)),this.setSelection(e[0])}removeLastBlockAttribute(){let[t,e]=Array.from(this.getSelectedRange()),n=this.document.getBlockAtPosition(e);return this.removeCurrentAttribute(n.getLastAttribute()),this.setSelection(t)}insertPlaceholder(){return this.placeholderPosition=this.getPosition(),this.insertString(" ")}selectPlaceholder(){if(this.placeholderPosition!=null)return this.setSelectedRange([this.placeholderPosition,this.placeholderPosition+1]),this.getSelectedRange()}forgetPlaceholder(){this.placeholderPosition=null}hasCurrentAttribute(t){let e=this.currentAttributes[t];return e!=null&&e!==!1}toggleCurrentAttribute(t){let e=!this.currentAttributes[t];return e?this.setCurrentAttribute(t,e):this.removeCurrentAttribute(t)}canSetCurrentAttribute(t){return L(t)?this.canSetCurrentBlockAttribute(t):this.canSetCurrentTextAttribute(t)}canSetCurrentTextAttribute(t){let e=this.getSelectedDocument();if(e){for(let n of Array.from(e.getAttachments()))if(!n.hasContent())return!1;return!0}}canSetCurrentBlockAttribute(t){let e=this.getBlock();if(e)return!e.isTerminalBlock()}setCurrentAttribute(t,e){return L(t)?this.setBlockAttribute(t,e):(this.setTextAttribute(t,e),this.currentAttributes[t]=e,this.notifyDelegateOfCurrentAttributesChange())}setHTMLAtributeAtPosition(t,e,n){var r;let o=this.document.getBlockAtPosition(t),s=(r=L(o.getLastAttribute()))===null||r===void 0?void 0:r.htmlAttributes;if(o&&s!=null&&s.includes(e)){let l=this.document.setHTMLAttributeAtPosition(t,e,n);this.setDocument(l)}}setTextAttribute(t,e){let n=this.getSelectedRange();if(!n)return;let[r,o]=Array.from(n);if(r!==o)return this.setDocument(this.document.addAttributeAtRange(t,e,n));if(t==="href"){let s=K.textForStringWithAttributes(e,{href:e});return this.insertText(s)}}setBlockAttribute(t,e){let n=this.getSelectedRange();if(this.canSetCurrentAttribute(t))return this.setDocument(this.document.applyBlockAttributeAtRange(t,e,n)),this.setSelection(n)}removeCurrentAttribute(t){return L(t)?(this.removeBlockAttribute(t),this.updateCurrentAttributes()):(this.removeTextAttribute(t),delete this.currentAttributes[t],this.notifyDelegateOfCurrentAttributesChange())}removeTextAttribute(t){let e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}removeBlockAttribute(t){let e=this.getSelectedRange();if(e)return this.setDocument(this.document.removeAttributeAtRange(t,e))}canDecreaseNestingLevel(){var t;return((t=this.getBlock())===null||t===void 0?void 0:t.getNestingLevel())>0}canIncreaseNestingLevel(){var t;let e=this.getBlock();if(e){if((t=L(e.getLastNestableAttribute()))===null||t===void 0||!t.listAttribute)return e.getNestingLevel()>0;{let n=this.getPreviousBlock();if(n)return function(){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return Ft((arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).slice(0,r.length),r)}(n.getListItemAttributes(),e.getListItemAttributes())}}}decreaseNestingLevel(){let t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.decreaseNestingLevel()))}increaseNestingLevel(){let t=this.getBlock();if(t)return this.setDocument(this.document.replaceBlock(t,t.increaseNestingLevel()))}canDecreaseBlockAttributeLevel(){var t;return((t=this.getBlock())===null||t===void 0?void 0:t.getAttributeLevel())>0}decreaseBlockAttributeLevel(){var t;let e=(t=this.getBlock())===null||t===void 0?void 0:t.getLastAttribute();if(e)return this.removeCurrentAttribute(e)}decreaseListLevel(){let[t]=Array.from(this.getSelectedRange()),{index:e}=this.document.locationFromPosition(t),n=e,r=this.getBlock().getAttributeLevel(),o=this.document.getBlockAtIndex(n+1);for(;o&&o.isListItem()&&!(o.getAttributeLevel()<=r);)n++,o=this.document.getBlockAtIndex(n+1);t=this.document.positionFromLocation({index:e,offset:0});let s=this.document.positionFromLocation({index:n,offset:0});return this.setDocument(this.document.removeLastListAttributeAtRange([t,s]))}updateCurrentAttributes(){let t=this.getSelectedRange({ignoreLock:!0});if(t){let e=this.document.getCommonAttributesAtRange(t);if(Array.from(Qn()).forEach(n=>{e[n]||this.canSetCurrentAttribute(n)||(e[n]=!1)}),!Xt(e,this.currentAttributes))return this.currentAttributes=e,this.notifyDelegateOfCurrentAttributesChange()}}getCurrentAttributes(){return Nr.call({},this.currentAttributes)}getCurrentTextAttributes(){let t={};for(let e in this.currentAttributes){let n=this.currentAttributes[e];n!==!1&&ti(e)&&(t[e]=n)}return t}freezeSelection(){return this.setCurrentAttribute("frozen",!0)}thawSelection(){return this.removeCurrentAttribute("frozen")}hasFrozenSelection(){return this.hasCurrentAttribute("frozen")}setSelection(t){var e;let n=this.document.locationRangeFromRange(t);return(e=this.delegate)===null||e===void 0?void 0:e.compositionDidRequestChangingSelectionToLocationRange(n)}getSelectedRange(){let t=this.getLocationRange();if(t)return this.document.rangeFromLocationRange(t)}setSelectedRange(t){let e=this.document.locationRangeFromRange(t);return this.getSelectionManager().setLocationRange(e)}getPosition(){let t=this.getLocationRange();if(t)return this.document.positionFromLocation(t[0])}getLocationRange(t){return this.targetLocationRange?this.targetLocationRange:this.getSelectionManager().getLocationRange(t)||y({index:0,offset:0})}withTargetLocationRange(t,e){let n;this.targetLocationRange=t;try{n=e()}finally{this.targetLocationRange=null}return n}withTargetRange(t,e){let n=this.document.locationRangeFromRange(t);return this.withTargetLocationRange(n,e)}withTargetDOMRange(t,e){let n=this.createLocationRangeFromDOMRange(t,{strict:!1});return this.withTargetLocationRange(n,e)}getExpandedRangeInDirection(t){let{length:e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},[n,r]=Array.from(this.getSelectedRange());return t==="backward"?e?n-=e:n=this.translateUTF16PositionFromOffset(n,-1):e?r+=e:r=this.translateUTF16PositionFromOffset(r,1),y([n,r])}shouldManageMovingCursorInDirection(t){if(this.editingAttachment)return!0;let e=this.getExpandedRangeInDirection(t);return this.getAttachmentAtRange(e)!=null}moveCursorInDirection(t){let e,n;if(this.editingAttachment)n=this.document.getRangeOfAttachment(this.editingAttachment);else{let r=this.getSelectedRange();n=this.getExpandedRangeInDirection(t),e=!We(r,n)}if(t==="backward"?this.setSelectedRange(n[0]):this.setSelectedRange(n[1]),e){let r=this.getAttachmentAtRange(n);if(r)return this.editAttachment(r)}}expandSelectionInDirection(t){let{length:e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=this.getExpandedRangeInDirection(t,{length:e});return this.setSelectedRange(n)}expandSelectionForEditing(){if(this.hasCurrentAttribute("href"))return this.expandSelectionAroundCommonAttribute("href")}expandSelectionAroundCommonAttribute(t){let e=this.getPosition(),n=this.document.getRangeOfCommonAttributeAtPosition(t,e);return this.setSelectedRange(n)}selectionContainsAttachments(){var t;return((t=this.getSelectedAttachments())===null||t===void 0?void 0:t.length)>0}selectionIsInCursorTarget(){return this.editingAttachment||this.positionIsCursorTarget(this.getPosition())}positionIsCursorTarget(t){let e=this.document.locationFromPosition(t);if(e)return this.locationIsCursorTarget(e)}positionIsBlockBreak(t){var e;return(e=this.document.getPieceAtPosition(t))===null||e===void 0?void 0:e.isBlockBreak()}getSelectedDocument(){let t=this.getSelectedRange();if(t)return this.document.getDocumentAtRange(t)}getSelectedAttachments(){var t;return(t=this.getSelectedDocument())===null||t===void 0?void 0:t.getAttachments()}getAttachments(){return this.attachments.slice(0)}refreshAttachments(){let t=this.document.getAttachments(),{added:e,removed:n}=function(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],s=[],l=[],c=new Set;r.forEach(d=>{c.add(d)});let u=new Set;return o.forEach(d=>{u.add(d),c.has(d)||s.push(d)}),r.forEach(d=>{u.has(d)||l.push(d)}),{added:s,removed:l}}(this.attachments,t);return this.attachments=t,Array.from(n).forEach(r=>{var o,s;r.delegate=null,(o=this.delegate)===null||o===void 0||(s=o.compositionDidRemoveAttachment)===null||s===void 0||s.call(o,r)}),(()=>{let r=[];return Array.from(e).forEach(o=>{var s,l;o.delegate=this,r.push((s=this.delegate)===null||s===void 0||(l=s.compositionDidAddAttachment)===null||l===void 0?void 0:l.call(s,o))}),r})()}attachmentDidChangeAttributes(t){var e,n;return this.revision++,(e=this.delegate)===null||e===void 0||(n=e.compositionDidEditAttachment)===null||n===void 0?void 0:n.call(e,t)}attachmentDidChangePreviewURL(t){var e,n;return this.revision++,(e=this.delegate)===null||e===void 0||(n=e.compositionDidChangeAttachmentPreviewURL)===null||n===void 0?void 0:n.call(e,t)}editAttachment(t,e){var n,r;if(t!==this.editingAttachment)return this.stopEditingAttachment(),this.editingAttachment=t,(n=this.delegate)===null||n===void 0||(r=n.compositionDidStartEditingAttachment)===null||r===void 0?void 0:r.call(n,this.editingAttachment,e)}stopEditingAttachment(){var t,e;this.editingAttachment&&((t=this.delegate)===null||t===void 0||(e=t.compositionDidStopEditingAttachment)===null||e===void 0||e.call(t,this.editingAttachment),this.editingAttachment=null)}updateAttributesForAttachment(t,e){return this.setDocument(this.document.updateAttributesForAttachment(t,e))}removeAttributeForAttachment(t,e){return this.setDocument(this.document.removeAttributeForAttachment(t,e))}breakFormattedBlock(t){let{document:e}=t,{block:n}=t,r=t.startPosition,o=[r-1,r];n.getBlockBreakPosition()===t.startLocation.offset?(n.breaksOnReturn()&&t.nextCharacter===` +`?r+=1:e=e.removeTextAtRange(o),o=[r,r]):t.nextCharacter===` +`?t.previousCharacter===` +`?o=[r-1,r+1]:(o=[r,r+1],r+=1):t.startLocation.offset-1!=0&&(r+=1);let s=new z([n.removeLastAttribute().copyWithoutText()]);return this.setDocument(e.insertDocumentAtRange(s,o)),this.setSelection(r)}getPreviousBlock(){let t=this.getLocationRange();if(t){let{index:e}=t[0];if(e>0)return this.document.getBlockAtIndex(e-1)}}getBlock(){let t=this.getLocationRange();if(t)return this.document.getBlockAtIndex(t[0].index)}getAttachmentAtRange(t){let e=this.document.getDocumentAtRange(t);if(e.toString()==="".concat("\uFFFC",` +`))return e.getAttachments()[0]}notifyDelegateOfCurrentAttributesChange(){var t,e;return(t=this.delegate)===null||t===void 0||(e=t.compositionDidChangeCurrentAttributes)===null||e===void 0?void 0:e.call(t,this.currentAttributes)}notifyDelegateOfInsertionAtRange(t){var e,n;return(e=this.delegate)===null||e===void 0||(n=e.compositionDidPerformInsertionAtRange)===null||n===void 0?void 0:n.call(e,t)}translateUTF16PositionFromOffset(t,e){let n=this.document.toUTF16String(),r=n.offsetFromUCS2Offset(t);return n.offsetToUCS2Offset(r+e)}};rt.proxyMethod("getSelectionManager().getPointRange"),rt.proxyMethod("getSelectionManager().setLocationRangeFromPointRange"),rt.proxyMethod("getSelectionManager().createLocationRangeFromDOMRange"),rt.proxyMethod("getSelectionManager().locationIsCursorTarget"),rt.proxyMethod("getSelectionManager().selectionIsExpanded"),rt.proxyMethod("delegate?.getSelectionManager");var Ae=class extends R{constructor(t){super(...arguments),this.composition=t,this.undoEntries=[],this.redoEntries=[]}recordUndoEntry(t){let{context:e,consolidatable:n}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=this.undoEntries.slice(-1)[0];if(!n||!Ns(r,t,e)){let o=this.createEntry({description:t,context:e});this.undoEntries.push(o),this.redoEntries=[]}}undo(){let t=this.undoEntries.pop();if(t){let e=this.createEntry(t);return this.redoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}redo(){let t=this.redoEntries.pop();if(t){let e=this.createEntry(t);return this.undoEntries.push(e),this.composition.loadSnapshot(t.snapshot)}}canUndo(){return this.undoEntries.length>0}canRedo(){return this.redoEntries.length>0}createEntry(){let{description:t,context:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return{description:t?.toString(),context:JSON.stringify(e),snapshot:this.composition.getSnapshot()}}},Ns=(i,t,e)=>i?.description===t?.toString()&&i?.context===JSON.stringify(e),Wn="attachmentGallery",Ye=class{constructor(t){this.document=t.document,this.selectedRange=t.selectedRange}perform(){return this.removeBlockAttribute(),this.applyBlockAttribute()}getSnapshot(){return{document:this.document,selectedRange:this.selectedRange}}removeBlockAttribute(){return this.findRangesOfBlocks().map(t=>this.document=this.document.removeAttributeAtRange(Wn,t))}applyBlockAttribute(){let t=0;this.findRangesOfPieces().forEach(e=>{e[1]-e[0]>1&&(e[0]+=t,e[1]+=t,this.document.getCharacterAtPosition(e[1])!==` +`&&(this.document=this.document.insertBlockBreakAtRange(e[1]),e[1]0&&arguments[0]!==void 0?arguments[0]:"",e=Mt.parse(t,{referenceElement:this.element}).getDocument();return this.loadDocument(e)}loadJSON(t){let{document:e,selectedRange:n}=t;return e=z.fromJSON(e),this.loadSnapshot({document:e,selectedRange:n})}loadSnapshot(t){return this.undoManager=new Ae(this.composition),this.composition.loadSnapshot(t)}getDocument(){return this.composition.document}getSelectedDocument(){return this.composition.getSelectedDocument()}getSnapshot(){return this.composition.getSnapshot()}toJSON(){return this.getSnapshot()}deleteInDirection(t){return this.composition.deleteInDirection(t)}insertAttachment(t){return this.composition.insertAttachment(t)}insertAttachments(t){return this.composition.insertAttachments(t)}insertDocument(t){return this.composition.insertDocument(t)}insertFile(t){return this.composition.insertFile(t)}insertFiles(t){return this.composition.insertFiles(t)}insertHTML(t){return this.composition.insertHTML(t)}insertString(t){return this.composition.insertString(t)}insertText(t){return this.composition.insertText(t)}insertLineBreak(){return this.composition.insertLineBreak()}getSelectedRange(){return this.composition.getSelectedRange()}getPosition(){return this.composition.getPosition()}getClientRectAtPosition(t){let e=this.getDocument().locationRangeFromRange([t,t+1]);return this.selectionManager.getClientRectAtLocationRange(e)}expandSelectionInDirection(t){return this.composition.expandSelectionInDirection(t)}moveCursorInDirection(t){return this.composition.moveCursorInDirection(t)}setSelectedRange(t){return this.composition.setSelectedRange(t)}activateAttribute(t){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return this.composition.setCurrentAttribute(t,e)}attributeIsActive(t){return this.composition.hasCurrentAttribute(t)}canActivateAttribute(t){return this.composition.canSetCurrentAttribute(t)}deactivateAttribute(t){return this.composition.removeCurrentAttribute(t)}setHTMLAtributeAtPosition(t,e,n){this.composition.setHTMLAtributeAtPosition(t,e,n)}canDecreaseNestingLevel(){return this.composition.canDecreaseNestingLevel()}canIncreaseNestingLevel(){return this.composition.canIncreaseNestingLevel()}decreaseNestingLevel(){if(this.canDecreaseNestingLevel())return this.composition.decreaseNestingLevel()}increaseNestingLevel(){if(this.canIncreaseNestingLevel())return this.composition.increaseNestingLevel()}canRedo(){return this.undoManager.canRedo()}canUndo(){return this.undoManager.canUndo()}recordUndoEntry(t){let{context:e,consolidatable:n}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.undoManager.recordUndoEntry(t,{context:e,consolidatable:n})}redo(){if(this.canRedo())return this.undoManager.redo()}undo(){if(this.canUndo())return this.undoManager.undo()}},Ze=class{constructor(t){this.element=t}findLocationFromContainerAndOffset(t,e){let{strict:n}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{strict:!0},r=0,o=!1,s={index:0,offset:0},l=this.findAttachmentElementParentForNode(t);l&&(t=l.parentNode,e=kn(l));let c=je(this.element,{usingFilter:Yr});for(;c.nextNode();){let u=c.currentNode;if(u===t&&ge(t)){Ht(u)||(s.offset+=e);break}if(u.parentNode===t){if(r++===e)break}else if(!Tt(t,u)&&r>0)break;Yi(u,{strict:n})?(o&&s.index++,s.offset=0,o=!0):s.offset+=Un(u)}return s}findContainerAndOffsetFromLocation(t){let e,n;if(t.index===0&&t.offset===0){for(e=this.element,n=0;e.firstChild;)if(e=e.firstChild,Rn(e)){n=1;break}return[e,n]}let[r,o]=this.findNodeAndOffsetFromLocation(t);if(r){if(ge(r))Un(r)===0?(e=r.parentNode.parentNode,n=kn(r.parentNode),Ht(r,{name:"right"})&&n++):(e=r,n=t.offset-o);else{if(e=r.parentNode,!Yi(r.previousSibling)&&!Rn(e))for(;r===e.lastChild&&(r=e,e=e.parentNode,!Rn(e)););n=kn(r),t.offset!==0&&n++}return[e,n]}}findNodeAndOffsetFromLocation(t){let e,n,r=0;for(let o of this.getSignificantNodesForIndex(t.index)){let s=Un(o);if(t.offset<=r+s)if(ge(o)){if(e=o,n=r,t.offset===n&&Ht(e))break}else e||(e=o,n=r);if(r+=s,r>t.offset)break}return[e,n]}findAttachmentElementParentForNode(t){for(;t&&t!==this.element;){if(Lt(t))return t;t=t.parentNode}}getSignificantNodesForIndex(t){let e=[],n=je(this.element,{usingFilter:Os}),r=!1;for(;n.nextNode();){let s=n.currentNode;var o;if(qt(s)){if(o!=null?o++:o=0,o===t)r=!0;else if(r)break}else r&&e.push(s)}return e}},Un=function(i){return i.nodeType===Node.TEXT_NODE?Ht(i)?0:i.textContent.length:j(i)==="br"||Lt(i)?1:0},Os=function(i){return Fs(i)===NodeFilter.FILTER_ACCEPT?Yr(i):NodeFilter.FILTER_REJECT},Fs=function(i){return Or(i)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},Yr=function(i){return Lt(i.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},Qe=class{createDOMRangeFromPoint(t){let e,{x:n,y:r}=t;if(document.caretPositionFromPoint){let{offsetNode:o,offset:s}=document.caretPositionFromPoint(n,r);return e=document.createRange(),e.setStart(o,s),e}if(document.caretRangeFromPoint)return document.caretRangeFromPoint(n,r);if(document.body.createTextRange){let o=me();try{let s=document.body.createTextRange();s.moveToPoint(n,r),s.select()}catch{}return e=me(),Wr(o),e}}getClientRectsForDOMRange(t){let e=Array.from(t.getClientRects());return[e[0],e[e.length-1]]}},ut=class extends R{constructor(t){super(...arguments),this.didMouseDown=this.didMouseDown.bind(this),this.selectionDidChange=this.selectionDidChange.bind(this),this.element=t,this.locationMapper=new Ze(this.element),this.pointMapper=new Qe,this.lockCount=0,S("mousedown",{onElement:this.element,withCallback:this.didMouseDown})}getLocationRange(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t.strict===!1?this.createLocationRangeFromDOMRange(me()):t.ignoreLock?this.currentLocationRange:this.lockedLocationRange?this.lockedLocationRange:this.currentLocationRange}setLocationRange(t){if(this.lockedLocationRange)return;t=y(t);let e=this.createDOMRangeFromLocationRange(t);e&&(Wr(e),this.updateCurrentLocationRange(t))}setLocationRangeFromPointRange(t){t=y(t);let e=this.getLocationAtPoint(t[0]),n=this.getLocationAtPoint(t[1]);this.setLocationRange([e,n])}getClientRectAtLocationRange(t){let e=this.createDOMRangeFromLocationRange(t);if(e)return this.getClientRectsForDOMRange(e)[1]}locationIsCursorTarget(t){let e=Array.from(this.findNodeAndOffsetFromLocation(t))[0];return Ht(e)}lock(){this.lockCount++==0&&(this.updateCurrentLocationRange(),this.lockedLocationRange=this.getLocationRange())}unlock(){if(--this.lockCount==0){let{lockedLocationRange:t}=this;if(this.lockedLocationRange=null,t!=null)return this.setLocationRange(t)}}clearSelection(){var t;return(t=jr())===null||t===void 0?void 0:t.removeAllRanges()}selectionIsCollapsed(){var t;return((t=me())===null||t===void 0?void 0:t.collapsed)===!0}selectionIsExpanded(){return!this.selectionIsCollapsed()}createLocationRangeFromDOMRange(t,e){if(t==null||!this.domRangeWithinElement(t))return;let n=this.findLocationFromContainerAndOffset(t.startContainer,t.startOffset,e);if(!n)return;let r=t.collapsed?void 0:this.findLocationFromContainerAndOffset(t.endContainer,t.endOffset,e);return y([n,r])}didMouseDown(){return this.pauseTemporarily()}pauseTemporarily(){let t;this.paused=!0;let e=()=>{if(this.paused=!1,clearTimeout(n),Array.from(t).forEach(r=>{r.destroy()}),Tt(document,this.element))return this.selectionDidChange()},n=setTimeout(e,200);t=["mousemove","keydown"].map(r=>S(r,{onElement:document,withCallback:e}))}selectionDidChange(){if(!this.paused&&!fi(this.element))return this.updateCurrentLocationRange()}updateCurrentLocationRange(t){var e,n;if((t??(t=this.createLocationRangeFromDOMRange(me())))&&!We(t,this.currentLocationRange))return this.currentLocationRange=t,(e=this.delegate)===null||e===void 0||(n=e.locationRangeDidChange)===null||n===void 0?void 0:n.call(e,this.currentLocationRange.slice(0))}createDOMRangeFromLocationRange(t){let e=this.findContainerAndOffsetFromLocation(t[0]),n=ht(t)?e:this.findContainerAndOffsetFromLocation(t[1])||e;if(e!=null&&n!=null){let r=document.createRange();return r.setStart(...Array.from(e||[])),r.setEnd(...Array.from(n||[])),r}}getLocationAtPoint(t){let e=this.createDOMRangeFromPoint(t);var n;if(e)return(n=this.createLocationRangeFromDOMRange(e))===null||n===void 0?void 0:n[0]}domRangeWithinElement(t){return t.collapsed?Tt(this.element,t.startContainer):Tt(this.element,t.startContainer)&&Tt(this.element,t.endContainer)}};ut.proxyMethod("locationMapper.findLocationFromContainerAndOffset"),ut.proxyMethod("locationMapper.findContainerAndOffsetFromLocation"),ut.proxyMethod("locationMapper.findNodeAndOffsetFromLocation"),ut.proxyMethod("pointMapper.createDOMRangeFromPoint"),ut.proxyMethod("pointMapper.getClientRectsForDOMRange");var Xr=Object.freeze({__proto__:null,Attachment:yt,AttachmentManager:Ge,AttachmentPiece:xt,Block:$,Composition:rt,Document:z,Editor:Xe,HTMLParser:Mt,HTMLSanitizer:Kt,LineBreakInsertion:$e,LocationMapper:Ze,ManagedAttachment:E,Piece:mt,PointMapper:Qe,SelectionManager:ut,SplittableList:$t,StringPiece:ve,Text:K,UndoManager:Ae}),Ps=Object.freeze({__proto__:null,ObjectView:gt,AttachmentView:be,BlockView:Je,DocumentView:Gt,PieceView:qe,PreviewableAttachmentView:ze,TextView:He}),{lang:Vn,css:kt,keyNames:Ms}=Ce,zn=function(i){return function(){let t=i.apply(this,arguments);t.do(),this.undos||(this.undos=[]),this.undos.push(t.undo)}},tn=class extends R{constructor(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(...arguments),q(this,"makeElementMutable",zn(()=>({do:()=>{this.element.dataset.trixMutable=!0},undo:()=>delete this.element.dataset.trixMutable}))),q(this,"addToolbar",zn(()=>{let o=p({tagName:"div",className:kt.attachmentToolbar,data:{trixMutable:!0},childNodes:p({tagName:"div",className:"trix-button-row",childNodes:p({tagName:"span",className:"trix-button-group trix-button-group--actions",childNodes:p({tagName:"button",className:"trix-button trix-button--remove",textContent:Vn.remove,attributes:{title:Vn.remove},data:{trixAction:"remove"}})})})});return this.attachment.isPreviewable()&&o.appendChild(p({tagName:"div",className:kt.attachmentMetadataContainer,childNodes:p({tagName:"span",className:kt.attachmentMetadata,childNodes:[p({tagName:"span",className:kt.attachmentName,textContent:this.attachment.getFilename(),attributes:{title:this.attachment.getFilename()}}),p({tagName:"span",className:kt.attachmentSize,textContent:this.attachment.getFormattedFilesize()})]})})),S("click",{onElement:o,withCallback:this.didClickToolbar}),S("click",{onElement:o,matchingSelector:"[data-trix-action]",withCallback:this.didClickActionButton}),he("trix-attachment-before-toolbar",{onElement:this.element,attributes:{toolbar:o,attachment:this.attachment}}),{do:()=>this.element.appendChild(o),undo:()=>At(o)}})),q(this,"installCaptionEditor",zn(()=>{let o=p({tagName:"textarea",className:kt.attachmentCaptionEditor,attributes:{placeholder:Vn.captionPlaceholder},data:{trixMutable:!0}});o.value=this.attachmentPiece.getCaption();let s=o.cloneNode();s.classList.add("trix-autoresize-clone"),s.tabIndex=-1;let l=function(){s.value=o.value,o.style.height=s.scrollHeight+"px"};S("input",{onElement:o,withCallback:l}),S("input",{onElement:o,withCallback:this.didInputCaption}),S("keydown",{onElement:o,withCallback:this.didKeyDownCaption}),S("change",{onElement:o,withCallback:this.didChangeCaption}),S("blur",{onElement:o,withCallback:this.didBlurCaption});let c=this.element.querySelector("figcaption"),u=c.cloneNode();return{do:()=>{if(c.style.display="none",u.appendChild(o),u.appendChild(s),u.classList.add("".concat(kt.attachmentCaption,"--editing")),c.parentElement.insertBefore(u,c),l(),this.options.editCaption)return Ai(()=>o.focus())},undo(){At(u),c.style.display=null}}})),this.didClickToolbar=this.didClickToolbar.bind(this),this.didClickActionButton=this.didClickActionButton.bind(this),this.didKeyDownCaption=this.didKeyDownCaption.bind(this),this.didInputCaption=this.didInputCaption.bind(this),this.didChangeCaption=this.didChangeCaption.bind(this),this.didBlurCaption=this.didBlurCaption.bind(this),this.attachmentPiece=t,this.element=e,this.container=n,this.options=r,this.attachment=this.attachmentPiece.attachment,j(this.element)==="a"&&(this.element=this.element.firstChild),this.install()}install(){this.makeElementMutable(),this.addToolbar(),this.attachment.isPreviewable()&&this.installCaptionEditor()}uninstall(){var t;let e=this.undos.pop();for(this.savePendingCaption();e;)e(),e=this.undos.pop();(t=this.delegate)===null||t===void 0||t.didUninstallAttachmentEditor(this)}savePendingCaption(){if(this.pendingCaption!=null){let o=this.pendingCaption;var t,e,n,r;this.pendingCaption=null,o?(t=this.delegate)===null||t===void 0||(e=t.attachmentEditorDidRequestUpdatingAttributesForAttachment)===null||e===void 0||e.call(t,{caption:o},this.attachment):(n=this.delegate)===null||n===void 0||(r=n.attachmentEditorDidRequestRemovingAttributeForAttachment)===null||r===void 0||r.call(n,"caption",this.attachment)}}didClickToolbar(t){return t.preventDefault(),t.stopPropagation()}didClickActionButton(t){var e;if(t.target.getAttribute("data-trix-action")==="remove")return(e=this.delegate)===null||e===void 0?void 0:e.attachmentEditorDidRequestRemovalOfAttachment(this.attachment)}didKeyDownCaption(t){var e,n;if(Ms[t.keyCode]==="return")return t.preventDefault(),this.savePendingCaption(),(e=this.delegate)===null||e===void 0||(n=e.attachmentEditorDidRequestDeselectingAttachment)===null||n===void 0?void 0:n.call(e,this.attachment)}didInputCaption(t){this.pendingCaption=t.target.value.replace(/\s/g," ").trim()}didChangeCaption(t){return this.savePendingCaption()}didBlurCaption(t){return this.savePendingCaption()}},en=class extends R{constructor(t,e){super(...arguments),this.didFocus=this.didFocus.bind(this),this.didBlur=this.didBlur.bind(this),this.didClickAttachment=this.didClickAttachment.bind(this),this.element=t,this.composition=e,this.documentView=new Gt(this.composition.document,{element:this.element}),S("focus",{onElement:this.element,withCallback:this.didFocus}),S("blur",{onElement:this.element,withCallback:this.didBlur}),S("click",{onElement:this.element,matchingSelector:"a[contenteditable=false]",preventDefault:!0}),S("mousedown",{onElement:this.element,matchingSelector:wt,withCallback:this.didClickAttachment}),S("click",{onElement:this.element,matchingSelector:"a".concat(wt),preventDefault:!0})}didFocus(t){var e;let n=()=>{var r,o;if(!this.focused)return this.focused=!0,(r=this.delegate)===null||r===void 0||(o=r.compositionControllerDidFocus)===null||o===void 0?void 0:o.call(r)};return((e=this.blurPromise)===null||e===void 0?void 0:e.then(n))||n()}didBlur(t){this.blurPromise=new Promise(e=>Ai(()=>{var n,r;return fi(this.element)||(this.focused=null,(n=this.delegate)===null||n===void 0||(r=n.compositionControllerDidBlur)===null||r===void 0||r.call(n)),this.blurPromise=null,e()}))}didClickAttachment(t,e){var n,r;let o=this.findAttachmentForElement(e),s=!!vt(t.target,{matchingSelector:"figcaption"});return(n=this.delegate)===null||n===void 0||(r=n.compositionControllerDidSelectAttachment)===null||r===void 0?void 0:r.call(n,o,{editCaption:s})}getSerializableElement(){return this.isEditingAttachment()?this.documentView.shadowElement:this.element}render(){var t,e,n,r,o,s;return this.revision!==this.composition.revision&&(this.documentView.setDocument(this.composition.document),this.documentView.render(),this.revision=this.composition.revision),this.canSyncDocumentView()&&!this.documentView.isSynced()&&((n=this.delegate)===null||n===void 0||(r=n.compositionControllerWillSyncDocumentView)===null||r===void 0||r.call(n),this.documentView.sync(),(o=this.delegate)===null||o===void 0||(s=o.compositionControllerDidSyncDocumentView)===null||s===void 0||s.call(o)),(t=this.delegate)===null||t===void 0||(e=t.compositionControllerDidRender)===null||e===void 0?void 0:e.call(t)}rerenderViewForObject(t){return this.invalidateViewForObject(t),this.render()}invalidateViewForObject(t){return this.documentView.invalidateViewForObject(t)}isViewCachingEnabled(){return this.documentView.isViewCachingEnabled()}enableViewCaching(){return this.documentView.enableViewCaching()}disableViewCaching(){return this.documentView.disableViewCaching()}refreshViewCache(){return this.documentView.garbageCollectCachedViews()}isEditingAttachment(){return!!this.attachmentEditor}installAttachmentEditorForAttachment(t,e){var n;if(((n=this.attachmentEditor)===null||n===void 0?void 0:n.attachment)===t)return;let r=this.documentView.findElementForObject(t);if(!r)return;this.uninstallAttachmentEditor();let o=this.composition.document.getAttachmentPieceForAttachment(t);this.attachmentEditor=new tn(o,r,this.element,e),this.attachmentEditor.delegate=this}uninstallAttachmentEditor(){var t;return(t=this.attachmentEditor)===null||t===void 0?void 0:t.uninstall()}didUninstallAttachmentEditor(){return this.attachmentEditor=null,this.render()}attachmentEditorDidRequestUpdatingAttributesForAttachment(t,e){var n,r;return(n=this.delegate)===null||n===void 0||(r=n.compositionControllerWillUpdateAttachment)===null||r===void 0||r.call(n,e),this.composition.updateAttributesForAttachment(t,e)}attachmentEditorDidRequestRemovingAttributeForAttachment(t,e){var n,r;return(n=this.delegate)===null||n===void 0||(r=n.compositionControllerWillUpdateAttachment)===null||r===void 0||r.call(n,e),this.composition.removeAttributeForAttachment(t,e)}attachmentEditorDidRequestRemovalOfAttachment(t){var e,n;return(e=this.delegate)===null||e===void 0||(n=e.compositionControllerDidRequestRemovalOfAttachment)===null||n===void 0?void 0:n.call(e,t)}attachmentEditorDidRequestDeselectingAttachment(t){var e,n;return(e=this.delegate)===null||e===void 0||(n=e.compositionControllerDidRequestDeselectingAttachment)===null||n===void 0?void 0:n.call(e,t)}canSyncDocumentView(){return!this.isEditingAttachment()}findAttachmentForElement(t){return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId,10))}},nn=class extends R{},Zr="data-trix-mutable",Bs="[".concat(Zr,"]"),_s={attributes:!0,childList:!0,characterData:!0,characterDataOldValue:!0,subtree:!0},rn=class extends R{constructor(t){super(t),this.didMutate=this.didMutate.bind(this),this.element=t,this.observer=new window.MutationObserver(this.didMutate),this.start()}start(){return this.reset(),this.observer.observe(this.element,_s)}stop(){return this.observer.disconnect()}didMutate(t){var e,n;if(this.mutations.push(...Array.from(this.findSignificantMutations(t)||[])),this.mutations.length)return(e=this.delegate)===null||e===void 0||(n=e.elementDidMutate)===null||n===void 0||n.call(e,this.getMutationSummary()),this.reset()}reset(){this.mutations=[]}findSignificantMutations(t){return t.filter(e=>this.mutationIsSignificant(e))}mutationIsSignificant(t){if(this.nodeIsMutable(t.target))return!1;for(let e of Array.from(this.nodesModifiedByMutation(t)))if(this.nodeIsSignificant(e))return!0;return!1}nodeIsSignificant(t){return t!==this.element&&!this.nodeIsMutable(t)&&!Or(t)}nodeIsMutable(t){return vt(t,{matchingSelector:Bs})}nodesModifiedByMutation(t){let e=[];switch(t.type){case"attributes":t.attributeName!==Zr&&e.push(t.target);break;case"characterData":e.push(t.target.parentNode),e.push(t.target);break;case"childList":e.push(...Array.from(t.addedNodes||[])),e.push(...Array.from(t.removedNodes||[]))}return e}getMutationSummary(){return this.getTextMutationSummary()}getTextMutationSummary(){let{additions:t,deletions:e}=this.getTextChangesFromCharacterData(),n=this.getTextChangesFromChildList();Array.from(n.additions).forEach(l=>{Array.from(t).includes(l)||t.push(l)}),e.push(...Array.from(n.deletions||[]));let r={},o=t.join("");o&&(r.textAdded=o);let s=e.join("");return s&&(r.textDeleted=s),r}getMutationsByType(t){return Array.from(this.mutations).filter(e=>e.type===t)}getTextChangesFromChildList(){let t,e,n=[],r=[];Array.from(this.getMutationsByType("childList")).forEach(l=>{n.push(...Array.from(l.addedNodes||[])),r.push(...Array.from(l.removedNodes||[]))}),n.length===0&&r.length===1&&qt(r[0])?(t=[],e=[` +`]):(t=li(n),e=li(r));let o=t.filter((l,c)=>l!==e[c]).map(ue),s=e.filter((l,c)=>l!==t[c]).map(ue);return{additions:o,deletions:s}}getTextChangesFromCharacterData(){let t,e,n=this.getMutationsByType("characterData");if(n.length){let r=n[0],o=n[n.length-1],s=function(l,c){let u,d;return l=Ot.box(l),(c=Ot.box(c)).length0&&arguments[0]!==void 0?arguments[0]:[],t=[];for(let e of Array.from(i))switch(e.nodeType){case Node.TEXT_NODE:t.push(e.data);break;case Node.ELEMENT_NODE:j(e)==="br"?t.push(` +`):t.push(...Array.from(li(e.childNodes)||[]))}return t},on=class extends Jt{constructor(t){super(...arguments),this.file=t}perform(t){let e=new FileReader;return e.onerror=()=>t(!1),e.onload=()=>{e.onerror=null;try{e.abort()}catch{}return t(!0,this.file)},e.readAsArrayBuffer(this.file)}},ci=class{constructor(t){this.element=t}shouldIgnore(t){return!!xe.samsungAndroid&&(this.previousEvent=this.event,this.event=t,this.checkSamsungKeyboardBuggyModeStart(),this.checkSamsungKeyboardBuggyModeEnd(),this.buggyMode)}checkSamsungKeyboardBuggyModeStart(){this.insertingLongTextAfterUnidentifiedChar()&&js(this.element.innerText,this.event.data)&&(this.buggyMode=!0,this.event.preventDefault())}checkSamsungKeyboardBuggyModeEnd(){this.buggyMode&&this.event.inputType!=="insertText"&&(this.buggyMode=!1)}insertingLongTextAfterUnidentifiedChar(){var t;return this.isBeforeInputInsertText()&&this.previousEventWasUnidentifiedKeydown()&&((t=this.event.data)===null||t===void 0?void 0:t.length)>50}isBeforeInputInsertText(){return this.event.type==="beforeinput"&&this.event.inputType==="insertText"}previousEventWasUnidentifiedKeydown(){var t,e;return((t=this.previousEvent)===null||t===void 0?void 0:t.type)==="keydown"&&((e=this.previousEvent)===null||e===void 0?void 0:e.key)==="Unidentified"}},js=(i,t)=>Sr(i)===Sr(t),Ws=new RegExp("(".concat("\uFFFC","|").concat(ln,"|").concat(bt,"|\\s)+"),"g"),Sr=i=>i.replace(Ws," ").trim(),Yt=class extends R{constructor(t){super(...arguments),this.element=t,this.mutationObserver=new rn(this.element),this.mutationObserver.delegate=this,this.flakyKeyboardDetector=new ci(this.element);for(let e in this.constructor.events)S(e,{onElement:this.element,withCallback:this.handlerFor(e)})}elementDidMutate(t){}editorWillSyncDocumentView(){return this.mutationObserver.stop()}editorDidSyncDocumentView(){return this.mutationObserver.start()}requestRender(){var t,e;return(t=this.delegate)===null||t===void 0||(e=t.inputControllerDidRequestRender)===null||e===void 0?void 0:e.call(t)}requestReparse(){var t,e;return(t=this.delegate)===null||t===void 0||(e=t.inputControllerDidRequestReparse)===null||e===void 0||e.call(t),this.requestRender()}attachFiles(t){let e=Array.from(t).map(n=>new on(n));return Promise.all(e).then(n=>{this.handleInput(function(){var r,o;return(r=this.delegate)===null||r===void 0||r.inputControllerWillAttachFiles(),(o=this.responder)===null||o===void 0||o.insertFiles(n),this.requestRender()})})}handlerFor(t){return e=>{e.defaultPrevented||this.handleInput(()=>{if(!fi(this.element)){if(this.flakyKeyboardDetector.shouldIgnore(e))return;this.eventName=t,this.constructor.events[t].call(this,e)}})}}handleInput(t){try{var e;(e=this.delegate)===null||e===void 0||e.inputControllerWillHandleInput(),t.call(this)}finally{var n;(n=this.delegate)===null||n===void 0||n.inputControllerDidHandleInput()}}createLinkHTML(t,e){let n=document.createElement("a");return n.href=t,n.textContent=e||t,n.outerHTML}},qn;q(Yt,"events",{});var{browser:Us,keyNames:Qr}=Ce,Vs=0,Z=class extends Yt{constructor(){super(...arguments),this.resetInputSummary()}setInputSummary(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.inputSummary.eventName=this.eventName;for(let e in t){let n=t[e];this.inputSummary[e]=n}return this.inputSummary}resetInputSummary(){this.inputSummary={}}reset(){return this.resetInputSummary(),Pt.reset()}elementDidMutate(t){var e,n;return this.isComposing()?(e=this.delegate)===null||e===void 0||(n=e.inputControllerDidAllowUnhandledInput)===null||n===void 0?void 0:n.call(e):this.handleInput(function(){return this.mutationIsSignificant(t)&&(this.mutationIsExpected(t)?this.requestRender():this.requestReparse()),this.reset()})}mutationIsExpected(t){let{textAdded:e,textDeleted:n}=t;if(this.inputSummary.preferDocument)return!0;let r=e!=null?e===this.inputSummary.textAdded:!this.inputSummary.textAdded,o=n!=null?this.inputSummary.didDelete:!this.inputSummary.didDelete,s=[` +`,` +`].includes(e)&&!r,l=n===` +`&&!o;if(s&&!l||l&&!s){let u=this.getSelectedRange();if(u){var c;let d=s?e.replace(/\n$/,"").length||-1:e?.length||1;if((c=this.responder)!==null&&c!==void 0&&c.positionIsBlockBreak(u[1]+d))return!0}}return r&&o}mutationIsSignificant(t){var e;let n=Object.keys(t).length>0,r=((e=this.compositionInput)===null||e===void 0?void 0:e.getEndData())==="";return n||!r}getCompositionInput(){if(this.isComposing())return this.compositionInput;this.compositionInput=new it(this)}isComposing(){return this.compositionInput&&!this.compositionInput.isEnded()}deleteInDirection(t,e){var n;return((n=this.responder)===null||n===void 0?void 0:n.deleteInDirection(t))!==!1?this.setInputSummary({didDelete:!0}):e?(e.preventDefault(),this.requestRender()):void 0}serializeSelectionToDataTransfer(t){var e;if(!function(r){if(r==null||!r.setData)return!1;for(let o in Qi){let s=Qi[o];try{if(r.setData(o,s),!r.getData(o)===s)return!1}catch{return!1}}return!0}(t))return;let n=(e=this.responder)===null||e===void 0?void 0:e.getSelectedDocument().toSerializableDocument();return t.setData("application/x-trix-document",JSON.stringify(n)),t.setData("text/html",Gt.render(n).innerHTML),t.setData("text/plain",n.toString().replace(/\n$/,"")),!0}canAcceptDataTransfer(t){let e={};return Array.from(t?.types||[]).forEach(n=>{e[n]=!0}),e.Files||e["application/x-trix-document"]||e["text/html"]||e["text/plain"]}getPastedHTMLUsingHiddenElement(t){let e=this.getSelectedRange(),n={position:"absolute",left:"".concat(window.pageXOffset,"px"),top:"".concat(window.pageYOffset,"px"),opacity:0},r=p({style:n,tagName:"div",editable:!0});return document.body.appendChild(r),r.focus(),requestAnimationFrame(()=>{let o=r.innerHTML;return At(r),this.setSelectedRange(e),t(o)})}};q(Z,"events",{keydown(i){this.isComposing()||this.resetInputSummary(),this.inputSummary.didInput=!0;let t=Qr[i.keyCode];if(t){var e;let r=this.keys;["ctrl","alt","shift","meta"].forEach(o=>{var s;i["".concat(o,"Key")]&&(o==="ctrl"&&(o="control"),r=(s=r)===null||s===void 0?void 0:s[o])}),((e=r)===null||e===void 0?void 0:e[t])!=null&&(this.setInputSummary({keyName:t}),Pt.reset(),r[t].call(this,i))}if(Br(i)){let r=String.fromCharCode(i.keyCode).toLowerCase();if(r){var n;let o=["alt","shift"].map(s=>{if(i["".concat(s,"Key")])return s}).filter(s=>s);o.push(r),(n=this.delegate)!==null&&n!==void 0&&n.inputControllerDidReceiveKeyboardCommand(o)&&i.preventDefault()}}},keypress(i){if(this.inputSummary.eventName!=null||i.metaKey||i.ctrlKey&&!i.altKey)return;let t=Hs(i);var e,n;return t?((e=this.delegate)===null||e===void 0||e.inputControllerWillPerformTyping(),(n=this.responder)===null||n===void 0||n.insertString(t),this.setInputSummary({textAdded:t,didDelete:this.selectionIsExpanded()})):void 0},textInput(i){let{data:t}=i,{textAdded:e}=this.inputSummary;if(e&&e!==t&&e.toUpperCase()===t){var n;let r=this.getSelectedRange();return this.setSelectedRange([r[0],r[1]+e.length]),(n=this.responder)===null||n===void 0||n.insertString(t),this.setInputSummary({textAdded:t}),this.setSelectedRange(r)}},dragenter(i){i.preventDefault()},dragstart(i){var t,e;return this.serializeSelectionToDataTransfer(i.dataTransfer),this.draggedRange=this.getSelectedRange(),(t=this.delegate)===null||t===void 0||(e=t.inputControllerDidStartDrag)===null||e===void 0?void 0:e.call(t)},dragover(i){if(this.draggedRange||this.canAcceptDataTransfer(i.dataTransfer)){i.preventDefault();let n={x:i.clientX,y:i.clientY};var t,e;if(!Xt(n,this.draggingPoint))return this.draggingPoint=n,(t=this.delegate)===null||t===void 0||(e=t.inputControllerDidReceiveDragOverPoint)===null||e===void 0?void 0:e.call(t,this.draggingPoint)}},dragend(i){var t,e;(t=this.delegate)===null||t===void 0||(e=t.inputControllerDidCancelDrag)===null||e===void 0||e.call(t),this.draggedRange=null,this.draggingPoint=null},drop(i){var t,e;i.preventDefault();let n=(t=i.dataTransfer)===null||t===void 0?void 0:t.files,r=i.dataTransfer.getData("application/x-trix-document"),o={x:i.clientX,y:i.clientY};if((e=this.responder)===null||e===void 0||e.setLocationRangeFromPointRange(o),n!=null&&n.length)this.attachFiles(n);else if(this.draggedRange){var s,l;(s=this.delegate)===null||s===void 0||s.inputControllerWillMoveText(),(l=this.responder)===null||l===void 0||l.moveTextFromRange(this.draggedRange),this.draggedRange=null,this.requestRender()}else if(r){var c;let u=z.fromJSONString(r);(c=this.responder)===null||c===void 0||c.insertDocument(u),this.requestRender()}this.draggedRange=null,this.draggingPoint=null},cut(i){var t,e;if((t=this.responder)!==null&&t!==void 0&&t.selectionIsExpanded()&&(this.serializeSelectionToDataTransfer(i.clipboardData)&&i.preventDefault(),(e=this.delegate)===null||e===void 0||e.inputControllerWillCutText(),this.deleteInDirection("backward"),i.defaultPrevented))return this.requestRender()},copy(i){var t;(t=this.responder)!==null&&t!==void 0&&t.selectionIsExpanded()&&this.serializeSelectionToDataTransfer(i.clipboardData)&&i.preventDefault()},paste(i){let t=i.clipboardData||i.testClipboardData,e={clipboard:t};if(!t||Js(i))return void this.getPastedHTMLUsingHiddenElement(F=>{var k,ot,Et;return e.type="text/html",e.html=F,(k=this.delegate)===null||k===void 0||k.inputControllerWillPaste(e),(ot=this.responder)===null||ot===void 0||ot.insertHTML(e.html),this.requestRender(),(Et=this.delegate)===null||Et===void 0?void 0:Et.inputControllerDidPaste(e)});let n=t.getData("URL"),r=t.getData("text/html"),o=t.getData("public.url-name");if(n){var s,l,c;let F;e.type="text/html",F=o?xi(o).trim():n,e.html=this.createLinkHTML(n,F),(s=this.delegate)===null||s===void 0||s.inputControllerWillPaste(e),this.setInputSummary({textAdded:F,didDelete:this.selectionIsExpanded()}),(l=this.responder)===null||l===void 0||l.insertHTML(e.html),this.requestRender(),(c=this.delegate)===null||c===void 0||c.inputControllerDidPaste(e)}else if(Mr(t)){var u,d,C;e.type="text/plain",e.string=t.getData("text/plain"),(u=this.delegate)===null||u===void 0||u.inputControllerWillPaste(e),this.setInputSummary({textAdded:e.string,didDelete:this.selectionIsExpanded()}),(d=this.responder)===null||d===void 0||d.insertString(e.string),this.requestRender(),(C=this.delegate)===null||C===void 0||C.inputControllerDidPaste(e)}else if(r){var T,H,tt;e.type="text/html",e.html=r,(T=this.delegate)===null||T===void 0||T.inputControllerWillPaste(e),(H=this.responder)===null||H===void 0||H.insertHTML(e.html),this.requestRender(),(tt=this.delegate)===null||tt===void 0||tt.inputControllerDidPaste(e)}else if(Array.from(t.types).includes("Files")){var M,pt;let F=(M=t.items)===null||M===void 0||(M=M[0])===null||M===void 0||(pt=M.getAsFile)===null||pt===void 0?void 0:pt.call(M);if(F){var Ct,Zt,Qt;let k=zs(F);!F.name&&k&&(F.name="pasted-file-".concat(++Vs,".").concat(k)),e.type="File",e.file=F,(Ct=this.delegate)===null||Ct===void 0||Ct.inputControllerWillAttachFiles(),(Zt=this.responder)===null||Zt===void 0||Zt.insertFile(e.file),this.requestRender(),(Qt=this.delegate)===null||Qt===void 0||Qt.inputControllerDidPaste(e)}}i.preventDefault()},compositionstart(i){return this.getCompositionInput().start(i.data)},compositionupdate(i){return this.getCompositionInput().update(i.data)},compositionend(i){return this.getCompositionInput().end(i.data)},beforeinput(i){this.inputSummary.didInput=!0},input(i){return this.inputSummary.didInput=!0,i.stopPropagation()}}),q(Z,"keys",{backspace(i){var t;return(t=this.delegate)===null||t===void 0||t.inputControllerWillPerformTyping(),this.deleteInDirection("backward",i)},delete(i){var t;return(t=this.delegate)===null||t===void 0||t.inputControllerWillPerformTyping(),this.deleteInDirection("forward",i)},return(i){var t,e;return this.setInputSummary({preferDocument:!0}),(t=this.delegate)===null||t===void 0||t.inputControllerWillPerformTyping(),(e=this.responder)===null||e===void 0?void 0:e.insertLineBreak()},tab(i){var t,e;(t=this.responder)!==null&&t!==void 0&&t.canIncreaseNestingLevel()&&((e=this.responder)===null||e===void 0||e.increaseNestingLevel(),this.requestRender(),i.preventDefault())},left(i){var t;if(this.selectionIsInCursorTarget())return i.preventDefault(),(t=this.responder)===null||t===void 0?void 0:t.moveCursorInDirection("backward")},right(i){var t;if(this.selectionIsInCursorTarget())return i.preventDefault(),(t=this.responder)===null||t===void 0?void 0:t.moveCursorInDirection("forward")},control:{d(i){var t;return(t=this.delegate)===null||t===void 0||t.inputControllerWillPerformTyping(),this.deleteInDirection("forward",i)},h(i){var t;return(t=this.delegate)===null||t===void 0||t.inputControllerWillPerformTyping(),this.deleteInDirection("backward",i)},o(i){var t,e;return i.preventDefault(),(t=this.delegate)===null||t===void 0||t.inputControllerWillPerformTyping(),(e=this.responder)===null||e===void 0||e.insertString(` +`,{updatePosition:!1}),this.requestRender()}},shift:{return(i){var t,e;(t=this.delegate)===null||t===void 0||t.inputControllerWillPerformTyping(),(e=this.responder)===null||e===void 0||e.insertString(` +`),this.requestRender(),i.preventDefault()},tab(i){var t,e;(t=this.responder)!==null&&t!==void 0&&t.canDecreaseNestingLevel()&&((e=this.responder)===null||e===void 0||e.decreaseNestingLevel(),this.requestRender(),i.preventDefault())},left(i){if(this.selectionIsInCursorTarget())return i.preventDefault(),this.expandSelectionInDirection("backward")},right(i){if(this.selectionIsInCursorTarget())return i.preventDefault(),this.expandSelectionInDirection("forward")}},alt:{backspace(i){var t;return this.setInputSummary({preferDocument:!1}),(t=this.delegate)===null||t===void 0?void 0:t.inputControllerWillPerformTyping()}},meta:{backspace(i){var t;return this.setInputSummary({preferDocument:!1}),(t=this.delegate)===null||t===void 0?void 0:t.inputControllerWillPerformTyping()}}}),Z.proxyMethod("responder?.getSelectedRange"),Z.proxyMethod("responder?.setSelectedRange"),Z.proxyMethod("responder?.expandSelectionInDirection"),Z.proxyMethod("responder?.selectionIsInCursorTarget"),Z.proxyMethod("responder?.selectionIsExpanded");var zs=i=>{var t;return(t=i.type)===null||t===void 0||(t=t.match(/\/(\w+)$/))===null||t===void 0?void 0:t[1]},qs=!((qn=" ".codePointAt)===null||qn===void 0||!qn.call(" ",0)),Hs=function(i){if(i.key&&qs&&i.key.codePointAt(0)===i.keyCode)return i.key;{let t;if(i.which===null?t=i.keyCode:i.which!==0&&i.charCode!==0&&(t=i.charCode),t!=null&&Qr[t]!=="escape")return Ot.fromCodepoints([t]).toString()}},Js=function(i){let t=i.clipboardData;if(t){if(t.types.includes("text/html")){for(let e of t.types){let n=/^CorePasteboardFlavorType/.test(e),r=/^dyn\./.test(e)&&t.getData(e);if(n||r)return!0}return!1}{let e=t.types.includes("com.apple.webarchive"),n=t.types.includes("com.apple.flat-rtfd");return e||n}}},it=class extends R{constructor(t){super(...arguments),this.inputController=t,this.responder=this.inputController.responder,this.delegate=this.inputController.delegate,this.inputSummary=this.inputController.inputSummary,this.data={}}start(t){if(this.data.start=t,this.isSignificant()){var e,n;this.inputSummary.eventName==="keypress"&&this.inputSummary.textAdded&&((n=this.responder)===null||n===void 0||n.deleteInDirection("left")),this.selectionIsExpanded()||(this.insertPlaceholder(),this.requestRender()),this.range=(e=this.responder)===null||e===void 0?void 0:e.getSelectedRange()}}update(t){if(this.data.update=t,this.isSignificant()){let e=this.selectPlaceholder();e&&(this.forgetPlaceholder(),this.range=e)}}end(t){return this.data.end=t,this.isSignificant()?(this.forgetPlaceholder(),this.canApplyToDocument()?(this.setInputSummary({preferDocument:!0,didInput:!1}),(e=this.delegate)===null||e===void 0||e.inputControllerWillPerformTyping(),(n=this.responder)===null||n===void 0||n.setSelectedRange(this.range),(r=this.responder)===null||r===void 0||r.insertString(this.data.end),(o=this.responder)===null||o===void 0?void 0:o.setSelectedRange(this.range[0]+this.data.end.length)):this.data.start!=null||this.data.update!=null?(this.requestReparse(),this.inputController.reset()):void 0):this.inputController.reset();var e,n,r,o}getEndData(){return this.data.end}isEnded(){return this.getEndData()!=null}isSignificant(){return!Us.composesExistingText||this.inputSummary.didInput}canApplyToDocument(){var t,e;return((t=this.data.start)===null||t===void 0?void 0:t.length)===0&&((e=this.data.end)===null||e===void 0?void 0:e.length)>0&&this.range}};it.proxyMethod("inputController.setInputSummary"),it.proxyMethod("inputController.requestRender"),it.proxyMethod("inputController.requestReparse"),it.proxyMethod("responder?.selectionIsExpanded"),it.proxyMethod("responder?.insertPlaceholder"),it.proxyMethod("responder?.selectPlaceholder"),it.proxyMethod("responder?.forgetPlaceholder");var Dt=class extends Yt{constructor(){super(...arguments),this.render=this.render.bind(this)}elementDidMutate(){return this.scheduledRender?this.composing?(t=this.delegate)===null||t===void 0||(e=t.inputControllerDidAllowUnhandledInput)===null||e===void 0?void 0:e.call(t):void 0:this.reparse();var t,e}scheduleRender(){return this.scheduledRender?this.scheduledRender:this.scheduledRender=requestAnimationFrame(this.render)}render(){var t,e;cancelAnimationFrame(this.scheduledRender),this.scheduledRender=null,this.composing||(e=this.delegate)===null||e===void 0||e.render(),(t=this.afterRender)===null||t===void 0||t.call(this),this.afterRender=null}reparse(){var t;return(t=this.delegate)===null||t===void 0?void 0:t.reparse()}insertString(){var t;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1?arguments[1]:void 0;return(t=this.delegate)===null||t===void 0||t.inputControllerWillPerformTyping(),this.withTargetDOMRange(function(){var r;return(r=this.responder)===null||r===void 0?void 0:r.insertString(e,n)})}toggleAttributeIfSupported(t){var e;if(Qn().includes(t))return(e=this.delegate)===null||e===void 0||e.inputControllerWillPerformFormatting(t),this.withTargetDOMRange(function(){var n;return(n=this.responder)===null||n===void 0?void 0:n.toggleCurrentAttribute(t)})}activateAttributeIfSupported(t,e){var n;if(Qn().includes(t))return(n=this.delegate)===null||n===void 0||n.inputControllerWillPerformFormatting(t),this.withTargetDOMRange(function(){var r;return(r=this.responder)===null||r===void 0?void 0:r.setCurrentAttribute(t,e)})}deleteInDirection(t){let{recordUndoEntry:e}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{recordUndoEntry:!0};var n;e&&((n=this.delegate)===null||n===void 0||n.inputControllerWillPerformTyping());let r=()=>{var s;return(s=this.responder)===null||s===void 0?void 0:s.deleteInDirection(t)},o=this.getTargetDOMRange({minLength:this.composing?1:2});return o?this.withTargetDOMRange(o,r):r()}withTargetDOMRange(t,e){var n;return typeof t=="function"&&(e=t,t=this.getTargetDOMRange()),t?(n=this.responder)===null||n===void 0?void 0:n.withTargetDOMRange(t,e.bind(this)):(Pt.reset(),e.call(this))}getTargetDOMRange(){var t,e;let{minLength:n}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{minLength:0},r=(t=(e=this.event).getTargetRanges)===null||t===void 0?void 0:t.call(e);if(r&&r.length){let o=Ks(r[0]);if(n===0||o.toString().length>=n)return o}}withEvent(t,e){let n;this.event=t;try{n=e.call(this)}finally{this.event=null}return n}};q(Dt,"events",{keydown(i){if(Br(i)){var t;let e=Ys(i);(t=this.delegate)!==null&&t!==void 0&&t.inputControllerDidReceiveKeyboardCommand(e)&&i.preventDefault()}else{let e=i.key;i.altKey&&(e+="+Alt"),i.shiftKey&&(e+="+Shift");let n=this.constructor.keys[e];if(n)return this.withEvent(i,n)}},paste(i){var t;let e,n=(t=i.clipboardData)===null||t===void 0?void 0:t.getData("URL");return to(i)?(i.preventDefault(),this.attachFiles(i.clipboardData.files)):$s(i)?(i.preventDefault(),e={type:"text/plain",string:i.clipboardData.getData("text/plain")},(r=this.delegate)===null||r===void 0||r.inputControllerWillPaste(e),(o=this.responder)===null||o===void 0||o.insertString(e.string),this.render(),(s=this.delegate)===null||s===void 0?void 0:s.inputControllerDidPaste(e)):n?(i.preventDefault(),e={type:"text/html",html:this.createLinkHTML(n)},(l=this.delegate)===null||l===void 0||l.inputControllerWillPaste(e),(c=this.responder)===null||c===void 0||c.insertHTML(e.html),this.render(),(u=this.delegate)===null||u===void 0?void 0:u.inputControllerDidPaste(e)):void 0;var r,o,s,l,c,u},beforeinput(i){let t=this.constructor.inputTypes[i.inputType],e=(n=i,!(!/iPhone|iPad/.test(navigator.userAgent)||n.inputType&&n.inputType!=="insertParagraph"));var n;t&&(this.withEvent(i,t),e||this.scheduleRender()),e&&this.render()},input(i){Pt.reset()},dragstart(i){var t,e;(t=this.responder)!==null&&t!==void 0&&t.selectionContainsAttachments()&&(i.dataTransfer.setData("application/x-trix-dragging",!0),this.dragging={range:(e=this.responder)===null||e===void 0?void 0:e.getSelectedRange(),point:Jn(i)})},dragenter(i){Hn(i)&&i.preventDefault()},dragover(i){if(this.dragging){i.preventDefault();let e=Jn(i);var t;if(!Xt(e,this.dragging.point))return this.dragging.point=e,(t=this.responder)===null||t===void 0?void 0:t.setLocationRangeFromPointRange(e)}else Hn(i)&&i.preventDefault()},drop(i){var t,e;if(this.dragging)return i.preventDefault(),(t=this.delegate)===null||t===void 0||t.inputControllerWillMoveText(),(e=this.responder)===null||e===void 0||e.moveTextFromRange(this.dragging.range),this.dragging=null,this.scheduleRender();if(Hn(i)){var n;i.preventDefault();let r=Jn(i);return(n=this.responder)===null||n===void 0||n.setLocationRangeFromPointRange(r),this.attachFiles(i.dataTransfer.files)}},dragend(){var i;this.dragging&&((i=this.responder)===null||i===void 0||i.setSelectedRange(this.dragging.range),this.dragging=null)},compositionend(i){this.composing&&(this.composing=!1,xe.recentAndroid||this.scheduleRender())}}),q(Dt,"keys",{ArrowLeft(){var i,t;if((i=this.responder)!==null&&i!==void 0&&i.shouldManageMovingCursorInDirection("backward"))return this.event.preventDefault(),(t=this.responder)===null||t===void 0?void 0:t.moveCursorInDirection("backward")},ArrowRight(){var i,t;if((i=this.responder)!==null&&i!==void 0&&i.shouldManageMovingCursorInDirection("forward"))return this.event.preventDefault(),(t=this.responder)===null||t===void 0?void 0:t.moveCursorInDirection("forward")},Backspace(){var i,t,e;if((i=this.responder)!==null&&i!==void 0&&i.shouldManageDeletingInDirection("backward"))return this.event.preventDefault(),(t=this.delegate)===null||t===void 0||t.inputControllerWillPerformTyping(),(e=this.responder)===null||e===void 0||e.deleteInDirection("backward"),this.render()},Tab(){var i,t;if((i=this.responder)!==null&&i!==void 0&&i.canIncreaseNestingLevel())return this.event.preventDefault(),(t=this.responder)===null||t===void 0||t.increaseNestingLevel(),this.render()},"Tab+Shift"(){var i,t;if((i=this.responder)!==null&&i!==void 0&&i.canDecreaseNestingLevel())return this.event.preventDefault(),(t=this.responder)===null||t===void 0||t.decreaseNestingLevel(),this.render()}}),q(Dt,"inputTypes",{deleteByComposition(){return this.deleteInDirection("backward",{recordUndoEntry:!1})},deleteByCut(){return this.deleteInDirection("backward")},deleteByDrag(){return this.event.preventDefault(),this.withTargetDOMRange(function(){var i;this.deleteByDragRange=(i=this.responder)===null||i===void 0?void 0:i.getSelectedRange()})},deleteCompositionText(){return this.deleteInDirection("backward",{recordUndoEntry:!1})},deleteContent(){return this.deleteInDirection("backward")},deleteContentBackward(){return this.deleteInDirection("backward")},deleteContentForward(){return this.deleteInDirection("forward")},deleteEntireSoftLine(){return this.deleteInDirection("forward")},deleteHardLineBackward(){return this.deleteInDirection("backward")},deleteHardLineForward(){return this.deleteInDirection("forward")},deleteSoftLineBackward(){return this.deleteInDirection("backward")},deleteSoftLineForward(){return this.deleteInDirection("forward")},deleteWordBackward(){return this.deleteInDirection("backward")},deleteWordForward(){return this.deleteInDirection("forward")},formatBackColor(){return this.activateAttributeIfSupported("backgroundColor",this.event.data)},formatBold(){return this.toggleAttributeIfSupported("bold")},formatFontColor(){return this.activateAttributeIfSupported("color",this.event.data)},formatFontName(){return this.activateAttributeIfSupported("font",this.event.data)},formatIndent(){var i;if((i=this.responder)!==null&&i!==void 0&&i.canIncreaseNestingLevel())return this.withTargetDOMRange(function(){var t;return(t=this.responder)===null||t===void 0?void 0:t.increaseNestingLevel()})},formatItalic(){return this.toggleAttributeIfSupported("italic")},formatJustifyCenter(){return this.toggleAttributeIfSupported("justifyCenter")},formatJustifyFull(){return this.toggleAttributeIfSupported("justifyFull")},formatJustifyLeft(){return this.toggleAttributeIfSupported("justifyLeft")},formatJustifyRight(){return this.toggleAttributeIfSupported("justifyRight")},formatOutdent(){var i;if((i=this.responder)!==null&&i!==void 0&&i.canDecreaseNestingLevel())return this.withTargetDOMRange(function(){var t;return(t=this.responder)===null||t===void 0?void 0:t.decreaseNestingLevel()})},formatRemove(){this.withTargetDOMRange(function(){for(let e in(i=this.responder)===null||i===void 0?void 0:i.getCurrentAttributes()){var i,t;(t=this.responder)===null||t===void 0||t.removeCurrentAttribute(e)}})},formatSetBlockTextDirection(){return this.activateAttributeIfSupported("blockDir",this.event.data)},formatSetInlineTextDirection(){return this.activateAttributeIfSupported("textDir",this.event.data)},formatStrikeThrough(){return this.toggleAttributeIfSupported("strike")},formatSubscript(){return this.toggleAttributeIfSupported("sub")},formatSuperscript(){return this.toggleAttributeIfSupported("sup")},formatUnderline(){return this.toggleAttributeIfSupported("underline")},historyRedo(){var i;return(i=this.delegate)===null||i===void 0?void 0:i.inputControllerWillPerformRedo()},historyUndo(){var i;return(i=this.delegate)===null||i===void 0?void 0:i.inputControllerWillPerformUndo()},insertCompositionText(){return this.composing=!0,this.insertString(this.event.data)},insertFromComposition(){return this.composing=!1,this.insertString(this.event.data)},insertFromDrop(){let i=this.deleteByDragRange;var t;if(i)return this.deleteByDragRange=null,(t=this.delegate)===null||t===void 0||t.inputControllerWillMoveText(),this.withTargetDOMRange(function(){var e;return(e=this.responder)===null||e===void 0?void 0:e.moveTextFromRange(i)})},insertFromPaste(){let{dataTransfer:i}=this.event,t={dataTransfer:i},e=i.getData("URL"),n=i.getData("text/html");if(e){var r;let c;this.event.preventDefault(),t.type="text/html";let u=i.getData("public.url-name");c=u?xi(u).trim():e,t.html=this.createLinkHTML(e,c),(r=this.delegate)===null||r===void 0||r.inputControllerWillPaste(t),this.withTargetDOMRange(function(){var d;return(d=this.responder)===null||d===void 0?void 0:d.insertHTML(t.html)}),this.afterRender=()=>{var d;return(d=this.delegate)===null||d===void 0?void 0:d.inputControllerDidPaste(t)}}else if(Mr(i)){var o;t.type="text/plain",t.string=i.getData("text/plain"),(o=this.delegate)===null||o===void 0||o.inputControllerWillPaste(t),this.withTargetDOMRange(function(){var c;return(c=this.responder)===null||c===void 0?void 0:c.insertString(t.string)}),this.afterRender=()=>{var c;return(c=this.delegate)===null||c===void 0?void 0:c.inputControllerDidPaste(t)}}else if(Gs(this.event)){var s;t.type="File",t.file=i.files[0],(s=this.delegate)===null||s===void 0||s.inputControllerWillPaste(t),this.withTargetDOMRange(function(){var c;return(c=this.responder)===null||c===void 0?void 0:c.insertFile(t.file)}),this.afterRender=()=>{var c;return(c=this.delegate)===null||c===void 0?void 0:c.inputControllerDidPaste(t)}}else if(n){var l;this.event.preventDefault(),t.type="text/html",t.html=n,(l=this.delegate)===null||l===void 0||l.inputControllerWillPaste(t),this.withTargetDOMRange(function(){var c;return(c=this.responder)===null||c===void 0?void 0:c.insertHTML(t.html)}),this.afterRender=()=>{var c;return(c=this.delegate)===null||c===void 0?void 0:c.inputControllerDidPaste(t)}}},insertFromYank(){return this.insertString(this.event.data)},insertLineBreak(){return this.insertString(` +`)},insertLink(){return this.activateAttributeIfSupported("href",this.event.data)},insertOrderedList(){return this.toggleAttributeIfSupported("number")},insertParagraph(){var i;return(i=this.delegate)===null||i===void 0||i.inputControllerWillPerformTyping(),this.withTargetDOMRange(function(){var t;return(t=this.responder)===null||t===void 0?void 0:t.insertLineBreak()})},insertReplacementText(){let i=this.event.dataTransfer.getData("text/plain"),t=this.event.getTargetRanges()[0];this.withTargetDOMRange(t,()=>{this.insertString(i,{updatePosition:!1})})},insertText(){var i;return this.insertString(this.event.data||((i=this.event.dataTransfer)===null||i===void 0?void 0:i.getData("text/plain")))},insertTranspose(){return this.insertString(this.event.data)},insertUnorderedList(){return this.toggleAttributeIfSupported("bullet")}});var Ks=function(i){let t=document.createRange();return t.setStart(i.startContainer,i.startOffset),t.setEnd(i.endContainer,i.endOffset),t},Hn=i=>{var t;return Array.from(((t=i.dataTransfer)===null||t===void 0?void 0:t.types)||[]).includes("Files")},Gs=i=>{var t;return((t=i.dataTransfer.files)===null||t===void 0?void 0:t[0])&&!to(i)&&!(e=>{let{dataTransfer:n}=e;return n.types.includes("Files")&&n.types.includes("text/html")&&n.getData("text/html").includes("urn:schemas-microsoft-com:office:office")})(i)},to=function(i){let t=i.clipboardData;if(t)return Array.from(t.types).filter(e=>e.match(/file/i)).length===t.types.length&&t.files.length>=1},$s=function(i){let t=i.clipboardData;if(t)return t.types.includes("text/plain")&&t.types.length===1},Ys=function(i){let t=[];return i.altKey&&t.push("alt"),i.shiftKey&&t.push("shift"),t.push(i.key),t},Jn=i=>({x:i.clientX,y:i.clientY}),ui="[data-trix-attribute]",hi="[data-trix-action]",Xs="".concat(ui,", ").concat(hi),cn="[data-trix-dialog]",Zs="".concat(cn,"[data-trix-active]"),Qs="".concat(cn," [data-trix-method]"),kr="".concat(cn," [data-trix-input]"),Rr=(i,t)=>(t||(t=zt(i)),i.querySelector("[data-trix-input][name='".concat(t,"']"))),Tr=i=>i.getAttribute("data-trix-action"),zt=i=>i.getAttribute("data-trix-attribute")||i.getAttribute("data-trix-dialog-attribute"),sn=class extends R{constructor(t){super(t),this.didClickActionButton=this.didClickActionButton.bind(this),this.didClickAttributeButton=this.didClickAttributeButton.bind(this),this.didClickDialogButton=this.didClickDialogButton.bind(this),this.didKeyDownDialogInput=this.didKeyDownDialogInput.bind(this),this.element=t,this.attributes={},this.actions={},this.resetDialogInputs(),S("mousedown",{onElement:this.element,matchingSelector:hi,withCallback:this.didClickActionButton}),S("mousedown",{onElement:this.element,matchingSelector:ui,withCallback:this.didClickAttributeButton}),S("click",{onElement:this.element,matchingSelector:Xs,preventDefault:!0}),S("click",{onElement:this.element,matchingSelector:Qs,withCallback:this.didClickDialogButton}),S("keydown",{onElement:this.element,matchingSelector:kr,withCallback:this.didKeyDownDialogInput})}didClickActionButton(t,e){var n;(n=this.delegate)===null||n===void 0||n.toolbarDidClickButton(),t.preventDefault();let r=Tr(e);return this.getDialog(r)?this.toggleDialog(r):(o=this.delegate)===null||o===void 0?void 0:o.toolbarDidInvokeAction(r,e);var o}didClickAttributeButton(t,e){var n;(n=this.delegate)===null||n===void 0||n.toolbarDidClickButton(),t.preventDefault();let r=zt(e);var o;return this.getDialog(r)?this.toggleDialog(r):(o=this.delegate)===null||o===void 0||o.toolbarDidToggleAttribute(r),this.refreshAttributeButtons()}didClickDialogButton(t,e){let n=vt(e,{matchingSelector:cn});return this[e.getAttribute("data-trix-method")].call(this,n)}didKeyDownDialogInput(t,e){if(t.keyCode===13){t.preventDefault();let n=e.getAttribute("name"),r=this.getDialog(n);this.setAttribute(r)}if(t.keyCode===27)return t.preventDefault(),this.hideDialog()}updateActions(t){return this.actions=t,this.refreshActionButtons()}refreshActionButtons(){return this.eachActionButton((t,e)=>{t.disabled=this.actions[e]===!1})}eachActionButton(t){return Array.from(this.element.querySelectorAll(hi)).map(e=>t(e,Tr(e)))}updateAttributes(t){return this.attributes=t,this.refreshAttributeButtons()}refreshAttributeButtons(){return this.eachAttributeButton((t,e)=>(t.disabled=this.attributes[e]===!1,this.attributes[e]||this.dialogIsVisible(e)?(t.setAttribute("data-trix-active",""),t.classList.add("trix-active")):(t.removeAttribute("data-trix-active"),t.classList.remove("trix-active"))))}eachAttributeButton(t){return Array.from(this.element.querySelectorAll(ui)).map(e=>t(e,zt(e)))}applyKeyboardCommand(t){let e=JSON.stringify(t.sort());for(let n of Array.from(this.element.querySelectorAll("[data-trix-key]"))){let r=n.getAttribute("data-trix-key").split("+");if(JSON.stringify(r.sort())===e)return he("mousedown",{onElement:n}),!0}return!1}dialogIsVisible(t){let e=this.getDialog(t);if(e)return e.hasAttribute("data-trix-active")}toggleDialog(t){return this.dialogIsVisible(t)?this.hideDialog():this.showDialog(t)}showDialog(t){var e,n;this.hideDialog(),(e=this.delegate)===null||e===void 0||e.toolbarWillShowDialog();let r=this.getDialog(t);r.setAttribute("data-trix-active",""),r.classList.add("trix-active"),Array.from(r.querySelectorAll("input[disabled]")).forEach(s=>{s.removeAttribute("disabled")});let o=zt(r);if(o){let s=Rr(r,t);s&&(s.value=this.attributes[o]||"",s.select())}return(n=this.delegate)===null||n===void 0?void 0:n.toolbarDidShowDialog(t)}setAttribute(t){var e;let n=zt(t),r=Rr(t,n);return!r.willValidate||(r.setCustomValidity(""),r.checkValidity()&&this.isSafeAttribute(r))?((e=this.delegate)===null||e===void 0||e.toolbarDidUpdateAttribute(n,r.value),this.hideDialog()):(r.setCustomValidity("Invalid value"),r.setAttribute("data-trix-validate",""),r.classList.add("trix-validate"),r.focus())}isSafeAttribute(t){return!t.hasAttribute("data-trix-validate-href")||Ve.isValidAttribute("a","href",t.value)}removeAttribute(t){var e;let n=zt(t);return(e=this.delegate)===null||e===void 0||e.toolbarDidRemoveAttribute(n),this.hideDialog()}hideDialog(){let t=this.element.querySelector(Zs);var e;if(t)return t.removeAttribute("data-trix-active"),t.classList.remove("trix-active"),this.resetDialogInputs(),(e=this.delegate)===null||e===void 0?void 0:e.toolbarDidHideDialog((n=>n.getAttribute("data-trix-dialog"))(t))}resetDialogInputs(){Array.from(this.element.querySelectorAll(kr)).forEach(t=>{t.setAttribute("disabled","disabled"),t.removeAttribute("data-trix-validate"),t.classList.remove("trix-validate")})}getDialog(t){return this.element.querySelector("[data-trix-dialog=".concat(t,"]"))}},Nt=class extends nn{constructor(t){let{editorElement:e,document:n,html:r}=t;super(...arguments),this.editorElement=e,this.selectionManager=new ut(this.editorElement),this.selectionManager.delegate=this,this.composition=new rt,this.composition.delegate=this,this.attachmentManager=new Ge(this.composition.getAttachments()),this.attachmentManager.delegate=this,this.inputController=bi.getLevel()===2?new Dt(this.editorElement):new Z(this.editorElement),this.inputController.delegate=this,this.inputController.responder=this.composition,this.compositionController=new en(this.editorElement,this.composition),this.compositionController.delegate=this,this.toolbarController=new sn(this.editorElement.toolbarElement),this.toolbarController.delegate=this,this.editor=new Xe(this.composition,this.selectionManager,this.editorElement),n?this.editor.loadDocument(n):this.editor.loadHTML(r)}registerSelectionManager(){return Pt.registerSelectionManager(this.selectionManager)}unregisterSelectionManager(){return Pt.unregisterSelectionManager(this.selectionManager)}render(){return this.compositionController.render()}reparse(){return this.composition.replaceHTML(this.editorElement.innerHTML)}compositionDidChangeDocument(t){if(this.notifyEditorElement("document-change"),!this.handlingInput)return this.render()}compositionDidChangeCurrentAttributes(t){return this.currentAttributes=t,this.toolbarController.updateAttributes(this.currentAttributes),this.updateCurrentActions(),this.notifyEditorElement("attributes-change",{attributes:this.currentAttributes})}compositionDidPerformInsertionAtRange(t){this.pasting&&(this.pastedRange=t)}compositionShouldAcceptFile(t){return this.notifyEditorElement("file-accept",{file:t})}compositionDidAddAttachment(t){let e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement("attachment-add",{attachment:e})}compositionDidEditAttachment(t){this.compositionController.rerenderViewForObject(t);let e=this.attachmentManager.manageAttachment(t);return this.notifyEditorElement("attachment-edit",{attachment:e}),this.notifyEditorElement("change")}compositionDidChangeAttachmentPreviewURL(t){return this.compositionController.invalidateViewForObject(t),this.notifyEditorElement("change")}compositionDidRemoveAttachment(t){let e=this.attachmentManager.unmanageAttachment(t);return this.notifyEditorElement("attachment-remove",{attachment:e})}compositionDidStartEditingAttachment(t,e){return this.attachmentLocationRange=this.composition.document.getLocationRangeOfAttachment(t),this.compositionController.installAttachmentEditorForAttachment(t,e),this.selectionManager.setLocationRange(this.attachmentLocationRange)}compositionDidStopEditingAttachment(t){this.compositionController.uninstallAttachmentEditor(),this.attachmentLocationRange=null}compositionDidRequestChangingSelectionToLocationRange(t){if(!this.loadingSnapshot||this.isFocused())return this.requestedLocationRange=t,this.compositionRevisionWhenLocationRangeRequested=this.composition.revision,this.handlingInput?void 0:this.render()}compositionWillLoadSnapshot(){this.loadingSnapshot=!0}compositionDidLoadSnapshot(){this.compositionController.refreshViewCache(),this.render(),this.loadingSnapshot=!1}getSelectionManager(){return this.selectionManager}attachmentManagerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}compositionControllerWillSyncDocumentView(){return this.inputController.editorWillSyncDocumentView(),this.selectionManager.lock(),this.selectionManager.clearSelection()}compositionControllerDidSyncDocumentView(){return this.inputController.editorDidSyncDocumentView(),this.selectionManager.unlock(),this.updateCurrentActions(),this.notifyEditorElement("sync")}compositionControllerDidRender(){this.requestedLocationRange&&(this.compositionRevisionWhenLocationRangeRequested===this.composition.revision&&this.selectionManager.setLocationRange(this.requestedLocationRange),this.requestedLocationRange=null,this.compositionRevisionWhenLocationRangeRequested=null),this.renderedCompositionRevision!==this.composition.revision&&(this.runEditorFilters(),this.composition.updateCurrentAttributes(),this.notifyEditorElement("render")),this.renderedCompositionRevision=this.composition.revision}compositionControllerDidFocus(){return this.isFocusedInvisibly()&&this.setLocationRange({index:0,offset:0}),this.toolbarController.hideDialog(),this.notifyEditorElement("focus")}compositionControllerDidBlur(){return this.notifyEditorElement("blur")}compositionControllerDidSelectAttachment(t,e){return this.toolbarController.hideDialog(),this.composition.editAttachment(t,e)}compositionControllerDidRequestDeselectingAttachment(t){let e=this.attachmentLocationRange||this.composition.document.getLocationRangeOfAttachment(t);return this.selectionManager.setLocationRange(e[1])}compositionControllerWillUpdateAttachment(t){return this.editor.recordUndoEntry("Edit Attachment",{context:t.id,consolidatable:!0})}compositionControllerDidRequestRemovalOfAttachment(t){return this.removeAttachment(t)}inputControllerWillHandleInput(){this.handlingInput=!0,this.requestedRender=!1}inputControllerDidRequestRender(){this.requestedRender=!0}inputControllerDidHandleInput(){if(this.handlingInput=!1,this.requestedRender)return this.requestedRender=!1,this.render()}inputControllerDidAllowUnhandledInput(){return this.notifyEditorElement("change")}inputControllerDidRequestReparse(){return this.reparse()}inputControllerWillPerformTyping(){return this.recordTypingUndoEntry()}inputControllerWillPerformFormatting(t){return this.recordFormattingUndoEntry(t)}inputControllerWillCutText(){return this.editor.recordUndoEntry("Cut")}inputControllerWillPaste(t){return this.editor.recordUndoEntry("Paste"),this.pasting=!0,this.notifyEditorElement("before-paste",{paste:t})}inputControllerDidPaste(t){return t.range=this.pastedRange,this.pastedRange=null,this.pasting=null,this.notifyEditorElement("paste",{paste:t})}inputControllerWillMoveText(){return this.editor.recordUndoEntry("Move")}inputControllerWillAttachFiles(){return this.editor.recordUndoEntry("Drop Files")}inputControllerWillPerformUndo(){return this.editor.undo()}inputControllerWillPerformRedo(){return this.editor.redo()}inputControllerDidReceiveKeyboardCommand(t){return this.toolbarController.applyKeyboardCommand(t)}inputControllerDidStartDrag(){this.locationRangeBeforeDrag=this.selectionManager.getLocationRange()}inputControllerDidReceiveDragOverPoint(t){return this.selectionManager.setLocationRangeFromPointRange(t)}inputControllerDidCancelDrag(){this.selectionManager.setLocationRange(this.locationRangeBeforeDrag),this.locationRangeBeforeDrag=null}locationRangeDidChange(t){return this.composition.updateCurrentAttributes(),this.updateCurrentActions(),this.attachmentLocationRange&&!We(this.attachmentLocationRange,t)&&this.composition.stopEditingAttachment(),this.notifyEditorElement("selection-change")}toolbarDidClickButton(){if(!this.getLocationRange())return this.setLocationRange({index:0,offset:0})}toolbarDidInvokeAction(t,e){return this.invokeAction(t,e)}toolbarDidToggleAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.toggleCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidUpdateAttribute(t,e){if(this.recordFormattingUndoEntry(t),this.composition.setCurrentAttribute(t,e),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarDidRemoveAttribute(t){if(this.recordFormattingUndoEntry(t),this.composition.removeCurrentAttribute(t),this.render(),!this.selectionFrozen)return this.editorElement.focus()}toolbarWillShowDialog(t){return this.composition.expandSelectionForEditing(),this.freezeSelection()}toolbarDidShowDialog(t){return this.notifyEditorElement("toolbar-dialog-show",{dialogName:t})}toolbarDidHideDialog(t){return this.thawSelection(),this.editorElement.focus(),this.notifyEditorElement("toolbar-dialog-hide",{dialogName:t})}freezeSelection(){if(!this.selectionFrozen)return this.selectionManager.lock(),this.composition.freezeSelection(),this.selectionFrozen=!0,this.render()}thawSelection(){if(this.selectionFrozen)return this.composition.thawSelection(),this.selectionManager.unlock(),this.selectionFrozen=!1,this.render()}canInvokeAction(t){return!!this.actionIsExternal(t)||!((e=this.actions[t])===null||e===void 0||(e=e.test)===null||e===void 0||!e.call(this));var e}invokeAction(t,e){return this.actionIsExternal(t)?this.notifyEditorElement("action-invoke",{actionName:t,invokingElement:e}):(n=this.actions[t])===null||n===void 0||(n=n.perform)===null||n===void 0?void 0:n.call(this);var n}actionIsExternal(t){return/^x-./.test(t)}getCurrentActions(){let t={};for(let e in this.actions)t[e]=this.canInvokeAction(e);return t}updateCurrentActions(){let t=this.getCurrentActions();if(!Xt(t,this.currentActions))return this.currentActions=t,this.toolbarController.updateActions(this.currentActions),this.notifyEditorElement("actions-change",{actions:this.currentActions})}runEditorFilters(){let t=this.composition.getSnapshot();if(Array.from(this.editor.filters).forEach(r=>{let{document:o,selectedRange:s}=t;t=r.call(this.editor,t)||{},t.document||(t.document=o),t.selectedRange||(t.selectedRange=s)}),e=t,n=this.composition.getSnapshot(),!We(e.selectedRange,n.selectedRange)||!e.document.isEqualTo(n.document))return this.composition.loadSnapshot(t);var e,n}updateInputElement(){let t=function(e,n){let r=Ls[n];if(r)return r(e);throw new Error("unknown content type: ".concat(n))}(this.compositionController.getSerializableElement(),"text/html");return this.editorElement.setFormValue(t)}notifyEditorElement(t,e){switch(t){case"document-change":this.documentChangedSinceLastRender=!0;break;case"render":this.documentChangedSinceLastRender&&(this.documentChangedSinceLastRender=!1,this.notifyEditorElement("change"));break;case"change":case"attachment-add":case"attachment-edit":case"attachment-remove":this.updateInputElement()}return this.editorElement.notify(t,e)}removeAttachment(t){return this.editor.recordUndoEntry("Delete Attachment"),this.composition.removeAttachment(t),this.render()}recordFormattingUndoEntry(t){let e=L(t),n=this.selectionManager.getLocationRange();if(e||!ht(n))return this.editor.recordUndoEntry("Formatting",{context:this.getUndoContext(),consolidatable:!0})}recordTypingUndoEntry(){return this.editor.recordUndoEntry("Typing",{context:this.getUndoContext(this.currentAttributes),consolidatable:!0})}getUndoContext(){for(var t=arguments.length,e=new Array(t),n=0;n0?Math.floor(new Date().getTime()/Yn.interval):0}isFocused(){var t;return this.editorElement===((t=this.editorElement.ownerDocument)===null||t===void 0?void 0:t.activeElement)}isFocusedInvisibly(){return this.isFocused()&&!this.getLocationRange()}get actions(){return this.constructor.actions}};q(Nt,"actions",{undo:{test(){return this.editor.canUndo()},perform(){return this.editor.undo()}},redo:{test(){return this.editor.canRedo()},perform(){return this.editor.redo()}},link:{test(){return this.editor.canActivateAttribute("href")}},increaseNestingLevel:{test(){return this.editor.canIncreaseNestingLevel()},perform(){return this.editor.increaseNestingLevel()&&this.render()}},decreaseNestingLevel:{test(){return this.editor.canDecreaseNestingLevel()},perform(){return this.editor.decreaseNestingLevel()&&this.render()}},attachFiles:{test:()=>!0,perform(){return bi.pickFiles(this.editor.insertFiles)}}}),Nt.proxyMethod("getSelectionManager().setLocationRange"),Nt.proxyMethod("getSelectionManager().getLocationRange");var ta=Object.freeze({__proto__:null,AttachmentEditorController:tn,CompositionController:en,Controller:nn,EditorController:Nt,InputController:Yt,Level0InputController:Z,Level2InputController:Dt,ToolbarController:sn}),ea=Object.freeze({__proto__:null,MutationObserver:rn,SelectionChangeObserver:Ue}),na=Object.freeze({__proto__:null,FileVerificationOperation:on,ImagePreloadOperation:Ke});Pr("trix-toolbar",`%t { + display: block; +} + +%t { + white-space: nowrap; +} + +%t [data-trix-dialog] { + display: none; +} + +%t [data-trix-dialog][data-trix-active] { + display: block; +} + +%t [data-trix-dialog] [data-trix-validate]:invalid { + background-color: #ffdddd; +}`);var an=class extends HTMLElement{connectedCallback(){this.innerHTML===""&&(this.innerHTML=Fr.getDefaultHTML())}},ia=0,ra=function(i){if(!i.hasAttribute("contenteditable"))return i.setAttribute("contenteditable",""),function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e.times=1,S(t,e)}("focus",{onElement:i,withCallback:()=>oa(i)})},oa=function(i){return sa(i),aa(i)},sa=function(i){var t,e;if((t=(e=document).queryCommandSupported)!==null&&t!==void 0&&t.call(e,"enableObjectResizing"))return document.execCommand("enableObjectResizing",!1,!1),S("mscontrolselect",{onElement:i,preventDefault:!0})},aa=function(i){var t,e;if((t=(e=document).queryCommandSupported)!==null&&t!==void 0&&t.call(e,"DefaultParagraphSeparator")){let{tagName:n}=W.default;if(["div","p"].includes(n))return document.execCommand("DefaultParagraphSeparator",!1,n)}},wr=xe.forcesObjectResizing?{display:"inline",width:"auto"}:{display:"inline-block",width:"1px"};Pr("trix-editor",`%t { + display: block; +} + +%t:empty::before { + content: attr(placeholder); + color: graytext; + cursor: text; + pointer-events: none; + white-space: pre-line; +} + +%t a[contenteditable=false] { + cursor: text; +} + +%t img { + max-width: 100%; + height: auto; +} + +%t `.concat(wt,` figcaption textarea { + resize: none; +} + +%t `).concat(wt,` figcaption textarea.trix-autoresize-clone { + position: absolute; + left: -9999px; + max-height: 0px; +} + +%t `).concat(wt,` figcaption[data-trix-placeholder]:empty::before { + content: attr(data-trix-placeholder); + color: graytext; +} + +%t [data-trix-cursor-target] { + display: `).concat(wr.display,` !important; + width: `).concat(wr.width,` !important; + padding: 0 !important; + margin: 0 !important; + border: none !important; +} + +%t [data-trix-cursor-target=left] { + vertical-align: top !important; + margin-left: -1px !important; +} + +%t [data-trix-cursor-target=right] { + vertical-align: bottom !important; + margin-right: -1px !important; +}`));var ct=new WeakMap,ce=new WeakSet,di=class{constructor(t){var e,n;Jr(e=this,n=ce),n.add(e),pe(this,ct,{writable:!0,value:void 0}),this.element=t,Ci(this,ct,t.attachInternals())}connectedCallback(){Fe(this,ce,Pe).call(this)}disconnectedCallback(){}get labels(){return x(this,ct).labels}get disabled(){var t;return(t=this.element.inputElement)===null||t===void 0?void 0:t.disabled}set disabled(t){this.element.toggleAttribute("disabled",t)}get required(){return this.element.hasAttribute("required")}set required(t){this.element.toggleAttribute("required",t),Fe(this,ce,Pe).call(this)}get validity(){return x(this,ct).validity}get validationMessage(){return x(this,ct).validationMessage}get willValidate(){return x(this,ct).willValidate}setFormValue(t){Fe(this,ce,Pe).call(this)}checkValidity(){return x(this,ct).checkValidity()}reportValidity(){return x(this,ct).reportValidity()}setCustomValidity(t){Fe(this,ce,Pe).call(this,t)}};function Pe(){let i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",{required:t,value:e}=this.element,n=t&&!e,r=!!i,o=p("input",{required:t}),s=i||o.validationMessage;x(this,ct).setValidity({valueMissing:n,customError:r},s)}var Kn=new WeakMap,Gn=new WeakMap,$n=new WeakMap,gi=class{constructor(t){pe(this,Kn,{writable:!0,value:void 0}),pe(this,Gn,{writable:!0,value:e=>{e.defaultPrevented||e.target===this.element.form&&this.element.reset()}}),pe(this,$n,{writable:!0,value:e=>{if(e.defaultPrevented||this.element.contains(e.target))return;let n=vt(e.target,{matchingSelector:"label"});n&&Array.from(this.labels).includes(n)&&this.element.focus()}}),this.element=t}connectedCallback(){Ci(this,Kn,function(t){if(t.hasAttribute("aria-label")||t.hasAttribute("aria-labelledby"))return;let e=function(){let n=Array.from(t.labels).map(o=>{if(!o.contains(t))return o.textContent}).filter(o=>o),r=n.join(" ");return r?t.setAttribute("aria-label",r):t.removeAttribute("aria-label")};return e(),S("focus",{onElement:t,withCallback:e})}(this.element)),window.addEventListener("reset",x(this,Gn),!1),window.addEventListener("click",x(this,$n),!1)}disconnectedCallback(){var t;(t=x(this,Kn))===null||t===void 0||t.destroy(),window.removeEventListener("reset",x(this,Gn),!1),window.removeEventListener("click",x(this,$n),!1)}get labels(){let t=[];this.element.id&&this.element.ownerDocument&&t.push(...Array.from(this.element.ownerDocument.querySelectorAll("label[for='".concat(this.element.id,"']"))||[]));let e=vt(this.element,{matchingSelector:"label"});return e&&[this.element,null].includes(e.control)&&t.push(e),t}get disabled(){return console.warn("This browser does not support the [disabled] attribute for trix-editor elements."),!1}set disabled(t){console.warn("This browser does not support the [disabled] attribute for trix-editor elements.")}get required(){return console.warn("This browser does not support the [required] attribute for trix-editor elements."),!1}set required(t){console.warn("This browser does not support the [required] attribute for trix-editor elements.")}get validity(){return console.warn("This browser does not support the validity property for trix-editor elements."),null}get validationMessage(){return console.warn("This browser does not support the validationMessage property for trix-editor elements."),""}get willValidate(){return console.warn("This browser does not support the willValidate property for trix-editor elements."),!1}setFormValue(t){}checkValidity(){return console.warn("This browser does not support checkValidity() for trix-editor elements."),!0}reportValidity(){return console.warn("This browser does not support reportValidity() for trix-editor elements."),!0}setCustomValidity(t){console.warn("This browser does not support setCustomValidity(validationMessage) for trix-editor elements.")}},P=new WeakMap,ye=class extends HTMLElement{constructor(){super(),pe(this,P,{writable:!0,value:void 0}),Ci(this,P,this.constructor.formAssociated?new di(this):new gi(this))}get trixId(){return this.hasAttribute("trix-id")?this.getAttribute("trix-id"):(this.setAttribute("trix-id",++ia),this.trixId)}get labels(){return x(this,P).labels}get disabled(){return x(this,P).disabled}set disabled(t){x(this,P).disabled=t}get required(){return x(this,P).required}set required(t){x(this,P).required=t}get validity(){return x(this,P).validity}get validationMessage(){return x(this,P).validationMessage}get willValidate(){return x(this,P).willValidate}get type(){return this.localName}get toolbarElement(){var t;if(this.hasAttribute("toolbar"))return(t=this.ownerDocument)===null||t===void 0?void 0:t.getElementById(this.getAttribute("toolbar"));if(this.parentNode){let e="trix-toolbar-".concat(this.trixId);this.setAttribute("toolbar",e);let n=p("trix-toolbar",{id:e});return this.parentNode.insertBefore(n,this),n}}get form(){var t;return(t=this.inputElement)===null||t===void 0?void 0:t.form}get inputElement(){var t;if(this.hasAttribute("input"))return(t=this.ownerDocument)===null||t===void 0?void 0:t.getElementById(this.getAttribute("input"));if(this.parentNode){let e="trix-input-".concat(this.trixId);this.setAttribute("input",e);let n=p("input",{type:"hidden",id:e});return this.parentNode.insertBefore(n,this.nextElementSibling),n}}get editor(){var t;return(t=this.editorController)===null||t===void 0?void 0:t.editor}get name(){var t;return(t=this.inputElement)===null||t===void 0?void 0:t.name}get value(){var t;return(t=this.inputElement)===null||t===void 0?void 0:t.value}set value(t){var e;this.defaultValue=t,(e=this.editor)===null||e===void 0||e.loadHTML(this.defaultValue)}notify(t,e){if(this.editorController)return he("trix-".concat(t),{onElement:this,attributes:e})}setFormValue(t){this.inputElement&&(this.inputElement.value=t,x(this,P).setFormValue(t))}connectedCallback(){this.hasAttribute("data-trix-internal")||(ra(this),function(t){t.hasAttribute("role")||t.setAttribute("role","textbox")}(this),this.editorController||(he("trix-before-initialize",{onElement:this}),this.editorController=new Nt({editorElement:this,html:this.defaultValue=this.value}),requestAnimationFrame(()=>he("trix-initialize",{onElement:this}))),this.editorController.registerSelectionManager(),x(this,P).connectedCallback(),function(t){!document.querySelector(":focus")&&t.hasAttribute("autofocus")&&document.querySelector("[autofocus]")===t&&t.focus()}(this))}disconnectedCallback(){var t;(t=this.editorController)===null||t===void 0||t.unregisterSelectionManager(),x(this,P).disconnectedCallback()}checkValidity(){return x(this,P).checkValidity()}reportValidity(){return x(this,P).reportValidity()}setCustomValidity(t){x(this,P).setCustomValidity(t)}formDisabledCallback(t){this.inputElement&&(this.inputElement.disabled=t),this.toggleAttribute("contenteditable",!t)}formResetCallback(){this.reset()}reset(){this.value=this.defaultValue}};q(ye,"formAssociated","ElementInternals"in window);var Q={VERSION:po,config:Ce,core:Ds,models:Xr,views:Ps,controllers:ta,observers:ea,operations:na,elements:Object.freeze({__proto__:null,TrixEditorElement:ye,TrixToolbarElement:an}),filters:Object.freeze({__proto__:null,Filter:Ye,attachmentGalleryFilter:$r})};Object.assign(Q,Xr),window.Trix=Q,setTimeout(function(){customElements.get("trix-toolbar")||customElements.define("trix-toolbar",an),customElements.get("trix-editor")||customElements.define("trix-editor",ye)},0);Q.config.blockAttributes.default.tagName="p";Q.config.blockAttributes.default.breakOnReturn=!0;Q.config.blockAttributes.heading={tagName:"h2",terminal:!0,breakOnReturn:!0,group:!1};Q.config.blockAttributes.subHeading={tagName:"h3",terminal:!0,breakOnReturn:!0,group:!1};Q.config.textAttributes.underline={style:{textDecoration:"underline"},inheritable:!0,parser:i=>window.getComputedStyle(i).textDecoration.includes("underline")};Q.Block.prototype.breaksOnReturn=function(){let i=this.getLastAttribute();return Q.config.blockAttributes[i||"default"]?.breakOnReturn??!1};Q.LineBreakInsertion.prototype.shouldInsertBlockBreak=function(){return this.block.hasAttributes()&&this.block.isListItem()&&!this.block.isEmpty()?this.startLocation.offset>0:this.shouldBreakFormattedBlock()?!1:this.breaksOnReturn};function la({state:i}){return{state:i,init:function(){this.$refs.trixValue.value=this.state,this.$refs.trix.editor?.loadHTML(this.state??""),this.$watch("state",()=>{document.activeElement!==this.$refs.trix&&(this.$refs.trixValue.value=this.state,this.$refs.trix.editor?.loadHTML(this.state??""))})}}}export{la as default}; +/*! Bundled license information: + +trix/dist/trix.esm.min.js: + (*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE *) +*/ diff --git a/ems-sense/public/js/filament/forms/components/select.js b/ems-sense/public/js/filament/forms/components/select.js new file mode 100644 index 0000000..7b3c78f --- /dev/null +++ b/ems-sense/public/js/filament/forms/components/select.js @@ -0,0 +1,6 @@ +var lt=Object.create;var Ge=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var ut=Object.getOwnPropertyNames;var ht=Object.getPrototypeOf,dt=Object.prototype.hasOwnProperty;var ft=(se,ie)=>()=>(ie||se((ie={exports:{}}).exports,ie),ie.exports);var pt=(se,ie,X,me)=>{if(ie&&typeof ie=="object"||typeof ie=="function")for(let j of ut(ie))!dt.call(se,j)&&j!==X&&Ge(se,j,{get:()=>ie[j],enumerable:!(me=ct(ie,j))||me.enumerable});return se};var mt=(se,ie,X)=>(X=se!=null?lt(ht(se)):{},pt(ie||!se||!se.__esModule?Ge(X,"default",{value:se,enumerable:!0}):X,se));var $e=ft((Ae,Ye)=>{(function(ie,X){typeof Ae=="object"&&typeof Ye=="object"?Ye.exports=X():typeof define=="function"&&define.amd?define([],X):typeof Ae=="object"?Ae.Choices=X():ie.Choices=X()})(window,function(){return function(){"use strict";var se={282:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.clearChoices=i.activateChoices=i.filterChoices=i.addChoice=void 0;var _=b(883),h=function(c){var l=c.value,O=c.label,L=c.id,y=c.groupId,D=c.disabled,k=c.elementId,Q=c.customProperties,Z=c.placeholder,ne=c.keyCode;return{type:_.ACTION_TYPES.ADD_CHOICE,value:l,label:O,id:L,groupId:y,disabled:D,elementId:k,customProperties:Q,placeholder:Z,keyCode:ne}};i.addChoice=h;var d=function(c){return{type:_.ACTION_TYPES.FILTER_CHOICES,results:c}};i.filterChoices=d;var a=function(c){return c===void 0&&(c=!0),{type:_.ACTION_TYPES.ACTIVATE_CHOICES,active:c}};i.activateChoices=a;var r=function(){return{type:_.ACTION_TYPES.CLEAR_CHOICES}};i.clearChoices=r},783:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.addGroup=void 0;var _=b(883),h=function(d){var a=d.value,r=d.id,c=d.active,l=d.disabled;return{type:_.ACTION_TYPES.ADD_GROUP,value:a,id:r,active:c,disabled:l}};i.addGroup=h},464:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.highlightItem=i.removeItem=i.addItem=void 0;var _=b(883),h=function(r){var c=r.value,l=r.label,O=r.id,L=r.choiceId,y=r.groupId,D=r.customProperties,k=r.placeholder,Q=r.keyCode;return{type:_.ACTION_TYPES.ADD_ITEM,value:c,label:l,id:O,choiceId:L,groupId:y,customProperties:D,placeholder:k,keyCode:Q}};i.addItem=h;var d=function(r,c){return{type:_.ACTION_TYPES.REMOVE_ITEM,id:r,choiceId:c}};i.removeItem=d;var a=function(r,c){return{type:_.ACTION_TYPES.HIGHLIGHT_ITEM,id:r,highlighted:c}};i.highlightItem=a},137:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.setIsLoading=i.resetTo=i.clearAll=void 0;var _=b(883),h=function(){return{type:_.ACTION_TYPES.CLEAR_ALL}};i.clearAll=h;var d=function(r){return{type:_.ACTION_TYPES.RESET_TO,state:r}};i.resetTo=d;var a=function(r){return{type:_.ACTION_TYPES.SET_IS_LOADING,isLoading:r}};i.setIsLoading=a},373:function(j,i,b){var _=this&&this.__spreadArray||function(g,e,t){if(t||arguments.length===2)for(var n=0,s=e.length,v;n=0?this._store.getGroupById(v):null;return this._store.dispatch((0,l.highlightItem)(n,!0)),t&&this.passedElement.triggerEvent(y.EVENTS.highlightItem,{id:n,value:M,label:f,groupValue:u&&u.value?u.value:null}),this},g.prototype.unhighlightItem=function(e){if(!e||!e.id)return this;var t=e.id,n=e.groupId,s=n===void 0?-1:n,v=e.value,P=v===void 0?"":v,M=e.label,K=M===void 0?"":M,f=s>=0?this._store.getGroupById(s):null;return this._store.dispatch((0,l.highlightItem)(t,!1)),this.passedElement.triggerEvent(y.EVENTS.highlightItem,{id:t,value:P,label:K,groupValue:f&&f.value?f.value:null}),this},g.prototype.highlightAll=function(){var e=this;return this._store.items.forEach(function(t){return e.highlightItem(t)}),this},g.prototype.unhighlightAll=function(){var e=this;return this._store.items.forEach(function(t){return e.unhighlightItem(t)}),this},g.prototype.removeActiveItemsByValue=function(e){var t=this;return this._store.activeItems.filter(function(n){return n.value===e}).forEach(function(n){return t._removeItem(n)}),this},g.prototype.removeActiveItems=function(e){var t=this;return this._store.activeItems.filter(function(n){var s=n.id;return s!==e}).forEach(function(n){return t._removeItem(n)}),this},g.prototype.removeHighlightedItems=function(e){var t=this;return e===void 0&&(e=!1),this._store.highlightedActiveItems.forEach(function(n){t._removeItem(n),e&&t._triggerChange(n.value)}),this},g.prototype.showDropdown=function(e){var t=this;return this.dropdown.isActive?this:(requestAnimationFrame(function(){t.dropdown.show(),t.containerOuter.open(t.dropdown.distanceFromTopWindow),!e&&t._canSearch&&t.input.focus(),t.passedElement.triggerEvent(y.EVENTS.showDropdown,{})}),this)},g.prototype.hideDropdown=function(e){var t=this;return this.dropdown.isActive?(requestAnimationFrame(function(){t.dropdown.hide(),t.containerOuter.close(),!e&&t._canSearch&&(t.input.removeActiveDescendant(),t.input.blur()),t.passedElement.triggerEvent(y.EVENTS.hideDropdown,{})}),this):this},g.prototype.getValue=function(e){e===void 0&&(e=!1);var t=this._store.activeItems.reduce(function(n,s){var v=e?s.value:s;return n.push(v),n},[]);return this._isSelectOneElement?t[0]:t},g.prototype.setValue=function(e){var t=this;return this.initialised?(e.forEach(function(n){return t._setChoiceOrItem(n)}),this):this},g.prototype.setChoiceByValue=function(e){var t=this;if(!this.initialised||this._isTextElement)return this;var n=Array.isArray(e)?e:[e];return n.forEach(function(s){return t._findAndSelectChoiceByValue(s)}),this},g.prototype.setChoices=function(e,t,n,s){var v=this;if(e===void 0&&(e=[]),t===void 0&&(t="value"),n===void 0&&(n="label"),s===void 0&&(s=!1),!this.initialised)throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");if(!this._isSelectElement)throw new TypeError("setChoices can't be used with INPUT based Choices");if(typeof t!="string"||!t)throw new TypeError("value parameter must be a name of 'value' field in passed objects");if(s&&this.clearChoices(),typeof e=="function"){var P=e(this);if(typeof Promise=="function"&&P instanceof Promise)return new Promise(function(M){return requestAnimationFrame(M)}).then(function(){return v._handleLoadingState(!0)}).then(function(){return P}).then(function(M){return v.setChoices(M,t,n,s)}).catch(function(M){v.config.silent||console.error(M)}).then(function(){return v._handleLoadingState(!1)}).then(function(){return v});if(!Array.isArray(P))throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: ".concat(typeof P));return this.setChoices(P,t,n,!1)}if(!Array.isArray(e))throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");return this.containerOuter.removeLoadingState(),this._startLoading(),e.forEach(function(M){if(M.choices)v._addGroup({id:M.id?parseInt("".concat(M.id),10):null,group:M,valueKey:t,labelKey:n});else{var K=M;v._addChoice({value:K[t],label:K[n],isSelected:!!K.selected,isDisabled:!!K.disabled,placeholder:!!K.placeholder,customProperties:K.customProperties})}}),this._stopLoading(),this},g.prototype.clearChoices=function(){return this._store.dispatch((0,r.clearChoices)()),this},g.prototype.clearStore=function(){return this._store.dispatch((0,O.clearAll)()),this},g.prototype.clearInput=function(){var e=!this._isSelectOneElement;return this.input.clear(e),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0))),this},g.prototype._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var e=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,t=this._isSelectElement,n=this._currentState.items!==this._prevState.items;e&&(t&&this._renderChoices(),n&&this._renderItems(),this._prevState=this._currentState)}},g.prototype._renderChoices=function(){var e=this,t=this._store,n=t.activeGroups,s=t.activeChoices,v=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame(function(){return e.choiceList.scrollToTop()}),n.length>=1&&!this._isSearching){var P=s.filter(function(C){return C.placeholder===!0&&C.groupId===-1});P.length>=1&&(v=this._createChoicesFragment(P,v)),v=this._createGroupsFragment(n,s,v)}else s.length>=1&&(v=this._createChoicesFragment(s,v));if(v.childNodes&&v.childNodes.length>0){var M=this._store.activeItems,K=this._canAddItem(M,this.input.value);if(K.response)this.choiceList.append(v),this._highlightChoice();else{var f=this._getTemplate("notice",K.notice);this.choiceList.append(f)}}else{var u=void 0,f=void 0;this._isSearching?(f=typeof this.config.noResultsText=="function"?this.config.noResultsText():this.config.noResultsText,u=this._getTemplate("notice",f,"no-results")):(f=typeof this.config.noChoicesText=="function"?this.config.noChoicesText():this.config.noChoicesText,u=this._getTemplate("notice",f,"no-choices")),this.choiceList.append(u)}},g.prototype._renderItems=function(){var e=this._store.activeItems||[];this.itemList.clear();var t=this._createItemsFragment(e);t.childNodes&&this.itemList.append(t)},g.prototype._createGroupsFragment=function(e,t,n){var s=this;n===void 0&&(n=document.createDocumentFragment());var v=function(P){return t.filter(function(M){return s._isSelectOneElement?M.groupId===P.id:M.groupId===P.id&&(s.config.renderSelectedChoices==="always"||!M.selected)})};return this.config.shouldSort&&e.sort(this.config.sorter),e.forEach(function(P){var M=v(P);if(M.length>=1){var K=s._getTemplate("choiceGroup",P);n.appendChild(K),s._createChoicesFragment(M,n,!0)}}),n},g.prototype._createChoicesFragment=function(e,t,n){var s=this;t===void 0&&(t=document.createDocumentFragment()),n===void 0&&(n=!1);var v=this.config,P=v.renderSelectedChoices,M=v.searchResultLimit,K=v.renderChoiceLimit,f=this._isSearching?k.sortByScore:this.config.sorter,u=function(z){var ee=P==="auto"?s._isSelectOneElement||!z.selected:!0;if(ee){var ae=s._getTemplate("choice",z,s.config.itemSelectText);t.appendChild(ae)}},C=e;P==="auto"&&!this._isSelectOneElement&&(C=e.filter(function(z){return!z.selected}));var Y=C.reduce(function(z,ee){return ee.placeholder?z.placeholderChoices.push(ee):z.normalChoices.push(ee),z},{placeholderChoices:[],normalChoices:[]}),V=Y.placeholderChoices,U=Y.normalChoices;(this.config.shouldSort||this._isSearching)&&U.sort(f);var $=C.length,W=this._isSelectOneElement?_(_([],V,!0),U,!0):U;this._isSearching?$=M:K&&K>0&&!n&&($=K);for(var J=0;J<$;J+=1)W[J]&&u(W[J]);return t},g.prototype._createItemsFragment=function(e,t){var n=this;t===void 0&&(t=document.createDocumentFragment());var s=this.config,v=s.shouldSortItems,P=s.sorter,M=s.removeItemButton;v&&!this._isSelectOneElement&&e.sort(P),this._isTextElement?this.passedElement.value=e.map(function(f){var u=f.value;return u}).join(this.config.delimiter):this.passedElement.options=e;var K=function(f){var u=n._getTemplate("item",f,M);t.appendChild(u)};return e.forEach(K),t},g.prototype._triggerChange=function(e){e!=null&&this.passedElement.triggerEvent(y.EVENTS.change,{value:e})},g.prototype._selectPlaceholderChoice=function(e){this._addItem({value:e.value,label:e.label,choiceId:e.id,groupId:e.groupId,placeholder:e.placeholder}),this._triggerChange(e.value)},g.prototype._handleButtonAction=function(e,t){if(!(!e||!t||!this.config.removeItems||!this.config.removeItemButton)){var n=t.parentNode&&t.parentNode.dataset.id,s=n&&e.find(function(v){return v.id===parseInt(n,10)});s&&(this._removeItem(s),this._triggerChange(s.value),this._isSelectOneElement&&this._store.placeholderChoice&&this._selectPlaceholderChoice(this._store.placeholderChoice))}},g.prototype._handleItemAction=function(e,t,n){var s=this;if(n===void 0&&(n=!1),!(!e||!t||!this.config.removeItems||this._isSelectOneElement)){var v=t.dataset.id;e.forEach(function(P){P.id===parseInt("".concat(v),10)&&!P.highlighted?s.highlightItem(P):!n&&P.highlighted&&s.unhighlightItem(P)}),this.input.focus()}},g.prototype._handleChoiceAction=function(e,t){if(!(!e||!t)){var n=t.dataset.id,s=n&&this._store.getChoiceById(n);if(s){var v=e[0]&&e[0].keyCode?e[0].keyCode:void 0,P=this.dropdown.isActive;if(s.keyCode=v,this.passedElement.triggerEvent(y.EVENTS.choice,{choice:s}),!s.selected&&!s.disabled){var M=this._canAddItem(e,s.value);M.response&&(this._addItem({value:s.value,label:s.label,choiceId:s.id,groupId:s.groupId,customProperties:s.customProperties,placeholder:s.placeholder,keyCode:s.keyCode}),this._triggerChange(s.value))}this.clearInput(),P&&this._isSelectOneElement&&(this.hideDropdown(!0),this.containerOuter.focus())}}},g.prototype._handleBackspace=function(e){if(!(!this.config.removeItems||!e)){var t=e[e.length-1],n=e.some(function(s){return s.highlighted});this.config.editItems&&!n&&t?(this.input.value=t.value,this.input.setWidth(),this._removeItem(t),this._triggerChange(t.value)):(n||this.highlightItem(t,!1),this.removeHighlightedItems(!0))}},g.prototype._startLoading=function(){this._store.dispatch((0,O.setIsLoading)(!0))},g.prototype._stopLoading=function(){this._store.dispatch((0,O.setIsLoading)(!1))},g.prototype._handleLoadingState=function(e){e===void 0&&(e=!0);var t=this.itemList.getChild(".".concat(this.config.classNames.placeholder));e?(this.disable(),this.containerOuter.addLoadingState(),this._isSelectOneElement?t?t.innerHTML=this.config.loadingText:(t=this._getTemplate("placeholder",this.config.loadingText),t&&this.itemList.append(t)):this.input.placeholder=this.config.loadingText):(this.enable(),this.containerOuter.removeLoadingState(),this._isSelectOneElement?t&&(t.innerHTML=this._placeholderValue||""):this.input.placeholder=this._placeholderValue||"")},g.prototype._handleSearch=function(e){if(this.input.isFocussed){var t=this._store.choices,n=this.config,s=n.searchFloor,v=n.searchChoices,P=t.some(function(K){return!K.active});if(e!==null&&typeof e<"u"&&e.length>=s){var M=v?this._searchChoices(e):0;this.passedElement.triggerEvent(y.EVENTS.search,{value:e,resultCount:M})}else P&&(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0)))}},g.prototype._canAddItem=function(e,t){var n=!0,s=typeof this.config.addItemText=="function"?this.config.addItemText(t):this.config.addItemText;if(!this._isSelectOneElement){var v=(0,k.existsInArray)(e,t);this.config.maxItemCount>0&&this.config.maxItemCount<=e.length&&(n=!1,s=typeof this.config.maxItemText=="function"?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&v&&n&&(n=!1,s=typeof this.config.uniqueItemText=="function"?this.config.uniqueItemText(t):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&n&&typeof this.config.addItemFilter=="function"&&!this.config.addItemFilter(t)&&(n=!1,s=typeof this.config.customAddItemText=="function"?this.config.customAddItemText(t):this.config.customAddItemText)}return{response:n,notice:s}},g.prototype._searchChoices=function(e){var t=typeof e=="string"?e.trim():e,n=typeof this._currentValue=="string"?this._currentValue.trim():this._currentValue;if(t.length<1&&t==="".concat(n," "))return 0;var s=this._store.searchableChoices,v=t,P=Object.assign(this.config.fuseOptions,{keys:_([],this.config.searchFields,!0),includeMatches:!0}),M=new a.default(s,P),K=M.search(v);return this._currentValue=t,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch((0,r.filterChoices)(K)),K.length},g.prototype._addEventListeners=function(){var e=document.documentElement;e.addEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.addEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.addEventListener("mousedown",this._onMouseDown,!0),e.addEventListener("click",this._onClick,{passive:!0}),e.addEventListener("touchmove",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener("mouseover",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener("focus",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener("blur",this._onBlur,{passive:!0})),this.input.element.addEventListener("keyup",this._onKeyUp,{passive:!0}),this.input.element.addEventListener("focus",this._onFocus,{passive:!0}),this.input.element.addEventListener("blur",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener("reset",this._onFormReset,{passive:!0}),this.input.addEventListeners()},g.prototype._removeEventListeners=function(){var e=document.documentElement;e.removeEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.removeEventListener("mousedown",this._onMouseDown,!0),e.removeEventListener("click",this._onClick),e.removeEventListener("touchmove",this._onTouchMove),this.dropdown.element.removeEventListener("mouseover",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener("focus",this._onFocus),this.containerOuter.element.removeEventListener("blur",this._onBlur)),this.input.element.removeEventListener("keyup",this._onKeyUp),this.input.element.removeEventListener("focus",this._onFocus),this.input.element.removeEventListener("blur",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener("reset",this._onFormReset),this.input.removeEventListeners()},g.prototype._onKeyDown=function(e){var t=e.keyCode,n=this._store.activeItems,s=this.input.isFocussed,v=this.dropdown.isActive,P=this.itemList.hasChildren(),M=String.fromCharCode(t),K=/[^\x00-\x1F]/.test(M),f=y.KEY_CODES.BACK_KEY,u=y.KEY_CODES.DELETE_KEY,C=y.KEY_CODES.ENTER_KEY,Y=y.KEY_CODES.A_KEY,V=y.KEY_CODES.ESC_KEY,U=y.KEY_CODES.UP_KEY,$=y.KEY_CODES.DOWN_KEY,W=y.KEY_CODES.PAGE_UP_KEY,J=y.KEY_CODES.PAGE_DOWN_KEY;switch(!this._isTextElement&&!v&&K&&(this.showDropdown(),this.input.isFocussed||(this.input.value+=e.key.toLowerCase())),t){case Y:return this._onSelectKey(e,P);case C:return this._onEnterKey(e,n,v);case V:return this._onEscapeKey(v);case U:case W:case $:case J:return this._onDirectionKey(e,v);case u:case f:return this._onDeleteKey(e,n,s);default:}},g.prototype._onKeyUp=function(e){var t=e.target,n=e.keyCode,s=this.input.value,v=this._store.activeItems,P=this._canAddItem(v,s),M=y.KEY_CODES.BACK_KEY,K=y.KEY_CODES.DELETE_KEY;if(this._isTextElement){var f=P.notice&&s;if(f){var u=this._getTemplate("notice",P.notice);this.dropdown.element.innerHTML=u.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0)}else{var C=n===M||n===K,Y=C&&t&&!t.value,V=!this._isTextElement&&this._isSearching,U=this._canSearch&&P.response;Y&&V?(this._isSearching=!1,this._store.dispatch((0,r.activateChoices)(!0))):U&&this._handleSearch(this.input.rawValue)}this._canSearch=this.config.searchEnabled},g.prototype._onSelectKey=function(e,t){var n=e.ctrlKey,s=e.metaKey,v=n||s;if(v&&t){this._canSearch=!1;var P=this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement;P&&this.highlightAll()}},g.prototype._onEnterKey=function(e,t,n){var s=e.target,v=y.KEY_CODES.ENTER_KEY,P=s&&s.hasAttribute("data-button");if(this._isTextElement&&s&&s.value){var M=this.input.value,K=this._canAddItem(t,M);K.response&&(this.hideDropdown(!0),this._addItem({value:M}),this._triggerChange(M),this.clearInput())}if(P&&(this._handleButtonAction(t,s),e.preventDefault()),n){var f=this.dropdown.getChild(".".concat(this.config.classNames.highlightedState));f&&(t[0]&&(t[0].keyCode=v),this._handleChoiceAction(t,f)),e.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),e.preventDefault())},g.prototype._onEscapeKey=function(e){e&&(this.hideDropdown(!0),this.containerOuter.focus())},g.prototype._onDirectionKey=function(e,t){var n=e.keyCode,s=e.metaKey,v=y.KEY_CODES.DOWN_KEY,P=y.KEY_CODES.PAGE_UP_KEY,M=y.KEY_CODES.PAGE_DOWN_KEY;if(t||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var K=n===v||n===M?1:-1,f=s||n===M||n===P,u="[data-choice-selectable]",C=void 0;if(f)K>0?C=this.dropdown.element.querySelector("".concat(u,":last-of-type")):C=this.dropdown.element.querySelector(u);else{var Y=this.dropdown.element.querySelector(".".concat(this.config.classNames.highlightedState));Y?C=(0,k.getAdjacentEl)(Y,u,K):C=this.dropdown.element.querySelector(u)}C&&((0,k.isScrolledIntoView)(C,this.choiceList.element,K)||this.choiceList.scrollToChildElement(C,K),this._highlightChoice(C)),e.preventDefault()}},g.prototype._onDeleteKey=function(e,t,n){var s=e.target;!this._isSelectOneElement&&!s.value&&n&&(this._handleBackspace(t),e.preventDefault())},g.prototype._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},g.prototype._onTouchEnd=function(e){var t=(e||e.touches[0]).target,n=this._wasTap&&this.containerOuter.element.contains(t);if(n){var s=t===this.containerOuter.element||t===this.containerInner.element;s&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),e.stopPropagation()}this._wasTap=!0},g.prototype._onMouseDown=function(e){var t=e.target;if(t instanceof HTMLElement){if(E&&this.choiceList.element.contains(t)){var n=this.choiceList.element.firstElementChild,s=this._direction==="ltr"?e.offsetX>=n.offsetWidth:e.offsetX0;s&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0)}},g.prototype._onFocus=function(e){var t,n=this,s=e.target,v=s&&this.containerOuter.element.contains(s);if(v){var P=(t={},t[y.TEXT_TYPE]=function(){s===n.input.element&&n.containerOuter.addFocusState()},t[y.SELECT_ONE_TYPE]=function(){n.containerOuter.addFocusState(),s===n.input.element&&n.showDropdown(!0)},t[y.SELECT_MULTIPLE_TYPE]=function(){s===n.input.element&&(n.showDropdown(!0),n.containerOuter.addFocusState())},t);P[this.passedElement.element.type]()}},g.prototype._onBlur=function(e){var t,n=this,s=e.target,v=s&&this.containerOuter.element.contains(s);if(v&&!this._isScrollingOnIe){var P=this._store.activeItems,M=P.some(function(f){return f.highlighted}),K=(t={},t[y.TEXT_TYPE]=function(){s===n.input.element&&(n.containerOuter.removeFocusState(),M&&n.unhighlightAll(),n.hideDropdown(!0))},t[y.SELECT_ONE_TYPE]=function(){n.containerOuter.removeFocusState(),(s===n.input.element||s===n.containerOuter.element&&!n._canSearch)&&n.hideDropdown(!0)},t[y.SELECT_MULTIPLE_TYPE]=function(){s===n.input.element&&(n.containerOuter.removeFocusState(),n.hideDropdown(!0),M&&n.unhighlightAll())},t);K[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},g.prototype._onFormReset=function(){this._store.dispatch((0,O.resetTo)(this._initialState))},g.prototype._highlightChoice=function(e){var t=this;e===void 0&&(e=null);var n=Array.from(this.dropdown.element.querySelectorAll("[data-choice-selectable]"));if(n.length){var s=e,v=Array.from(this.dropdown.element.querySelectorAll(".".concat(this.config.classNames.highlightedState)));v.forEach(function(P){P.classList.remove(t.config.classNames.highlightedState),P.setAttribute("aria-selected","false")}),s?this._highlightPosition=n.indexOf(s):(n.length>this._highlightPosition?s=n[this._highlightPosition]:s=n[n.length-1],s||(s=n[0])),s.classList.add(this.config.classNames.highlightedState),s.setAttribute("aria-selected","true"),this.passedElement.triggerEvent(y.EVENTS.highlightChoice,{el:s}),this.dropdown.isActive&&(this.input.setActiveDescendant(s.id),this.containerOuter.setActiveDescendant(s.id))}},g.prototype._addItem=function(e){var t=e.value,n=e.label,s=n===void 0?null:n,v=e.choiceId,P=v===void 0?-1:v,M=e.groupId,K=M===void 0?-1:M,f=e.customProperties,u=f===void 0?{}:f,C=e.placeholder,Y=C===void 0?!1:C,V=e.keyCode,U=V===void 0?-1:V,$=typeof t=="string"?t.trim():t,W=this._store.items,J=s||$,z=P||-1,ee=K>=0?this._store.getGroupById(K):null,ae=W?W.length+1:1;this.config.prependValue&&($=this.config.prependValue+$.toString()),this.config.appendValue&&($+=this.config.appendValue.toString()),this._store.dispatch((0,l.addItem)({value:$,label:J,id:ae,choiceId:z,groupId:K,customProperties:u,placeholder:Y,keyCode:U})),this._isSelectOneElement&&this.removeActiveItems(ae),this.passedElement.triggerEvent(y.EVENTS.addItem,{id:ae,value:$,label:J,customProperties:u,groupValue:ee&&ee.value?ee.value:null,keyCode:U})},g.prototype._removeItem=function(e){var t=e.id,n=e.value,s=e.label,v=e.customProperties,P=e.choiceId,M=e.groupId,K=M&&M>=0?this._store.getGroupById(M):null;!t||!P||(this._store.dispatch((0,l.removeItem)(t,P)),this.passedElement.triggerEvent(y.EVENTS.removeItem,{id:t,value:n,label:s,customProperties:v,groupValue:K&&K.value?K.value:null}))},g.prototype._addChoice=function(e){var t=e.value,n=e.label,s=n===void 0?null:n,v=e.isSelected,P=v===void 0?!1:v,M=e.isDisabled,K=M===void 0?!1:M,f=e.groupId,u=f===void 0?-1:f,C=e.customProperties,Y=C===void 0?{}:C,V=e.placeholder,U=V===void 0?!1:V,$=e.keyCode,W=$===void 0?-1:$;if(!(typeof t>"u"||t===null)){var J=this._store.choices,z=s||t,ee=J?J.length+1:1,ae="".concat(this._baseId,"-").concat(this._idNames.itemChoice,"-").concat(ee);this._store.dispatch((0,r.addChoice)({id:ee,groupId:u,elementId:ae,value:t,label:z,disabled:K,customProperties:Y,placeholder:U,keyCode:W})),P&&this._addItem({value:t,label:z,choiceId:ee,customProperties:Y,placeholder:U,keyCode:W})}},g.prototype._addGroup=function(e){var t=this,n=e.group,s=e.id,v=e.valueKey,P=v===void 0?"value":v,M=e.labelKey,K=M===void 0?"label":M,f=(0,k.isType)("Object",n)?n.choices:Array.from(n.getElementsByTagName("OPTION")),u=s||Math.floor(new Date().valueOf()*Math.random()),C=n.disabled?n.disabled:!1;if(f){this._store.dispatch((0,c.addGroup)({value:n.label,id:u,active:!0,disabled:C}));var Y=function(V){var U=V.disabled||V.parentNode&&V.parentNode.disabled;t._addChoice({value:V[P],label:(0,k.isType)("Object",V)?V[K]:V.innerHTML,isSelected:V.selected,isDisabled:U,groupId:u,customProperties:V.customProperties,placeholder:V.placeholder})};f.forEach(Y)}else this._store.dispatch((0,c.addGroup)({value:n.label,id:n.id,active:!1,disabled:n.disabled}))},g.prototype._getTemplate=function(e){for(var t,n=[],s=1;s0?this.element.scrollTop+y-O:a.offsetTop;requestAnimationFrame(function(){c._animateScroll(D,r)})}},d.prototype._scrollDown=function(a,r,c){var l=(c-a)/r,O=l>1?l:1;this.element.scrollTop=a+O},d.prototype._scrollUp=function(a,r,c){var l=(a-c)/r,O=l>1?l:1;this.element.scrollTop=a-O},d.prototype._animateScroll=function(a,r){var c=this,l=_.SCROLLING_SPEED,O=this.element.scrollTop,L=!1;r>0?(this._scrollDown(O,l,a),Oa&&(L=!0)),L&&requestAnimationFrame(function(){c._animateScroll(a,r)})},d}();i.default=h},730:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0});var _=b(799),h=function(){function d(a){var r=a.element,c=a.classNames;if(this.element=r,this.classNames=c,!(r instanceof HTMLInputElement)&&!(r instanceof HTMLSelectElement))throw new TypeError("Invalid element passed");this.isDisabled=!1}return Object.defineProperty(d.prototype,"isActive",{get:function(){return this.element.dataset.choice==="active"},enumerable:!1,configurable:!0}),Object.defineProperty(d.prototype,"dir",{get:function(){return this.element.dir},enumerable:!1,configurable:!0}),Object.defineProperty(d.prototype,"value",{get:function(){return this.element.value},set:function(a){this.element.value=a},enumerable:!1,configurable:!0}),d.prototype.conceal=function(){this.element.classList.add(this.classNames.input),this.element.hidden=!0,this.element.tabIndex=-1;var a=this.element.getAttribute("style");a&&this.element.setAttribute("data-choice-orig-style",a),this.element.setAttribute("data-choice","active")},d.prototype.reveal=function(){this.element.classList.remove(this.classNames.input),this.element.hidden=!1,this.element.removeAttribute("tabindex");var a=this.element.getAttribute("data-choice-orig-style");a?(this.element.removeAttribute("data-choice-orig-style"),this.element.setAttribute("style",a)):this.element.removeAttribute("style"),this.element.removeAttribute("data-choice"),this.element.value=this.element.value},d.prototype.enable=function(){this.element.removeAttribute("disabled"),this.element.disabled=!1,this.isDisabled=!1},d.prototype.disable=function(){this.element.setAttribute("disabled",""),this.element.disabled=!0,this.isDisabled=!0},d.prototype.triggerEvent=function(a,r){(0,_.dispatchEvent)(this.element,a,r)},d}();i.default=h},541:function(j,i,b){var _=this&&this.__extends||function(){var r=function(c,l){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(O,L){O.__proto__=L}||function(O,L){for(var y in L)Object.prototype.hasOwnProperty.call(L,y)&&(O[y]=L[y])},r(c,l)};return function(c,l){if(typeof l!="function"&&l!==null)throw new TypeError("Class extends value "+String(l)+" is not a constructor or null");r(c,l);function O(){this.constructor=c}c.prototype=l===null?Object.create(l):(O.prototype=l.prototype,new O)}}(),h=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(i,"__esModule",{value:!0});var d=h(b(730)),a=function(r){_(c,r);function c(l){var O=l.element,L=l.classNames,y=l.delimiter,D=r.call(this,{element:O,classNames:L})||this;return D.delimiter=y,D}return Object.defineProperty(c.prototype,"value",{get:function(){return this.element.value},set:function(l){this.element.setAttribute("value",l),this.element.value=l},enumerable:!1,configurable:!0}),c}(d.default);i.default=a},982:function(j,i,b){var _=this&&this.__extends||function(){var r=function(c,l){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(O,L){O.__proto__=L}||function(O,L){for(var y in L)Object.prototype.hasOwnProperty.call(L,y)&&(O[y]=L[y])},r(c,l)};return function(c,l){if(typeof l!="function"&&l!==null)throw new TypeError("Class extends value "+String(l)+" is not a constructor or null");r(c,l);function O(){this.constructor=c}c.prototype=l===null?Object.create(l):(O.prototype=l.prototype,new O)}}(),h=this&&this.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(i,"__esModule",{value:!0});var d=h(b(730)),a=function(r){_(c,r);function c(l){var O=l.element,L=l.classNames,y=l.template,D=r.call(this,{element:O,classNames:L})||this;return D.template=y,D}return Object.defineProperty(c.prototype,"placeholderOption",{get:function(){return this.element.querySelector('option[value=""]')||this.element.querySelector("option[placeholder]")},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"optionGroups",{get:function(){return Array.from(this.element.getElementsByTagName("OPTGROUP"))},enumerable:!1,configurable:!0}),Object.defineProperty(c.prototype,"options",{get:function(){return Array.from(this.element.options)},set:function(l){var O=this,L=document.createDocumentFragment(),y=function(D){var k=O.template(D);L.appendChild(k)};l.forEach(function(D){return y(D)}),this.appendDocFragment(L)},enumerable:!1,configurable:!0}),c.prototype.appendDocFragment=function(l){this.element.innerHTML="",this.element.appendChild(l)},c}(d.default);i.default=a},883:function(j,i){Object.defineProperty(i,"__esModule",{value:!0}),i.SCROLLING_SPEED=i.SELECT_MULTIPLE_TYPE=i.SELECT_ONE_TYPE=i.TEXT_TYPE=i.KEY_CODES=i.ACTION_TYPES=i.EVENTS=void 0,i.EVENTS={showDropdown:"showDropdown",hideDropdown:"hideDropdown",change:"change",choice:"choice",search:"search",addItem:"addItem",removeItem:"removeItem",highlightItem:"highlightItem",highlightChoice:"highlightChoice",unhighlightItem:"unhighlightItem"},i.ACTION_TYPES={ADD_CHOICE:"ADD_CHOICE",FILTER_CHOICES:"FILTER_CHOICES",ACTIVATE_CHOICES:"ACTIVATE_CHOICES",CLEAR_CHOICES:"CLEAR_CHOICES",ADD_GROUP:"ADD_GROUP",ADD_ITEM:"ADD_ITEM",REMOVE_ITEM:"REMOVE_ITEM",HIGHLIGHT_ITEM:"HIGHLIGHT_ITEM",CLEAR_ALL:"CLEAR_ALL",RESET_TO:"RESET_TO",SET_IS_LOADING:"SET_IS_LOADING"},i.KEY_CODES={BACK_KEY:46,DELETE_KEY:8,ENTER_KEY:13,A_KEY:65,ESC_KEY:27,UP_KEY:38,DOWN_KEY:40,PAGE_UP_KEY:33,PAGE_DOWN_KEY:34},i.TEXT_TYPE="text",i.SELECT_ONE_TYPE="select-one",i.SELECT_MULTIPLE_TYPE="select-multiple",i.SCROLLING_SPEED=4},789:function(j,i,b){Object.defineProperty(i,"__esModule",{value:!0}),i.DEFAULT_CONFIG=i.DEFAULT_CLASSNAMES=void 0;var _=b(799);i.DEFAULT_CLASSNAMES={containerOuter:"choices",containerInner:"choices__inner",input:"choices__input",inputCloned:"choices__input--cloned",list:"choices__list",listItems:"choices__list--multiple",listSingle:"choices__list--single",listDropdown:"choices__list--dropdown",item:"choices__item",itemSelectable:"choices__item--selectable",itemDisabled:"choices__item--disabled",itemChoice:"choices__item--choice",placeholder:"choices__placeholder",group:"choices__group",groupHeading:"choices__heading",button:"choices__button",activeState:"is-active",focusState:"is-focused",openState:"is-open",disabledState:"is-disabled",highlightedState:"is-highlighted",selectedState:"is-selected",flippedState:"is-flipped",loadingState:"is-loading",noResults:"has-no-results",noChoices:"has-no-choices"},i.DEFAULT_CONFIG={items:[],choices:[],silent:!1,renderChoiceLimit:-1,maxItemCount:-1,addItems:!0,addItemFilter:null,removeItems:!0,removeItemButton:!1,editItems:!1,allowHTML:!0,duplicateItemsAllowed:!0,delimiter:",",paste:!0,searchEnabled:!0,searchChoices:!0,searchFloor:1,searchResultLimit:4,searchFields:["label","value"],position:"auto",resetScrollPosition:!0,shouldSort:!0,shouldSortItems:!1,sorter:_.sortByAlpha,placeholder:!0,placeholderValue:null,searchPlaceholderValue:null,prependValue:null,appendValue:null,renderSelectedChoices:"auto",loadingText:"Loading...",noResultsText:"No results found",noChoicesText:"No choices to choose from",itemSelectText:"Press to select",uniqueItemText:"Only unique values can be added",customAddItemText:"Only values matching specific conditions can be added",addItemText:function(h){return'Press Enter to add "'.concat((0,_.sanitise)(h),'"')},maxItemText:function(h){return"Only ".concat(h," values can be added")},valueComparer:function(h,d){return h===d},fuseOptions:{includeScore:!0},labelId:"",callbackOnInit:null,callbackOnCreateTemplates:null,classNames:i.DEFAULT_CLASSNAMES}},18:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},978:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},948:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},359:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},285:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},533:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},187:function(j,i,b){var _=this&&this.__createBinding||(Object.create?function(d,a,r,c){c===void 0&&(c=r);var l=Object.getOwnPropertyDescriptor(a,r);(!l||("get"in l?!a.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return a[r]}}),Object.defineProperty(d,c,l)}:function(d,a,r,c){c===void 0&&(c=r),d[c]=a[r]}),h=this&&this.__exportStar||function(d,a){for(var r in d)r!=="default"&&!Object.prototype.hasOwnProperty.call(a,r)&&_(a,d,r)};Object.defineProperty(i,"__esModule",{value:!0}),h(b(18),i),h(b(978),i),h(b(948),i),h(b(359),i),h(b(285),i),h(b(533),i),h(b(287),i),h(b(132),i),h(b(837),i),h(b(598),i),h(b(369),i),h(b(37),i),h(b(47),i),h(b(923),i),h(b(876),i)},287:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},132:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},837:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},598:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},37:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},369:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},47:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},923:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},876:function(j,i){Object.defineProperty(i,"__esModule",{value:!0})},799:function(j,i){Object.defineProperty(i,"__esModule",{value:!0}),i.parseCustomProperties=i.diff=i.cloneObject=i.existsInArray=i.dispatchEvent=i.sortByScore=i.sortByAlpha=i.strToEl=i.sanitise=i.isScrolledIntoView=i.getAdjacentEl=i.wrap=i.isType=i.getType=i.generateId=i.generateChars=i.getRandomNumber=void 0;var b=function(E,w){return Math.floor(Math.random()*(w-E)+E)};i.getRandomNumber=b;var _=function(E){return Array.from({length:E},function(){return(0,i.getRandomNumber)(0,36).toString(36)}).join("")};i.generateChars=_;var h=function(E,w){var N=E.id||E.name&&"".concat(E.name,"-").concat((0,i.generateChars)(2))||(0,i.generateChars)(4);return N=N.replace(/(:|\.|\[|\]|,)/g,""),N="".concat(w,"-").concat(N),N};i.generateId=h;var d=function(E){return Object.prototype.toString.call(E).slice(8,-1)};i.getType=d;var a=function(E,w){return w!=null&&(0,i.getType)(w)===E};i.isType=a;var r=function(E,w){return w===void 0&&(w=document.createElement("div")),E.parentNode&&(E.nextSibling?E.parentNode.insertBefore(w,E.nextSibling):E.parentNode.appendChild(w)),w.appendChild(E)};i.wrap=r;var c=function(E,w,N){N===void 0&&(N=1);for(var g="".concat(N>0?"next":"previous","ElementSibling"),e=E[g];e;){if(e.matches(w))return e;e=e[g]}return e};i.getAdjacentEl=c;var l=function(E,w,N){if(N===void 0&&(N=1),!E)return!1;var g;return N>0?g=w.scrollTop+w.offsetHeight>=E.offsetTop+E.offsetHeight:g=E.offsetTop>=w.scrollTop,g};i.isScrolledIntoView=l;var O=function(E){return typeof E!="string"?E:E.replace(/&/g,"&").replace(/>/g,">").replace(/-1?h.map(function(y){var D=y;return D.id===parseInt("".concat(c.choiceId),10)&&(D.selected=!0),D}):h}case"REMOVE_ITEM":{var l=d;return l.choiceId&&l.choiceId>-1?h.map(function(y){var D=y;return D.id===parseInt("".concat(l.choiceId),10)&&(D.selected=!1),D}):h}case"FILTER_CHOICES":{var O=d;return h.map(function(y){var D=y;return D.active=O.results.some(function(k){var Q=k.item,Z=k.score;return Q.id===D.id?(D.score=Z,!0):!1}),D})}case"ACTIVATE_CHOICES":{var L=d;return h.map(function(y){var D=y;return D.active=L.active,D})}case"CLEAR_CHOICES":return i.defaultState;default:return h}}i.default=_},871:function(j,i){var b=this&&this.__spreadArray||function(h,d,a){if(a||arguments.length===2)for(var r=0,c=d.length,l;r0?"treeitem":"option"),Object.assign(t.dataset,{choice:"",id:Q,value:Z,selectText:d}),N?(t.classList.add(D),t.dataset.choiceDisabled="",t.setAttribute("aria-disabled","true")):(t.classList.add(L),t.dataset.choiceSelectable=""),t},input:function(_,h){var d=_.classNames,a=d.input,r=d.inputCloned,c=Object.assign(document.createElement("input"),{type:"search",name:"search_terms",className:"".concat(a," ").concat(r),autocomplete:"off",autocapitalize:"off",spellcheck:!1});return c.setAttribute("role","textbox"),c.setAttribute("aria-autocomplete","list"),c.setAttribute("aria-label",h),c},dropdown:function(_){var h=_.classNames,d=h.list,a=h.listDropdown,r=document.createElement("div");return r.classList.add(d,a),r.setAttribute("aria-expanded","false"),r},notice:function(_,h,d){var a,r=_.allowHTML,c=_.classNames,l=c.item,O=c.itemChoice,L=c.noResults,y=c.noChoices;d===void 0&&(d="");var D=[l,O];return d==="no-choices"?D.push(y):d==="no-results"&&D.push(L),Object.assign(document.createElement("div"),(a={},a[r?"innerHTML":"innerText"]=h,a.className=D.join(" "),a))},option:function(_){var h=_.label,d=_.value,a=_.customProperties,r=_.active,c=_.disabled,l=new Option(h,d,!1,r);return a&&(l.dataset.customProperties="".concat(a)),l.disabled=!!c,l}};i.default=b},996:function(j){var i=function(w){return b(w)&&!_(w)};function b(E){return!!E&&typeof E=="object"}function _(E){var w=Object.prototype.toString.call(E);return w==="[object RegExp]"||w==="[object Date]"||a(E)}var h=typeof Symbol=="function"&&Symbol.for,d=h?Symbol.for("react.element"):60103;function a(E){return E.$$typeof===d}function r(E){return Array.isArray(E)?[]:{}}function c(E,w){return w.clone!==!1&&w.isMergeableObject(E)?Z(r(E),E,w):E}function l(E,w,N){return E.concat(w).map(function(g){return c(g,N)})}function O(E,w){if(!w.customMerge)return Z;var N=w.customMerge(E);return typeof N=="function"?N:Z}function L(E){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(E).filter(function(w){return E.propertyIsEnumerable(w)}):[]}function y(E){return Object.keys(E).concat(L(E))}function D(E,w){try{return w in E}catch{return!1}}function k(E,w){return D(E,w)&&!(Object.hasOwnProperty.call(E,w)&&Object.propertyIsEnumerable.call(E,w))}function Q(E,w,N){var g={};return N.isMergeableObject(E)&&y(E).forEach(function(e){g[e]=c(E[e],N)}),y(w).forEach(function(e){k(E,e)||(D(E,e)&&N.isMergeableObject(w[e])?g[e]=O(e,N)(E[e],w[e],N):g[e]=c(w[e],N))}),g}function Z(E,w,N){N=N||{},N.arrayMerge=N.arrayMerge||l,N.isMergeableObject=N.isMergeableObject||i,N.cloneUnlessOtherwiseSpecified=c;var g=Array.isArray(w),e=Array.isArray(E),t=g===e;return t?g?N.arrayMerge(E,w,N):Q(E,w,N):c(w,N)}Z.all=function(w,N){if(!Array.isArray(w))throw new Error("first argument should be an array");return w.reduce(function(g,e){return Z(g,e,N)},{})};var ne=Z;j.exports=ne},221:function(j,i,b){b.r(i),b.d(i,{default:function(){return Se}});function _(p){return Array.isArray?Array.isArray(p):k(p)==="[object Array]"}let h=1/0;function d(p){if(typeof p=="string")return p;let o=p+"";return o=="0"&&1/p==-h?"-0":o}function a(p){return p==null?"":d(p)}function r(p){return typeof p=="string"}function c(p){return typeof p=="number"}function l(p){return p===!0||p===!1||L(p)&&k(p)=="[object Boolean]"}function O(p){return typeof p=="object"}function L(p){return O(p)&&p!==null}function y(p){return p!=null}function D(p){return!p.trim().length}function k(p){return p==null?p===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(p)}let Q="Extended search is not available",Z="Incorrect 'index' type",ne=p=>`Invalid value for key ${p}`,E=p=>`Pattern length exceeds max of ${p}.`,w=p=>`Missing ${p} property in key`,N=p=>`Property 'weight' in key '${p}' must be a positive integer`,g=Object.prototype.hasOwnProperty;class e{constructor(o){this._keys=[],this._keyMap={};let m=0;o.forEach(S=>{let I=t(S);m+=I.weight,this._keys.push(I),this._keyMap[I.id]=I,m+=I.weight}),this._keys.forEach(S=>{S.weight/=m})}get(o){return this._keyMap[o]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function t(p){let o=null,m=null,S=null,I=1,T=null;if(r(p)||_(p))S=p,o=n(p),m=s(p);else{if(!g.call(p,"name"))throw new Error(w("name"));let A=p.name;if(S=A,g.call(p,"weight")&&(I=p.weight,I<=0))throw new Error(N(A));o=n(A),m=s(A),T=p.getFn}return{path:o,id:m,weight:I,src:S,getFn:T}}function n(p){return _(p)?p:p.split(".")}function s(p){return _(p)?p.join("."):p}function v(p,o){let m=[],S=!1,I=(T,A,R)=>{if(y(T))if(!A[R])m.push(T);else{let F=A[R],H=T[F];if(!y(H))return;if(R===A.length-1&&(r(H)||c(H)||l(H)))m.push(a(H));else if(_(H)){S=!0;for(let B=0,x=H.length;Bp.score===o.score?p.idx{this._keysMap[m.id]=S})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,r(this.docs[0])?this.docs.forEach((o,m)=>{this._addString(o,m)}):this.docs.forEach((o,m)=>{this._addObject(o,m)}),this.norm.clear())}add(o){let m=this.size();r(o)?this._addString(o,m):this._addObject(o,m)}removeAt(o){this.records.splice(o,1);for(let m=o,S=this.size();m{let A=I.getFn?I.getFn(o):this.getFn(o,I.path);if(y(A)){if(_(A)){let R=[],F=[{nestedArrIndex:-1,value:A}];for(;F.length;){let{nestedArrIndex:H,value:B}=F.pop();if(y(B))if(r(B)&&!D(B)){let x={v:B,i:H,n:this.norm.get(B)};R.push(x)}else _(B)&&B.forEach((x,G)=>{F.push({nestedArrIndex:G,value:x})})}S.$[T]=R}else if(r(A)&&!D(A)){let R={v:A,n:this.norm.get(A)};S.$[T]=R}}}),this.records.push(S)}toJSON(){return{keys:this.keys,records:this.records}}}function U(p,o,{getFn:m=u.getFn,fieldNormWeight:S=u.fieldNormWeight}={}){let I=new V({getFn:m,fieldNormWeight:S});return I.setKeys(p.map(t)),I.setSources(o),I.create(),I}function $(p,{getFn:o=u.getFn,fieldNormWeight:m=u.fieldNormWeight}={}){let{keys:S,records:I}=p,T=new V({getFn:o,fieldNormWeight:m});return T.setKeys(S),T.setIndexRecords(I),T}function W(p,{errors:o=0,currentLocation:m=0,expectedLocation:S=0,distance:I=u.distance,ignoreLocation:T=u.ignoreLocation}={}){let A=o/p.length;if(T)return A;let R=Math.abs(S-m);return I?A+R/I:R?1:A}function J(p=[],o=u.minMatchCharLength){let m=[],S=-1,I=-1,T=0;for(let A=p.length;T=o&&m.push([S,I]),S=-1)}return p[T-1]&&T-S>=o&&m.push([S,T-1]),m}let z=32;function ee(p,o,m,{location:S=u.location,distance:I=u.distance,threshold:T=u.threshold,findAllMatches:A=u.findAllMatches,minMatchCharLength:R=u.minMatchCharLength,includeMatches:F=u.includeMatches,ignoreLocation:H=u.ignoreLocation}={}){if(o.length>z)throw new Error(E(z));let B=o.length,x=p.length,G=Math.max(0,Math.min(S,x)),q=T,re=G,ue=R>1||F,Ee=ue?Array(x):[],ve;for(;(ve=p.indexOf(o,re))>-1;){let he=W(o,{currentLocation:ve,expectedLocation:G,distance:I,ignoreLocation:H});if(q=Math.min(he,q),re=ve+B,ue){let ge=0;for(;ge=Ue;fe-=1){let Le=fe-1,We=m[p.charAt(Le)];if(ue&&(Ee[Le]=+!!We),Oe[fe]=(Oe[fe+1]<<1|1)&We,he&&(Oe[fe]|=(Ie[fe+1]|Ie[fe])<<1|1|Ie[fe+1]),Oe[fe]&at&&(be=W(o,{errors:he,currentLocation:Le,expectedLocation:G,distance:I,ignoreLocation:H}),be<=q)){if(q=be,re=Le,re<=G)break;Ue=Math.max(1,2*G-re)}}if(W(o,{errors:he+1,currentLocation:G,expectedLocation:G,distance:I,ignoreLocation:H})>q)break;Ie=Oe}let Ke={isMatch:re>=0,score:Math.max(.001,be)};if(ue){let he=J(Ee,R);he.length?F&&(Ke.indices=he):Ke.isMatch=!1}return Ke}function ae(p){let o={};for(let m=0,S=p.length;m{this.chunks.push({pattern:G,alphabet:ae(G),startIndex:q})},x=this.pattern.length;if(x>z){let G=0,q=x%z,re=x-q;for(;G{let{isMatch:ve,score:Ie,indices:be}=ee(o,re,ue,{location:I+Ee,distance:T,threshold:A,findAllMatches:R,minMatchCharLength:F,includeMatches:S,ignoreLocation:H});ve&&(G=!0),x+=Ie,ve&&be&&(B=[...B,...be])});let q={isMatch:G,score:G?x/this.chunks.length:1};return G&&S&&(q.indices=B),q}}class le{constructor(o){this.pattern=o}static isMultiMatch(o){return _e(o,this.multiRegex)}static isSingleMatch(o){return _e(o,this.singleRegex)}search(){}}function _e(p,o){let m=p.match(o);return m?m[1]:null}class te extends le{constructor(o){super(o)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(o){let m=o===this.pattern;return{isMatch:m,score:m?0:1,indices:[0,this.pattern.length-1]}}}class de extends le{constructor(o){super(o)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(o){let S=o.indexOf(this.pattern)===-1;return{isMatch:S,score:S?0:1,indices:[0,o.length-1]}}}class pe extends le{constructor(o){super(o)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(o){let m=o.startsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,this.pattern.length-1]}}}class oe extends le{constructor(o){super(o)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(o){let m=!o.startsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,o.length-1]}}}class Te extends le{constructor(o){super(o)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(o){let m=o.endsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[o.length-this.pattern.length,o.length-1]}}}class Pe extends le{constructor(o){super(o)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(o){let m=!o.endsWith(this.pattern);return{isMatch:m,score:m?0:1,indices:[0,o.length-1]}}}class He extends le{constructor(o,{location:m=u.location,threshold:S=u.threshold,distance:I=u.distance,includeMatches:T=u.includeMatches,findAllMatches:A=u.findAllMatches,minMatchCharLength:R=u.minMatchCharLength,isCaseSensitive:F=u.isCaseSensitive,ignoreLocation:H=u.ignoreLocation}={}){super(o),this._bitapSearch=new ce(o,{location:m,threshold:S,distance:I,includeMatches:T,findAllMatches:A,minMatchCharLength:R,isCaseSensitive:F,ignoreLocation:H})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(o){return this._bitapSearch.searchIn(o)}}class Be extends le{constructor(o){super(o)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(o){let m=0,S,I=[],T=this.pattern.length;for(;(S=o.indexOf(this.pattern,m))>-1;)m=S+T,I.push([S,m-1]);let A=!!I.length;return{isMatch:A,score:A?0:1,indices:I}}}let Me=[te,Be,pe,oe,Pe,Te,de,He],Ve=Me.length,Xe=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Je="|";function Qe(p,o={}){return p.split(Je).map(m=>{let S=m.trim().split(Xe).filter(T=>T&&!!T.trim()),I=[];for(let T=0,A=S.length;T!!(p[Ce.AND]||p[Ce.OR]),tt=p=>!!p[je.PATH],it=p=>!_(p)&&O(p)&&!Re(p),ke=p=>({[Ce.AND]:Object.keys(p).map(o=>({[o]:p[o]}))});function xe(p,o,{auto:m=!0}={}){let S=I=>{let T=Object.keys(I),A=tt(I);if(!A&&T.length>1&&!Re(I))return S(ke(I));if(it(I)){let F=A?I[je.PATH]:T[0],H=A?I[je.PATTERN]:I[F];if(!r(H))throw new Error(ne(F));let B={keyId:s(F),pattern:H};return m&&(B.searcher=Ne(H,o)),B}let R={children:[],operator:T[0]};return T.forEach(F=>{let H=I[F];_(H)&&H.forEach(B=>{R.children.push(S(B))})}),R};return Re(p)||(p=ke(p)),S(p)}function nt(p,{ignoreFieldNorm:o=u.ignoreFieldNorm}){p.forEach(m=>{let S=1;m.matches.forEach(({key:I,norm:T,score:A})=>{let R=I?I.weight:null;S*=Math.pow(A===0&&R?Number.EPSILON:A,(R||1)*(o?1:T))}),m.score=S})}function rt(p,o){let m=p.matches;o.matches=[],y(m)&&m.forEach(S=>{if(!y(S.indices)||!S.indices.length)return;let{indices:I,value:T}=S,A={indices:I,value:T};S.key&&(A.key=S.key.src),S.idx>-1&&(A.refIndex=S.idx),o.matches.push(A)})}function st(p,o){o.score=p.score}function ot(p,o,{includeMatches:m=u.includeMatches,includeScore:S=u.includeScore}={}){let I=[];return m&&I.push(rt),S&&I.push(st),p.map(T=>{let{idx:A}=T,R={item:o[A],refIndex:A};return I.length&&I.forEach(F=>{F(T,R)}),R})}class Se{constructor(o,m={},S){this.options={...u,...m},this.options.useExtendedSearch,this._keyStore=new e(this.options.keys),this.setCollection(o,S)}setCollection(o,m){if(this._docs=o,m&&!(m instanceof V))throw new Error(Z);this._myIndex=m||U(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(o){y(o)&&(this._docs.push(o),this._myIndex.add(o))}remove(o=()=>!1){let m=[];for(let S=0,I=this._docs.length;S-1&&(F=F.slice(0,m)),ot(F,this._docs,{includeMatches:S,includeScore:I})}_searchStringList(o){let m=Ne(o,this.options),{records:S}=this._myIndex,I=[];return S.forEach(({v:T,i:A,n:R})=>{if(!y(T))return;let{isMatch:F,score:H,indices:B}=m.searchIn(T);F&&I.push({item:T,idx:A,matches:[{score:H,value:T,norm:R,indices:B}]})}),I}_searchLogical(o){let m=xe(o,this.options),S=(R,F,H)=>{if(!R.children){let{keyId:x,searcher:G}=R,q=this._findMatches({key:this._keyStore.get(x),value:this._myIndex.getValueForItemAtKeyId(F,x),searcher:G});return q&&q.length?[{idx:H,item:F,matches:q}]:[]}let B=[];for(let x=0,G=R.children.length;x{if(y(R)){let H=S(m,R,F);H.length&&(T[F]||(T[F]={idx:F,item:R,matches:[]},A.push(T[F])),H.forEach(({matches:B})=>{T[F].matches.push(...B)}))}}),A}_searchObjectList(o){let m=Ne(o,this.options),{keys:S,records:I}=this._myIndex,T=[];return I.forEach(({$:A,i:R})=>{if(!y(A))return;let F=[];S.forEach((H,B)=>{F.push(...this._findMatches({key:H,value:A[B],searcher:m}))}),F.length&&T.push({idx:R,item:A,matches:F})}),T}_findMatches({key:o,value:m,searcher:S}){if(!y(m))return[];let I=[];if(_(m))m.forEach(({v:T,i:A,n:R})=>{if(!y(T))return;let{isMatch:F,score:H,indices:B}=S.searchIn(T);F&&I.push({score:H,key:o,value:T,idx:A,norm:R,indices:B})});else{let{v:T,n:A}=m,{isMatch:R,score:F,indices:H}=S.searchIn(T);R&&I.push({score:F,key:o,value:T,norm:A,indices:H})}return I}}Se.version="6.6.2",Se.createIndex=U,Se.parseIndex=$,Se.config=u,Se.parseQuery=xe,et(qe)},791:function(j,i,b){b.r(i),b.d(i,{__DO_NOT_USE__ActionTypes:function(){return y},applyMiddleware:function(){return M},bindActionCreators:function(){return v},combineReducers:function(){return n},compose:function(){return P},createStore:function(){return w},legacy_createStore:function(){return N}});function _(f){"@babel/helpers - typeof";return _=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},_(f)}function h(f,u){if(_(f)!=="object"||f===null)return f;var C=f[Symbol.toPrimitive];if(C!==void 0){var Y=C.call(f,u||"default");if(_(Y)!=="object")return Y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(f)}function d(f){var u=h(f,"string");return _(u)==="symbol"?u:String(u)}function a(f,u,C){return u=d(u),u in f?Object.defineProperty(f,u,{value:C,enumerable:!0,configurable:!0,writable:!0}):f[u]=C,f}function r(f,u){var C=Object.keys(f);if(Object.getOwnPropertySymbols){var Y=Object.getOwnPropertySymbols(f);u&&(Y=Y.filter(function(V){return Object.getOwnPropertyDescriptor(f,V).enumerable})),C.push.apply(C,Y)}return C}function c(f){for(var u=1;u"u"&&(C=u,u=void 0),typeof C<"u"){if(typeof C!="function")throw new Error(l(1));return C(w)(f,u)}if(typeof f!="function")throw new Error(l(2));var V=f,U=u,$=[],W=$,J=!1;function z(){W===$&&(W=$.slice())}function ee(){if(J)throw new Error(l(3));return U}function ae(te){if(typeof te!="function")throw new Error(l(4));if(J)throw new Error(l(5));var de=!0;return z(),W.push(te),function(){if(de){if(J)throw new Error(l(6));de=!1,z();var oe=W.indexOf(te);W.splice(oe,1),$=null}}}function ce(te){if(!D(te))throw new Error(l(7));if(typeof te.type>"u")throw new Error(l(8));if(J)throw new Error(l(9));try{J=!0,U=V(U,te)}finally{J=!1}for(var de=$=W,pe=0;pe0)return"Unexpected "+($.length>1?"keys":"key")+" "+('"'+$.join('", "')+'" found in '+U+". ")+"Expected to find one of the known reducer keys instead: "+('"'+V.join('", "')+'". Unexpected keys will be ignored.')}function t(f){Object.keys(f).forEach(function(u){var C=f[u],Y=C(void 0,{type:y.INIT});if(typeof Y>"u")throw new Error(l(12));if(typeof C(void 0,{type:y.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(l(13))})}function n(f){for(var u=Object.keys(f),C={},Y=0;Y"u"){var Te=ee&&ee.type;throw new Error(l(14))}le[te]=oe,ce=ce||oe!==pe}return ce=ce||U.length!==Object.keys(z).length,ce?le:z}}function s(f,u){return function(){return u(f.apply(this,arguments))}}function v(f,u){if(typeof f=="function")return s(f,u);if(typeof f!="object"||f===null)throw new Error(l(16));var C={};for(var Y in f){var V=f[Y];typeof V=="function"&&(C[Y]=s(V,u))}return C}function P(){for(var f=arguments.length,u=new Array(f),C=0;Cwindow.pluralize(O,e,{count:e}),noChoicesText:E,noResultsText:L,placeholderValue:k,position:Q??"auto",removeItemButton:se,renderChoiceLimit:D,searchEnabled:h,searchFields:w??["label"],searchPlaceholderValue:E,searchResultLimit:D,shouldSort:!1,searchFloor:a?0:1}),await this.refreshChoices({withInitialOptions:!0}),[null,void 0,""].includes(this.state)||this.select.setChoiceByValue(this.formatState(this.state)),this.refreshPlaceholder(),b&&this.select.showDropdown(),this.$refs.input.addEventListener("change",()=>{this.refreshPlaceholder(),!this.isStateBeingUpdated&&(this.isStateBeingUpdated=!0,this.state=this.select.getValue(!0)??null,this.$nextTick(()=>this.isStateBeingUpdated=!1))}),d&&this.$refs.input.addEventListener("showDropdown",async()=>{this.select.clearChoices(),await this.select.setChoices([{label:c,value:"",disabled:!0}]),await this.refreshChoices()}),a&&(this.$refs.input.addEventListener("search",async e=>{let t=e.detail.value?.trim();this.isSearching=!0,this.select.clearChoices(),await this.select.setChoices([{label:[null,void 0,""].includes(t)?c:ne,value:"",disabled:!0}])}),this.$refs.input.addEventListener("search",Alpine.debounce(async e=>{await this.refreshChoices({search:e.detail.value?.trim()}),this.isSearching=!1},Z))),_||window.addEventListener("filament-forms::select.refreshSelectedOptionLabel",async e=>{e.detail.livewireId===r&&e.detail.statePath===g&&await this.refreshChoices({withInitialOptions:!1})}),this.$watch("state",async()=>{this.select&&(this.refreshPlaceholder(),!this.isStateBeingUpdated&&await this.refreshChoices({withInitialOptions:!d}))})},destroy:function(){this.select.destroy(),this.select=null},refreshChoices:async function(e={}){let t=await this.getChoices(e);this.select&&(this.select.clearStore(),this.refreshPlaceholder(),this.setChoices(t),[null,void 0,""].includes(this.state)||this.select.setChoiceByValue(this.formatState(this.state)))},setChoices:function(e){this.select.setChoices(e,"value","label",!0)},getChoices:async function(e={}){let t=await this.getExistingOptions(e);return t.concat(await this.getMissingOptions(t))},getExistingOptions:async function({search:e,withInitialOptions:t}){if(t)return y;let n=[];return e!==""&&e!==null&&e!==void 0?n=await i(e):n=await j(),n.map(s=>s.choices?(s.choices=s.choices.map(v=>(v.selected=Array.isArray(this.state)?this.state.includes(v.value):this.state===v.value,v)),s):(s.selected=Array.isArray(this.state)?this.state.includes(s.value):this.state===s.value,s))},refreshPlaceholder:function(){_||(this.select._renderItems(),[null,void 0,""].includes(this.state)&&(this.$el.querySelector(".choices__list--single").innerHTML=`
${k??""}
`))},formatState:function(e){return _?(e??[]).map(t=>t?.toString()):e?.toString()},getMissingOptions:async function(e){let t=this.formatState(this.state);if([null,void 0,"",[],{}].includes(t))return{};let n=new Set;return e.forEach(s=>{if(s.choices){s.choices.forEach(v=>n.add(v.value));return}n.add(s.value)}),_?t.every(s=>n.has(s))?{}:(await me()).filter(s=>!n.has(s.value)).map(s=>(s.selected=!0,s)):n.has(t)?n:[{label:await X(),value:t,selected:!0}]}}}export{vt as default}; +/*! Bundled license information: + +choices.js/public/assets/scripts/choices.js: + (*! choices.js v10.2.0 | © 2022 Josh Johnson | https://github.com/jshjohnson/Choices#readme *) +*/ diff --git a/ems-sense/public/js/filament/forms/components/tags-input.js b/ems-sense/public/js/filament/forms/components/tags-input.js new file mode 100644 index 0000000..c19c04a --- /dev/null +++ b/ems-sense/public/js/filament/forms/components/tags-input.js @@ -0,0 +1 @@ +function i({state:a,splitKeys:n}){return{newTag:"",state:a,createTag:function(){if(this.newTag=this.newTag.trim(),this.newTag!==""){if(this.state.includes(this.newTag)){this.newTag="";return}this.state.push(this.newTag),this.newTag=""}},deleteTag:function(t){this.state=this.state.filter(e=>e!==t)},reorderTags:function(t){let e=this.state.splice(t.oldIndex,1)[0];this.state.splice(t.newIndex,0,e),this.state=[...this.state]},input:{["x-on:blur"]:"createTag()",["x-model"]:"newTag",["x-on:keydown"](t){["Enter",...n].includes(t.key)&&(t.preventDefault(),t.stopPropagation(),this.createTag())},["x-on:paste"](){this.$nextTick(()=>{if(n.length===0){this.createTag();return}let t=n.map(e=>e.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")).join("|");this.newTag.split(new RegExp(t,"g")).forEach(e=>{this.newTag=e,this.createTag()})})}}}}export{i as default}; diff --git a/ems-sense/public/js/filament/forms/components/textarea.js b/ems-sense/public/js/filament/forms/components/textarea.js new file mode 100644 index 0000000..4fda241 --- /dev/null +++ b/ems-sense/public/js/filament/forms/components/textarea.js @@ -0,0 +1 @@ +function r({initialHeight:t,shouldAutosize:i,state:s}){return{state:s,wrapperEl:null,init:function(){this.wrapperEl=this.$el.parentNode,this.setInitialHeight(),i?this.$watch("state",()=>{this.resize()}):this.setUpResizeObserver()},setInitialHeight:function(){this.$el.scrollHeight<=0||(this.wrapperEl.style.height=t+"rem")},resize:function(){if(this.setInitialHeight(),this.$el.scrollHeight<=0)return;let e=this.$el.scrollHeight+"px";this.wrapperEl.style.height!==e&&(this.wrapperEl.style.height=e)},setUpResizeObserver:function(){new ResizeObserver(()=>{this.wrapperEl.style.height=this.$el.style.height}).observe(this.$el)}}}export{r as default}; diff --git a/ems-sense/public/js/filament/notifications/notifications.js b/ems-sense/public/js/filament/notifications/notifications.js new file mode 100644 index 0000000..3c6d3ee --- /dev/null +++ b/ems-sense/public/js/filament/notifications/notifications.js @@ -0,0 +1 @@ +(()=>{var O=Object.create;var N=Object.defineProperty;var V=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var d=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports);var j=(i,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Y(t))!W.call(i,n)&&n!==e&&N(i,n,{get:()=>t[n],enumerable:!(s=V(t,n))||s.enumerable});return i};var J=(i,t,e)=>(e=i!=null?O(H(i)):{},j(t||!i||!i.__esModule?N(e,"default",{value:i,enumerable:!0}):e,i));var S=d((ut,_)=>{var v,g=typeof global<"u"&&(global.crypto||global.msCrypto);g&&g.getRandomValues&&(y=new Uint8Array(16),v=function(){return g.getRandomValues(y),y});var y;v||(T=new Array(16),v=function(){for(var i=0,t;i<16;i++)i&3||(t=Math.random()*4294967296),T[i]=t>>>((i&3)<<3)&255;return T});var T;_.exports=v});var C=d((ct,U)=>{var P=[];for(f=0;f<256;++f)P[f]=(f+256).toString(16).substr(1);var f;function K(i,t){var e=t||0,s=P;return s[i[e++]]+s[i[e++]]+s[i[e++]]+s[i[e++]]+"-"+s[i[e++]]+s[i[e++]]+"-"+s[i[e++]]+s[i[e++]]+"-"+s[i[e++]]+s[i[e++]]+"-"+s[i[e++]]+s[i[e++]]+s[i[e++]]+s[i[e++]]+s[i[e++]]+s[i[e++]]}U.exports=K});var R=d((lt,F)=>{var Q=S(),X=C(),a=Q(),Z=[a[0]|1,a[1],a[2],a[3],a[4],a[5]],b=(a[6]<<8|a[7])&16383,D=0,A=0;function tt(i,t,e){var s=t&&e||0,n=t||[];i=i||{};var r=i.clockseq!==void 0?i.clockseq:b,o=i.msecs!==void 0?i.msecs:new Date().getTime(),h=i.nsecs!==void 0?i.nsecs:A+1,l=o-D+(h-A)/1e4;if(l<0&&i.clockseq===void 0&&(r=r+1&16383),(l<0||o>D)&&i.nsecs===void 0&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");D=o,A=h,b=r,o+=122192928e5;var c=((o&268435455)*1e4+h)%4294967296;n[s++]=c>>>24&255,n[s++]=c>>>16&255,n[s++]=c>>>8&255,n[s++]=c&255;var u=o/4294967296*1e4&268435455;n[s++]=u>>>8&255,n[s++]=u&255,n[s++]=u>>>24&15|16,n[s++]=u>>>16&255,n[s++]=r>>>8|128,n[s++]=r&255;for(var $=i.node||Z,m=0;m<6;++m)n[s+m]=$[m];return t||X(n)}F.exports=tt});var I=d((dt,G)=>{var it=S(),et=C();function st(i,t,e){var s=t&&e||0;typeof i=="string"&&(t=i=="binary"?new Array(16):null,i=null),i=i||{};var n=i.random||(i.rng||it)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t)for(var r=0;r<16;++r)t[s+r]=n[r];return t||et(n)}G.exports=st});var z=d((ft,M)=>{var nt=R(),L=I(),E=L;E.v1=nt;E.v4=L;M.exports=E});function k(i,t=()=>{}){let e=!1;return function(){e?t.apply(this,arguments):(e=!0,i.apply(this,arguments))}}var q=i=>{i.data("notificationComponent",({notification:t})=>({isShown:!1,computedStyle:null,transitionDuration:null,transitionEasing:null,init:function(){this.computedStyle=window.getComputedStyle(this.$el),this.transitionDuration=parseFloat(this.computedStyle.transitionDuration)*1e3,this.transitionEasing=this.computedStyle.transitionTimingFunction,this.configureTransitions(),this.configureAnimations(),t.duration&&t.duration!=="persistent"&&setTimeout(()=>{if(!this.$el.matches(":hover")){this.close();return}this.$el.addEventListener("mouseleave",()=>this.close())},t.duration),this.isShown=!0},configureTransitions:function(){let e=this.computedStyle.display,s=()=>{i.mutateDom(()=>{this.$el.style.setProperty("display",e),this.$el.style.setProperty("visibility","visible")}),this.$el._x_isShown=!0},n=()=>{i.mutateDom(()=>{this.$el._x_isShown?this.$el.style.setProperty("visibility","hidden"):this.$el.style.setProperty("display","none")})},r=k(o=>o?s():n(),o=>{this.$el._x_toggleAndCascadeWithTransitions(this.$el,o,s,n)});i.effect(()=>r(this.isShown))},configureAnimations:function(){let e;Livewire.hook("commit",({component:s,commit:n,succeed:r,fail:o,respond:h})=>{if(!s.snapshot.data.isFilamentNotificationsComponent)return;let l=()=>this.$el.getBoundingClientRect().top,c=l();h(()=>{e=()=>{this.isShown&&this.$el.animate([{transform:`translateY(${c-l()}px)`},{transform:"translateY(0px)"}],{duration:this.transitionDuration,easing:this.transitionEasing})},this.$el.getAnimations().forEach(u=>u.finish())}),r(({snapshot:u,effect:$})=>{e()})})},close:function(){this.isShown=!1,setTimeout(()=>window.dispatchEvent(new CustomEvent("notificationClosed",{detail:{id:t.id}})),this.transitionDuration)},markAsRead:function(){window.dispatchEvent(new CustomEvent("markedNotificationAsRead",{detail:{id:t.id}}))},markAsUnread:function(){window.dispatchEvent(new CustomEvent("markedNotificationAsUnread",{detail:{id:t.id}}))}}))};var B=J(z(),1),p=class{constructor(){return this.id((0,B.v4)()),this}id(t){return this.id=t,this}title(t){return this.title=t,this}body(t){return this.body=t,this}actions(t){return this.actions=t,this}status(t){return this.status=t,this}color(t){return this.color=t,this}icon(t){return this.icon=t,this}iconColor(t){return this.iconColor=t,this}duration(t){return this.duration=t,this}seconds(t){return this.duration(t*1e3),this}persistent(){return this.duration("persistent"),this}danger(){return this.status("danger"),this}info(){return this.status("info"),this}success(){return this.status("success"),this}warning(){return this.status("warning"),this}view(t){return this.view=t,this}viewData(t){return this.viewData=t,this}send(){return window.dispatchEvent(new CustomEvent("notificationSent",{detail:{notification:this}})),this}},w=class{constructor(t){return this.name(t),this}name(t){return this.name=t,this}color(t){return this.color=t,this}dispatch(t,e){return this.event(t),this.eventData(e),this}dispatchSelf(t,e){return this.dispatch(t,e),this.dispatchDirection="self",this}dispatchTo(t,e,s){return this.dispatch(e,s),this.dispatchDirection="to",this.dispatchToComponent=t,this}emit(t,e){return this.dispatch(t,e),this}emitSelf(t,e){return this.dispatchSelf(t,e),this}emitTo(t,e,s){return this.dispatchTo(t,e,s),this}dispatchDirection(t){return this.dispatchDirection=t,this}dispatchToComponent(t){return this.dispatchToComponent=t,this}event(t){return this.event=t,this}eventData(t){return this.eventData=t,this}extraAttributes(t){return this.extraAttributes=t,this}icon(t){return this.icon=t,this}iconPosition(t){return this.iconPosition=t,this}outlined(t=!0){return this.isOutlined=t,this}disabled(t=!0){return this.isDisabled=t,this}label(t){return this.label=t,this}close(t=!0){return this.shouldClose=t,this}openUrlInNewTab(t=!0){return this.shouldOpenUrlInNewTab=t,this}size(t){return this.size=t,this}url(t){return this.url=t,this}view(t){return this.view=t,this}button(){return this.view("filament-actions::button-action"),this}grouped(){return this.view("filament-actions::grouped-action"),this}link(){return this.view("filament-actions::link-action"),this}},x=class{constructor(t){return this.actions(t),this}actions(t){return this.actions=t.map(e=>e.grouped()),this}color(t){return this.color=t,this}icon(t){return this.icon=t,this}iconPosition(t){return this.iconPosition=t,this}label(t){return this.label=t,this}tooltip(t){return this.tooltip=t,this}};window.FilamentNotificationAction=w;window.FilamentNotificationActionGroup=x;window.FilamentNotification=p;document.addEventListener("alpine:init",()=>{window.Alpine.plugin(q)});})(); diff --git a/ems-sense/public/js/filament/support/async-alpine.js b/ems-sense/public/js/filament/support/async-alpine.js new file mode 100644 index 0000000..048f75c --- /dev/null +++ b/ems-sense/public/js/filament/support/async-alpine.js @@ -0,0 +1 @@ +(()=>{(()=>{var d=Object.defineProperty,m=t=>d(t,"__esModule",{value:!0}),f=(t,e)=>{m(t);for(var i in e)d(t,i,{get:e[i],enumerable:!0})},o={};f(o,{eager:()=>g,event:()=>w,idle:()=>y,media:()=>b,visible:()=>E});var c=()=>!0,g=c,v=({component:t,argument:e})=>new Promise(i=>{if(e)window.addEventListener(e,()=>i(),{once:!0});else{let n=a=>{a.detail.id===t.id&&(window.removeEventListener("async-alpine:load",n),i())};window.addEventListener("async-alpine:load",n)}}),w=v,x=()=>new Promise(t=>{"requestIdleCallback"in window?window.requestIdleCallback(t):setTimeout(t,200)}),y=x,A=({argument:t})=>new Promise(e=>{if(!t)return console.log("Async Alpine: media strategy requires a media query. Treating as 'eager'"),e();let i=window.matchMedia(`(${t})`);i.matches?e():i.addEventListener("change",e,{once:!0})}),b=A,$=({component:t,argument:e})=>new Promise(i=>{let n=e||"0px 0px 0px 0px",a=new IntersectionObserver(r=>{r[0].isIntersecting&&(a.disconnect(),i())},{rootMargin:n});a.observe(t.el)}),E=$;function P(t){let e=q(t),i=u(e);return i.type==="method"?{type:"expression",operator:"&&",parameters:[i]}:i}function q(t){let e=/\s*([()])\s*|\s*(\|\||&&|\|)\s*|\s*((?:[^()&|]+\([^()]+\))|[^()&|]+)\s*/g,i=[],n;for(;(n=e.exec(t))!==null;){let[,a,r,s]=n;if(a!==void 0)i.push({type:"parenthesis",value:a});else if(r!==void 0)i.push({type:"operator",value:r==="|"?"&&":r});else{let p={type:"method",method:s.trim()};s.includes("(")&&(p.method=s.substring(0,s.indexOf("(")).trim(),p.argument=s.substring(s.indexOf("(")+1,s.indexOf(")"))),s.method==="immediate"&&(s.method="eager"),i.push(p)}}return i}function u(t){let e=h(t);for(;t.length>0&&(t[0].value==="&&"||t[0].value==="|"||t[0].value==="||");){let i=t.shift().value,n=h(t);e.type==="expression"&&e.operator===i?e.parameters.push(n):e={type:"expression",operator:i,parameters:[e,n]}}return e}function h(t){if(t[0].value==="("){t.shift();let e=u(t);return t[0].value===")"&&t.shift(),e}else return t.shift()}var _="__internal_",l={Alpine:null,_options:{prefix:"ax-",alpinePrefix:"x-",root:"load",inline:"load-src",defaultStrategy:"eager"},_alias:!1,_data:{},_realIndex:0,get _index(){return this._realIndex++},init(t,e={}){return this.Alpine=t,this._options={...this._options,...e},this},start(){return this._processInline(),this._setupComponents(),this._mutations(),this},data(t,e=!1){return this._data[t]={loaded:!1,download:e},this},url(t,e){!t||!e||(this._data[t]||this.data(t),this._data[t].download=()=>import(this._parseUrl(e)))},alias(t){this._alias=t},_processInline(){let t=document.querySelectorAll(`[${this._options.prefix}${this._options.inline}]`);for(let e of t)this._inlineElement(e)},_inlineElement(t){let e=t.getAttribute(`${this._options.alpinePrefix}data`),i=t.getAttribute(`${this._options.prefix}${this._options.inline}`);if(!e||!i)return;let n=this._parseName(e);this.url(n,i)},_setupComponents(){let t=document.querySelectorAll(`[${this._options.prefix}${this._options.root}]`);for(let e of t)this._setupComponent(e)},_setupComponent(t){let e=t.getAttribute(`${this._options.alpinePrefix}data`);t.setAttribute(`${this._options.alpinePrefix}ignore`,"");let i=this._parseName(e),n=t.getAttribute(`${this._options.prefix}${this._options.root}`)||this._options.defaultStrategy;this._componentStrategy({name:i,strategy:n,el:t,id:t.id||this._index})},async _componentStrategy(t){let e=P(t.strategy);await this._generateRequirements(t,e),await this._download(t.name),this._activate(t)},_generateRequirements(t,e){if(e.type==="expression"){if(e.operator==="&&")return Promise.all(e.parameters.map(i=>this._generateRequirements(t,i)));if(e.operator==="||")return Promise.any(e.parameters.map(i=>this._generateRequirements(t,i)))}return o[e.method]?o[e.method]({component:t,argument:e.argument}):!1},async _download(t){if(t.startsWith(_)||(this._handleAlias(t),!this._data[t]||this._data[t].loaded))return;let e=await this._getModule(t);this.Alpine.data(t,e),this._data[t].loaded=!0},async _getModule(t){if(!this._data[t])return;let e=await this._data[t].download(t);return typeof e=="function"?e:e[t]||e.default||Object.values(e)[0]||!1},_activate(t){this.Alpine.destroyTree(t.el),t.el.removeAttribute(`${this._options.alpinePrefix}ignore`),t.el._x_ignore=!1,this.Alpine.initTree(t.el)},_mutations(){new MutationObserver(t=>{for(let e of t)if(e.addedNodes)for(let i of e.addedNodes)i.nodeType===1&&(i.hasAttribute(`${this._options.prefix}${this._options.root}`)&&this._mutationEl(i),i.querySelectorAll(`[${this._options.prefix}${this._options.root}]`).forEach(n=>this._mutationEl(n)))}).observe(document,{attributes:!0,childList:!0,subtree:!0})},_mutationEl(t){t.hasAttribute(`${this._options.prefix}${this._options.inline}`)&&this._inlineElement(t),this._setupComponent(t)},_handleAlias(t){if(!(!this._alias||this._data[t])){if(typeof this._alias=="function"){this.data(t,this._alias);return}this.url(t,this._alias.replaceAll("[name]",t))}},_parseName(t){return(t||"").split(/[({]/g)[0]||`${_}${this._index}`},_parseUrl(t){return new RegExp("^(?:[a-z+]+:)?//","i").test(t)?t:new URL(t,document.baseURI).href}};document.addEventListener("alpine:init",()=>{window.AsyncAlpine=l,l.init(Alpine,window.AsyncAlpineOptions||{}),document.dispatchEvent(new CustomEvent("async-alpine:init")),l.start()})})();})(); diff --git a/ems-sense/public/js/filament/support/support.js b/ems-sense/public/js/filament/support/support.js new file mode 100644 index 0000000..92f707e --- /dev/null +++ b/ems-sense/public/js/filament/support/support.js @@ -0,0 +1,46 @@ +(()=>{var Bo=Object.create;var Ti=Object.defineProperty;var Ho=Object.getOwnPropertyDescriptor;var $o=Object.getOwnPropertyNames;var Wo=Object.getPrototypeOf,Vo=Object.prototype.hasOwnProperty;var Kr=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var zo=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $o(e))!Vo.call(t,i)&&i!==r&&Ti(t,i,{get:()=>e[i],enumerable:!(n=Ho(e,i))||n.enumerable});return t};var Uo=(t,e,r)=>(r=t!=null?Bo(Wo(t)):{},zo(e||!t||!t.__esModule?Ti(r,"default",{value:t,enumerable:!0}):r,t));var ao=Kr(()=>{});var so=Kr(()=>{});var lo=Kr((Os,yr)=>{(function(){"use strict";var t="input is invalid type",e="finalize already called",r=typeof window=="object",n=r?window:{};n.JS_MD5_NO_WINDOW&&(r=!1);var i=!r&&typeof self=="object",o=!n.JS_MD5_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;o?n=global:i&&(n=self);var s=!n.JS_MD5_NO_COMMON_JS&&typeof yr=="object"&&yr.exports,h=typeof define=="function"&&define.amd,u=!n.JS_MD5_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",f="0123456789abcdef".split(""),w=[128,32768,8388608,-2147483648],m=[0,8,16,24],E=["hex","array","digest","buffer","arrayBuffer","base64"],O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),S=[],P;if(u){var R=new ArrayBuffer(68);P=new Uint8Array(R),S=new Uint32Array(R)}var $=Array.isArray;(n.JS_MD5_NO_NODE_JS||!$)&&($=function(l){return Object.prototype.toString.call(l)==="[object Array]"});var B=ArrayBuffer.isView;u&&(n.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW||!B)&&(B=function(l){return typeof l=="object"&&l.buffer&&l.buffer.constructor===ArrayBuffer});var K=function(l){var p=typeof l;if(p==="string")return[l,!0];if(p!=="object"||l===null)throw new Error(t);if(u&&l.constructor===ArrayBuffer)return[new Uint8Array(l),!1];if(!$(l)&&!B(l))throw new Error(t);return[l,!1]},X=function(l){return function(p){return new U(!0).update(p)[l]()}},ne=function(){var l=X("hex");o&&(l=J(l)),l.create=function(){return new U},l.update=function(d){return l.create().update(d)};for(var p=0;p>>6,Ue[_++]=128|d&63):d<55296||d>=57344?(Ue[_++]=224|d>>>12,Ue[_++]=128|d>>>6&63,Ue[_++]=128|d&63):(d=65536+((d&1023)<<10|l.charCodeAt(++N)&1023),Ue[_++]=240|d>>>18,Ue[_++]=128|d>>>12&63,Ue[_++]=128|d>>>6&63,Ue[_++]=128|d&63);else for(_=this.start;N>>2]|=d<>>2]|=(192|d>>>6)<>>2]|=(128|d&63)<=57344?(Q[_>>>2]|=(224|d>>>12)<>>2]|=(128|d>>>6&63)<>>2]|=(128|d&63)<>>2]|=(240|d>>>18)<>>2]|=(128|d>>>12&63)<>>2]|=(128|d>>>6&63)<>>2]|=(128|d&63)<>>2]|=l[N]<=64?(this.start=_-64,this.hash(),this.hashed=!0):this.start=_}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this},U.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var l=this.blocks,p=this.lastByteIndex;l[p>>>2]|=w[p&3],p>=56&&(this.hashed||this.hash(),l[0]=l[16],l[16]=l[1]=l[2]=l[3]=l[4]=l[5]=l[6]=l[7]=l[8]=l[9]=l[10]=l[11]=l[12]=l[13]=l[14]=l[15]=0),l[14]=this.bytes<<3,l[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},U.prototype.hash=function(){var l,p,v,d,N,_,M=this.blocks;this.first?(l=M[0]-680876937,l=(l<<7|l>>>25)-271733879<<0,d=(-1732584194^l&2004318071)+M[1]-117830708,d=(d<<12|d>>>20)+l<<0,v=(-271733879^d&(l^-271733879))+M[2]-1126478375,v=(v<<17|v>>>15)+d<<0,p=(l^v&(d^l))+M[3]-1316259209,p=(p<<22|p>>>10)+v<<0):(l=this.h0,p=this.h1,v=this.h2,d=this.h3,l+=(d^p&(v^d))+M[0]-680876936,l=(l<<7|l>>>25)+p<<0,d+=(v^l&(p^v))+M[1]-389564586,d=(d<<12|d>>>20)+l<<0,v+=(p^d&(l^p))+M[2]+606105819,v=(v<<17|v>>>15)+d<<0,p+=(l^v&(d^l))+M[3]-1044525330,p=(p<<22|p>>>10)+v<<0),l+=(d^p&(v^d))+M[4]-176418897,l=(l<<7|l>>>25)+p<<0,d+=(v^l&(p^v))+M[5]+1200080426,d=(d<<12|d>>>20)+l<<0,v+=(p^d&(l^p))+M[6]-1473231341,v=(v<<17|v>>>15)+d<<0,p+=(l^v&(d^l))+M[7]-45705983,p=(p<<22|p>>>10)+v<<0,l+=(d^p&(v^d))+M[8]+1770035416,l=(l<<7|l>>>25)+p<<0,d+=(v^l&(p^v))+M[9]-1958414417,d=(d<<12|d>>>20)+l<<0,v+=(p^d&(l^p))+M[10]-42063,v=(v<<17|v>>>15)+d<<0,p+=(l^v&(d^l))+M[11]-1990404162,p=(p<<22|p>>>10)+v<<0,l+=(d^p&(v^d))+M[12]+1804603682,l=(l<<7|l>>>25)+p<<0,d+=(v^l&(p^v))+M[13]-40341101,d=(d<<12|d>>>20)+l<<0,v+=(p^d&(l^p))+M[14]-1502002290,v=(v<<17|v>>>15)+d<<0,p+=(l^v&(d^l))+M[15]+1236535329,p=(p<<22|p>>>10)+v<<0,l+=(v^d&(p^v))+M[1]-165796510,l=(l<<5|l>>>27)+p<<0,d+=(p^v&(l^p))+M[6]-1069501632,d=(d<<9|d>>>23)+l<<0,v+=(l^p&(d^l))+M[11]+643717713,v=(v<<14|v>>>18)+d<<0,p+=(d^l&(v^d))+M[0]-373897302,p=(p<<20|p>>>12)+v<<0,l+=(v^d&(p^v))+M[5]-701558691,l=(l<<5|l>>>27)+p<<0,d+=(p^v&(l^p))+M[10]+38016083,d=(d<<9|d>>>23)+l<<0,v+=(l^p&(d^l))+M[15]-660478335,v=(v<<14|v>>>18)+d<<0,p+=(d^l&(v^d))+M[4]-405537848,p=(p<<20|p>>>12)+v<<0,l+=(v^d&(p^v))+M[9]+568446438,l=(l<<5|l>>>27)+p<<0,d+=(p^v&(l^p))+M[14]-1019803690,d=(d<<9|d>>>23)+l<<0,v+=(l^p&(d^l))+M[3]-187363961,v=(v<<14|v>>>18)+d<<0,p+=(d^l&(v^d))+M[8]+1163531501,p=(p<<20|p>>>12)+v<<0,l+=(v^d&(p^v))+M[13]-1444681467,l=(l<<5|l>>>27)+p<<0,d+=(p^v&(l^p))+M[2]-51403784,d=(d<<9|d>>>23)+l<<0,v+=(l^p&(d^l))+M[7]+1735328473,v=(v<<14|v>>>18)+d<<0,p+=(d^l&(v^d))+M[12]-1926607734,p=(p<<20|p>>>12)+v<<0,N=p^v,l+=(N^d)+M[5]-378558,l=(l<<4|l>>>28)+p<<0,d+=(N^l)+M[8]-2022574463,d=(d<<11|d>>>21)+l<<0,_=d^l,v+=(_^p)+M[11]+1839030562,v=(v<<16|v>>>16)+d<<0,p+=(_^v)+M[14]-35309556,p=(p<<23|p>>>9)+v<<0,N=p^v,l+=(N^d)+M[1]-1530992060,l=(l<<4|l>>>28)+p<<0,d+=(N^l)+M[4]+1272893353,d=(d<<11|d>>>21)+l<<0,_=d^l,v+=(_^p)+M[7]-155497632,v=(v<<16|v>>>16)+d<<0,p+=(_^v)+M[10]-1094730640,p=(p<<23|p>>>9)+v<<0,N=p^v,l+=(N^d)+M[13]+681279174,l=(l<<4|l>>>28)+p<<0,d+=(N^l)+M[0]-358537222,d=(d<<11|d>>>21)+l<<0,_=d^l,v+=(_^p)+M[3]-722521979,v=(v<<16|v>>>16)+d<<0,p+=(_^v)+M[6]+76029189,p=(p<<23|p>>>9)+v<<0,N=p^v,l+=(N^d)+M[9]-640364487,l=(l<<4|l>>>28)+p<<0,d+=(N^l)+M[12]-421815835,d=(d<<11|d>>>21)+l<<0,_=d^l,v+=(_^p)+M[15]+530742520,v=(v<<16|v>>>16)+d<<0,p+=(_^v)+M[2]-995338651,p=(p<<23|p>>>9)+v<<0,l+=(v^(p|~d))+M[0]-198630844,l=(l<<6|l>>>26)+p<<0,d+=(p^(l|~v))+M[7]+1126891415,d=(d<<10|d>>>22)+l<<0,v+=(l^(d|~p))+M[14]-1416354905,v=(v<<15|v>>>17)+d<<0,p+=(d^(v|~l))+M[5]-57434055,p=(p<<21|p>>>11)+v<<0,l+=(v^(p|~d))+M[12]+1700485571,l=(l<<6|l>>>26)+p<<0,d+=(p^(l|~v))+M[3]-1894986606,d=(d<<10|d>>>22)+l<<0,v+=(l^(d|~p))+M[10]-1051523,v=(v<<15|v>>>17)+d<<0,p+=(d^(v|~l))+M[1]-2054922799,p=(p<<21|p>>>11)+v<<0,l+=(v^(p|~d))+M[8]+1873313359,l=(l<<6|l>>>26)+p<<0,d+=(p^(l|~v))+M[15]-30611744,d=(d<<10|d>>>22)+l<<0,v+=(l^(d|~p))+M[6]-1560198380,v=(v<<15|v>>>17)+d<<0,p+=(d^(v|~l))+M[13]+1309151649,p=(p<<21|p>>>11)+v<<0,l+=(v^(p|~d))+M[4]-145523070,l=(l<<6|l>>>26)+p<<0,d+=(p^(l|~v))+M[11]-1120210379,d=(d<<10|d>>>22)+l<<0,v+=(l^(d|~p))+M[2]+718787259,v=(v<<15|v>>>17)+d<<0,p+=(d^(v|~l))+M[9]-343485551,p=(p<<21|p>>>11)+v<<0,this.first?(this.h0=l+1732584193<<0,this.h1=p-271733879<<0,this.h2=v-1732584194<<0,this.h3=d+271733878<<0,this.first=!1):(this.h0=this.h0+l<<0,this.h1=this.h1+p<<0,this.h2=this.h2+v<<0,this.h3=this.h3+d<<0)},U.prototype.hex=function(){this.finalize();var l=this.h0,p=this.h1,v=this.h2,d=this.h3;return f[l>>>4&15]+f[l&15]+f[l>>>12&15]+f[l>>>8&15]+f[l>>>20&15]+f[l>>>16&15]+f[l>>>28&15]+f[l>>>24&15]+f[p>>>4&15]+f[p&15]+f[p>>>12&15]+f[p>>>8&15]+f[p>>>20&15]+f[p>>>16&15]+f[p>>>28&15]+f[p>>>24&15]+f[v>>>4&15]+f[v&15]+f[v>>>12&15]+f[v>>>8&15]+f[v>>>20&15]+f[v>>>16&15]+f[v>>>28&15]+f[v>>>24&15]+f[d>>>4&15]+f[d&15]+f[d>>>12&15]+f[d>>>8&15]+f[d>>>20&15]+f[d>>>16&15]+f[d>>>28&15]+f[d>>>24&15]},U.prototype.toString=U.prototype.hex,U.prototype.digest=function(){this.finalize();var l=this.h0,p=this.h1,v=this.h2,d=this.h3;return[l&255,l>>>8&255,l>>>16&255,l>>>24&255,p&255,p>>>8&255,p>>>16&255,p>>>24&255,v&255,v>>>8&255,v>>>16&255,v>>>24&255,d&255,d>>>8&255,d>>>16&255,d>>>24&255]},U.prototype.array=U.prototype.digest,U.prototype.arrayBuffer=function(){this.finalize();var l=new ArrayBuffer(16),p=new Uint32Array(l);return p[0]=this.h0,p[1]=this.h1,p[2]=this.h2,p[3]=this.h3,l},U.prototype.buffer=U.prototype.arrayBuffer,U.prototype.base64=function(){for(var l,p,v,d="",N=this.array(),_=0;_<15;)l=N[_++],p=N[_++],v=N[_++],d+=O[l>>>2]+O[(l<<4|p>>>4)&63]+O[(p<<2|v>>>6)&63]+O[v&63];return l=N[_],d+=O[l>>>2]+O[l<<4&63]+"==",d};function Z(l,p){var v,d=K(l);if(l=d[0],d[1]){var N=[],_=l.length,M=0,Q;for(v=0;v<_;++v)Q=l.charCodeAt(v),Q<128?N[M++]=Q:Q<2048?(N[M++]=192|Q>>>6,N[M++]=128|Q&63):Q<55296||Q>=57344?(N[M++]=224|Q>>>12,N[M++]=128|Q>>>6&63,N[M++]=128|Q&63):(Q=65536+((Q&1023)<<10|l.charCodeAt(++v)&1023),N[M++]=240|Q>>>18,N[M++]=128|Q>>>12&63,N[M++]=128|Q>>>6&63,N[M++]=128|Q&63);l=N}l.length>64&&(l=new U(!0).update(l).array());var Ue=[],Rt=[];for(v=0;v<64;++v){var Vt=l[v]||0;Ue[v]=92^Vt,Rt[v]=54^Vt}U.call(this,p),this.update(Rt),this.oKeyPad=Ue,this.inner=!0,this.sharedMemory=p}Z.prototype=new U,Z.prototype.finalize=function(){if(U.prototype.finalize.call(this),this.inner){this.inner=!1;var l=this.array();U.call(this,this.sharedMemory),this.update(this.oKeyPad),this.update(l),U.prototype.finalize.call(this)}};var me=ne();me.md5=me,me.md5.hmac=de(),s?yr.exports=me:(n.md5=me,h&&define(function(){return me}))})()});var Bi=["top","right","bottom","left"],_i=["start","end"],Pi=Bi.reduce((t,e)=>t.concat(e,e+"-"+_i[0],e+"-"+_i[1]),[]),Et=Math.min,tt=Math.max,hr=Math.round,pr=Math.floor,nn=t=>({x:t,y:t}),Yo={left:"right",right:"left",bottom:"top",top:"bottom"},Xo={start:"end",end:"start"};function Jr(t,e,r){return tt(t,Et(e,r))}function jt(t,e){return typeof t=="function"?t(e):t}function pt(t){return t.split("-")[0]}function xt(t){return t.split("-")[1]}function Hi(t){return t==="x"?"y":"x"}function Zr(t){return t==="y"?"height":"width"}function Pn(t){return["top","bottom"].includes(pt(t))?"y":"x"}function Qr(t){return Hi(Pn(t))}function $i(t,e,r){r===void 0&&(r=!1);let n=xt(t),i=Qr(t),o=Zr(i),s=i==="x"?n===(r?"end":"start")?"right":"left":n==="start"?"bottom":"top";return e.reference[o]>e.floating[o]&&(s=mr(s)),[s,mr(s)]}function qo(t){let e=mr(t);return[vr(t),e,vr(e)]}function vr(t){return t.replace(/start|end/g,e=>Xo[e])}function Go(t,e,r){let n=["left","right"],i=["right","left"],o=["top","bottom"],s=["bottom","top"];switch(t){case"top":case"bottom":return r?e?i:n:e?n:i;case"left":case"right":return e?o:s;default:return[]}}function Ko(t,e,r,n){let i=xt(t),o=Go(pt(t),r==="start",n);return i&&(o=o.map(s=>s+"-"+i),e&&(o=o.concat(o.map(vr)))),o}function mr(t){return t.replace(/left|right|bottom|top/g,e=>Yo[e])}function Jo(t){return{top:0,right:0,bottom:0,left:0,...t}}function ei(t){return typeof t!="number"?Jo(t):{top:t,right:t,bottom:t,left:t}}function Cn(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}function Mi(t,e,r){let{reference:n,floating:i}=t,o=Pn(e),s=Qr(e),h=Zr(s),u=pt(e),f=o==="y",w=n.x+n.width/2-i.width/2,m=n.y+n.height/2-i.height/2,E=n[h]/2-i[h]/2,O;switch(u){case"top":O={x:w,y:n.y-i.height};break;case"bottom":O={x:w,y:n.y+n.height};break;case"right":O={x:n.x+n.width,y:m};break;case"left":O={x:n.x-i.width,y:m};break;default:O={x:n.x,y:n.y}}switch(xt(e)){case"start":O[s]-=E*(r&&f?-1:1);break;case"end":O[s]+=E*(r&&f?-1:1);break}return O}var Zo=async(t,e,r)=>{let{placement:n="bottom",strategy:i="absolute",middleware:o=[],platform:s}=r,h=o.filter(Boolean),u=await(s.isRTL==null?void 0:s.isRTL(e)),f=await s.getElementRects({reference:t,floating:e,strategy:i}),{x:w,y:m}=Mi(f,n,u),E=n,O={},S=0;for(let P=0;P({name:"arrow",options:t,async fn(e){let{x:r,y:n,placement:i,rects:o,platform:s,elements:h,middlewareData:u}=e,{element:f,padding:w=0}=jt(t,e)||{};if(f==null)return{};let m=ei(w),E={x:r,y:n},O=Qr(i),S=Zr(O),P=await s.getDimensions(f),R=O==="y",$=R?"top":"left",B=R?"bottom":"right",K=R?"clientHeight":"clientWidth",X=o.reference[S]+o.reference[O]-E[O]-o.floating[S],ne=E[O]-o.reference[O],J=await(s.getOffsetParent==null?void 0:s.getOffsetParent(f)),V=J?J[K]:0;(!V||!await(s.isElement==null?void 0:s.isElement(J)))&&(V=h.floating[K]||o.floating[S]);let de=X/2-ne/2,U=V/2-P[S]/2-1,Z=Et(m[$],U),me=Et(m[B],U),l=Z,p=V-P[S]-me,v=V/2-P[S]/2+de,d=Jr(l,v,p),N=!u.arrow&&xt(i)!=null&&v!==d&&o.reference[S]/2-(vxt(i)===t),...r.filter(i=>xt(i)!==t)]:r.filter(i=>pt(i)===i)).filter(i=>t?xt(i)===t||(e?vr(i)!==i:!1):!0)}var ta=function(t){return t===void 0&&(t={}),{name:"autoPlacement",options:t,async fn(e){var r,n,i;let{rects:o,middlewareData:s,placement:h,platform:u,elements:f}=e,{crossAxis:w=!1,alignment:m,allowedPlacements:E=Pi,autoAlignment:O=!0,...S}=jt(t,e),P=m!==void 0||E===Pi?ea(m||null,O,E):E,R=await Tn(e,S),$=((r=s.autoPlacement)==null?void 0:r.index)||0,B=P[$];if(B==null)return{};let K=$i(B,o,await(u.isRTL==null?void 0:u.isRTL(f.floating)));if(h!==B)return{reset:{placement:P[0]}};let X=[R[pt(B)],R[K[0]],R[K[1]]],ne=[...((n=s.autoPlacement)==null?void 0:n.overflows)||[],{placement:B,overflows:X}],J=P[$+1];if(J)return{data:{index:$+1,overflows:ne},reset:{placement:J}};let V=ne.map(Z=>{let me=xt(Z.placement);return[Z.placement,me&&w?Z.overflows.slice(0,2).reduce((l,p)=>l+p,0):Z.overflows[0],Z.overflows]}).sort((Z,me)=>Z[1]-me[1]),U=((i=V.filter(Z=>Z[2].slice(0,xt(Z[0])?2:3).every(me=>me<=0))[0])==null?void 0:i[0])||V[0][0];return U!==h?{data:{index:$+1,overflows:ne},reset:{placement:U}}:{}}}},na=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var r,n;let{placement:i,middlewareData:o,rects:s,initialPlacement:h,platform:u,elements:f}=e,{mainAxis:w=!0,crossAxis:m=!0,fallbackPlacements:E,fallbackStrategy:O="bestFit",fallbackAxisSideDirection:S="none",flipAlignment:P=!0,...R}=jt(t,e);if((r=o.arrow)!=null&&r.alignmentOffset)return{};let $=pt(i),B=pt(h)===h,K=await(u.isRTL==null?void 0:u.isRTL(f.floating)),X=E||(B||!P?[mr(h)]:qo(h));!E&&S!=="none"&&X.push(...Ko(h,P,S,K));let ne=[h,...X],J=await Tn(e,R),V=[],de=((n=o.flip)==null?void 0:n.overflows)||[];if(w&&V.push(J[$]),m){let l=$i(i,s,K);V.push(J[l[0]],J[l[1]])}if(de=[...de,{placement:i,overflows:V}],!V.every(l=>l<=0)){var U,Z;let l=(((U=o.flip)==null?void 0:U.index)||0)+1,p=ne[l];if(p)return{data:{index:l,overflows:de},reset:{placement:p}};let v=(Z=de.filter(d=>d.overflows[0]<=0).sort((d,N)=>d.overflows[1]-N.overflows[1])[0])==null?void 0:Z.placement;if(!v)switch(O){case"bestFit":{var me;let d=(me=de.map(N=>[N.placement,N.overflows.filter(_=>_>0).reduce((_,M)=>_+M,0)]).sort((N,_)=>N[1]-_[1])[0])==null?void 0:me[0];d&&(v=d);break}case"initialPlacement":v=h;break}if(i!==v)return{reset:{placement:v}}}return{}}}};function Ri(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function Ii(t){return Bi.some(e=>t[e]>=0)}var ra=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){let{rects:r}=e,{strategy:n="referenceHidden",...i}=jt(t,e);switch(n){case"referenceHidden":{let o=await Tn(e,{...i,elementContext:"reference"}),s=Ri(o,r.reference);return{data:{referenceHiddenOffsets:s,referenceHidden:Ii(s)}}}case"escaped":{let o=await Tn(e,{...i,altBoundary:!0}),s=Ri(o,r.floating);return{data:{escapedOffsets:s,escaped:Ii(s)}}}default:return{}}}}};function Wi(t){let e=Et(...t.map(o=>o.left)),r=Et(...t.map(o=>o.top)),n=tt(...t.map(o=>o.right)),i=tt(...t.map(o=>o.bottom));return{x:e,y:r,width:n-e,height:i-r}}function ia(t){let e=t.slice().sort((i,o)=>i.y-o.y),r=[],n=null;for(let i=0;in.height/2?r.push([o]):r[r.length-1].push(o),n=o}return r.map(i=>Cn(Wi(i)))}var oa=function(t){return t===void 0&&(t={}),{name:"inline",options:t,async fn(e){let{placement:r,elements:n,rects:i,platform:o,strategy:s}=e,{padding:h=2,x:u,y:f}=jt(t,e),w=Array.from(await(o.getClientRects==null?void 0:o.getClientRects(n.reference))||[]),m=ia(w),E=Cn(Wi(w)),O=ei(h);function S(){if(m.length===2&&m[0].left>m[1].right&&u!=null&&f!=null)return m.find(R=>u>R.left-O.left&&uR.top-O.top&&f=2){if(Pn(r)==="y"){let Z=m[0],me=m[m.length-1],l=pt(r)==="top",p=Z.top,v=me.bottom,d=l?Z.left:me.left,N=l?Z.right:me.right,_=N-d,M=v-p;return{top:p,bottom:v,left:d,right:N,width:_,height:M,x:d,y:p}}let R=pt(r)==="left",$=tt(...m.map(Z=>Z.right)),B=Et(...m.map(Z=>Z.left)),K=m.filter(Z=>R?Z.left===B:Z.right===$),X=K[0].top,ne=K[K.length-1].bottom,J=B,V=$,de=V-J,U=ne-X;return{top:X,bottom:ne,left:J,right:V,width:de,height:U,x:J,y:X}}return E}let P=await o.getElementRects({reference:{getBoundingClientRect:S},floating:n.floating,strategy:s});return i.reference.x!==P.reference.x||i.reference.y!==P.reference.y||i.reference.width!==P.reference.width||i.reference.height!==P.reference.height?{reset:{rects:P}}:{}}}};async function aa(t,e){let{placement:r,platform:n,elements:i}=t,o=await(n.isRTL==null?void 0:n.isRTL(i.floating)),s=pt(r),h=xt(r),u=Pn(r)==="y",f=["left","top"].includes(s)?-1:1,w=o&&u?-1:1,m=jt(e,t),{mainAxis:E,crossAxis:O,alignmentAxis:S}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...m};return h&&typeof S=="number"&&(O=h==="end"?S*-1:S),u?{x:O*w,y:E*f}:{x:E*f,y:O*w}}var Vi=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var r,n;let{x:i,y:o,placement:s,middlewareData:h}=e,u=await aa(e,t);return s===((r=h.offset)==null?void 0:r.placement)&&(n=h.arrow)!=null&&n.alignmentOffset?{}:{x:i+u.x,y:o+u.y,data:{...u,placement:s}}}}},sa=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){let{x:r,y:n,placement:i}=e,{mainAxis:o=!0,crossAxis:s=!1,limiter:h={fn:R=>{let{x:$,y:B}=R;return{x:$,y:B}}},...u}=jt(t,e),f={x:r,y:n},w=await Tn(e,u),m=Pn(pt(i)),E=Hi(m),O=f[E],S=f[m];if(o){let R=E==="y"?"top":"left",$=E==="y"?"bottom":"right",B=O+w[R],K=O-w[$];O=Jr(B,O,K)}if(s){let R=m==="y"?"top":"left",$=m==="y"?"bottom":"right",B=S+w[R],K=S-w[$];S=Jr(B,S,K)}let P=h.fn({...e,[E]:O,[m]:S});return{...P,data:{x:P.x-r,y:P.y-n}}}}},la=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){let{placement:r,rects:n,platform:i,elements:o}=e,{apply:s=()=>{},...h}=jt(t,e),u=await Tn(e,h),f=pt(r),w=xt(r),m=Pn(r)==="y",{width:E,height:O}=n.floating,S,P;f==="top"||f==="bottom"?(S=f,P=w===(await(i.isRTL==null?void 0:i.isRTL(o.floating))?"start":"end")?"left":"right"):(P=f,S=w==="end"?"top":"bottom");let R=O-u[S],$=E-u[P],B=!e.middlewareData.shift,K=R,X=$;if(m){let J=E-u.left-u.right;X=w||B?Et($,J):J}else{let J=O-u.top-u.bottom;K=w||B?Et(R,J):J}if(B&&!w){let J=tt(u.left,0),V=tt(u.right,0),de=tt(u.top,0),U=tt(u.bottom,0);m?X=E-2*(J!==0||V!==0?J+V:tt(u.left,u.right)):K=O-2*(de!==0||U!==0?de+U:tt(u.top,u.bottom))}await s({...e,availableWidth:X,availableHeight:K});let ne=await i.getDimensions(o.floating);return E!==ne.width||O!==ne.height?{reset:{rects:!0}}:{}}}};function rn(t){return zi(t)?(t.nodeName||"").toLowerCase():"#document"}function ct(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Bt(t){var e;return(e=(zi(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function zi(t){return t instanceof Node||t instanceof ct(t).Node}function kt(t){return t instanceof Element||t instanceof ct(t).Element}function _t(t){return t instanceof HTMLElement||t instanceof ct(t).HTMLElement}function Fi(t){return typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof ct(t).ShadowRoot}function Un(t){let{overflow:e,overflowX:r,overflowY:n,display:i}=ht(t);return/auto|scroll|overlay|hidden|clip/.test(e+n+r)&&!["inline","contents"].includes(i)}function ca(t){return["table","td","th"].includes(rn(t))}function ti(t){let e=ni(),r=ht(t);return r.transform!=="none"||r.perspective!=="none"||(r.containerType?r.containerType!=="normal":!1)||!e&&(r.backdropFilter?r.backdropFilter!=="none":!1)||!e&&(r.filter?r.filter!=="none":!1)||["transform","perspective","filter"].some(n=>(r.willChange||"").includes(n))||["paint","layout","strict","content"].some(n=>(r.contain||"").includes(n))}function fa(t){let e=_n(t);for(;_t(e)&&!gr(e);){if(ti(e))return e;e=_n(e)}return null}function ni(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function gr(t){return["html","body","#document"].includes(rn(t))}function ht(t){return ct(t).getComputedStyle(t)}function br(t){return kt(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function _n(t){if(rn(t)==="html")return t;let e=t.assignedSlot||t.parentNode||Fi(t)&&t.host||Bt(t);return Fi(e)?e.host:e}function Ui(t){let e=_n(t);return gr(e)?t.ownerDocument?t.ownerDocument.body:t.body:_t(e)&&Un(e)?e:Ui(e)}function zn(t,e,r){var n;e===void 0&&(e=[]),r===void 0&&(r=!0);let i=Ui(t),o=i===((n=t.ownerDocument)==null?void 0:n.body),s=ct(i);return o?e.concat(s,s.visualViewport||[],Un(i)?i:[],s.frameElement&&r?zn(s.frameElement):[]):e.concat(i,zn(i,[],r))}function Yi(t){let e=ht(t),r=parseFloat(e.width)||0,n=parseFloat(e.height)||0,i=_t(t),o=i?t.offsetWidth:r,s=i?t.offsetHeight:n,h=hr(r)!==o||hr(n)!==s;return h&&(r=o,n=s),{width:r,height:n,$:h}}function ri(t){return kt(t)?t:t.contextElement}function Dn(t){let e=ri(t);if(!_t(e))return nn(1);let r=e.getBoundingClientRect(),{width:n,height:i,$:o}=Yi(e),s=(o?hr(r.width):r.width)/n,h=(o?hr(r.height):r.height)/i;return(!s||!Number.isFinite(s))&&(s=1),(!h||!Number.isFinite(h))&&(h=1),{x:s,y:h}}var ua=nn(0);function Xi(t){let e=ct(t);return!ni()||!e.visualViewport?ua:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function da(t,e,r){return e===void 0&&(e=!1),!r||e&&r!==ct(t)?!1:e}function vn(t,e,r,n){e===void 0&&(e=!1),r===void 0&&(r=!1);let i=t.getBoundingClientRect(),o=ri(t),s=nn(1);e&&(n?kt(n)&&(s=Dn(n)):s=Dn(t));let h=da(o,r,n)?Xi(o):nn(0),u=(i.left+h.x)/s.x,f=(i.top+h.y)/s.y,w=i.width/s.x,m=i.height/s.y;if(o){let E=ct(o),O=n&&kt(n)?ct(n):n,S=E,P=S.frameElement;for(;P&&n&&O!==S;){let R=Dn(P),$=P.getBoundingClientRect(),B=ht(P),K=$.left+(P.clientLeft+parseFloat(B.paddingLeft))*R.x,X=$.top+(P.clientTop+parseFloat(B.paddingTop))*R.y;u*=R.x,f*=R.y,w*=R.x,m*=R.y,u+=K,f+=X,S=ct(P),P=S.frameElement}}return Cn({width:w,height:m,x:u,y:f})}var pa=[":popover-open",":modal"];function qi(t){return pa.some(e=>{try{return t.matches(e)}catch{return!1}})}function ha(t){let{elements:e,rect:r,offsetParent:n,strategy:i}=t,o=i==="fixed",s=Bt(n),h=e?qi(e.floating):!1;if(n===s||h&&o)return r;let u={scrollLeft:0,scrollTop:0},f=nn(1),w=nn(0),m=_t(n);if((m||!m&&!o)&&((rn(n)!=="body"||Un(s))&&(u=br(n)),_t(n))){let E=vn(n);f=Dn(n),w.x=E.x+n.clientLeft,w.y=E.y+n.clientTop}return{width:r.width*f.x,height:r.height*f.y,x:r.x*f.x-u.scrollLeft*f.x+w.x,y:r.y*f.y-u.scrollTop*f.y+w.y}}function va(t){return Array.from(t.getClientRects())}function Gi(t){return vn(Bt(t)).left+br(t).scrollLeft}function ma(t){let e=Bt(t),r=br(t),n=t.ownerDocument.body,i=tt(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),o=tt(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),s=-r.scrollLeft+Gi(t),h=-r.scrollTop;return ht(n).direction==="rtl"&&(s+=tt(e.clientWidth,n.clientWidth)-i),{width:i,height:o,x:s,y:h}}function ga(t,e){let r=ct(t),n=Bt(t),i=r.visualViewport,o=n.clientWidth,s=n.clientHeight,h=0,u=0;if(i){o=i.width,s=i.height;let f=ni();(!f||f&&e==="fixed")&&(h=i.offsetLeft,u=i.offsetTop)}return{width:o,height:s,x:h,y:u}}function ba(t,e){let r=vn(t,!0,e==="fixed"),n=r.top+t.clientTop,i=r.left+t.clientLeft,o=_t(t)?Dn(t):nn(1),s=t.clientWidth*o.x,h=t.clientHeight*o.y,u=i*o.x,f=n*o.y;return{width:s,height:h,x:u,y:f}}function Li(t,e,r){let n;if(e==="viewport")n=ga(t,r);else if(e==="document")n=ma(Bt(t));else if(kt(e))n=ba(e,r);else{let i=Xi(t);n={...e,x:e.x-i.x,y:e.y-i.y}}return Cn(n)}function Ki(t,e){let r=_n(t);return r===e||!kt(r)||gr(r)?!1:ht(r).position==="fixed"||Ki(r,e)}function ya(t,e){let r=e.get(t);if(r)return r;let n=zn(t,[],!1).filter(h=>kt(h)&&rn(h)!=="body"),i=null,o=ht(t).position==="fixed",s=o?_n(t):t;for(;kt(s)&&!gr(s);){let h=ht(s),u=ti(s);!u&&h.position==="fixed"&&(i=null),(o?!u&&!i:!u&&h.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||Un(s)&&!u&&Ki(t,s))?n=n.filter(w=>w!==s):i=h,s=_n(s)}return e.set(t,n),n}function wa(t){let{element:e,boundary:r,rootBoundary:n,strategy:i}=t,s=[...r==="clippingAncestors"?ya(e,this._c):[].concat(r),n],h=s[0],u=s.reduce((f,w)=>{let m=Li(e,w,i);return f.top=tt(m.top,f.top),f.right=Et(m.right,f.right),f.bottom=Et(m.bottom,f.bottom),f.left=tt(m.left,f.left),f},Li(e,h,i));return{width:u.right-u.left,height:u.bottom-u.top,x:u.left,y:u.top}}function xa(t){let{width:e,height:r}=Yi(t);return{width:e,height:r}}function Ea(t,e,r){let n=_t(e),i=Bt(e),o=r==="fixed",s=vn(t,!0,o,e),h={scrollLeft:0,scrollTop:0},u=nn(0);if(n||!n&&!o)if((rn(e)!=="body"||Un(i))&&(h=br(e)),n){let m=vn(e,!0,o,e);u.x=m.x+e.clientLeft,u.y=m.y+e.clientTop}else i&&(u.x=Gi(i));let f=s.left+h.scrollLeft-u.x,w=s.top+h.scrollTop-u.y;return{x:f,y:w,width:s.width,height:s.height}}function Ni(t,e){return!_t(t)||ht(t).position==="fixed"?null:e?e(t):t.offsetParent}function Ji(t,e){let r=ct(t);if(!_t(t)||qi(t))return r;let n=Ni(t,e);for(;n&&ca(n)&&ht(n).position==="static";)n=Ni(n,e);return n&&(rn(n)==="html"||rn(n)==="body"&&ht(n).position==="static"&&!ti(n))?r:n||fa(t)||r}var Oa=async function(t){let e=this.getOffsetParent||Ji,r=this.getDimensions;return{reference:Ea(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,...await r(t.floating)}}};function Sa(t){return ht(t).direction==="rtl"}var Aa={convertOffsetParentRelativeRectToViewportRelativeRect:ha,getDocumentElement:Bt,getClippingRect:wa,getOffsetParent:Ji,getElementRects:Oa,getClientRects:va,getDimensions:xa,getScale:Dn,isElement:kt,isRTL:Sa};function Da(t,e){let r=null,n,i=Bt(t);function o(){var h;clearTimeout(n),(h=r)==null||h.disconnect(),r=null}function s(h,u){h===void 0&&(h=!1),u===void 0&&(u=1),o();let{left:f,top:w,width:m,height:E}=t.getBoundingClientRect();if(h||e(),!m||!E)return;let O=pr(w),S=pr(i.clientWidth-(f+m)),P=pr(i.clientHeight-(w+E)),R=pr(f),B={rootMargin:-O+"px "+-S+"px "+-P+"px "+-R+"px",threshold:tt(0,Et(1,u))||1},K=!0;function X(ne){let J=ne[0].intersectionRatio;if(J!==u){if(!K)return s();J?s(!1,J):n=setTimeout(()=>{s(!1,1e-7)},100)}K=!1}try{r=new IntersectionObserver(X,{...B,root:i.ownerDocument})}catch{r=new IntersectionObserver(X,B)}r.observe(t)}return s(!0),o}function ki(t,e,r,n){n===void 0&&(n={});let{ancestorScroll:i=!0,ancestorResize:o=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:h=typeof IntersectionObserver=="function",animationFrame:u=!1}=n,f=ri(t),w=i||o?[...f?zn(f):[],...zn(e)]:[];w.forEach($=>{i&&$.addEventListener("scroll",r,{passive:!0}),o&&$.addEventListener("resize",r)});let m=f&&h?Da(f,r):null,E=-1,O=null;s&&(O=new ResizeObserver($=>{let[B]=$;B&&B.target===f&&O&&(O.unobserve(e),cancelAnimationFrame(E),E=requestAnimationFrame(()=>{var K;(K=O)==null||K.observe(e)})),r()}),f&&!u&&O.observe(f),O.observe(e));let S,P=u?vn(t):null;u&&R();function R(){let $=vn(t);P&&($.x!==P.x||$.y!==P.y||$.width!==P.width||$.height!==P.height)&&r(),P=$,S=requestAnimationFrame(R)}return r(),()=>{var $;w.forEach(B=>{i&&B.removeEventListener("scroll",r),o&&B.removeEventListener("resize",r)}),m?.(),($=O)==null||$.disconnect(),O=null,u&&cancelAnimationFrame(S)}}var ii=ta,Zi=sa,Qi=na,eo=la,to=ra,no=Qo,ro=oa,ji=(t,e,r)=>{let n=new Map,i={platform:Aa,...r},o={...i.platform,_c:n};return Zo(t,e,{...i,platform:o})},Ca=t=>{let e={placement:"bottom",strategy:"absolute",middleware:[]},r=Object.keys(t),n=i=>t[i];return r.includes("offset")&&e.middleware.push(Vi(n("offset"))),r.includes("teleport")&&(e.strategy="fixed"),r.includes("placement")&&(e.placement=n("placement")),r.includes("autoPlacement")&&!r.includes("flip")&&e.middleware.push(ii(n("autoPlacement"))),r.includes("flip")&&e.middleware.push(Qi(n("flip"))),r.includes("shift")&&e.middleware.push(Zi(n("shift"))),r.includes("inline")&&e.middleware.push(ro(n("inline"))),r.includes("arrow")&&e.middleware.push(no(n("arrow"))),r.includes("hide")&&e.middleware.push(to(n("hide"))),r.includes("size")&&e.middleware.push(eo(n("size"))),e},Ta=(t,e)=>{let r={component:{trap:!1},float:{placement:"bottom",strategy:"absolute",middleware:[]}},n=i=>t[t.indexOf(i)+1];if(t.includes("trap")&&(r.component.trap=!0),t.includes("teleport")&&(r.float.strategy="fixed"),t.includes("offset")&&r.float.middleware.push(Vi(e.offset||10)),t.includes("placement")&&(r.float.placement=n("placement")),t.includes("autoPlacement")&&!t.includes("flip")&&r.float.middleware.push(ii(e.autoPlacement)),t.includes("flip")&&r.float.middleware.push(Qi(e.flip)),t.includes("shift")&&r.float.middleware.push(Zi(e.shift)),t.includes("inline")&&r.float.middleware.push(ro(e.inline)),t.includes("arrow")&&r.float.middleware.push(no(e.arrow)),t.includes("hide")&&r.float.middleware.push(to(e.hide)),t.includes("size")){let i=e.size?.availableWidth??null,o=e.size?.availableHeight??null;i&&delete e.size.availableWidth,o&&delete e.size.availableHeight,r.float.middleware.push(eo({...e.size,apply({availableWidth:s,availableHeight:h,elements:u}){Object.assign(u.floating.style,{maxWidth:`${i??s}px`,maxHeight:`${o??h}px`})}}))}return r},_a=t=>{var e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".split(""),r="";t||(t=Math.floor(Math.random()*e.length));for(var n=0;n{}){let r=!1;return function(){r?e.apply(this,arguments):(r=!0,t.apply(this,arguments))}}function Ma(t){let e={dismissable:!0,trap:!1};function r(n,i=null){if(n){if(n.hasAttribute("aria-expanded")||n.setAttribute("aria-expanded",!1),i.hasAttribute("id"))n.setAttribute("aria-controls",i.getAttribute("id"));else{let o=`panel-${_a(8)}`;n.setAttribute("aria-controls",o),i.setAttribute("id",o)}i.setAttribute("aria-modal",!0),i.setAttribute("role","dialog")}}t.magic("float",n=>(i={},o={})=>{let s={...e,...o},h=Object.keys(i).length>0?Ca(i):{middleware:[ii()]},u=n,f=n.parentElement.closest("[x-data]"),w=f.querySelector('[x-ref="panel"]');r(u,w);function m(){return w.style.display=="block"}function E(){w.style.display="none",u.setAttribute("aria-expanded","false"),s.trap&&w.setAttribute("x-trap","false"),ki(n,w,P)}function O(){w.style.display="block",u.setAttribute("aria-expanded","true"),s.trap&&w.setAttribute("x-trap","true"),P()}function S(){m()?E():O()}async function P(){return await ji(n,w,h).then(({middlewareData:R,placement:$,x:B,y:K})=>{if(R.arrow){let X=R.arrow?.x,ne=R.arrow?.y,J=h.middleware.filter(de=>de.name=="arrow")[0].options.element,V={top:"bottom",right:"left",bottom:"top",left:"right"}[$.split("-")[0]];Object.assign(J.style,{left:X!=null?`${X}px`:"",top:ne!=null?`${ne}px`:"",right:"",bottom:"",[V]:"-4px"})}if(R.hide){let{referenceHidden:X}=R.hide;Object.assign(w.style,{visibility:X?"hidden":"visible"})}Object.assign(w.style,{left:`${B}px`,top:`${K}px`})})}s.dismissable&&(window.addEventListener("click",R=>{!f.contains(R.target)&&m()&&S()}),window.addEventListener("keydown",R=>{R.key==="Escape"&&m()&&S()},!0)),S()}),t.directive("float",(n,{modifiers:i,expression:o},{evaluate:s,effect:h})=>{let u=o?s(o):{},f=i.length>0?Ta(i,u):{},w=null;f.float.strategy=="fixed"&&(n.style.position="fixed");let m=V=>n.parentElement&&!n.parentElement.closest("[x-data]").contains(V.target)?n.close():null,E=V=>V.key==="Escape"?n.close():null,O=n.getAttribute("x-ref"),S=n.parentElement.closest("[x-data]"),P=S.querySelectorAll(`[\\@click^="$refs.${O}"]`),R=S.querySelectorAll(`[x-on\\:click^="$refs.${O}"]`);n.style.setProperty("display","none"),r([...P,...R][0],n),n._x_isShown=!1,n.trigger=null,n._x_doHide||(n._x_doHide=()=>{n.style.setProperty("display","none",i.includes("important")?"important":void 0)}),n._x_doShow||(n._x_doShow=()=>{n.style.setProperty("display","block",i.includes("important")?"important":void 0)});let $=()=>{n._x_doHide(),n._x_isShown=!1},B=()=>{n._x_doShow(),n._x_isShown=!0},K=()=>setTimeout(B),X=Pa(V=>V?B():$(),V=>{typeof n._x_toggleAndCascadeWithTransitions=="function"?n._x_toggleAndCascadeWithTransitions(n,V,B,$):V?K():$()}),ne,J=!0;h(()=>s(V=>{!J&&V===ne||(i.includes("immediate")&&(V?K():$()),X(V),ne=V,J=!1)})),n.open=async function(V){n.trigger=V.currentTarget?V.currentTarget:V,X(!0),n.trigger.setAttribute("aria-expanded","true"),f.component.trap&&n.setAttribute("x-trap","true"),w=ki(n.trigger,n,()=>{ji(n.trigger,n,f.float).then(({middlewareData:de,placement:U,x:Z,y:me})=>{if(de.arrow){let l=de.arrow?.x,p=de.arrow?.y,v=f.float.middleware.filter(N=>N.name=="arrow")[0].options.element,d={top:"bottom",right:"left",bottom:"top",left:"right"}[U.split("-")[0]];Object.assign(v.style,{left:l!=null?`${l}px`:"",top:p!=null?`${p}px`:"",right:"",bottom:"",[d]:"-4px"})}if(de.hide){let{referenceHidden:l}=de.hide;Object.assign(n.style,{visibility:l?"hidden":"visible"})}Object.assign(n.style,{left:`${Z}px`,top:`${me}px`})})}),window.addEventListener("click",m),window.addEventListener("keydown",E,!0)},n.close=function(){if(!n._x_isShown)return!1;X(!1),n.trigger.setAttribute("aria-expanded","false"),f.component.trap&&n.setAttribute("x-trap","false"),w(),window.removeEventListener("click",m),window.removeEventListener("keydown",E,!1)},n.toggle=function(V){n._x_isShown?n.close():n.open(V)}})}var io=Ma;function Ra(t){t.store("lazyLoadedAssets",{loaded:new Set,check(s){return Array.isArray(s)?s.every(h=>this.loaded.has(h)):this.loaded.has(s)},markLoaded(s){Array.isArray(s)?s.forEach(h=>this.loaded.add(h)):this.loaded.add(s)}});let e=s=>new CustomEvent(s,{bubbles:!0,composed:!0,cancelable:!0}),r=(s,h={},u,f)=>{let w=document.createElement(s);return Object.entries(h).forEach(([m,E])=>w[m]=E),u&&(f?u.insertBefore(w,f):u.appendChild(w)),w},n=(s,h,u={},f=null,w=null)=>{let m=s==="link"?`link[href="${h}"]`:`script[src="${h}"]`;if(document.querySelector(m)||t.store("lazyLoadedAssets").check(h))return Promise.resolve();let E=s==="link"?{...u,href:h}:{...u,src:h},O=r(s,E,f,w);return new Promise((S,P)=>{O.onload=()=>{t.store("lazyLoadedAssets").markLoaded(h),S()},O.onerror=()=>{P(new Error(`Failed to load ${s}: ${h}`))}})},i=async(s,h,u=null,f=null)=>{let w={type:"text/css",rel:"stylesheet"};h&&(w.media=h);let m=document.head,E=null;if(u&&f){let O=document.querySelector(`link[href*="${f}"]`);O?(m=O.parentElement,E=u==="before"?O:O.nextSibling):(console.warn(`Target (${f}) not found for ${s}. Appending to head.`),m=document.head,E=null)}await n("link",s,w,m,E)},o=async(s,h,u=null,f=null,w=null)=>{let m=document.head,E=null;if(u&&f){let S=document.querySelector(`script[src*="${f}"]`);S?(m=S.parentElement,E=u==="before"?S:S.nextSibling):(console.warn(`Target (${f}) not found for ${s}. Falling back to head or body.`),m=document.head,E=null)}else(h.has("body-start")||h.has("body-end"))&&(m=document.body,h.has("body-start")&&(E=document.body.firstChild));let O={};w&&(O.type="module"),await n("script",s,O,m,E)};t.directive("load-css",(s,{expression:h},{evaluate:u})=>{let f=u(h),w=s.media,m=s.getAttribute("data-dispatch"),E=s.getAttribute("data-css-before")?"before":s.getAttribute("data-css-after")?"after":null,O=s.getAttribute("data-css-before")||s.getAttribute("data-css-after")||null;Promise.all(f.map(S=>i(S,w,E,O))).then(()=>{m&&window.dispatchEvent(e(`${m}-css`))}).catch(console.error)}),t.directive("load-js",(s,{expression:h,modifiers:u},{evaluate:f})=>{let w=f(h),m=new Set(u),E=s.getAttribute("data-js-before")?"before":s.getAttribute("data-js-after")?"after":null,O=s.getAttribute("data-js-before")||s.getAttribute("data-js-after")||null,S=s.getAttribute("data-js-as-module")||s.getAttribute("data-as-module")||!1,P=s.getAttribute("data-dispatch");Promise.all(w.map(R=>o(R,m,E,O,S))).then(()=>{P&&window.dispatchEvent(e(`${P}-js`))}).catch(console.error)})}var oo=Ra;var jo=Uo(lo(),1);function co(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),r.push.apply(r,n)}return r}function Mt(t){for(var e=1;e=0)&&(r[i]=t[i]);return r}function La(t,e){if(t==null)return{};var r=Fa(t,e),n,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var Na="1.15.6";function Ht(t){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(t)}var Wt=Ht(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),er=Ht(/Edge/i),fo=Ht(/firefox/i),Gn=Ht(/safari/i)&&!Ht(/chrome/i)&&!Ht(/android/i),bi=Ht(/iP(ad|od|hone)/i),yo=Ht(/chrome/i)&&Ht(/android/i),wo={capture:!1,passive:!1};function Oe(t,e,r){t.addEventListener(e,r,!Wt&&wo)}function Ee(t,e,r){t.removeEventListener(e,r,!Wt&&wo)}function _r(t,e){if(e){if(e[0]===">"&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch{return!1}return!1}}function xo(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function St(t,e,r,n){if(t){r=r||document;do{if(e!=null&&(e[0]===">"?t.parentNode===r&&_r(t,e):_r(t,e))||n&&t===r)return t;if(t===r)break}while(t=xo(t))}return null}var uo=/\s+/g;function ft(t,e,r){if(t&&e)if(t.classList)t.classList[r?"add":"remove"](e);else{var n=(" "+t.className+" ").replace(uo," ").replace(" "+e+" "," ");t.className=(n+(r?" "+e:"")).replace(uo," ")}}function ae(t,e,r){var n=t&&t.style;if(n){if(r===void 0)return document.defaultView&&document.defaultView.getComputedStyle?r=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(r=t.currentStyle),e===void 0?r:r[e];!(e in n)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),n[e]=r+(typeof r=="string"?"":"px")}}function Ln(t,e){var r="";if(typeof t=="string")r=t;else do{var n=ae(t,"transform");n&&n!=="none"&&(r=n+" "+r)}while(!e&&(t=t.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(r)}function Eo(t,e,r){if(t){var n=t.getElementsByTagName(e),i=0,o=n.length;if(r)for(;i=o:s=i<=o,!s)return n;if(n===Pt())break;n=sn(n,!1)}return!1}function Nn(t,e,r,n){for(var i=0,o=0,s=t.children;o2&&arguments[2]!==void 0?arguments[2]:{},i=n.evt,o=La(n,za);tr.pluginEvent.bind(se)(e,r,Mt({dragEl:L,parentEl:ze,ghostEl:ue,rootEl:ke,nextEl:bn,lastDownEl:Ar,cloneEl:We,cloneHidden:an,dragStarted:Yn,putSortable:Ze,activeSortable:se.active,originalEvent:i,oldIndex:Fn,oldDraggableIndex:Jn,newIndex:ut,newDraggableIndex:on,hideGhostForTarget:Po,unhideGhostForTarget:Mo,cloneNowHidden:function(){an=!0},cloneNowShown:function(){an=!1},dispatchSortableEvent:function(h){it({sortable:r,name:h,originalEvent:i})}},o))};function it(t){Va(Mt({putSortable:Ze,cloneEl:We,targetEl:L,rootEl:ke,oldIndex:Fn,oldDraggableIndex:Jn,newIndex:ut,newDraggableIndex:on},t))}var L,ze,ue,ke,bn,Ar,We,an,Fn,ut,Jn,on,wr,Ze,In=!1,Pr=!1,Mr=[],mn,Ot,si,li,vo,mo,Yn,Rn,Zn,Qn=!1,xr=!1,Dr,nt,ci=[],hi=!1,Rr=[],Fr=typeof document<"u",Er=bi,go=er||Wt?"cssFloat":"float",Ua=Fr&&!yo&&!bi&&"draggable"in document.createElement("div"),Co=function(){if(Fr){if(Wt)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto",t.style.pointerEvents==="auto"}}(),To=function(e,r){var n=ae(e),i=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),o=Nn(e,0,r),s=Nn(e,1,r),h=o&&ae(o),u=s&&ae(s),f=h&&parseInt(h.marginLeft)+parseInt(h.marginRight)+qe(o).width,w=u&&parseInt(u.marginLeft)+parseInt(u.marginRight)+qe(s).width;if(n.display==="flex")return n.flexDirection==="column"||n.flexDirection==="column-reverse"?"vertical":"horizontal";if(n.display==="grid")return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&h.float&&h.float!=="none"){var m=h.float==="left"?"left":"right";return s&&(u.clear==="both"||u.clear===m)?"vertical":"horizontal"}return o&&(h.display==="block"||h.display==="flex"||h.display==="table"||h.display==="grid"||f>=i&&n[go]==="none"||s&&n[go]==="none"&&f+w>i)?"vertical":"horizontal"},Ya=function(e,r,n){var i=n?e.left:e.top,o=n?e.right:e.bottom,s=n?e.width:e.height,h=n?r.left:r.top,u=n?r.right:r.bottom,f=n?r.width:r.height;return i===h||o===u||i+s/2===h+f/2},Xa=function(e,r){var n;return Mr.some(function(i){var o=i[st].options.emptyInsertThreshold;if(!(!o||yi(i))){var s=qe(i),h=e>=s.left-o&&e<=s.right+o,u=r>=s.top-o&&r<=s.bottom+o;if(h&&u)return n=i}}),n},_o=function(e){function r(o,s){return function(h,u,f,w){var m=h.options.group.name&&u.options.group.name&&h.options.group.name===u.options.group.name;if(o==null&&(s||m))return!0;if(o==null||o===!1)return!1;if(s&&o==="clone")return o;if(typeof o=="function")return r(o(h,u,f,w),s)(h,u,f,w);var E=(s?h:u).options.group.name;return o===!0||typeof o=="string"&&o===E||o.join&&o.indexOf(E)>-1}}var n={},i=e.group;(!i||Sr(i)!="object")&&(i={name:i}),n.name=i.name,n.checkPull=r(i.pull,!0),n.checkPut=r(i.put),n.revertClone=i.revertClone,e.group=n},Po=function(){!Co&&ue&&ae(ue,"display","none")},Mo=function(){!Co&&ue&&ae(ue,"display","")};Fr&&!yo&&document.addEventListener("click",function(t){if(Pr)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),Pr=!1,!1},!0);var gn=function(e){if(L){e=e.touches?e.touches[0]:e;var r=Xa(e.clientX,e.clientY);if(r){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=e[i]);n.target=n.rootEl=r,n.preventDefault=void 0,n.stopPropagation=void 0,r[st]._onDragOver(n)}}},qa=function(e){L&&L.parentNode[st]._isOutsideThisEl(e.target)};function se(t,e){if(!(t&&t.nodeType&&t.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=$t({},e),t[st]=this;var r={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return To(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(s,h){s.setData("Text",h.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:se.supportPointer!==!1&&"PointerEvent"in window&&(!Gn||bi),emptyInsertThreshold:5};tr.initializePlugins(this,t,r);for(var n in r)!(n in e)&&(e[n]=r[n]);_o(e);for(var i in this)i.charAt(0)==="_"&&typeof this[i]=="function"&&(this[i]=this[i].bind(this));this.nativeDraggable=e.forceFallback?!1:Ua,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?Oe(t,"pointerdown",this._onTapStart):(Oe(t,"mousedown",this._onTapStart),Oe(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(Oe(t,"dragover",this),Oe(t,"dragenter",this)),Mr.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),$t(this,Ha())}se.prototype={constructor:se,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(Rn=null)},_getDirection:function(e,r){return typeof this.options.direction=="function"?this.options.direction.call(this,e,r,L):this.options.direction},_onTapStart:function(e){if(e.cancelable){var r=this,n=this.el,i=this.options,o=i.preventOnFilter,s=e.type,h=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,u=(h||e).target,f=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||u,w=i.filter;if(ns(n),!L&&!(/mousedown|pointerdown/.test(s)&&e.button!==0||i.disabled)&&!f.isContentEditable&&!(!this.nativeDraggable&&Gn&&u&&u.tagName.toUpperCase()==="SELECT")&&(u=St(u,i.draggable,n,!1),!(u&&u.animated)&&Ar!==u)){if(Fn=vt(u),Jn=vt(u,i.draggable),typeof w=="function"){if(w.call(this,e,u,this)){it({sortable:r,rootEl:f,name:"filter",targetEl:u,toEl:n,fromEl:n}),at("filter",r,{evt:e}),o&&e.preventDefault();return}}else if(w&&(w=w.split(",").some(function(m){if(m=St(f,m.trim(),n,!1),m)return it({sortable:r,rootEl:m,name:"filter",targetEl:u,fromEl:n,toEl:n}),at("filter",r,{evt:e}),!0}),w)){o&&e.preventDefault();return}i.handle&&!St(f,i.handle,n,!1)||this._prepareDragStart(e,h,u)}}},_prepareDragStart:function(e,r,n){var i=this,o=i.el,s=i.options,h=o.ownerDocument,u;if(n&&!L&&n.parentNode===o){var f=qe(n);if(ke=o,L=n,ze=L.parentNode,bn=L.nextSibling,Ar=n,wr=s.group,se.dragged=L,mn={target:L,clientX:(r||e).clientX,clientY:(r||e).clientY},vo=mn.clientX-f.left,mo=mn.clientY-f.top,this._lastX=(r||e).clientX,this._lastY=(r||e).clientY,L.style["will-change"]="all",u=function(){if(at("delayEnded",i,{evt:e}),se.eventCanceled){i._onDrop();return}i._disableDelayedDragEvents(),!fo&&i.nativeDraggable&&(L.draggable=!0),i._triggerDragStart(e,r),it({sortable:i,name:"choose",originalEvent:e}),ft(L,s.chosenClass,!0)},s.ignore.split(",").forEach(function(w){Eo(L,w.trim(),fi)}),Oe(h,"dragover",gn),Oe(h,"mousemove",gn),Oe(h,"touchmove",gn),s.supportPointer?(Oe(h,"pointerup",i._onDrop),!this.nativeDraggable&&Oe(h,"pointercancel",i._onDrop)):(Oe(h,"mouseup",i._onDrop),Oe(h,"touchend",i._onDrop),Oe(h,"touchcancel",i._onDrop)),fo&&this.nativeDraggable&&(this.options.touchStartThreshold=4,L.draggable=!0),at("delayStart",this,{evt:e}),s.delay&&(!s.delayOnTouchOnly||r)&&(!this.nativeDraggable||!(er||Wt))){if(se.eventCanceled){this._onDrop();return}s.supportPointer?(Oe(h,"pointerup",i._disableDelayedDrag),Oe(h,"pointercancel",i._disableDelayedDrag)):(Oe(h,"mouseup",i._disableDelayedDrag),Oe(h,"touchend",i._disableDelayedDrag),Oe(h,"touchcancel",i._disableDelayedDrag)),Oe(h,"mousemove",i._delayedDragTouchMoveHandler),Oe(h,"touchmove",i._delayedDragTouchMoveHandler),s.supportPointer&&Oe(h,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(u,s.delay)}else u()}},_delayedDragTouchMoveHandler:function(e){var r=e.touches?e.touches[0]:e;Math.max(Math.abs(r.clientX-this._lastX),Math.abs(r.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){L&&fi(L),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;Ee(e,"mouseup",this._disableDelayedDrag),Ee(e,"touchend",this._disableDelayedDrag),Ee(e,"touchcancel",this._disableDelayedDrag),Ee(e,"pointerup",this._disableDelayedDrag),Ee(e,"pointercancel",this._disableDelayedDrag),Ee(e,"mousemove",this._delayedDragTouchMoveHandler),Ee(e,"touchmove",this._delayedDragTouchMoveHandler),Ee(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,r){r=r||e.pointerType=="touch"&&e,!this.nativeDraggable||r?this.options.supportPointer?Oe(document,"pointermove",this._onTouchMove):r?Oe(document,"touchmove",this._onTouchMove):Oe(document,"mousemove",this._onTouchMove):(Oe(L,"dragend",this),Oe(ke,"dragstart",this._onDragStart));try{document.selection?Cr(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,r){if(In=!1,ke&&L){at("dragStarted",this,{evt:r}),this.nativeDraggable&&Oe(document,"dragover",qa);var n=this.options;!e&&ft(L,n.dragClass,!1),ft(L,n.ghostClass,!0),se.active=this,e&&this._appendGhost(),it({sortable:this,name:"start",originalEvent:r})}else this._nulling()},_emulateDragOver:function(){if(Ot){this._lastX=Ot.clientX,this._lastY=Ot.clientY,Po();for(var e=document.elementFromPoint(Ot.clientX,Ot.clientY),r=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(Ot.clientX,Ot.clientY),e!==r);)r=e;if(L.parentNode[st]._isOutsideThisEl(e),r)do{if(r[st]){var n=void 0;if(n=r[st]._onDragOver({clientX:Ot.clientX,clientY:Ot.clientY,target:e,rootEl:r}),n&&!this.options.dragoverBubble)break}e=r}while(r=xo(r));Mo()}},_onTouchMove:function(e){if(mn){var r=this.options,n=r.fallbackTolerance,i=r.fallbackOffset,o=e.touches?e.touches[0]:e,s=ue&&Ln(ue,!0),h=ue&&s&&s.a,u=ue&&s&&s.d,f=Er&&nt&&ho(nt),w=(o.clientX-mn.clientX+i.x)/(h||1)+(f?f[0]-ci[0]:0)/(h||1),m=(o.clientY-mn.clientY+i.y)/(u||1)+(f?f[1]-ci[1]:0)/(u||1);if(!se.active&&!In){if(n&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))=0&&(it({rootEl:ze,name:"add",toEl:ze,fromEl:ke,originalEvent:e}),it({sortable:this,name:"remove",toEl:ze,originalEvent:e}),it({rootEl:ze,name:"sort",toEl:ze,fromEl:ke,originalEvent:e}),it({sortable:this,name:"sort",toEl:ze,originalEvent:e})),Ze&&Ze.save()):ut!==Fn&&ut>=0&&(it({sortable:this,name:"update",toEl:ze,originalEvent:e}),it({sortable:this,name:"sort",toEl:ze,originalEvent:e})),se.active&&((ut==null||ut===-1)&&(ut=Fn,on=Jn),it({sortable:this,name:"end",toEl:ze,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){at("nulling",this),ke=L=ze=ue=bn=We=Ar=an=mn=Ot=Yn=ut=on=Fn=Jn=Rn=Zn=Ze=wr=se.dragged=se.ghost=se.clone=se.active=null,Rr.forEach(function(e){e.checked=!0}),Rr.length=si=li=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":L&&(this._onDragOver(e),Ga(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],r,n=this.el.children,i=0,o=n.length,s=this.options;ii.right+o||t.clientY>n.bottom&&t.clientX>n.left:t.clientY>i.bottom+o||t.clientX>n.right&&t.clientY>n.top}function Qa(t,e,r,n,i,o,s,h){var u=n?t.clientY:t.clientX,f=n?r.height:r.width,w=n?r.top:r.left,m=n?r.bottom:r.right,E=!1;if(!s){if(h&&Drw+f*o/2:um-Dr)return-Zn}else if(u>w+f*(1-i)/2&&um-f*o/2)?u>w+f/2?1:-1:0}function es(t){return vt(L){t.directive("sortable",e=>{let r=parseInt(e.dataset?.sortableAnimationDuration);r!==0&&!r&&(r=300),e.sortable=Ei.create(e,{group:e.getAttribute("x-sortable-group"),draggable:"[x-sortable-item]",handle:"[x-sortable-handle]",dataIdAttr:"x-sortable-item",animation:r,ghostClass:"fi-sortable-ghost"})})};var is=Object.create,Ai=Object.defineProperty,os=Object.getPrototypeOf,as=Object.prototype.hasOwnProperty,ss=Object.getOwnPropertyNames,ls=Object.getOwnPropertyDescriptor,cs=t=>Ai(t,"__esModule",{value:!0}),Fo=(t,e)=>()=>(e||(e={exports:{}},t(e.exports,e)),e.exports),fs=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of ss(e))!as.call(t,n)&&n!=="default"&&Ai(t,n,{get:()=>e[n],enumerable:!(r=ls(e,n))||r.enumerable});return t},Lo=t=>fs(cs(Ai(t!=null?is(os(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t),us=Fo(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});function e(c){var a=c.getBoundingClientRect();return{width:a.width,height:a.height,top:a.top,right:a.right,bottom:a.bottom,left:a.left,x:a.left,y:a.top}}function r(c){if(c==null)return window;if(c.toString()!=="[object Window]"){var a=c.ownerDocument;return a&&a.defaultView||window}return c}function n(c){var a=r(c),b=a.pageXOffset,C=a.pageYOffset;return{scrollLeft:b,scrollTop:C}}function i(c){var a=r(c).Element;return c instanceof a||c instanceof Element}function o(c){var a=r(c).HTMLElement;return c instanceof a||c instanceof HTMLElement}function s(c){if(typeof ShadowRoot>"u")return!1;var a=r(c).ShadowRoot;return c instanceof a||c instanceof ShadowRoot}function h(c){return{scrollLeft:c.scrollLeft,scrollTop:c.scrollTop}}function u(c){return c===r(c)||!o(c)?n(c):h(c)}function f(c){return c?(c.nodeName||"").toLowerCase():null}function w(c){return((i(c)?c.ownerDocument:c.document)||window.document).documentElement}function m(c){return e(w(c)).left+n(c).scrollLeft}function E(c){return r(c).getComputedStyle(c)}function O(c){var a=E(c),b=a.overflow,C=a.overflowX,T=a.overflowY;return/auto|scroll|overlay|hidden/.test(b+T+C)}function S(c,a,b){b===void 0&&(b=!1);var C=w(a),T=e(c),F=o(a),W={scrollLeft:0,scrollTop:0},j={x:0,y:0};return(F||!F&&!b)&&((f(a)!=="body"||O(C))&&(W=u(a)),o(a)?(j=e(a),j.x+=a.clientLeft,j.y+=a.clientTop):C&&(j.x=m(C))),{x:T.left+W.scrollLeft-j.x,y:T.top+W.scrollTop-j.y,width:T.width,height:T.height}}function P(c){var a=e(c),b=c.offsetWidth,C=c.offsetHeight;return Math.abs(a.width-b)<=1&&(b=a.width),Math.abs(a.height-C)<=1&&(C=a.height),{x:c.offsetLeft,y:c.offsetTop,width:b,height:C}}function R(c){return f(c)==="html"?c:c.assignedSlot||c.parentNode||(s(c)?c.host:null)||w(c)}function $(c){return["html","body","#document"].indexOf(f(c))>=0?c.ownerDocument.body:o(c)&&O(c)?c:$(R(c))}function B(c,a){var b;a===void 0&&(a=[]);var C=$(c),T=C===((b=c.ownerDocument)==null?void 0:b.body),F=r(C),W=T?[F].concat(F.visualViewport||[],O(C)?C:[]):C,j=a.concat(W);return T?j:j.concat(B(R(W)))}function K(c){return["table","td","th"].indexOf(f(c))>=0}function X(c){return!o(c)||E(c).position==="fixed"?null:c.offsetParent}function ne(c){var a=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,b=navigator.userAgent.indexOf("Trident")!==-1;if(b&&o(c)){var C=E(c);if(C.position==="fixed")return null}for(var T=R(c);o(T)&&["html","body"].indexOf(f(T))<0;){var F=E(T);if(F.transform!=="none"||F.perspective!=="none"||F.contain==="paint"||["transform","perspective"].indexOf(F.willChange)!==-1||a&&F.willChange==="filter"||a&&F.filter&&F.filter!=="none")return T;T=T.parentNode}return null}function J(c){for(var a=r(c),b=X(c);b&&K(b)&&E(b).position==="static";)b=X(b);return b&&(f(b)==="html"||f(b)==="body"&&E(b).position==="static")?a:b||ne(c)||a}var V="top",de="bottom",U="right",Z="left",me="auto",l=[V,de,U,Z],p="start",v="end",d="clippingParents",N="viewport",_="popper",M="reference",Q=l.reduce(function(c,a){return c.concat([a+"-"+p,a+"-"+v])},[]),Ue=[].concat(l,[me]).reduce(function(c,a){return c.concat([a,a+"-"+p,a+"-"+v])},[]),Rt="beforeRead",Vt="read",Lr="afterRead",Nr="beforeMain",kr="main",zt="afterMain",nr="beforeWrite",jr="write",rr="afterWrite",It=[Rt,Vt,Lr,Nr,kr,zt,nr,jr,rr];function Br(c){var a=new Map,b=new Set,C=[];c.forEach(function(F){a.set(F.name,F)});function T(F){b.add(F.name);var W=[].concat(F.requires||[],F.requiresIfExists||[]);W.forEach(function(j){if(!b.has(j)){var q=a.get(j);q&&T(q)}}),C.push(F)}return c.forEach(function(F){b.has(F.name)||T(F)}),C}function mt(c){var a=Br(c);return It.reduce(function(b,C){return b.concat(a.filter(function(T){return T.phase===C}))},[])}function Ut(c){var a;return function(){return a||(a=new Promise(function(b){Promise.resolve().then(function(){a=void 0,b(c())})})),a}}function At(c){for(var a=arguments.length,b=new Array(a>1?a-1:0),C=1;C=0,C=b&&o(c)?J(c):c;return i(C)?a.filter(function(T){return i(T)&&kn(T,C)&&f(T)!=="body"}):[]}function wn(c,a,b){var C=a==="clippingParents"?yn(c):[].concat(a),T=[].concat(C,[b]),F=T[0],W=T.reduce(function(j,q){var oe=sr(c,q);return j.top=gt(oe.top,j.top),j.right=ln(oe.right,j.right),j.bottom=ln(oe.bottom,j.bottom),j.left=gt(oe.left,j.left),j},sr(c,F));return W.width=W.right-W.left,W.height=W.bottom-W.top,W.x=W.left,W.y=W.top,W}function cn(c){return c.split("-")[1]}function dt(c){return["top","bottom"].indexOf(c)>=0?"x":"y"}function lr(c){var a=c.reference,b=c.element,C=c.placement,T=C?ot(C):null,F=C?cn(C):null,W=a.x+a.width/2-b.width/2,j=a.y+a.height/2-b.height/2,q;switch(T){case V:q={x:W,y:a.y-b.height};break;case de:q={x:W,y:a.y+a.height};break;case U:q={x:a.x+a.width,y:j};break;case Z:q={x:a.x-b.width,y:j};break;default:q={x:a.x,y:a.y}}var oe=T?dt(T):null;if(oe!=null){var z=oe==="y"?"height":"width";switch(F){case p:q[oe]=q[oe]-(a[z]/2-b[z]/2);break;case v:q[oe]=q[oe]+(a[z]/2-b[z]/2);break}}return q}function cr(){return{top:0,right:0,bottom:0,left:0}}function fr(c){return Object.assign({},cr(),c)}function ur(c,a){return a.reduce(function(b,C){return b[C]=c,b},{})}function qt(c,a){a===void 0&&(a={});var b=a,C=b.placement,T=C===void 0?c.placement:C,F=b.boundary,W=F===void 0?d:F,j=b.rootBoundary,q=j===void 0?N:j,oe=b.elementContext,z=oe===void 0?_:oe,Ce=b.altBoundary,Le=Ce===void 0?!1:Ce,De=b.padding,xe=De===void 0?0:De,Me=fr(typeof xe!="number"?xe:ur(xe,l)),Se=z===_?M:_,Be=c.elements.reference,Re=c.rects.popper,He=c.elements[Le?Se:z],ce=wn(i(He)?He:He.contextElement||w(c.elements.popper),W,q),Pe=e(Be),Te=lr({reference:Pe,element:Re,strategy:"absolute",placement:T}),Ne=Xt(Object.assign({},Re,Te)),Fe=z===_?Ne:Pe,Ye={top:ce.top-Fe.top+Me.top,bottom:Fe.bottom-ce.bottom+Me.bottom,left:ce.left-Fe.left+Me.left,right:Fe.right-ce.right+Me.right},$e=c.modifiersData.offset;if(z===_&&$e){var Ve=$e[T];Object.keys(Ye).forEach(function(wt){var et=[U,de].indexOf(wt)>=0?1:-1,Lt=[V,de].indexOf(wt)>=0?"y":"x";Ye[wt]+=Ve[Lt]*et})}return Ye}var dr="Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.",zr="Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.",xn={placement:"bottom",modifiers:[],strategy:"absolute"};function fn(){for(var c=arguments.length,a=new Array(c),b=0;b100){console.error(zr);break}if(z.reset===!0){z.reset=!1,Pe=-1;continue}var Te=z.orderedModifiers[Pe],Ne=Te.fn,Fe=Te.options,Ye=Fe===void 0?{}:Fe,$e=Te.name;typeof Ne=="function"&&(z=Ne({state:z,options:Ye,name:$e,instance:De})||z)}}},update:Ut(function(){return new Promise(function(Se){De.forceUpdate(),Se(z)})}),destroy:function(){Me(),Le=!0}};if(!fn(j,q))return console.error(dr),De;De.setOptions(oe).then(function(Se){!Le&&oe.onFirstUpdate&&oe.onFirstUpdate(Se)});function xe(){z.orderedModifiers.forEach(function(Se){var Be=Se.name,Re=Se.options,He=Re===void 0?{}:Re,ce=Se.effect;if(typeof ce=="function"){var Pe=ce({state:z,name:Be,instance:De,options:He}),Te=function(){};Ce.push(Pe||Te)}})}function Me(){Ce.forEach(function(Se){return Se()}),Ce=[]}return De}}var On={passive:!0};function Ur(c){var a=c.state,b=c.instance,C=c.options,T=C.scroll,F=T===void 0?!0:T,W=C.resize,j=W===void 0?!0:W,q=r(a.elements.popper),oe=[].concat(a.scrollParents.reference,a.scrollParents.popper);return F&&oe.forEach(function(z){z.addEventListener("scroll",b.update,On)}),j&&q.addEventListener("resize",b.update,On),function(){F&&oe.forEach(function(z){z.removeEventListener("scroll",b.update,On)}),j&&q.removeEventListener("resize",b.update,On)}}var jn={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Ur,data:{}};function Yr(c){var a=c.state,b=c.name;a.modifiersData[b]=lr({reference:a.rects.reference,element:a.rects.popper,strategy:"absolute",placement:a.placement})}var Bn={name:"popperOffsets",enabled:!0,phase:"read",fn:Yr,data:{}},Xr={top:"auto",right:"auto",bottom:"auto",left:"auto"};function qr(c){var a=c.x,b=c.y,C=window,T=C.devicePixelRatio||1;return{x:Yt(Yt(a*T)/T)||0,y:Yt(Yt(b*T)/T)||0}}function Hn(c){var a,b=c.popper,C=c.popperRect,T=c.placement,F=c.offsets,W=c.position,j=c.gpuAcceleration,q=c.adaptive,oe=c.roundOffsets,z=oe===!0?qr(F):typeof oe=="function"?oe(F):F,Ce=z.x,Le=Ce===void 0?0:Ce,De=z.y,xe=De===void 0?0:De,Me=F.hasOwnProperty("x"),Se=F.hasOwnProperty("y"),Be=Z,Re=V,He=window;if(q){var ce=J(b),Pe="clientHeight",Te="clientWidth";ce===r(b)&&(ce=w(b),E(ce).position!=="static"&&(Pe="scrollHeight",Te="scrollWidth")),ce=ce,T===V&&(Re=de,xe-=ce[Pe]-C.height,xe*=j?1:-1),T===Z&&(Be=U,Le-=ce[Te]-C.width,Le*=j?1:-1)}var Ne=Object.assign({position:W},q&&Xr);if(j){var Fe;return Object.assign({},Ne,(Fe={},Fe[Re]=Se?"0":"",Fe[Be]=Me?"0":"",Fe.transform=(He.devicePixelRatio||1)<2?"translate("+Le+"px, "+xe+"px)":"translate3d("+Le+"px, "+xe+"px, 0)",Fe))}return Object.assign({},Ne,(a={},a[Re]=Se?xe+"px":"",a[Be]=Me?Le+"px":"",a.transform="",a))}function g(c){var a=c.state,b=c.options,C=b.gpuAcceleration,T=C===void 0?!0:C,F=b.adaptive,W=F===void 0?!0:F,j=b.roundOffsets,q=j===void 0?!0:j,oe=E(a.elements.popper).transitionProperty||"";W&&["transform","top","right","bottom","left"].some(function(Ce){return oe.indexOf(Ce)>=0})&&console.warn(["Popper: Detected CSS transitions on at least one of the following",'CSS properties: "transform", "top", "right", "bottom", "left".',` + +`,'Disable the "computeStyles" modifier\'s `adaptive` option to allow',"for smooth transitions, or remove these properties from the CSS","transition declaration on the popper element if only transitioning","opacity or background-color for example.",` + +`,"We recommend using the popper element as a wrapper around an inner","element that can have any CSS property transitioned for animations."].join(" "));var z={placement:ot(a.placement),popper:a.elements.popper,popperRect:a.rects.popper,gpuAcceleration:T};a.modifiersData.popperOffsets!=null&&(a.styles.popper=Object.assign({},a.styles.popper,Hn(Object.assign({},z,{offsets:a.modifiersData.popperOffsets,position:a.options.strategy,adaptive:W,roundOffsets:q})))),a.modifiersData.arrow!=null&&(a.styles.arrow=Object.assign({},a.styles.arrow,Hn(Object.assign({},z,{offsets:a.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:q})))),a.attributes.popper=Object.assign({},a.attributes.popper,{"data-popper-placement":a.placement})}var y={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:g,data:{}};function A(c){var a=c.state;Object.keys(a.elements).forEach(function(b){var C=a.styles[b]||{},T=a.attributes[b]||{},F=a.elements[b];!o(F)||!f(F)||(Object.assign(F.style,C),Object.keys(T).forEach(function(W){var j=T[W];j===!1?F.removeAttribute(W):F.setAttribute(W,j===!0?"":j)}))})}function I(c){var a=c.state,b={popper:{position:a.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(a.elements.popper.style,b.popper),a.styles=b,a.elements.arrow&&Object.assign(a.elements.arrow.style,b.arrow),function(){Object.keys(a.elements).forEach(function(C){var T=a.elements[C],F=a.attributes[C]||{},W=Object.keys(a.styles.hasOwnProperty(C)?a.styles[C]:b[C]),j=W.reduce(function(q,oe){return q[oe]="",q},{});!o(T)||!f(T)||(Object.assign(T.style,j),Object.keys(F).forEach(function(q){T.removeAttribute(q)}))})}}var Y={name:"applyStyles",enabled:!0,phase:"write",fn:A,effect:I,requires:["computeStyles"]};function H(c,a,b){var C=ot(c),T=[Z,V].indexOf(C)>=0?-1:1,F=typeof b=="function"?b(Object.assign({},a,{placement:c})):b,W=F[0],j=F[1];return W=W||0,j=(j||0)*T,[Z,U].indexOf(C)>=0?{x:j,y:W}:{x:W,y:j}}function k(c){var a=c.state,b=c.options,C=c.name,T=b.offset,F=T===void 0?[0,0]:T,W=Ue.reduce(function(z,Ce){return z[Ce]=H(Ce,a.rects,F),z},{}),j=W[a.placement],q=j.x,oe=j.y;a.modifiersData.popperOffsets!=null&&(a.modifiersData.popperOffsets.x+=q,a.modifiersData.popperOffsets.y+=oe),a.modifiersData[C]=W}var be={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:k},le={left:"right",right:"left",bottom:"top",top:"bottom"};function pe(c){return c.replace(/left|right|bottom|top/g,function(a){return le[a]})}var ye={start:"end",end:"start"};function _e(c){return c.replace(/start|end/g,function(a){return ye[a]})}function je(c,a){a===void 0&&(a={});var b=a,C=b.placement,T=b.boundary,F=b.rootBoundary,W=b.padding,j=b.flipVariations,q=b.allowedAutoPlacements,oe=q===void 0?Ue:q,z=cn(C),Ce=z?j?Q:Q.filter(function(xe){return cn(xe)===z}):l,Le=Ce.filter(function(xe){return oe.indexOf(xe)>=0});Le.length===0&&(Le=Ce,console.error(["Popper: The `allowedAutoPlacements` option did not allow any","placements. Ensure the `placement` option matches the variation","of the allowed placements.",'For example, "auto" cannot be used to allow "bottom-start".','Use "auto-start" instead.'].join(" ")));var De=Le.reduce(function(xe,Me){return xe[Me]=qt(c,{placement:Me,boundary:T,rootBoundary:F,padding:W})[ot(Me)],xe},{});return Object.keys(De).sort(function(xe,Me){return De[xe]-De[Me]})}function Ae(c){if(ot(c)===me)return[];var a=pe(c);return[_e(c),a,_e(a)]}function Ie(c){var a=c.state,b=c.options,C=c.name;if(!a.modifiersData[C]._skip){for(var T=b.mainAxis,F=T===void 0?!0:T,W=b.altAxis,j=W===void 0?!0:W,q=b.fallbackPlacements,oe=b.padding,z=b.boundary,Ce=b.rootBoundary,Le=b.altBoundary,De=b.flipVariations,xe=De===void 0?!0:De,Me=b.allowedAutoPlacements,Se=a.options.placement,Be=ot(Se),Re=Be===Se,He=q||(Re||!xe?[pe(Se)]:Ae(Se)),ce=[Se].concat(He).reduce(function(te,ge){return te.concat(ot(ge)===me?je(a,{placement:ge,boundary:z,rootBoundary:Ce,padding:oe,flipVariations:xe,allowedAutoPlacements:Me}):ge)},[]),Pe=a.rects.reference,Te=a.rects.popper,Ne=new Map,Fe=!0,Ye=ce[0],$e=0;$e=0,dn=Lt?"width":"height",Zt=qt(a,{placement:Ve,boundary:z,rootBoundary:Ce,altBoundary:Le,padding:oe}),Nt=Lt?et?U:Z:et?de:V;Pe[dn]>Te[dn]&&(Nt=pe(Nt));var $n=pe(Nt),Qt=[];if(F&&Qt.push(Zt[wt]<=0),j&&Qt.push(Zt[Nt]<=0,Zt[$n]<=0),Qt.every(function(te){return te})){Ye=Ve,Fe=!1;break}Ne.set(Ve,Qt)}if(Fe)for(var Sn=xe?3:1,Wn=function(ge){var we=ce.find(function(Ke){var Je=Ne.get(Ke);if(Je)return Je.slice(0,ge).every(function(Ct){return Ct})});if(we)return Ye=we,"break"},D=Sn;D>0;D--){var G=Wn(D);if(G==="break")break}a.placement!==Ye&&(a.modifiersData[C]._skip=!0,a.placement=Ye,a.reset=!0)}}var re={name:"flip",enabled:!0,phase:"main",fn:Ie,requiresIfExists:["offset"],data:{_skip:!1}};function he(c){return c==="x"?"y":"x"}function ve(c,a,b){return gt(c,ln(a,b))}function ee(c){var a=c.state,b=c.options,C=c.name,T=b.mainAxis,F=T===void 0?!0:T,W=b.altAxis,j=W===void 0?!1:W,q=b.boundary,oe=b.rootBoundary,z=b.altBoundary,Ce=b.padding,Le=b.tether,De=Le===void 0?!0:Le,xe=b.tetherOffset,Me=xe===void 0?0:xe,Se=qt(a,{boundary:q,rootBoundary:oe,padding:Ce,altBoundary:z}),Be=ot(a.placement),Re=cn(a.placement),He=!Re,ce=dt(Be),Pe=he(ce),Te=a.modifiersData.popperOffsets,Ne=a.rects.reference,Fe=a.rects.popper,Ye=typeof Me=="function"?Me(Object.assign({},a.rects,{placement:a.placement})):Me,$e={x:0,y:0};if(Te){if(F||j){var Ve=ce==="y"?V:Z,wt=ce==="y"?de:U,et=ce==="y"?"height":"width",Lt=Te[ce],dn=Te[ce]+Se[Ve],Zt=Te[ce]-Se[wt],Nt=De?-Fe[et]/2:0,$n=Re===p?Ne[et]:Fe[et],Qt=Re===p?-Fe[et]:-Ne[et],Sn=a.elements.arrow,Wn=De&&Sn?P(Sn):{width:0,height:0},D=a.modifiersData["arrow#persistent"]?a.modifiersData["arrow#persistent"].padding:cr(),G=D[Ve],te=D[wt],ge=ve(0,Ne[et],Wn[et]),we=He?Ne[et]/2-Nt-ge-G-Ye:$n-ge-G-Ye,Ke=He?-Ne[et]/2+Nt+ge+te+Ye:Qt+ge+te+Ye,Je=a.elements.arrow&&J(a.elements.arrow),Ct=Je?ce==="y"?Je.clientTop||0:Je.clientLeft||0:0,Vn=a.modifiersData.offset?a.modifiersData.offset[a.placement][ce]:0,Tt=Te[ce]+we-Vn-Ct,An=Te[ce]+Ke-Vn;if(F){var pn=ve(De?ln(dn,Tt):dn,Lt,De?gt(Zt,An):Zt);Te[ce]=pn,$e[ce]=pn-Lt}if(j){var en=ce==="x"?V:Z,Gr=ce==="x"?de:U,tn=Te[Pe],hn=tn+Se[en],Di=tn-Se[Gr],Ci=ve(De?ln(hn,Tt):hn,tn,De?gt(Di,An):Di);Te[Pe]=Ci,$e[Pe]=Ci-tn}}a.modifiersData[C]=$e}}var ie={name:"preventOverflow",enabled:!0,phase:"main",fn:ee,requiresIfExists:["offset"]},x=function(a,b){return a=typeof a=="function"?a(Object.assign({},b.rects,{placement:b.placement})):a,fr(typeof a!="number"?a:ur(a,l))};function Ge(c){var a,b=c.state,C=c.name,T=c.options,F=b.elements.arrow,W=b.modifiersData.popperOffsets,j=ot(b.placement),q=dt(j),oe=[Z,U].indexOf(j)>=0,z=oe?"height":"width";if(!(!F||!W)){var Ce=x(T.padding,b),Le=P(F),De=q==="y"?V:Z,xe=q==="y"?de:U,Me=b.rects.reference[z]+b.rects.reference[q]-W[q]-b.rects.popper[z],Se=W[q]-b.rects.reference[q],Be=J(F),Re=Be?q==="y"?Be.clientHeight||0:Be.clientWidth||0:0,He=Me/2-Se/2,ce=Ce[De],Pe=Re-Le[z]-Ce[xe],Te=Re/2-Le[z]/2+He,Ne=ve(ce,Te,Pe),Fe=q;b.modifiersData[C]=(a={},a[Fe]=Ne,a.centerOffset=Ne-Te,a)}}function fe(c){var a=c.state,b=c.options,C=b.element,T=C===void 0?"[data-popper-arrow]":C;if(T!=null&&!(typeof T=="string"&&(T=a.elements.popper.querySelector(T),!T))){if(o(T)||console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).',"To use an SVG arrow, wrap it in an HTMLElement that will be used as","the arrow."].join(" ")),!kn(a.elements.popper,T)){console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper',"element."].join(" "));return}a.elements.arrow=T}}var Ft={name:"arrow",enabled:!0,phase:"main",fn:Ge,effect:fe,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function bt(c,a,b){return b===void 0&&(b={x:0,y:0}),{top:c.top-a.height-b.y,right:c.right-a.width+b.x,bottom:c.bottom-a.height+b.y,left:c.left-a.width-b.x}}function Gt(c){return[V,U,de,Z].some(function(a){return c[a]>=0})}function Kt(c){var a=c.state,b=c.name,C=a.rects.reference,T=a.rects.popper,F=a.modifiersData.preventOverflow,W=qt(a,{elementContext:"reference"}),j=qt(a,{altBoundary:!0}),q=bt(W,C),oe=bt(j,T,F),z=Gt(q),Ce=Gt(oe);a.modifiersData[b]={referenceClippingOffsets:q,popperEscapeOffsets:oe,isReferenceHidden:z,hasPopperEscaped:Ce},a.attributes.popper=Object.assign({},a.attributes.popper,{"data-popper-reference-hidden":z,"data-popper-escaped":Ce})}var Jt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Kt},rt=[jn,Bn,y,Y],lt=En({defaultModifiers:rt}),yt=[jn,Bn,y,Y,be,re,ie,Ft,Jt],un=En({defaultModifiers:yt});t.applyStyles=Y,t.arrow=Ft,t.computeStyles=y,t.createPopper=un,t.createPopperLite=lt,t.defaultModifiers=yt,t.detectOverflow=qt,t.eventListeners=jn,t.flip=re,t.hide=Jt,t.offset=be,t.popperGenerator=En,t.popperOffsets=Bn,t.preventOverflow=ie}),No=Fo(t=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e=us(),r='',n="tippy-box",i="tippy-content",o="tippy-backdrop",s="tippy-arrow",h="tippy-svg-arrow",u={passive:!0,capture:!0};function f(g,y){return{}.hasOwnProperty.call(g,y)}function w(g,y,A){if(Array.isArray(g)){var I=g[y];return I??(Array.isArray(A)?A[y]:A)}return g}function m(g,y){var A={}.toString.call(g);return A.indexOf("[object")===0&&A.indexOf(y+"]")>-1}function E(g,y){return typeof g=="function"?g.apply(void 0,y):g}function O(g,y){if(y===0)return g;var A;return function(I){clearTimeout(A),A=setTimeout(function(){g(I)},y)}}function S(g,y){var A=Object.assign({},g);return y.forEach(function(I){delete A[I]}),A}function P(g){return g.split(/\s+/).filter(Boolean)}function R(g){return[].concat(g)}function $(g,y){g.indexOf(y)===-1&&g.push(y)}function B(g){return g.filter(function(y,A){return g.indexOf(y)===A})}function K(g){return g.split("-")[0]}function X(g){return[].slice.call(g)}function ne(g){return Object.keys(g).reduce(function(y,A){return g[A]!==void 0&&(y[A]=g[A]),y},{})}function J(){return document.createElement("div")}function V(g){return["Element","Fragment"].some(function(y){return m(g,y)})}function de(g){return m(g,"NodeList")}function U(g){return m(g,"MouseEvent")}function Z(g){return!!(g&&g._tippy&&g._tippy.reference===g)}function me(g){return V(g)?[g]:de(g)?X(g):Array.isArray(g)?g:X(document.querySelectorAll(g))}function l(g,y){g.forEach(function(A){A&&(A.style.transitionDuration=y+"ms")})}function p(g,y){g.forEach(function(A){A&&A.setAttribute("data-state",y)})}function v(g){var y,A=R(g),I=A[0];return!(I==null||(y=I.ownerDocument)==null)&&y.body?I.ownerDocument:document}function d(g,y){var A=y.clientX,I=y.clientY;return g.every(function(Y){var H=Y.popperRect,k=Y.popperState,be=Y.props,le=be.interactiveBorder,pe=K(k.placement),ye=k.modifiersData.offset;if(!ye)return!0;var _e=pe==="bottom"?ye.top.y:0,je=pe==="top"?ye.bottom.y:0,Ae=pe==="right"?ye.left.x:0,Ie=pe==="left"?ye.right.x:0,re=H.top-I+_e>le,he=I-H.bottom-je>le,ve=H.left-A+Ae>le,ee=A-H.right-Ie>le;return re||he||ve||ee})}function N(g,y,A){var I=y+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(Y){g[I](Y,A)})}var _={isTouch:!1},M=0;function Q(){_.isTouch||(_.isTouch=!0,window.performance&&document.addEventListener("mousemove",Ue))}function Ue(){var g=performance.now();g-M<20&&(_.isTouch=!1,document.removeEventListener("mousemove",Ue)),M=g}function Rt(){var g=document.activeElement;if(Z(g)){var y=g._tippy;g.blur&&!y.state.isVisible&&g.blur()}}function Vt(){document.addEventListener("touchstart",Q,u),window.addEventListener("blur",Rt)}var Lr=typeof window<"u"&&typeof document<"u",Nr=Lr?navigator.userAgent:"",kr=/MSIE |Trident\//.test(Nr);function zt(g){var y=g==="destroy"?"n already-":" ";return[g+"() was called on a"+y+"destroyed instance. This is a no-op but","indicates a potential memory leak."].join(" ")}function nr(g){var y=/[ \t]{2,}/g,A=/^[ \t]*/gm;return g.replace(y," ").replace(A,"").trim()}function jr(g){return nr(` + %ctippy.js + + %c`+nr(g)+` + + %c\u{1F477}\u200D This is a development-only message. It will be removed in production. + `)}function rr(g){return[jr(g),"color: #00C584; font-size: 1.3em; font-weight: bold;","line-height: 1.5","color: #a6a095;"]}var It;Br();function Br(){It=new Set}function mt(g,y){if(g&&!It.has(y)){var A;It.add(y),(A=console).warn.apply(A,rr(y))}}function Ut(g,y){if(g&&!It.has(y)){var A;It.add(y),(A=console).error.apply(A,rr(y))}}function At(g){var y=!g,A=Object.prototype.toString.call(g)==="[object Object]"&&!g.addEventListener;Ut(y,["tippy() was passed","`"+String(g)+"`","as its targets (first) argument. Valid types are: String, Element,","Element[], or NodeList."].join(" ")),Ut(A,["tippy() was passed a plain object which is not supported as an argument","for virtual positioning. Use props.getReferenceClientRect instead."].join(" "))}var Dt={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},Hr={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},Qe=Object.assign({appendTo:function(){return document.body},aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},Dt,{},Hr),$r=Object.keys(Qe),Wr=function(y){gt(y,[]);var A=Object.keys(y);A.forEach(function(I){Qe[I]=y[I]})};function ot(g){var y=g.plugins||[],A=y.reduce(function(I,Y){var H=Y.name,k=Y.defaultValue;return H&&(I[H]=g[H]!==void 0?g[H]:k),I},{});return Object.assign({},g,{},A)}function Vr(g,y){var A=y?Object.keys(ot(Object.assign({},Qe,{plugins:y}))):$r,I=A.reduce(function(Y,H){var k=(g.getAttribute("data-tippy-"+H)||"").trim();if(!k)return Y;if(H==="content")Y[H]=k;else try{Y[H]=JSON.parse(k)}catch{Y[H]=k}return Y},{});return I}function ir(g,y){var A=Object.assign({},y,{content:E(y.content,[g])},y.ignoreAttributes?{}:Vr(g,y.plugins));return A.aria=Object.assign({},Qe.aria,{},A.aria),A.aria={expanded:A.aria.expanded==="auto"?y.interactive:A.aria.expanded,content:A.aria.content==="auto"?y.interactive?null:"describedby":A.aria.content},A}function gt(g,y){g===void 0&&(g={}),y===void 0&&(y=[]);var A=Object.keys(g);A.forEach(function(I){var Y=S(Qe,Object.keys(Dt)),H=!f(Y,I);H&&(H=y.filter(function(k){return k.name===I}).length===0),mt(H,["`"+I+"`","is not a valid prop. You may have spelled it incorrectly, or if it's","a plugin, forgot to pass it in an array as props.plugins.",` + +`,`All props: https://atomiks.github.io/tippyjs/v6/all-props/ +`,"Plugins: https://atomiks.github.io/tippyjs/v6/plugins/"].join(" "))})}var ln=function(){return"innerHTML"};function Yt(g,y){g[ln()]=y}function or(g){var y=J();return g===!0?y.className=s:(y.className=h,V(g)?y.appendChild(g):Yt(y,g)),y}function kn(g,y){V(y.content)?(Yt(g,""),g.appendChild(y.content)):typeof y.content!="function"&&(y.allowHTML?Yt(g,y.content):g.textContent=y.content)}function Xt(g){var y=g.firstElementChild,A=X(y.children);return{box:y,content:A.find(function(I){return I.classList.contains(i)}),arrow:A.find(function(I){return I.classList.contains(s)||I.classList.contains(h)}),backdrop:A.find(function(I){return I.classList.contains(o)})}}function ar(g){var y=J(),A=J();A.className=n,A.setAttribute("data-state","hidden"),A.setAttribute("tabindex","-1");var I=J();I.className=i,I.setAttribute("data-state","hidden"),kn(I,g.props),y.appendChild(A),A.appendChild(I),Y(g.props,g.props);function Y(H,k){var be=Xt(y),le=be.box,pe=be.content,ye=be.arrow;k.theme?le.setAttribute("data-theme",k.theme):le.removeAttribute("data-theme"),typeof k.animation=="string"?le.setAttribute("data-animation",k.animation):le.removeAttribute("data-animation"),k.inertia?le.setAttribute("data-inertia",""):le.removeAttribute("data-inertia"),le.style.maxWidth=typeof k.maxWidth=="number"?k.maxWidth+"px":k.maxWidth,k.role?le.setAttribute("role",k.role):le.removeAttribute("role"),(H.content!==k.content||H.allowHTML!==k.allowHTML)&&kn(pe,g.props),k.arrow?ye?H.arrow!==k.arrow&&(le.removeChild(ye),le.appendChild(or(k.arrow))):le.appendChild(or(k.arrow)):ye&&le.removeChild(ye)}return{popper:y,onUpdate:Y}}ar.$$tippy=!0;var sr=1,yn=[],wn=[];function cn(g,y){var A=ir(g,Object.assign({},Qe,{},ot(ne(y)))),I,Y,H,k=!1,be=!1,le=!1,pe=!1,ye,_e,je,Ae=[],Ie=O(Re,A.interactiveDebounce),re,he=sr++,ve=null,ee=B(A.plugins),ie={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},x={id:he,reference:g,popper:J(),popperInstance:ve,props:A,state:ie,plugins:ee,clearDelayTimeouts:Lt,setProps:dn,setContent:Zt,show:Nt,hide:$n,hideWithInteractivity:Qt,enable:wt,disable:et,unmount:Sn,destroy:Wn};if(!A.render)return Ut(!0,"render() function has not been supplied."),x;var Ge=A.render(x),fe=Ge.popper,Ft=Ge.onUpdate;fe.setAttribute("data-tippy-root",""),fe.id="tippy-"+x.id,x.popper=fe,g._tippy=x,fe._tippy=x;var bt=ee.map(function(D){return D.fn(x)}),Gt=g.hasAttribute("aria-expanded");return Me(),T(),a(),b("onCreate",[x]),A.showOnCreate&&$e(),fe.addEventListener("mouseenter",function(){x.props.interactive&&x.state.isVisible&&x.clearDelayTimeouts()}),fe.addEventListener("mouseleave",function(D){x.props.interactive&&x.props.trigger.indexOf("mouseenter")>=0&&(yt().addEventListener("mousemove",Ie),Ie(D))}),x;function Kt(){var D=x.props.touch;return Array.isArray(D)?D:[D,0]}function Jt(){return Kt()[0]==="hold"}function rt(){var D;return!!((D=x.props.render)!=null&&D.$$tippy)}function lt(){return re||g}function yt(){var D=lt().parentNode;return D?v(D):document}function un(){return Xt(fe)}function c(D){return x.state.isMounted&&!x.state.isVisible||_.isTouch||ye&&ye.type==="focus"?0:w(x.props.delay,D?0:1,Qe.delay)}function a(){fe.style.pointerEvents=x.props.interactive&&x.state.isVisible?"":"none",fe.style.zIndex=""+x.props.zIndex}function b(D,G,te){if(te===void 0&&(te=!0),bt.forEach(function(we){we[D]&&we[D].apply(void 0,G)}),te){var ge;(ge=x.props)[D].apply(ge,G)}}function C(){var D=x.props.aria;if(D.content){var G="aria-"+D.content,te=fe.id,ge=R(x.props.triggerTarget||g);ge.forEach(function(we){var Ke=we.getAttribute(G);if(x.state.isVisible)we.setAttribute(G,Ke?Ke+" "+te:te);else{var Je=Ke&&Ke.replace(te,"").trim();Je?we.setAttribute(G,Je):we.removeAttribute(G)}})}}function T(){if(!(Gt||!x.props.aria.expanded)){var D=R(x.props.triggerTarget||g);D.forEach(function(G){x.props.interactive?G.setAttribute("aria-expanded",x.state.isVisible&&G===lt()?"true":"false"):G.removeAttribute("aria-expanded")})}}function F(){yt().removeEventListener("mousemove",Ie),yn=yn.filter(function(D){return D!==Ie})}function W(D){if(!(_.isTouch&&(le||D.type==="mousedown"))&&!(x.props.interactive&&fe.contains(D.target))){if(lt().contains(D.target)){if(_.isTouch||x.state.isVisible&&x.props.trigger.indexOf("click")>=0)return}else b("onClickOutside",[x,D]);x.props.hideOnClick===!0&&(x.clearDelayTimeouts(),x.hide(),be=!0,setTimeout(function(){be=!1}),x.state.isMounted||z())}}function j(){le=!0}function q(){le=!1}function oe(){var D=yt();D.addEventListener("mousedown",W,!0),D.addEventListener("touchend",W,u),D.addEventListener("touchstart",q,u),D.addEventListener("touchmove",j,u)}function z(){var D=yt();D.removeEventListener("mousedown",W,!0),D.removeEventListener("touchend",W,u),D.removeEventListener("touchstart",q,u),D.removeEventListener("touchmove",j,u)}function Ce(D,G){De(D,function(){!x.state.isVisible&&fe.parentNode&&fe.parentNode.contains(fe)&&G()})}function Le(D,G){De(D,G)}function De(D,G){var te=un().box;function ge(we){we.target===te&&(N(te,"remove",ge),G())}if(D===0)return G();N(te,"remove",_e),N(te,"add",ge),_e=ge}function xe(D,G,te){te===void 0&&(te=!1);var ge=R(x.props.triggerTarget||g);ge.forEach(function(we){we.addEventListener(D,G,te),Ae.push({node:we,eventType:D,handler:G,options:te})})}function Me(){Jt()&&(xe("touchstart",Be,{passive:!0}),xe("touchend",He,{passive:!0})),P(x.props.trigger).forEach(function(D){if(D!=="manual")switch(xe(D,Be),D){case"mouseenter":xe("mouseleave",He);break;case"focus":xe(kr?"focusout":"blur",ce);break;case"focusin":xe("focusout",ce);break}})}function Se(){Ae.forEach(function(D){var G=D.node,te=D.eventType,ge=D.handler,we=D.options;G.removeEventListener(te,ge,we)}),Ae=[]}function Be(D){var G,te=!1;if(!(!x.state.isEnabled||Pe(D)||be)){var ge=((G=ye)==null?void 0:G.type)==="focus";ye=D,re=D.currentTarget,T(),!x.state.isVisible&&U(D)&&yn.forEach(function(we){return we(D)}),D.type==="click"&&(x.props.trigger.indexOf("mouseenter")<0||k)&&x.props.hideOnClick!==!1&&x.state.isVisible?te=!0:$e(D),D.type==="click"&&(k=!te),te&&!ge&&Ve(D)}}function Re(D){var G=D.target,te=lt().contains(G)||fe.contains(G);if(!(D.type==="mousemove"&&te)){var ge=Ye().concat(fe).map(function(we){var Ke,Je=we._tippy,Ct=(Ke=Je.popperInstance)==null?void 0:Ke.state;return Ct?{popperRect:we.getBoundingClientRect(),popperState:Ct,props:A}:null}).filter(Boolean);d(ge,D)&&(F(),Ve(D))}}function He(D){var G=Pe(D)||x.props.trigger.indexOf("click")>=0&&k;if(!G){if(x.props.interactive){x.hideWithInteractivity(D);return}Ve(D)}}function ce(D){x.props.trigger.indexOf("focusin")<0&&D.target!==lt()||x.props.interactive&&D.relatedTarget&&fe.contains(D.relatedTarget)||Ve(D)}function Pe(D){return _.isTouch?Jt()!==D.type.indexOf("touch")>=0:!1}function Te(){Ne();var D=x.props,G=D.popperOptions,te=D.placement,ge=D.offset,we=D.getReferenceClientRect,Ke=D.moveTransition,Je=rt()?Xt(fe).arrow:null,Ct=we?{getBoundingClientRect:we,contextElement:we.contextElement||lt()}:g,Vn={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(pn){var en=pn.state;if(rt()){var Gr=un(),tn=Gr.box;["placement","reference-hidden","escaped"].forEach(function(hn){hn==="placement"?tn.setAttribute("data-placement",en.placement):en.attributes.popper["data-popper-"+hn]?tn.setAttribute("data-"+hn,""):tn.removeAttribute("data-"+hn)}),en.attributes.popper={}}}},Tt=[{name:"offset",options:{offset:ge}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Ke}},Vn];rt()&&Je&&Tt.push({name:"arrow",options:{element:Je,padding:3}}),Tt.push.apply(Tt,G?.modifiers||[]),x.popperInstance=e.createPopper(Ct,fe,Object.assign({},G,{placement:te,onFirstUpdate:je,modifiers:Tt}))}function Ne(){x.popperInstance&&(x.popperInstance.destroy(),x.popperInstance=null)}function Fe(){var D=x.props.appendTo,G,te=lt();x.props.interactive&&D===Qe.appendTo||D==="parent"?G=te.parentNode:G=E(D,[te]),G.contains(fe)||G.appendChild(fe),Te(),mt(x.props.interactive&&D===Qe.appendTo&&te.nextElementSibling!==fe,["Interactive tippy element may not be accessible via keyboard","navigation because it is not directly after the reference element","in the DOM source order.",` + +`,"Using a wrapper
or tag around the reference element","solves this by creating a new parentNode context.",` + +`,"Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle","keyboard navigation.",` + +`,"See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity"].join(" "))}function Ye(){return X(fe.querySelectorAll("[data-tippy-root]"))}function $e(D){x.clearDelayTimeouts(),D&&b("onTrigger",[x,D]),oe();var G=c(!0),te=Kt(),ge=te[0],we=te[1];_.isTouch&&ge==="hold"&&we&&(G=we),G?I=setTimeout(function(){x.show()},G):x.show()}function Ve(D){if(x.clearDelayTimeouts(),b("onUntrigger",[x,D]),!x.state.isVisible){z();return}if(!(x.props.trigger.indexOf("mouseenter")>=0&&x.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(D.type)>=0&&k)){var G=c(!1);G?Y=setTimeout(function(){x.state.isVisible&&x.hide()},G):H=requestAnimationFrame(function(){x.hide()})}}function wt(){x.state.isEnabled=!0}function et(){x.hide(),x.state.isEnabled=!1}function Lt(){clearTimeout(I),clearTimeout(Y),cancelAnimationFrame(H)}function dn(D){if(mt(x.state.isDestroyed,zt("setProps")),!x.state.isDestroyed){b("onBeforeUpdate",[x,D]),Se();var G=x.props,te=ir(g,Object.assign({},x.props,{},D,{ignoreAttributes:!0}));x.props=te,Me(),G.interactiveDebounce!==te.interactiveDebounce&&(F(),Ie=O(Re,te.interactiveDebounce)),G.triggerTarget&&!te.triggerTarget?R(G.triggerTarget).forEach(function(ge){ge.removeAttribute("aria-expanded")}):te.triggerTarget&&g.removeAttribute("aria-expanded"),T(),a(),Ft&&Ft(G,te),x.popperInstance&&(Te(),Ye().forEach(function(ge){requestAnimationFrame(ge._tippy.popperInstance.forceUpdate)})),b("onAfterUpdate",[x,D])}}function Zt(D){x.setProps({content:D})}function Nt(){mt(x.state.isDestroyed,zt("show"));var D=x.state.isVisible,G=x.state.isDestroyed,te=!x.state.isEnabled,ge=_.isTouch&&!x.props.touch,we=w(x.props.duration,0,Qe.duration);if(!(D||G||te||ge)&&!lt().hasAttribute("disabled")&&(b("onShow",[x],!1),x.props.onShow(x)!==!1)){if(x.state.isVisible=!0,rt()&&(fe.style.visibility="visible"),a(),oe(),x.state.isMounted||(fe.style.transition="none"),rt()){var Ke=un(),Je=Ke.box,Ct=Ke.content;l([Je,Ct],0)}je=function(){var Tt;if(!(!x.state.isVisible||pe)){if(pe=!0,fe.offsetHeight,fe.style.transition=x.props.moveTransition,rt()&&x.props.animation){var An=un(),pn=An.box,en=An.content;l([pn,en],we),p([pn,en],"visible")}C(),T(),$(wn,x),(Tt=x.popperInstance)==null||Tt.forceUpdate(),x.state.isMounted=!0,b("onMount",[x]),x.props.animation&&rt()&&Le(we,function(){x.state.isShown=!0,b("onShown",[x])})}},Fe()}}function $n(){mt(x.state.isDestroyed,zt("hide"));var D=!x.state.isVisible,G=x.state.isDestroyed,te=!x.state.isEnabled,ge=w(x.props.duration,1,Qe.duration);if(!(D||G||te)&&(b("onHide",[x],!1),x.props.onHide(x)!==!1)){if(x.state.isVisible=!1,x.state.isShown=!1,pe=!1,k=!1,rt()&&(fe.style.visibility="hidden"),F(),z(),a(),rt()){var we=un(),Ke=we.box,Je=we.content;x.props.animation&&(l([Ke,Je],ge),p([Ke,Je],"hidden"))}C(),T(),x.props.animation?rt()&&Ce(ge,x.unmount):x.unmount()}}function Qt(D){mt(x.state.isDestroyed,zt("hideWithInteractivity")),yt().addEventListener("mousemove",Ie),$(yn,Ie),Ie(D)}function Sn(){mt(x.state.isDestroyed,zt("unmount")),x.state.isVisible&&x.hide(),x.state.isMounted&&(Ne(),Ye().forEach(function(D){D._tippy.unmount()}),fe.parentNode&&fe.parentNode.removeChild(fe),wn=wn.filter(function(D){return D!==x}),x.state.isMounted=!1,b("onHidden",[x]))}function Wn(){mt(x.state.isDestroyed,zt("destroy")),!x.state.isDestroyed&&(x.clearDelayTimeouts(),x.unmount(),Se(),delete g._tippy,x.state.isDestroyed=!0,b("onDestroy",[x]))}}function dt(g,y){y===void 0&&(y={});var A=Qe.plugins.concat(y.plugins||[]);At(g),gt(y,A),Vt();var I=Object.assign({},y,{plugins:A}),Y=me(g),H=V(I.content),k=Y.length>1;mt(H&&k,["tippy() was passed an Element as the `content` prop, but more than","one tippy instance was created by this invocation. This means the","content element will only be appended to the last tippy instance.",` + +`,"Instead, pass the .innerHTML of the element, or use a function that","returns a cloned version of the element instead.",` + +`,`1) content: element.innerHTML +`,"2) content: () => element.cloneNode(true)"].join(" "));var be=Y.reduce(function(le,pe){var ye=pe&&cn(pe,I);return ye&&le.push(ye),le},[]);return V(g)?be[0]:be}dt.defaultProps=Qe,dt.setDefaultProps=Wr,dt.currentInput=_;var lr=function(y){var A=y===void 0?{}:y,I=A.exclude,Y=A.duration;wn.forEach(function(H){var k=!1;if(I&&(k=Z(I)?H.reference===I:H.popper===I.popper),!k){var be=H.props.duration;H.setProps({duration:Y}),H.hide(),H.state.isDestroyed||H.setProps({duration:be})}})},cr=Object.assign({},e.applyStyles,{effect:function(y){var A=y.state,I={popper:{position:A.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(A.elements.popper.style,I.popper),A.styles=I,A.elements.arrow&&Object.assign(A.elements.arrow.style,I.arrow)}}),fr=function(y,A){var I;A===void 0&&(A={}),Ut(!Array.isArray(y),["The first argument passed to createSingleton() must be an array of","tippy instances. The passed value was",String(y)].join(" "));var Y=y,H=[],k,be=A.overrides,le=[],pe=!1;function ye(){H=Y.map(function(ee){return ee.reference})}function _e(ee){Y.forEach(function(ie){ee?ie.enable():ie.disable()})}function je(ee){return Y.map(function(ie){var x=ie.setProps;return ie.setProps=function(Ge){x(Ge),ie.reference===k&&ee.setProps(Ge)},function(){ie.setProps=x}})}function Ae(ee,ie){var x=H.indexOf(ie);if(ie!==k){k=ie;var Ge=(be||[]).concat("content").reduce(function(fe,Ft){return fe[Ft]=Y[x].props[Ft],fe},{});ee.setProps(Object.assign({},Ge,{getReferenceClientRect:typeof Ge.getReferenceClientRect=="function"?Ge.getReferenceClientRect:function(){return ie.getBoundingClientRect()}}))}}_e(!1),ye();var Ie={fn:function(){return{onDestroy:function(){_e(!0)},onHidden:function(){k=null},onClickOutside:function(x){x.props.showOnCreate&&!pe&&(pe=!0,k=null)},onShow:function(x){x.props.showOnCreate&&!pe&&(pe=!0,Ae(x,H[0]))},onTrigger:function(x,Ge){Ae(x,Ge.currentTarget)}}}},re=dt(J(),Object.assign({},S(A,["overrides"]),{plugins:[Ie].concat(A.plugins||[]),triggerTarget:H,popperOptions:Object.assign({},A.popperOptions,{modifiers:[].concat(((I=A.popperOptions)==null?void 0:I.modifiers)||[],[cr])})})),he=re.show;re.show=function(ee){if(he(),!k&&ee==null)return Ae(re,H[0]);if(!(k&&ee==null)){if(typeof ee=="number")return H[ee]&&Ae(re,H[ee]);if(Y.includes(ee)){var ie=ee.reference;return Ae(re,ie)}if(H.includes(ee))return Ae(re,ee)}},re.showNext=function(){var ee=H[0];if(!k)return re.show(0);var ie=H.indexOf(k);re.show(H[ie+1]||ee)},re.showPrevious=function(){var ee=H[H.length-1];if(!k)return re.show(ee);var ie=H.indexOf(k),x=H[ie-1]||ee;re.show(x)};var ve=re.setProps;return re.setProps=function(ee){be=ee.overrides||be,ve(ee)},re.setInstances=function(ee){_e(!0),le.forEach(function(ie){return ie()}),Y=ee,_e(!1),ye(),je(re),re.setProps({triggerTarget:H})},le=je(re),re},ur={mouseover:"mouseenter",focusin:"focus",click:"click"};function qt(g,y){Ut(!(y&&y.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" "));var A=[],I=[],Y=!1,H=y.target,k=S(y,["target"]),be=Object.assign({},k,{trigger:"manual",touch:!1}),le=Object.assign({},k,{showOnCreate:!0}),pe=dt(g,be),ye=R(pe);function _e(he){if(!(!he.target||Y)){var ve=he.target.closest(H);if(ve){var ee=ve.getAttribute("data-tippy-trigger")||y.trigger||Qe.trigger;if(!ve._tippy&&!(he.type==="touchstart"&&typeof le.touch=="boolean")&&!(he.type!=="touchstart"&&ee.indexOf(ur[he.type])<0)){var ie=dt(ve,le);ie&&(I=I.concat(ie))}}}}function je(he,ve,ee,ie){ie===void 0&&(ie=!1),he.addEventListener(ve,ee,ie),A.push({node:he,eventType:ve,handler:ee,options:ie})}function Ae(he){var ve=he.reference;je(ve,"touchstart",_e,u),je(ve,"mouseover",_e),je(ve,"focusin",_e),je(ve,"click",_e)}function Ie(){A.forEach(function(he){var ve=he.node,ee=he.eventType,ie=he.handler,x=he.options;ve.removeEventListener(ee,ie,x)}),A=[]}function re(he){var ve=he.destroy,ee=he.enable,ie=he.disable;he.destroy=function(x){x===void 0&&(x=!0),x&&I.forEach(function(Ge){Ge.destroy()}),I=[],Ie(),ve()},he.enable=function(){ee(),I.forEach(function(x){return x.enable()}),Y=!1},he.disable=function(){ie(),I.forEach(function(x){return x.disable()}),Y=!0},Ae(he)}return ye.forEach(re),pe}var dr={name:"animateFill",defaultValue:!1,fn:function(y){var A;if(!((A=y.props.render)!=null&&A.$$tippy))return Ut(y.props.animateFill,"The `animateFill` plugin requires the default render function."),{};var I=Xt(y.popper),Y=I.box,H=I.content,k=y.props.animateFill?zr():null;return{onCreate:function(){k&&(Y.insertBefore(k,Y.firstElementChild),Y.setAttribute("data-animatefill",""),Y.style.overflow="hidden",y.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(k){var le=Y.style.transitionDuration,pe=Number(le.replace("ms",""));H.style.transitionDelay=Math.round(pe/10)+"ms",k.style.transitionDuration=le,p([k],"visible")}},onShow:function(){k&&(k.style.transitionDuration="0ms")},onHide:function(){k&&p([k],"hidden")}}}};function zr(){var g=J();return g.className=o,p([g],"hidden"),g}var xn={clientX:0,clientY:0},fn=[];function En(g){var y=g.clientX,A=g.clientY;xn={clientX:y,clientY:A}}function On(g){g.addEventListener("mousemove",En)}function Ur(g){g.removeEventListener("mousemove",En)}var jn={name:"followCursor",defaultValue:!1,fn:function(y){var A=y.reference,I=v(y.props.triggerTarget||A),Y=!1,H=!1,k=!0,be=y.props;function le(){return y.props.followCursor==="initial"&&y.state.isVisible}function pe(){I.addEventListener("mousemove",je)}function ye(){I.removeEventListener("mousemove",je)}function _e(){Y=!0,y.setProps({getReferenceClientRect:null}),Y=!1}function je(re){var he=re.target?A.contains(re.target):!0,ve=y.props.followCursor,ee=re.clientX,ie=re.clientY,x=A.getBoundingClientRect(),Ge=ee-x.left,fe=ie-x.top;(he||!y.props.interactive)&&y.setProps({getReferenceClientRect:function(){var bt=A.getBoundingClientRect(),Gt=ee,Kt=ie;ve==="initial"&&(Gt=bt.left+Ge,Kt=bt.top+fe);var Jt=ve==="horizontal"?bt.top:Kt,rt=ve==="vertical"?bt.right:Gt,lt=ve==="horizontal"?bt.bottom:Kt,yt=ve==="vertical"?bt.left:Gt;return{width:rt-yt,height:lt-Jt,top:Jt,right:rt,bottom:lt,left:yt}}})}function Ae(){y.props.followCursor&&(fn.push({instance:y,doc:I}),On(I))}function Ie(){fn=fn.filter(function(re){return re.instance!==y}),fn.filter(function(re){return re.doc===I}).length===0&&Ur(I)}return{onCreate:Ae,onDestroy:Ie,onBeforeUpdate:function(){be=y.props},onAfterUpdate:function(he,ve){var ee=ve.followCursor;Y||ee!==void 0&&be.followCursor!==ee&&(Ie(),ee?(Ae(),y.state.isMounted&&!H&&!le()&&pe()):(ye(),_e()))},onMount:function(){y.props.followCursor&&!H&&(k&&(je(xn),k=!1),le()||pe())},onTrigger:function(he,ve){U(ve)&&(xn={clientX:ve.clientX,clientY:ve.clientY}),H=ve.type==="focus"},onHidden:function(){y.props.followCursor&&(_e(),ye(),k=!0)}}}};function Yr(g,y){var A;return{popperOptions:Object.assign({},g.popperOptions,{modifiers:[].concat((((A=g.popperOptions)==null?void 0:A.modifiers)||[]).filter(function(I){var Y=I.name;return Y!==y.name}),[y])})}}var Bn={name:"inlinePositioning",defaultValue:!1,fn:function(y){var A=y.reference;function I(){return!!y.props.inlinePositioning}var Y,H=-1,k=!1,be={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(je){var Ae=je.state;I()&&(Y!==Ae.placement&&y.setProps({getReferenceClientRect:function(){return le(Ae.placement)}}),Y=Ae.placement)}};function le(_e){return Xr(K(_e),A.getBoundingClientRect(),X(A.getClientRects()),H)}function pe(_e){k=!0,y.setProps(_e),k=!1}function ye(){k||pe(Yr(y.props,be))}return{onCreate:ye,onAfterUpdate:ye,onTrigger:function(je,Ae){if(U(Ae)){var Ie=X(y.reference.getClientRects()),re=Ie.find(function(he){return he.left-2<=Ae.clientX&&he.right+2>=Ae.clientX&&he.top-2<=Ae.clientY&&he.bottom+2>=Ae.clientY});H=Ie.indexOf(re)}},onUntrigger:function(){H=-1}}}};function Xr(g,y,A,I){if(A.length<2||g===null)return y;if(A.length===2&&I>=0&&A[0].left>A[1].right)return A[I]||y;switch(g){case"top":case"bottom":{var Y=A[0],H=A[A.length-1],k=g==="top",be=Y.top,le=H.bottom,pe=k?Y.left:H.left,ye=k?Y.right:H.right,_e=ye-pe,je=le-be;return{top:be,bottom:le,left:pe,right:ye,width:_e,height:je}}case"left":case"right":{var Ae=Math.min.apply(Math,A.map(function(fe){return fe.left})),Ie=Math.max.apply(Math,A.map(function(fe){return fe.right})),re=A.filter(function(fe){return g==="left"?fe.left===Ae:fe.right===Ie}),he=re[0].top,ve=re[re.length-1].bottom,ee=Ae,ie=Ie,x=ie-ee,Ge=ve-he;return{top:he,bottom:ve,left:ee,right:ie,width:x,height:Ge}}default:return y}}var qr={name:"sticky",defaultValue:!1,fn:function(y){var A=y.reference,I=y.popper;function Y(){return y.popperInstance?y.popperInstance.state.elements.reference:A}function H(pe){return y.props.sticky===!0||y.props.sticky===pe}var k=null,be=null;function le(){var pe=H("reference")?Y().getBoundingClientRect():null,ye=H("popper")?I.getBoundingClientRect():null;(pe&&Hn(k,pe)||ye&&Hn(be,ye))&&y.popperInstance&&y.popperInstance.update(),k=pe,be=ye,y.state.isMounted&&requestAnimationFrame(le)}return{onMount:function(){y.props.sticky&&le()}}}};function Hn(g,y){return g&&y?g.top!==y.top||g.right!==y.right||g.bottom!==y.bottom||g.left!==y.left:!0}dt.setDefaultProps({render:ar}),t.animateFill=dr,t.createSingleton=fr,t.default=dt,t.delegate=qt,t.followCursor=jn,t.hideAll=lr,t.inlinePositioning=Bn,t.roundArrow=r,t.sticky=qr}),Oi=Lo(No()),ds=Lo(No()),ps=t=>{let e={plugins:[]},r=i=>t[t.indexOf(i)+1];if(t.includes("animation")&&(e.animation=r("animation")),t.includes("duration")&&(e.duration=parseInt(r("duration"))),t.includes("delay")){let i=r("delay");e.delay=i.includes("-")?i.split("-").map(o=>parseInt(o)):parseInt(i)}if(t.includes("cursor")){e.plugins.push(ds.followCursor);let i=r("cursor");["x","initial"].includes(i)?e.followCursor=i==="x"?"horizontal":"initial":e.followCursor=!0}t.includes("on")&&(e.trigger=r("on")),t.includes("arrowless")&&(e.arrow=!1),t.includes("html")&&(e.allowHTML=!0),t.includes("interactive")&&(e.interactive=!0),t.includes("border")&&e.interactive&&(e.interactiveBorder=parseInt(r("border"))),t.includes("debounce")&&e.interactive&&(e.interactiveDebounce=parseInt(r("debounce"))),t.includes("max-width")&&(e.maxWidth=parseInt(r("max-width"))),t.includes("theme")&&(e.theme=r("theme")),t.includes("placement")&&(e.placement=r("placement"));let n={};return t.includes("no-flip")&&(n.modifiers||(n.modifiers=[]),n.modifiers.push({name:"flip",enabled:!1})),e.popperOptions=n,e};function Si(t){t.magic("tooltip",e=>(r,n={})=>{let i=n.timeout;delete n.timeout;let o=(0,Oi.default)(e,{content:r,trigger:"manual",...n});o.show(),setTimeout(()=>{o.hide(),setTimeout(()=>o.destroy(),n.duration||300)},i||2e3)}),t.directive("tooltip",(e,{modifiers:r,expression:n},{evaluateLater:i,effect:o,cleanup:s})=>{let h=r.length>0?ps(r):{};e.__x_tippy||(e.__x_tippy=(0,Oi.default)(e,h)),s(()=>{e.__x_tippy&&(e.__x_tippy.destroy(),delete e.__x_tippy)});let u=()=>e.__x_tippy.enable(),f=()=>e.__x_tippy.disable(),w=m=>{m?(u(),e.__x_tippy.setContent(m)):f()};if(r.includes("raw"))w(n);else{let m=i(n);o(()=>{m(E=>{typeof E=="object"?(e.__x_tippy.setProps(E),u()):w(E)})})}})}Si.defaultProps=t=>(Oi.default.setDefaultProps(t),Si);var hs=Si,ko=hs;document.addEventListener("alpine:init",()=>{window.Alpine.plugin(io),window.Alpine.plugin(oo),window.Alpine.plugin(Io),window.Alpine.plugin(ko)});var vs=function(t,e,r){function n(w,m){for(let E of w){let O=i(E,m);if(O!==null)return O}}function i(w,m){let E=w.match(/^[\{\[]([^\[\]\{\}]*)[\}\]](.*)/s);if(E===null||E.length!==3)return null;let O=E[1],S=E[2];if(O.includes(",")){let[P,R]=O.split(",",2);if(R==="*"&&m>=P)return S;if(P==="*"&&m<=R)return S;if(m>=P&&m<=R)return S}return O==m?S:null}function o(w){return w.toString().charAt(0).toUpperCase()+w.toString().slice(1)}function s(w,m){if(m.length===0)return w;let E={};for(let[O,S]of Object.entries(m))E[":"+o(O??"")]=o(S??""),E[":"+O.toUpperCase()]=S.toString().toUpperCase(),E[":"+O]=S;return Object.entries(E).forEach(([O,S])=>{w=w.replaceAll(O,S)}),w}function h(w){return w.map(m=>m.replace(/^[\{\[]([^\[\]\{\}]*)[\}\]]/,""))}let u=t.split("|"),f=n(u,e);return f!=null?s(f.trim(),r):(u=h(u),s(u.length>1&&e>1?u[1]:u[0],r))};window.jsMd5=jo.md5;window.pluralize=vs;})(); +/*! Bundled license information: + +js-md5/src/md5.js: + (** + * [js-md5]{@link https://github.com/emn178/js-md5} + * + * @namespace md5 + * @version 0.8.3 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2023 + * @license MIT + *) + +sortablejs/modular/sortable.esm.js: + (**! + * Sortable 1.15.6 + * @author RubaXa + * @author owenm + * @license MIT + *) +*/ diff --git a/ems-sense/public/robots.txt b/ems-sense/public/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/ems-sense/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/ems-sense/resources/css/app.css b/ems-sense/resources/css/app.css new file mode 100644 index 0000000..510ff1d --- /dev/null +++ b/ems-sense/resources/css/app.css @@ -0,0 +1,4 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; +@tailwind variants; diff --git a/ems-sense/resources/js/app.js b/ems-sense/resources/js/app.js new file mode 100644 index 0000000..e59d6a0 --- /dev/null +++ b/ems-sense/resources/js/app.js @@ -0,0 +1 @@ +import './bootstrap'; diff --git a/ems-sense/resources/js/bootstrap.js b/ems-sense/resources/js/bootstrap.js new file mode 100644 index 0000000..5f1390b --- /dev/null +++ b/ems-sense/resources/js/bootstrap.js @@ -0,0 +1,4 @@ +import axios from 'axios'; +window.axios = axios; + +window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; diff --git a/ems-sense/resources/views/components/action-message.blade.php b/ems-sense/resources/views/components/action-message.blade.php new file mode 100644 index 0000000..038ec2c --- /dev/null +++ b/ems-sense/resources/views/components/action-message.blade.php @@ -0,0 +1,10 @@ +@props(['on']) + +
merge(['class' => 'text-sm text-gray-600']) }}> + {{ $slot->isEmpty() ? __('Saved.') : $slot }} +
diff --git a/ems-sense/resources/views/components/application-logo.blade.php b/ems-sense/resources/views/components/application-logo.blade.php new file mode 100644 index 0000000..f5b5c3a --- /dev/null +++ b/ems-sense/resources/views/components/application-logo.blade.php @@ -0,0 +1 @@ + diff --git a/ems-sense/resources/views/components/auth-session-status.blade.php b/ems-sense/resources/views/components/auth-session-status.blade.php new file mode 100644 index 0000000..c4bd6e2 --- /dev/null +++ b/ems-sense/resources/views/components/auth-session-status.blade.php @@ -0,0 +1,7 @@ +@props(['status']) + +@if ($status) +
merge(['class' => 'font-medium text-sm text-green-600']) }}> + {{ $status }} +
+@endif diff --git a/ems-sense/resources/views/components/danger-button.blade.php b/ems-sense/resources/views/components/danger-button.blade.php new file mode 100644 index 0000000..d17d288 --- /dev/null +++ b/ems-sense/resources/views/components/danger-button.blade.php @@ -0,0 +1,3 @@ + diff --git a/ems-sense/resources/views/components/dropdown-link.blade.php b/ems-sense/resources/views/components/dropdown-link.blade.php new file mode 100644 index 0000000..e0f8ce1 --- /dev/null +++ b/ems-sense/resources/views/components/dropdown-link.blade.php @@ -0,0 +1 @@ +merge(['class' => 'block w-full px-4 py-2 text-start text-sm leading-5 text-gray-700 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 transition duration-150 ease-in-out']) }}>{{ $slot }} diff --git a/ems-sense/resources/views/components/dropdown.blade.php b/ems-sense/resources/views/components/dropdown.blade.php new file mode 100644 index 0000000..a46f7c8 --- /dev/null +++ b/ems-sense/resources/views/components/dropdown.blade.php @@ -0,0 +1,35 @@ +@props(['align' => 'right', 'width' => '48', 'contentClasses' => 'py-1 bg-white']) + +@php +$alignmentClasses = match ($align) { + 'left' => 'ltr:origin-top-left rtl:origin-top-right start-0', + 'top' => 'origin-top', + default => 'ltr:origin-top-right rtl:origin-top-left end-0', +}; + +$width = match ($width) { + '48' => 'w-48', + default => $width, +}; +@endphp + +
+
+ {{ $trigger }} +
+ + +
diff --git a/ems-sense/resources/views/components/input-error.blade.php b/ems-sense/resources/views/components/input-error.blade.php new file mode 100644 index 0000000..9e6da21 --- /dev/null +++ b/ems-sense/resources/views/components/input-error.blade.php @@ -0,0 +1,9 @@ +@props(['messages']) + +@if ($messages) +
    merge(['class' => 'text-sm text-red-600 space-y-1']) }}> + @foreach ((array) $messages as $message) +
  • {{ $message }}
  • + @endforeach +
+@endif diff --git a/ems-sense/resources/views/components/input-label.blade.php b/ems-sense/resources/views/components/input-label.blade.php new file mode 100644 index 0000000..1cc65e2 --- /dev/null +++ b/ems-sense/resources/views/components/input-label.blade.php @@ -0,0 +1,5 @@ +@props(['value']) + + diff --git a/ems-sense/resources/views/components/modal.blade.php b/ems-sense/resources/views/components/modal.blade.php new file mode 100644 index 0000000..70704c1 --- /dev/null +++ b/ems-sense/resources/views/components/modal.blade.php @@ -0,0 +1,78 @@ +@props([ + 'name', + 'show' => false, + 'maxWidth' => '2xl' +]) + +@php +$maxWidth = [ + 'sm' => 'sm:max-w-sm', + 'md' => 'sm:max-w-md', + 'lg' => 'sm:max-w-lg', + 'xl' => 'sm:max-w-xl', + '2xl' => 'sm:max-w-2xl', +][$maxWidth]; +@endphp + +
+
+
+
+ +
+ {{ $slot }} +
+
diff --git a/ems-sense/resources/views/components/nav-link.blade.php b/ems-sense/resources/views/components/nav-link.blade.php new file mode 100644 index 0000000..5c101a2 --- /dev/null +++ b/ems-sense/resources/views/components/nav-link.blade.php @@ -0,0 +1,11 @@ +@props(['active']) + +@php +$classes = ($active ?? false) + ? 'inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 text-sm font-medium leading-5 text-gray-900 focus:outline-none focus:border-indigo-700 transition duration-150 ease-in-out' + : 'inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 hover:text-gray-700 hover:border-gray-300 focus:outline-none focus:text-gray-700 focus:border-gray-300 transition duration-150 ease-in-out'; +@endphp + +merge(['class' => $classes]) }}> + {{ $slot }} + diff --git a/ems-sense/resources/views/components/primary-button.blade.php b/ems-sense/resources/views/components/primary-button.blade.php new file mode 100644 index 0000000..d71f0b6 --- /dev/null +++ b/ems-sense/resources/views/components/primary-button.blade.php @@ -0,0 +1,3 @@ + diff --git a/ems-sense/resources/views/components/responsive-nav-link.blade.php b/ems-sense/resources/views/components/responsive-nav-link.blade.php new file mode 100644 index 0000000..43b91e7 --- /dev/null +++ b/ems-sense/resources/views/components/responsive-nav-link.blade.php @@ -0,0 +1,11 @@ +@props(['active']) + +@php +$classes = ($active ?? false) + ? 'block w-full ps-3 pe-4 py-2 border-l-4 border-indigo-400 text-start text-base font-medium text-indigo-700 bg-indigo-50 focus:outline-none focus:text-indigo-800 focus:bg-indigo-100 focus:border-indigo-700 transition duration-150 ease-in-out' + : 'block w-full ps-3 pe-4 py-2 border-l-4 border-transparent text-start text-base font-medium text-gray-600 hover:text-gray-800 hover:bg-gray-50 hover:border-gray-300 focus:outline-none focus:text-gray-800 focus:bg-gray-50 focus:border-gray-300 transition duration-150 ease-in-out'; +@endphp + +merge(['class' => $classes]) }}> + {{ $slot }} + diff --git a/ems-sense/resources/views/components/secondary-button.blade.php b/ems-sense/resources/views/components/secondary-button.blade.php new file mode 100644 index 0000000..b32b69f --- /dev/null +++ b/ems-sense/resources/views/components/secondary-button.blade.php @@ -0,0 +1,3 @@ + diff --git a/ems-sense/resources/views/components/text-input.blade.php b/ems-sense/resources/views/components/text-input.blade.php new file mode 100644 index 0000000..da1b12d --- /dev/null +++ b/ems-sense/resources/views/components/text-input.blade.php @@ -0,0 +1,3 @@ +@props(['disabled' => false]) + +merge(['class' => 'border-gray-300 focus:border-indigo-500 focus:ring-indigo-500 rounded-md shadow-sm']) }}> diff --git a/ems-sense/resources/views/dashboard.blade.php b/ems-sense/resources/views/dashboard.blade.php new file mode 100644 index 0000000..b363c4b --- /dev/null +++ b/ems-sense/resources/views/dashboard.blade.php @@ -0,0 +1,17 @@ + + +

+ {{ __('Look at Stats!') }} +

+
+ +
+
+
+
+ +
+
+
+
+
diff --git a/ems-sense/resources/views/layouts/app.blade.php b/ems-sense/resources/views/layouts/app.blade.php new file mode 100644 index 0000000..0523b5f --- /dev/null +++ b/ems-sense/resources/views/layouts/app.blade.php @@ -0,0 +1,42 @@ + + + + + + + + {{ config('app.name', 'Laravel') }} + + + + + + + + + @vite(['resources/css/app.css', 'resources/js/app.js']) + + +
+ + + + @if (isset($header)) +
+
+ {{ $header }} +
+
+ @endif + + +
+ {{ $slot }} +
+
+ + @livewire('notifications') + + @filamentScripts + + diff --git a/ems-sense/resources/views/layouts/guest.blade.php b/ems-sense/resources/views/layouts/guest.blade.php new file mode 100644 index 0000000..fb3d283 --- /dev/null +++ b/ems-sense/resources/views/layouts/guest.blade.php @@ -0,0 +1,32 @@ + + + + + + + + {{ config('app.name', 'Laravel') }} + + + + + + + + + @vite(['resources/css/app.css', 'resources/js/app.js']) + + +
+
+ + + +
+ +
+ {{ $slot }} +
+
+ + diff --git a/ems-sense/resources/views/livewire/.gitkeep b/ems-sense/resources/views/livewire/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/ems-sense/resources/views/livewire/layout/navigation.blade.php b/ems-sense/resources/views/livewire/layout/navigation.blade.php new file mode 100644 index 0000000..6a6c9aa --- /dev/null +++ b/ems-sense/resources/views/livewire/layout/navigation.blade.php @@ -0,0 +1,148 @@ +redirect('/', navigate: true); + } +}; ?> + + diff --git a/ems-sense/resources/views/livewire/pages/auth/confirm-password.blade.php b/ems-sense/resources/views/livewire/pages/auth/confirm-password.blade.php new file mode 100644 index 0000000..df63b44 --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/auth/confirm-password.blade.php @@ -0,0 +1,62 @@ +validate([ + 'password' => ['required', 'string'], + ]); + + if (! Auth::guard('web')->validate([ + 'email' => Auth::user()->email, + 'password' => $this->password, + ])) { + throw ValidationException::withMessages([ + 'password' => __('auth.password'), + ]); + } + + session(['auth.password_confirmed_at' => time()]); + + $this->redirectIntended(default: route('dashboard', absolute: false), navigate: true); + } +}; ?> + +
+
+ {{ __('This is a secure area of the application. Please confirm your password before continuing.') }} +
+ +
+ +
+ + + + + +
+ +
+ + {{ __('Confirm') }} + +
+
+
diff --git a/ems-sense/resources/views/livewire/pages/auth/forgot-password.blade.php b/ems-sense/resources/views/livewire/pages/auth/forgot-password.blade.php new file mode 100644 index 0000000..e80356e --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/auth/forgot-password.blade.php @@ -0,0 +1,61 @@ +validate([ + 'email' => ['required', 'string', 'email'], + ]); + + // We will send the password reset link to this user. Once we have attempted + // to send the link, we will examine the response then see the message we + // need to show to the user. Finally, we'll send out a proper response. + $status = Password::sendResetLink( + $this->only('email') + ); + + if ($status != Password::RESET_LINK_SENT) { + $this->addError('email', __($status)); + + return; + } + + $this->reset('email'); + + session()->flash('status', __($status)); + } +}; ?> + +
+
+ {{ __('Forgot your password? No problem. Just let us know your email address and we will email you a password reset link that will allow you to choose a new one.') }} +
+ + + + +
+ +
+ + + +
+ +
+ + {{ __('Email Password Reset Link') }} + +
+
+
diff --git a/ems-sense/resources/views/livewire/pages/auth/login.blade.php b/ems-sense/resources/views/livewire/pages/auth/login.blade.php new file mode 100644 index 0000000..323f451 --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/auth/login.blade.php @@ -0,0 +1,71 @@ +validate(); + + $this->form->authenticate(); + + Session::regenerate(); + + $this->redirectIntended(default: route('dashboard', absolute: false), navigate: true); + } +}; ?> + +
+ + + +
+ +
+ + + +
+ + +
+ + + + + +
+ + +
+ +
+ +
+ @if (Route::has('register')) + + {{ __('Want to Register?') }} + + @endif + + + {{ __('Log in') }} + +
+
+
diff --git a/ems-sense/resources/views/livewire/pages/auth/register.blade.php b/ems-sense/resources/views/livewire/pages/auth/register.blade.php new file mode 100644 index 0000000..e236e9f --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/auth/register.blade.php @@ -0,0 +1,88 @@ +validate([ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:'.User::class], + 'password' => ['required', 'string', 'confirmed', Rules\Password::defaults()], + ]); + + $validated['password'] = Hash::make($validated['password']); + + event(new Registered($user = User::create($validated))); + + Auth::login($user); + + $this->redirect(route('dashboard', absolute: false), navigate: true); + } +}; ?> + +
+
+ +
+ + + +
+ + +
+ + + +
+ + +
+ + + + + +
+ + +
+ + + + + +
+ +
+ + {{ __('Already registered?') }} + + + + {{ __('Register') }} + +
+
+
diff --git a/ems-sense/resources/views/livewire/pages/auth/reset-password.blade.php b/ems-sense/resources/views/livewire/pages/auth/reset-password.blade.php new file mode 100644 index 0000000..310a196 --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/auth/reset-password.blade.php @@ -0,0 +1,105 @@ +token = $token; + + $this->email = request()->string('email'); + } + + /** + * Reset the password for the given user. + */ + public function resetPassword(): void + { + $this->validate([ + 'token' => ['required'], + 'email' => ['required', 'string', 'email'], + 'password' => ['required', 'string', 'confirmed', Rules\Password::defaults()], + ]); + + // Here we will attempt to reset the user's password. If it is successful we + // will update the password on an actual user model and persist it to the + // database. Otherwise we will parse the error and return the response. + $status = Password::reset( + $this->only('email', 'password', 'password_confirmation', 'token'), + function ($user) { + $user->forceFill([ + 'password' => Hash::make($this->password), + 'remember_token' => Str::random(60), + ])->save(); + + event(new PasswordReset($user)); + } + ); + + // If the password was successfully reset, we will redirect the user back to + // the application's home authenticated view. If there is an error we can + // redirect them back to where they came from with their error message. + if ($status != Password::PASSWORD_RESET) { + $this->addError('email', __($status)); + + return; + } + + Session::flash('status', __($status)); + + $this->redirectRoute('login', navigate: true); + } +}; ?> + +
+
+ +
+ + + +
+ + +
+ + + +
+ + +
+ + + + + +
+ +
+ + {{ __('Reset Password') }} + +
+
+
diff --git a/ems-sense/resources/views/livewire/pages/auth/verify-email.blade.php b/ems-sense/resources/views/livewire/pages/auth/verify-email.blade.php new file mode 100644 index 0000000..b34ea16 --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/auth/verify-email.blade.php @@ -0,0 +1,58 @@ +hasVerifiedEmail()) { + $this->redirectIntended(default: route('dashboard', absolute: false), navigate: true); + + return; + } + + Auth::user()->sendEmailVerificationNotification(); + + Session::flash('status', 'verification-link-sent'); + } + + /** + * Log the current user out of the application. + */ + public function logout(Logout $logout): void + { + $logout(); + + $this->redirect('/', navigate: true); + } +}; ?> + +
+
+ {{ __('Thanks for signing up! Before getting started, could you verify your email address by clicking on the link we just emailed to you? If you didn\'t receive the email, we will gladly send you another.') }} +
+ + @if (session('status') == 'verification-link-sent') +
+ {{ __('A new verification link has been sent to the email address you provided during registration.') }} +
+ @endif + +
+ + {{ __('Resend Verification Email') }} + + + +
+
diff --git a/ems-sense/resources/views/livewire/pages/browse/index.blade.php b/ems-sense/resources/views/livewire/pages/browse/index.blade.php new file mode 100644 index 0000000..aa1f90d --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/browse/index.blade.php @@ -0,0 +1,10 @@ + + +

+ {{ __('Browse Treatments!') }} +

+
+
+ +
+
diff --git a/ems-sense/resources/views/livewire/pages/browse/list.blade.php b/ems-sense/resources/views/livewire/pages/browse/list.blade.php new file mode 100644 index 0000000..13bcb0a --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/browse/list.blade.php @@ -0,0 +1,157 @@ +resetPage(); + } + + public function toggleVerification(Treatment $treatment) + { + if (auth()->user()->is_curator() && $treatment->is_added != 1) { + $treatment->update([ + 'is_verified' => !$treatment->is_verified + ]); + } else { + Notification::make() + ->title('Action not allowed!') + ->body('Record is already merged to training data') + ->danger() + ->send(); + } + } + + public function getSpecies(): Collection + { + return Species::orderBy('name')->get(); + } + + public function getTreatments() + { + $query = Treatment::query()->with('species')->latest(); + + if ($this->selectedSpecies) { + $query->where('species_id', $this->selectedSpecies); + } + + if ($this->selectedResult !== '') { + $query->where('result', $this->selectedResult === 'success'); + } + + return $query->paginate(10); + } +}; ?> + +
+

All conducted predictions

+ + +
+
+ + +
+ +
+ + +
+
+ +
+ + + + + + + + + + + + @if(auth()->user()->id == 1) + + @endif + + + + @foreach($this->getTreatments() as $treatment) + + + + + + + + + + @if(auth()->user()->id == 1) + + @endif + + @endforeach + +
BySpeciesConcentrationSoak DurationLowest TempHighest TempDateResultsVerified
{{ $treatment->user->name }}{{ $treatment->species->name }}{{ $treatment->emsConcentration }}%{{ $treatment->soakDuration }} min{{ $treatment->lowestTemp }}°C{{ $treatment->highestTemp }}°C{{ $treatment->created_at->format('Y-m-d') }} + @if ($treatment->result) + Success + @else + Failure + @endif + + +
+
+ + +
+ {{ $this->getTreatments()->links() }} +
+
diff --git a/ems-sense/resources/views/livewire/pages/dashboard/index.blade.php b/ems-sense/resources/views/livewire/pages/dashboard/index.blade.php new file mode 100644 index 0000000..7df2124 --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/dashboard/index.blade.php @@ -0,0 +1,226 @@ +loadStats(); + } + + public function loadStats() + { + // get total treatments + $this->totalTreatments = Treatment::count(); + + // get average success rate + $this->averageSuccessRate = round(Treatment::avg('successRate'), 1); + + // get species statistics + $this->speciesStats = Species::withCount('treatments') + ->withAvg('treatments', 'successRate') + ->having('treatments_count', '>', 0) + ->get(); + + // get recent treatments + $this->recentTreatments = Treatment::with('species') + ->latest() + ->take(5) + ->get(); + + // get success rate by ems concentration + $this->successRateByConcentration = Treatment::select( + 'emsConcentration', + DB::raw('AVG(successRate) as avg_success_rate'), + DB::raw('COUNT(*) as count') + ) + ->groupBy('emsConcentration') + ->get(); + + // get temperature statistics + $this->temperatureStats = [ + 'avg_lowest' => round(Treatment::avg('lowestTemp'), 1), + 'avg_highest' => round(Treatment::avg('highestTemp'), 1), + 'most_successful_range' => Treatment::where('successRate', '>', 50) + ->select( + DB::raw('ROUND(AVG(lowestTemp), 1) as avg_low'), + DB::raw('ROUND(AVG(highestTemp), 1) as avg_high') + ) + ->first() + ]; + } +}; ?> + +
+ +
+
+
+
+
+ + + +
+
+
Total Treatments
+
{{ $totalTreatments }}
+
+
+
+
+ +
+
+
+
+ + + +
+
+
Average Success Rate
+
{{ $averageSuccessRate }}%
+
+
+
+
+ +
+
+
+
+ + + +
+
+
Optimal Temperature Range
+
+ {{ $temperatureStats['most_successful_range']->avg_low }}°C - {{ $temperatureStats['most_successful_range']->avg_high }}°C +
+
+
+
+
+
+ + +
+
+

Species Performance

+
+ + + + + + + + + + @foreach($speciesStats as $species) + + + + + + @endforeach + +
SpeciesTotal TreatmentsAvg Success Rate
+ {{ $species->name }} + + {{ $species->treatments_count }} + + {{ round($species->treatments_avg_success_rate, 1) }}% +
+
+
+
+ + +
+
+

Recent Treatments

+
+ + + + + + + + + + + + @foreach($recentTreatments as $treatment) + + + + + + + + @endforeach + +
SpeciesEMS Conc.DurationTemp RangeSuccess Rate
+ {{ $treatment->species->name }} + + {{ $treatment->emsConcentration }} + + {{ $treatment->soakDuration }} min + + {{ $treatment->lowestTemp }}°C - {{ $treatment->highestTemp }}°C + + + {{ $treatment->successRate }}% + +
+
+
+
+ + +
+
+

EMS Concentration Analysis

+
+ + + + + + + + + + @foreach($successRateByConcentration as $stat) + + + + + + @endforeach + +
ConcentrationTreatmentsAvg Success Rate
+ {{ $stat->emsConcentration }} + + {{ $stat->count }} + + {{ round($stat->avg_success_rate, 1) }}% +
+
+
+
+
diff --git a/ems-sense/resources/views/livewire/pages/model/index.blade.php b/ems-sense/resources/views/livewire/pages/model/index.blade.php new file mode 100644 index 0000000..ec9bba0 --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/model/index.blade.php @@ -0,0 +1,25 @@ + + +

+ {{ __('Model Settings') }} +

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
diff --git a/ems-sense/resources/views/livewire/pages/model/settings/export-and-overwrite-csv.blade.php b/ems-sense/resources/views/livewire/pages/model/settings/export-and-overwrite-csv.blade.php new file mode 100644 index 0000000..fb2f95e --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/model/settings/export-and-overwrite-csv.blade.php @@ -0,0 +1,188 @@ +successful()) { + throw new \Exception('Failed to fetch existing treatments from API'); + } + + $apiTreatments = collect($response->json()); + + // get treatments from database + $dbTreatments = Treatment::with('species') + ->where('is_verified', true) + ->where('is_added', false) + ->get() + ->map(function ($treatment) { + return [ + 'species' => $treatment->species->name, + 'emsConcentration' => $treatment->emsConcentration, + 'soakDuration' => $treatment->soakDuration, + 'lowestTemp' => $treatment->lowestTemp, + 'highestTemp' => $treatment->highestTemp, + 'result' => $treatment->result, + ]; + }); + + // merge and remove duplicates + return $apiTreatments->concat($dbTreatments) + ->unique(function ($item) { + return sprintf( + '%s-%.2f-%d-%.1f-%.1f-%d', + $item['species'], + $item['emsConcentration'], + $item['soakDuration'], + $item['lowestTemp'], + $item['highestTemp'], + $item['result'] + ); + }) + ->values(); + + } catch (\Exception $e) { + throw new \Exception('Failed to merge treatments: ' . $e->getMessage()); + } + } + + public function exportAndUpload() + { + $this->isExporting = true; + $this->hasError = false; + + try { + // get merged treatments + $treatments = $this->getAllTreatments(); + + // create csv content + $csvContent = "species,emsConcentration,soakDuration,lowestTemp,highestTemp,result\n"; + + foreach ($treatments as $treatment) { + $csvContent .= sprintf( + "%s,%.2f,%d,%.1f,%.1f,%d\n", + $treatment['species'], + $treatment['emsConcentration'], + $treatment['soakDuration'], + $treatment['lowestTemp'], + $treatment['highestTemp'], + $treatment['result'] + ); + } + + // get all verified treatments first + $verifiedTreatments = Treatment::with('species') + ->where('is_verified', true) + ->get(); + + // for each verified treatment, find its duplicates and mark them as added + foreach ($verifiedTreatments as $verifiedTreatment) { + Treatment::whereHas('species', function ($query) use ($verifiedTreatment) { + $query->where('name', $verifiedTreatment->species->name); + }) + ->where('emsConcentration', $verifiedTreatment->emsConcentration) + ->where('soakDuration', $verifiedTreatment->soakDuration) + ->where('lowestTemp', $verifiedTreatment->lowestTemp) + ->where('highestTemp', $verifiedTreatment->highestTemp) + ->where('result', $verifiedTreatment->result) + ->update([ + 'is_added' => true, + 'is_verified' => true, + ]); + } + + // create temporary file + $tempFile = tempnam(sys_get_temp_dir(), 'treatments_'); + file_put_contents($tempFile, $csvContent); + + // upload the file + $response = Http::attach( + 'file', + file_get_contents($tempFile), + 'treatments.csv' + )->post('http://127.0.0.1:8000/upload-csv'); + + unlink($tempFile); // clean up temporary file + + if ($response->successful()) { + $this->exportMessage = 'Treatments exported and uploaded successfully!'; + } else { + throw new \Exception($response->json()['error'] ?? 'Failed to upload file'); + } + } catch (\Exception $e) { + $this->exportMessage = 'Failed to export and upload treatments: ' . $e->getMessage(); + $this->hasError = true; + } finally { + $this->isExporting = false; + } + } +}; ?> + + +
+
+

+ {{ __('Sync and Merge Training Data') }} +

+

+ {{ __("Merging verified predictions record with training data to improve predictions on retraining.") }} +

+
+ +
+ + {{ __('Sync and Merge Treatments') }} + {{ __('Exporting...') }} + + + + + + + + + + @if($exportMessage) +
+
+
+ @if($hasError) + + + + @else + + + + @endif +
+
+

+ {{ $exportMessage }} +

+
+
+
+ @endif +
+
diff --git a/ems-sense/resources/views/livewire/pages/model/settings/retrain-model.blade.php b/ems-sense/resources/views/livewire/pages/model/settings/retrain-model.blade.php new file mode 100644 index 0000000..2018650 --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/model/settings/retrain-model.blade.php @@ -0,0 +1,133 @@ +isRetraining = true; + $this->showOutput = true; + + try { + $response = Http::get('http://127.0.0.1:8000/retrain-model'); + $data = $response->json(); + + if ($response->successful()) { + $this->retrainingOutput = $data['details'] ?? $data['message']; + $this->hasError = false; + $this->dispatch('retrain-success'); + } else { + $this->retrainingOutput = $data['error'] ?? 'An unknown error occurred'; + $this->hasError = true; + } + } catch (\Exception $e) { + $this->retrainingOutput = "Failed to connect to the retraining service."; + $this->hasError = true; + } finally { + $this->isRetraining = false; + } + } + + #[On('retrain-success')] + public function getSpecies() + { + try { + // get species from API + $response = Http::get('http://127.0.0.1:8000/species'); + + if ($response->successful()) { + $species = $response->json(); + + // loop through the species from the API + foreach ($species as $speciesName) { + // check if the species already exists in the database + if (!Species::where('name', $speciesName)->exists()) { + // insert the species if it does not exist + Species::create(['name' => $speciesName]); + } + } + + $this->syncMessage = 'Species list successfully synchronized.'; + } else { + throw new \Exception('Failed to fetch species from API'); + } + } catch (\Exception $e) { + $this->syncMessage = 'Failed to synchronize species list: ' . $e->getMessage(); + $this->hasError = true; + } + } +}; ?> + +
+
+

+ {{ __('Retrain Model') }} +

+

+ {{ __("Retrain the model with the latest dataset to improve predictions.") }} +

+
+ +
+
+ + {{ __('Retrain Model') }} + {{ __('Retraining...') }} + + + + + + + + + +
+ + @if($showOutput) +
+
+
+ @if($hasError) + + + + @else + + + + @endif +
+
+

+ {{ $hasError ? 'Retraining Failed' : 'Retraining Succeeded' }} +

+
+
+
+
+                    {{ $retrainingOutput }}
+
+
+ @endif +
+
diff --git a/ems-sense/resources/views/livewire/pages/treatment/create.blade.php b/ems-sense/resources/views/livewire/pages/treatment/create.blade.php new file mode 100644 index 0000000..839713f --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/treatment/create.blade.php @@ -0,0 +1,374 @@ +species = Species::all(); + + $this->fetchDynamicLimits(); + } + + public function fetchDynamicLimits() + { + $stats = DB::table('treatments') + ->selectRaw(' + MIN(emsConcentration) as min_concentration, + MAX(emsConcentration) as max_concentration, + MIN(soakDuration) as min_soak_duration, + MAX(soakDuration) as max_soak_duration, + MIN(lowestTemp) as min_lowest_temp, + MAX(lowestTemp) as max_lowest_temp, + MIN(highestTemp) as min_highest_temp, + MAX(highestTemp) as max_highest_temp + ') + ->first(); + + $this->minConcentration = $stats->min_concentration ?? 0.01; + $this->maxConcentration = $stats->max_concentration ?? 100; + $this->minSoakDuration = $stats->min_soak_duration ?? 1; + $this->maxSoakDuration = $stats->max_soak_duration ?? 1440; + $this->minLowestTemp = $stats->min_lowest_temp ?? 0; + $this->maxLowestTemp = $stats->max_lowest_temp ?? 100; + $this->minHighestTemp = $stats->min_highest_temp ?? 0; + $this->maxHighestTemp = $stats->max_highest_temp ?? 100; + } + + public function rules() + { + return [ + 'selectedSpecies' => 'required', + 'concentration' => 'required|numeric', + 'soakDuration' => 'required|numeric', + 'lowestTemp' => 'required|numeric', + 'highestTemp' => 'required|numeric', + 'note' => 'nullable|string|max:500', + ]; + } + + public function processForm() + { + $this->validate(); + + $this->isLoading = true; + + try { + $response = Http::post('http://127.0.0.1:8000/process', [ + 'species' => $this->selectedSpecies, + 'emsConcentration' => (float) $this->concentration, + 'soakDuration' => (int) $this->soakDuration, + 'lowestTemp' => (float) $this->lowestTemp, + 'highestTemp' => (float) $this->highestTemp, + ]); + + if ($response->successful()) { + $data = $response->json(); + $this->result = $data['result']; + $this->successRate = $data['success_rate']; + $this->isSuccess = $this->result == 1; + $this->overrideResult = (bool)$this->result; // Convert to boolean + } else { + $this->isSuccess = false; + $this->overrideResult = false; + } + + } catch (\Exception $e) { + $this->isSuccess = false; + $this->overrideResult = false; + } finally { + $this->isLoading = false; + $this->showModal = true; + } + } + + public function closeModal() + { + $this->showModal = false; + $this->isLoading = false; + $this->note = ''; + $this->manualOverride = false; + } + + public function toggleOverride() + { + $this->manualOverride = !$this->manualOverride; + } + + public function updateOverrideResult($value) + { + $this->overrideResult = (bool)$value; + } + + public function save() + { + $this->validate([ + 'note' => 'nullable|string|max:500', + ]); + + $speciesId = Species::where('name', $this->selectedSpecies)->first()->id; + $userId = auth()->user()->id; + $finalResult = $this->manualOverride ? ($this->overrideResult ? 1 : 0) : $this->result; + + Treatment::create([ + 'user_id' => $userId, + 'species_id' => $speciesId, + 'emsConcentration' => (float) $this->concentration, + 'soakDuration' => (int) $this->soakDuration, + 'lowestTemp' => (float) $this->lowestTemp, + 'highestTemp' => (float) $this->highestTemp, + 'result' => $finalResult, + 'successRate' => $this->successRate, + 'note' => $this->note, + 'overridden' => $this->manualOverride, + ]); + + Notification::make() + ->title('Treatment Saved!') + ->success() + ->send(); + + $this->dispatch('treatment-created'); + $this->closeModal(); + + // After saving, refresh the dynamic limits to include the new data + $this->fetchDynamicLimits(); + } +}; ?> + +
+
+
+
+ + +
+ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+ + {{ __('Process') }} + Processing + + + + + + + + + +
+
+
+ + @if($showModal) + + @endif +
diff --git a/ems-sense/resources/views/livewire/pages/treatment/index.blade.php b/ems-sense/resources/views/livewire/pages/treatment/index.blade.php new file mode 100644 index 0000000..1f25755 --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/treatment/index.blade.php @@ -0,0 +1,11 @@ + + +

+ {{ __('Make a Treatment Prediction!') }} +

+
+
+ + +
+
diff --git a/ems-sense/resources/views/livewire/pages/treatment/list.blade.php b/ems-sense/resources/views/livewire/pages/treatment/list.blade.php new file mode 100644 index 0000000..29331c9 --- /dev/null +++ b/ems-sense/resources/views/livewire/pages/treatment/list.blade.php @@ -0,0 +1,134 @@ +getLatestTreatments(); + } + + #[On('treatment-created')] + public function getLatestTreatments() + { + $this->treatments = Treatment::where('user_id', auth()->user()->id) + ->orderBy('created_at', 'desc') + ->limit(10) + ->get(); + } + + public function showNote($treatmentId) + { + $this->selectedTreatment = $this->treatments->firstWhere('id', $treatmentId); + if ($this->selectedTreatment) { + $this->showNoteModal = true; + } + } + + public function closeNoteModal() + { + $this->showNoteModal = false; + $this->selectedTreatment = null; + } +}; ?> + +
+

Your last 10 predictions

+
+ + + + + + + + + + + + + + + @foreach($treatments as $treatment) + + + + + + + + + + + @endforeach + +
SpeciesConcentrationSoak DurationLowest TempHighest TempDateResultsNotes
{{ $treatment->species->name }}{{ $treatment->emsConcentration }}%{{ $treatment->soakDuration }} min{{ $treatment->lowestTemp }}°C{{ $treatment->highestTemp }}°C{{ $treatment->created_at->format('Y-m-d') }} + + {{ $treatment->result ? 'Success' : 'Failure' }} + + + +
+
+ + + @if($showNoteModal && $selectedTreatment) +
+
+
+
+
+ + + +
+
+

Treatment Notes

+
+
+ Species: + {{ $selectedTreatment->species->name }} +
+
+ Date: + {{ $selectedTreatment->created_at->format('Y-m-d') }} +
+
+ @if($selectedTreatment->note) +

{{ $selectedTreatment->note }}

+ @else +

No notes were added for this treatment.

+ @endif +
+
+
+
+
+
+ +
+
+
+ @endif +
diff --git a/ems-sense/resources/views/livewire/profile/delete-user-form.blade.php b/ems-sense/resources/views/livewire/profile/delete-user-form.blade.php new file mode 100644 index 0000000..30cec9e --- /dev/null +++ b/ems-sense/resources/views/livewire/profile/delete-user-form.blade.php @@ -0,0 +1,79 @@ +validate([ + 'password' => ['required', 'string', 'current_password'], + ]); + + tap(Auth::user(), $logout(...))->delete(); + + $this->redirect('/', navigate: true); + } +}; ?> + +
+
+

+ {{ __('Delete Account') }} +

+ +

+ {{ __('Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.') }} +

+
+ + {{ __('Delete Account') }} + + +
+ +

+ {{ __('Are you sure you want to delete your account?') }} +

+ +

+ {{ __('Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.') }} +

+ +
+ + + + + +
+ +
+ + {{ __('Cancel') }} + + + + {{ __('Delete Account') }} + +
+
+
+
diff --git a/ems-sense/resources/views/livewire/profile/update-password-form.blade.php b/ems-sense/resources/views/livewire/profile/update-password-form.blade.php new file mode 100644 index 0000000..7dbc126 --- /dev/null +++ b/ems-sense/resources/views/livewire/profile/update-password-form.blade.php @@ -0,0 +1,79 @@ +validate([ + 'current_password' => ['required', 'string', 'current_password'], + 'password' => ['required', 'string', Password::defaults(), 'confirmed'], + ]); + } catch (ValidationException $e) { + $this->reset('current_password', 'password', 'password_confirmation'); + + throw $e; + } + + Auth::user()->update([ + 'password' => Hash::make($validated['password']), + ]); + + $this->reset('current_password', 'password', 'password_confirmation'); + + $this->dispatch('password-updated'); + } +}; ?> + +
+
+

+ {{ __('Update Password') }} +

+ +

+ {{ __('Ensure your account is using a long, random password to stay secure.') }} +

+
+ +
+
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ {{ __('Save') }} + + + {{ __('Saved.') }} + +
+
+
diff --git a/ems-sense/resources/views/livewire/profile/update-profile-information-form.blade.php b/ems-sense/resources/views/livewire/profile/update-profile-information-form.blade.php new file mode 100644 index 0000000..cd38a93 --- /dev/null +++ b/ems-sense/resources/views/livewire/profile/update-profile-information-form.blade.php @@ -0,0 +1,115 @@ +name = Auth::user()->name; + $this->email = Auth::user()->email; + } + + /** + * Update the profile information for the currently authenticated user. + */ + public function updateProfileInformation(): void + { + $user = Auth::user(); + + $validated = $this->validate([ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', Rule::unique(User::class)->ignore($user->id)], + ]); + + $user->fill($validated); + + if ($user->isDirty('email')) { + $user->email_verified_at = null; + } + + $user->save(); + + $this->dispatch('profile-updated', name: $user->name); + } + + /** + * Send an email verification notification to the current user. + */ + public function sendVerification(): void + { + $user = Auth::user(); + + if ($user->hasVerifiedEmail()) { + $this->redirectIntended(default: route('dashboard', absolute: false)); + + return; + } + + $user->sendEmailVerificationNotification(); + + Session::flash('status', 'verification-link-sent'); + } +}; ?> + +
+
+

+ {{ __('Profile Information') }} +

+ +

+ {{ __("Update your account's profile information and email address.") }} +

+
+ +
+
+ + + +
+ +
+ + + + + @if (auth()->user() instanceof \Illuminate\Contracts\Auth\MustVerifyEmail && ! auth()->user()->hasVerifiedEmail()) +
+

+ {{ __('Your email address is unverified.') }} + + +

+ + @if (session('status') === 'verification-link-sent') +

+ {{ __('A new verification link has been sent to your email address.') }} +

+ @endif +
+ @endif +
+ +
+ {{ __('Save') }} + + + {{ __('Saved.') }} + +
+
+
diff --git a/ems-sense/resources/views/livewire/welcome/navigation.blade.php b/ems-sense/resources/views/livewire/welcome/navigation.blade.php new file mode 100644 index 0000000..7d079de --- /dev/null +++ b/ems-sense/resources/views/livewire/welcome/navigation.blade.php @@ -0,0 +1,26 @@ + diff --git a/ems-sense/resources/views/profile.blade.php b/ems-sense/resources/views/profile.blade.php new file mode 100644 index 0000000..a093406 --- /dev/null +++ b/ems-sense/resources/views/profile.blade.php @@ -0,0 +1,29 @@ + + +

+ {{ __('Profile') }} +

+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
diff --git a/ems-sense/resources/views/welcome.blade.php b/ems-sense/resources/views/welcome.blade.php new file mode 100644 index 0000000..0464add --- /dev/null +++ b/ems-sense/resources/views/welcome.blade.php @@ -0,0 +1,145 @@ + + + + + + + Laravel + + + + + + + @vite(['resources/css/app.css', 'resources/js/app.js']) + + + + + diff --git a/ems-sense/routes/auth.php b/ems-sense/routes/auth.php new file mode 100644 index 0000000..131252e --- /dev/null +++ b/ems-sense/routes/auth.php @@ -0,0 +1,31 @@ +group(function () { + Volt::route('register', 'pages.auth.register') + ->name('register'); + + Volt::route('login', 'pages.auth.login') + ->name('login'); + + Volt::route('forgot-password', 'pages.auth.forgot-password') + ->name('password.request'); + + Volt::route('reset-password/{token}', 'pages.auth.reset-password') + ->name('password.reset'); +}); + +Route::middleware('auth')->group(function () { + Volt::route('verify-email', 'pages.auth.verify-email') + ->name('verification.notice'); + + Route::get('verify-email/{id}/{hash}', VerifyEmailController::class) + ->middleware(['signed', 'throttle:6,1']) + ->name('verification.verify'); + + Volt::route('confirm-password', 'pages.auth.confirm-password') + ->name('password.confirm'); +}); diff --git a/ems-sense/routes/console.php b/ems-sense/routes/console.php new file mode 100644 index 0000000..eff2ed2 --- /dev/null +++ b/ems-sense/routes/console.php @@ -0,0 +1,8 @@ +comment(Inspiring::quote()); +})->purpose('Display an inspiring quote')->hourly(); diff --git a/ems-sense/routes/web.php b/ems-sense/routes/web.php new file mode 100644 index 0000000..3c5cffa --- /dev/null +++ b/ems-sense/routes/web.php @@ -0,0 +1,27 @@ +group(function () { + Route::view('dashboard', 'dashboard') + ->name('dashboard'); + + Route::view('profile', 'profile') + ->name('profile'); + + Route::get('treatments', [TreatmentController::class, 'index']) + ->name('treatment'); + + Route::view('model-settings', 'livewire.pages.model.index') + ->middleware(['can:manage-model-settings']) + ->name('model-settings'); + + Route::view('browse', 'livewire.pages.browse.index') + ->name('browse'); +}); + + +require __DIR__ . '/auth.php'; diff --git a/ems-sense/storage/app/.gitignore b/ems-sense/storage/app/.gitignore new file mode 100644 index 0000000..fedb287 --- /dev/null +++ b/ems-sense/storage/app/.gitignore @@ -0,0 +1,4 @@ +* +!private/ +!public/ +!.gitignore diff --git a/ems-sense/storage/app/private/.gitignore b/ems-sense/storage/app/private/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/ems-sense/storage/app/private/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/ems-sense/storage/app/public/.gitignore b/ems-sense/storage/app/public/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/ems-sense/storage/app/public/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/ems-sense/storage/framework/.gitignore b/ems-sense/storage/framework/.gitignore new file mode 100644 index 0000000..05c4471 --- /dev/null +++ b/ems-sense/storage/framework/.gitignore @@ -0,0 +1,9 @@ +compiled.php +config.php +down +events.scanned.php +maintenance.php +routes.php +routes.scanned.php +schedule-* +services.json diff --git a/ems-sense/storage/framework/cache/.gitignore b/ems-sense/storage/framework/cache/.gitignore new file mode 100644 index 0000000..01e4a6c --- /dev/null +++ b/ems-sense/storage/framework/cache/.gitignore @@ -0,0 +1,3 @@ +* +!data/ +!.gitignore diff --git a/ems-sense/storage/framework/cache/data/.gitignore b/ems-sense/storage/framework/cache/data/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/ems-sense/storage/framework/cache/data/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/ems-sense/storage/framework/sessions/.gitignore b/ems-sense/storage/framework/sessions/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/ems-sense/storage/framework/sessions/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/ems-sense/storage/framework/testing/.gitignore b/ems-sense/storage/framework/testing/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/ems-sense/storage/framework/testing/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/ems-sense/storage/framework/views/.gitignore b/ems-sense/storage/framework/views/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/ems-sense/storage/framework/views/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/ems-sense/storage/logs/.gitignore b/ems-sense/storage/logs/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/ems-sense/storage/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/ems-sense/tailwind.config.js b/ems-sense/tailwind.config.js new file mode 100644 index 0000000..9407220 --- /dev/null +++ b/ems-sense/tailwind.config.js @@ -0,0 +1,23 @@ +import defaultTheme from 'tailwindcss/defaultTheme'; +import forms from '@tailwindcss/forms'; + +/** @type {import('tailwindcss').Config} */ +export default { + darkMode: 'false', + + content: [ + './vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php', + './storage/framework/views/*.php', + './resources/views/**/*.blade.php', + ], + + theme: { + extend: { + fontFamily: { + sans: ['Figtree', ...defaultTheme.fontFamily.sans], + }, + }, + }, + + plugins: [forms], +}; diff --git a/ems-sense/tests/Feature/Auth/AuthenticationTest.php b/ems-sense/tests/Feature/Auth/AuthenticationTest.php new file mode 100644 index 0000000..ec9910f --- /dev/null +++ b/ems-sense/tests/Feature/Auth/AuthenticationTest.php @@ -0,0 +1,72 @@ +get('/login'); + + $response + ->assertOk() + ->assertSeeVolt('pages.auth.login'); +}); + +test('users can authenticate using the login screen', function () { + $user = User::factory()->create(); + + $component = Volt::test('pages.auth.login') + ->set('form.email', $user->email) + ->set('form.password', 'password'); + + $component->call('login'); + + $component + ->assertHasNoErrors() + ->assertRedirect(route('dashboard', absolute: false)); + + $this->assertAuthenticated(); +}); + +test('users can not authenticate with invalid password', function () { + $user = User::factory()->create(); + + $component = Volt::test('pages.auth.login') + ->set('form.email', $user->email) + ->set('form.password', 'wrong-password'); + + $component->call('login'); + + $component + ->assertHasErrors() + ->assertNoRedirect(); + + $this->assertGuest(); +}); + +test('navigation menu can be rendered', function () { + $user = User::factory()->create(); + + $this->actingAs($user); + + $response = $this->get('/dashboard'); + + $response + ->assertOk() + ->assertSeeVolt('layout.navigation'); +}); + +test('users can logout', function () { + $user = User::factory()->create(); + + $this->actingAs($user); + + $component = Volt::test('layout.navigation'); + + $component->call('logout'); + + $component + ->assertHasNoErrors() + ->assertRedirect('/'); + + $this->assertGuest(); +}); diff --git a/ems-sense/tests/Feature/Auth/EmailVerificationTest.php b/ems-sense/tests/Feature/Auth/EmailVerificationTest.php new file mode 100644 index 0000000..f282dff --- /dev/null +++ b/ems-sense/tests/Feature/Auth/EmailVerificationTest.php @@ -0,0 +1,46 @@ +unverified()->create(); + + $response = $this->actingAs($user)->get('/verify-email'); + + $response->assertStatus(200); +}); + +test('email can be verified', function () { + $user = User::factory()->unverified()->create(); + + Event::fake(); + + $verificationUrl = URL::temporarySignedRoute( + 'verification.verify', + now()->addMinutes(60), + ['id' => $user->id, 'hash' => sha1($user->email)] + ); + + $response = $this->actingAs($user)->get($verificationUrl); + + Event::assertDispatched(Verified::class); + expect($user->fresh()->hasVerifiedEmail())->toBeTrue(); + $response->assertRedirect(route('dashboard', absolute: false).'?verified=1'); +}); + +test('email is not verified with invalid hash', function () { + $user = User::factory()->unverified()->create(); + + $verificationUrl = URL::temporarySignedRoute( + 'verification.verify', + now()->addMinutes(60), + ['id' => $user->id, 'hash' => sha1('wrong-email')] + ); + + $this->actingAs($user)->get($verificationUrl); + + expect($user->fresh()->hasVerifiedEmail())->toBeFalse(); +}); diff --git a/ems-sense/tests/Feature/Auth/PasswordConfirmationTest.php b/ems-sense/tests/Feature/Auth/PasswordConfirmationTest.php new file mode 100644 index 0000000..21c28c3 --- /dev/null +++ b/ems-sense/tests/Feature/Auth/PasswordConfirmationTest.php @@ -0,0 +1,46 @@ +create(); + + $response = $this->actingAs($user)->get('/confirm-password'); + + $response + ->assertSeeVolt('pages.auth.confirm-password') + ->assertStatus(200); +}); + +test('password can be confirmed', function () { + $user = User::factory()->create(); + + $this->actingAs($user); + + $component = Volt::test('pages.auth.confirm-password') + ->set('password', 'password'); + + $component->call('confirmPassword'); + + $component + ->assertRedirect('/dashboard') + ->assertHasNoErrors(); +}); + +test('password is not confirmed with invalid password', function () { + $user = User::factory()->create(); + + $this->actingAs($user); + + $component = Volt::test('pages.auth.confirm-password') + ->set('password', 'wrong-password'); + + $component->call('confirmPassword'); + + $component + ->assertNoRedirect() + ->assertHasErrors('password'); +}); diff --git a/ems-sense/tests/Feature/Auth/PasswordResetTest.php b/ems-sense/tests/Feature/Auth/PasswordResetTest.php new file mode 100644 index 0000000..c478bce --- /dev/null +++ b/ems-sense/tests/Feature/Auth/PasswordResetTest.php @@ -0,0 +1,73 @@ +get('/forgot-password'); + + $response + ->assertSeeVolt('pages.auth.forgot-password') + ->assertStatus(200); +}); + +test('reset password link can be requested', function () { + Notification::fake(); + + $user = User::factory()->create(); + + Volt::test('pages.auth.forgot-password') + ->set('email', $user->email) + ->call('sendPasswordResetLink'); + + Notification::assertSentTo($user, ResetPassword::class); +}); + +test('reset password screen can be rendered', function () { + Notification::fake(); + + $user = User::factory()->create(); + + Volt::test('pages.auth.forgot-password') + ->set('email', $user->email) + ->call('sendPasswordResetLink'); + + Notification::assertSentTo($user, ResetPassword::class, function ($notification) { + $response = $this->get('/reset-password/'.$notification->token); + + $response + ->assertSeeVolt('pages.auth.reset-password') + ->assertStatus(200); + + return true; + }); +}); + +test('password can be reset with valid token', function () { + Notification::fake(); + + $user = User::factory()->create(); + + Volt::test('pages.auth.forgot-password') + ->set('email', $user->email) + ->call('sendPasswordResetLink'); + + Notification::assertSentTo($user, ResetPassword::class, function ($notification) use ($user) { + $component = Volt::test('pages.auth.reset-password', ['token' => $notification->token]) + ->set('email', $user->email) + ->set('password', 'password') + ->set('password_confirmation', 'password'); + + $component->call('resetPassword'); + + $component + ->assertRedirect('/login') + ->assertHasNoErrors(); + + return true; + }); +}); diff --git a/ems-sense/tests/Feature/Auth/PasswordUpdateTest.php b/ems-sense/tests/Feature/Auth/PasswordUpdateTest.php new file mode 100644 index 0000000..33b1d4b --- /dev/null +++ b/ems-sense/tests/Feature/Auth/PasswordUpdateTest.php @@ -0,0 +1,41 @@ +create(); + + $this->actingAs($user); + + $component = Volt::test('profile.update-password-form') + ->set('current_password', 'password') + ->set('password', 'new-password') + ->set('password_confirmation', 'new-password') + ->call('updatePassword'); + + $component + ->assertHasNoErrors() + ->assertNoRedirect(); + + $this->assertTrue(Hash::check('new-password', $user->refresh()->password)); +}); + +test('correct password must be provided to update password', function () { + $user = User::factory()->create(); + + $this->actingAs($user); + + $component = Volt::test('profile.update-password-form') + ->set('current_password', 'wrong-password') + ->set('password', 'new-password') + ->set('password_confirmation', 'new-password') + ->call('updatePassword'); + + $component + ->assertHasErrors(['current_password']) + ->assertNoRedirect(); +}); diff --git a/ems-sense/tests/Feature/Auth/RegistrationTest.php b/ems-sense/tests/Feature/Auth/RegistrationTest.php new file mode 100644 index 0000000..5d50039 --- /dev/null +++ b/ems-sense/tests/Feature/Auth/RegistrationTest.php @@ -0,0 +1,27 @@ +get('/register'); + + $response + ->assertOk() + ->assertSeeVolt('pages.auth.register'); +}); + +test('new users can register', function () { + $component = Volt::test('pages.auth.register') + ->set('name', 'Test User') + ->set('email', 'test@example.com') + ->set('password', 'password') + ->set('password_confirmation', 'password'); + + $component->call('register'); + + $component->assertRedirect(route('dashboard', absolute: false)); + + $this->assertAuthenticated(); +}); diff --git a/ems-sense/tests/Feature/ExampleTest.php b/ems-sense/tests/Feature/ExampleTest.php new file mode 100644 index 0000000..8b5843f --- /dev/null +++ b/ems-sense/tests/Feature/ExampleTest.php @@ -0,0 +1,7 @@ +get('/'); + + $response->assertStatus(200); +}); diff --git a/ems-sense/tests/Feature/ProfileTest.php b/ems-sense/tests/Feature/ProfileTest.php new file mode 100644 index 0000000..984f050 --- /dev/null +++ b/ems-sense/tests/Feature/ProfileTest.php @@ -0,0 +1,89 @@ +create(); + + $this->actingAs($user); + + $response = $this->get('/profile'); + + $response + ->assertOk() + ->assertSeeVolt('profile.update-profile-information-form') + ->assertSeeVolt('profile.update-password-form') + ->assertSeeVolt('profile.delete-user-form'); +}); + +test('profile information can be updated', function () { + $user = User::factory()->create(); + + $this->actingAs($user); + + $component = Volt::test('profile.update-profile-information-form') + ->set('name', 'Test User') + ->set('email', 'test@example.com') + ->call('updateProfileInformation'); + + $component + ->assertHasNoErrors() + ->assertNoRedirect(); + + $user->refresh(); + + $this->assertSame('Test User', $user->name); + $this->assertSame('test@example.com', $user->email); + $this->assertNull($user->email_verified_at); +}); + +test('email verification status is unchanged when the email address is unchanged', function () { + $user = User::factory()->create(); + + $this->actingAs($user); + + $component = Volt::test('profile.update-profile-information-form') + ->set('name', 'Test User') + ->set('email', $user->email) + ->call('updateProfileInformation'); + + $component + ->assertHasNoErrors() + ->assertNoRedirect(); + + $this->assertNotNull($user->refresh()->email_verified_at); +}); + +test('user can delete their account', function () { + $user = User::factory()->create(); + + $this->actingAs($user); + + $component = Volt::test('profile.delete-user-form') + ->set('password', 'password') + ->call('deleteUser'); + + $component + ->assertHasNoErrors() + ->assertRedirect('/'); + + $this->assertGuest(); + $this->assertNull($user->fresh()); +}); + +test('correct password must be provided to delete account', function () { + $user = User::factory()->create(); + + $this->actingAs($user); + + $component = Volt::test('profile.delete-user-form') + ->set('password', 'wrong-password') + ->call('deleteUser'); + + $component + ->assertHasErrors('password') + ->assertNoRedirect(); + + $this->assertNotNull($user->fresh()); +}); diff --git a/ems-sense/tests/Pest.php b/ems-sense/tests/Pest.php new file mode 100644 index 0000000..40d096b --- /dev/null +++ b/ems-sense/tests/Pest.php @@ -0,0 +1,47 @@ +extend(Tests\TestCase::class) + ->use(Illuminate\Foundation\Testing\RefreshDatabase::class) + ->in('Feature'); + +/* +|-------------------------------------------------------------------------- +| Expectations +|-------------------------------------------------------------------------- +| +| When you're writing tests, you often need to check that values meet certain conditions. The +| "expect()" function gives you access to a set of "expectations" methods that you can use +| to assert different things. Of course, you may extend the Expectation API at any time. +| +*/ + +expect()->extend('toBeOne', function () { + return $this->toBe(1); +}); + +/* +|-------------------------------------------------------------------------- +| Functions +|-------------------------------------------------------------------------- +| +| While Pest is very powerful out-of-the-box, you may have some testing code specific to your +| project that you don't want to repeat in every file. Here you can also expose helpers as +| global functions to help you to reduce the number of lines of code in your test files. +| +*/ + +function something() +{ + // .. +} diff --git a/ems-sense/tests/TestCase.php b/ems-sense/tests/TestCase.php new file mode 100644 index 0000000..fe1ffc2 --- /dev/null +++ b/ems-sense/tests/TestCase.php @@ -0,0 +1,10 @@ +toBeTrue(); +}); diff --git a/ems-sense/vite.config.js b/ems-sense/vite.config.js new file mode 100644 index 0000000..b771712 --- /dev/null +++ b/ems-sense/vite.config.js @@ -0,0 +1,14 @@ +import { defineConfig } from 'vite'; +import laravel, { refreshPaths } from 'laravel-vite-plugin' + +export default defineConfig({ + plugins: [ + laravel({ + input: ['resources/css/app.css', 'resources/js/app.js'], + refresh: [ + ...refreshPaths, + 'app/Livewire/**', + ], + }), + ], +});