diff --git a/backend/handlers/files.go b/backend/handlers/files.go
index c4dad4a..9834109 100644
--- a/backend/handlers/files.go
+++ b/backend/handlers/files.go
@@ -1,6 +1,8 @@
package handlers
import (
+ "archive/zip"
+ "bufio"
"database/sql"
"fmt"
"io"
@@ -89,13 +91,17 @@ func (h *FSHandler) ListDirectory(c *fiber.Ctx) error {
// Enrich with DB metadata (pinned status, etc.)
var isPinned, isTrashed int
+ var checksum sql.NullString
err = h.DB.QueryRow(
- "SELECT is_pinned, is_trashed FROM files WHERE path = ?",
+ "SELECT is_pinned, is_trashed, checksum FROM files WHERE path = ?",
filepath.ToSlash(entryPath),
- ).Scan(&isPinned, &isTrashed)
+ ).Scan(&isPinned, &isTrashed, &checksum)
if err == nil {
fi.IsPinned = isPinned == 1
fi.IsTrashed = isTrashed == 1
+ if checksum.Valid {
+ fi.Checksum = checksum.String
+ }
}
// Don't show trashed items in normal listings
@@ -139,14 +145,16 @@ func (h *FSHandler) getFileInfo(c *fiber.Ctx, absPath string) error {
}
var isPinned int
- var checksum string
+ var checksum sql.NullString
err = h.DB.QueryRow(
"SELECT is_pinned, checksum FROM files WHERE path = ?",
filepath.ToSlash(relativePath),
).Scan(&isPinned, &checksum)
if err == nil {
fi.IsPinned = isPinned == 1
- fi.Checksum = checksum
+ if checksum.Valid {
+ fi.Checksum = checksum.String
+ }
}
return c.JSON(fi)
@@ -166,21 +174,32 @@ func (h *FSHandler) CreateFolder(c *fiber.Ctx) error {
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "path is required"})
}
- // Validate path within jail
- fullPath, err := h.resolveSafe(body.Path)
+ parentDir := filepath.Dir(body.Path)
+ folderName := filepath.Base(body.Path)
+
+ parentFullPath, err := h.resolveSafe(parentDir)
if err != nil {
return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": err.Error()})
}
+ uniqueName := GetUniquePath(parentFullPath, folderName)
+ fullPath := filepath.Join(parentFullPath, uniqueName)
+ cleanPath := filepath.ToSlash(filepath.Join(parentDir, uniqueName))
+
+ // Remove any prefix like "." if cleanPath was "." and it got joined.
+ // filepath.ToSlash cleans the path.
+ if cleanPath == "." {
+ // Just for safety, but base shouldn't be empty
+ }
+
if err := os.MkdirAll(fullPath, 0755); err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "failed to create folder"})
}
// Record in DB
- cleanPath := filepath.ToSlash(body.Path)
h.DB.Exec(
"INSERT OR IGNORE INTO files (path, name, is_dir) VALUES (?, ?, 1)",
- cleanPath, filepath.Base(cleanPath),
+ cleanPath, uniqueName,
)
h.DB.AddAuditLog("folder_created", cleanPath, c.IP())
@@ -207,7 +226,10 @@ func (h *FSHandler) Rename(c *fiber.Ctx) error {
return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": err.Error()})
}
- newPath := filepath.Join(filepath.Dir(body.OldPath), body.NewName)
+ parentDir := filepath.Dir(oldFull)
+ uniqueName := GetUniquePath(parentDir, body.NewName)
+ newPath := filepath.Join(filepath.Dir(body.OldPath), uniqueName)
+
newFull, err := h.resolveSafe(newPath)
if err != nil {
return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": err.Error()})
@@ -216,6 +238,9 @@ func (h *FSHandler) Rename(c *fiber.Ctx) error {
if err := os.Rename(oldFull, newFull); err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "failed to rename"})
}
+
+ // Update body.NewName to reflect the actual unique name used
+ body.NewName = uniqueName
// Update DB
h.DB.Exec(
@@ -251,8 +276,17 @@ func (h *FSHandler) Move(c *fiber.Ctx) error {
// If destination is a directory, move into it
if info, err := os.Stat(dstFull); err == nil && info.IsDir() {
- dstFull = filepath.Join(dstFull, filepath.Base(srcFull))
- body.DestPath = filepath.Join(body.DestPath, filepath.Base(body.SourcePath))
+ uniqueName := GetUniquePath(dstFull, filepath.Base(srcFull))
+ dstFull = filepath.Join(dstFull, uniqueName)
+ body.DestPath = filepath.Join(body.DestPath, uniqueName)
+ } else {
+ // If destination is not a directory but the file exists (rename), we don't overwrite if they want `(1)`
+ // Wait, if they intentionally rename to an existing file, should it append (1)?
+ // Yes, to prevent accidental overwrites.
+ parentDir := filepath.Dir(dstFull)
+ uniqueName := GetUniquePath(parentDir, filepath.Base(dstFull))
+ dstFull = filepath.Join(parentDir, uniqueName)
+ body.DestPath = filepath.Join(filepath.Dir(body.DestPath), uniqueName)
}
if err := os.Rename(srcFull, dstFull); err != nil {
@@ -324,11 +358,16 @@ func (h *FSHandler) Delete(c *fiber.Ctx) error {
// Soft-delete: move to .trash directory
trashPath := filepath.Join(h.Config.TrashDir, relativePath)
if err := os.MkdirAll(filepath.Dir(trashPath), 0755); err != nil {
+ fmt.Printf("MkdirAll error: %v\n", err)
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "failed to prepare trash"})
}
if err := os.Rename(resolvedPath, trashPath); err != nil {
- return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "failed to move to trash"})
+ fmt.Printf("Rename error %s -> %s: %v. Attempting copy & delete fallback...\n", resolvedPath, trashPath, err)
+ if err := copyFile(resolvedPath, trashPath); err != nil {
+ return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "failed to move to trash"})
+ }
+ os.RemoveAll(resolvedPath)
}
// Update DB
@@ -438,12 +477,75 @@ func (h *FSHandler) EmptyTrash(c *fiber.Ctx) error {
os.MkdirAll(h.Config.TrashDir, 0755)
h.DB.Exec("DELETE FROM files WHERE is_trashed = 1")
-
- h.DB.AddAuditLog("trash_emptied", "All trashed items permanently deleted", c.IP())
-
+ h.DB.AddAuditLog("emptied_trash", "User emptied trash", c.IP())
return c.JSON(fiber.Map{"message": "trash emptied"})
}
+// DownloadFolder creates and streams a ZIP archive of a folder.
+// GET /api/files/download-folder?path=...
+func (h *FSHandler) DownloadFolder(c *fiber.Ctx) error {
+ folderPath := c.Query("path")
+ if folderPath == "" {
+ return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "path is required"})
+ }
+
+ fullPath, err := h.resolveSafe(folderPath)
+ if err != nil {
+ return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": err.Error()})
+ }
+
+ info, err := os.Stat(fullPath)
+ if err != nil || !info.IsDir() {
+ return c.Status(fiber.StatusNotFound).JSON(fiber.Map{"error": "folder not found"})
+ }
+
+ c.Set("Content-Type", "application/zip")
+ c.Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s.zip\"", filepath.Base(fullPath)))
+
+ c.Context().SetBodyStreamWriter(func(w *bufio.Writer) {
+ zipWriter := zip.NewWriter(w)
+ defer zipWriter.Close()
+
+ filepath.Walk(fullPath, func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ return err
+ }
+ if path == fullPath {
+ return nil
+ }
+
+ relPath, err := filepath.Rel(fullPath, path)
+ if err != nil {
+ return err
+ }
+
+ if info.IsDir() {
+ // add directory entry
+ relPath += "/"
+ _, err = zipWriter.Create(relPath)
+ return err
+ }
+
+ // add file entry
+ zipFile, err := zipWriter.Create(relPath)
+ if err != nil {
+ return err
+ }
+
+ fsFile, err := os.Open(path)
+ if err != nil {
+ return err
+ }
+ defer fsFile.Close()
+
+ _, err = io.Copy(zipFile, fsFile)
+ return err
+ })
+ })
+
+ return nil
+}
+
// TogglePin pins or unpins a file/folder.
// POST /api/files/pin
func (h *FSHandler) TogglePin(c *fiber.Ctx) error {
@@ -585,8 +687,9 @@ func (h *FSHandler) Upload(c *fiber.Ctx) error {
// If destination is a directory, save into it
if info, err := os.Stat(fullDest); err == nil && info.IsDir() {
- fullDest = filepath.Join(fullDest, file.Filename)
- destPath = filepath.Join(destPath, file.Filename)
+ uniqueName := GetUniquePath(fullDest, file.Filename)
+ fullDest = filepath.Join(fullDest, uniqueName)
+ destPath = filepath.Join(destPath, uniqueName)
}
// Ensure parent directory exists
@@ -594,9 +697,6 @@ func (h *FSHandler) Upload(c *fiber.Ctx) error {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "failed to create directory"})
}
- // Version existing file if it exists
- CreateVersion(h.DB, h.Config, fullDest, filepath.ToSlash(destPath))
-
// Save the file
if err := c.SaveFile(file, fullDest); err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "failed to save file"})
diff --git a/backend/handlers/tus.go b/backend/handlers/tus.go
index 5cdd3e7..4ef855d 100644
--- a/backend/handlers/tus.go
+++ b/backend/handlers/tus.go
@@ -83,6 +83,10 @@ func (h *TusHandler) Create(c *fiber.Ctx) error {
destPath = "."
}
+ // Resolve destination directory and ensure unique filename
+ destFull := filepath.Join(h.Config.StorageDir, filepath.FromSlash(destPath))
+ uniqueFileName := GetUniquePath(destFull, fileName)
+
// Generate unique upload ID
uploadID, err := generateUploadID()
if err != nil {
@@ -103,12 +107,12 @@ func (h *TusHandler) Create(c *fiber.Ctx) error {
upload := &tusUpload{
ID: uploadID,
- FilePath: filepath.ToSlash(filepath.Join(destPath, fileName)),
- FileName: fileName,
+ FilePath: filepath.ToSlash(filepath.Join(destPath, uniqueFileName)),
+ FileName: uniqueFileName,
FileSize: fileSize,
Offset: 0,
TempPath: tempPath,
- MimeType: mime.TypeByExtension(filepath.Ext(fileName)),
+ MimeType: mime.TypeByExtension(filepath.Ext(uniqueFileName)),
}
h.mu.Lock()
@@ -231,9 +235,6 @@ func (h *TusHandler) finalizeUpload(upload *tusUpload, ip string) {
// Ensure parent dir exists
os.MkdirAll(filepath.Dir(destFull), 0755)
- // Version existing file if it exists
- CreateVersion(h.DB, h.Config, destFull, filepath.ToSlash(upload.FilePath))
-
// Move temp file to final location
if err := os.Rename(upload.TempPath, destFull); err != nil {
fmt.Printf("Error finalizing upload %s: %v\n", upload.ID, err)
diff --git a/backend/handlers/utils.go b/backend/handlers/utils.go
new file mode 100644
index 0000000..0d64875
--- /dev/null
+++ b/backend/handlers/utils.go
@@ -0,0 +1,28 @@
+package handlers
+
+import (
+ "fmt"
+ "os"
+ "path/filepath"
+)
+
+// GetUniquePath checks if a file or folder exists at the given baseDir with the given name.
+// If it does, it systematically appends " (1)", " (2)", etc., until it finds an available name.
+// It returns the unique filename.
+func GetUniquePath(baseDir, name string) string {
+ ext := filepath.Ext(name)
+ base := name[:len(name)-len(ext)]
+
+ finalPath := filepath.Join(baseDir, name)
+ if _, err := os.Stat(finalPath); os.IsNotExist(err) {
+ return name
+ }
+
+ for i := 1; ; i++ {
+ newName := fmt.Sprintf("%s (%d)%s", base, i, ext)
+ finalPath = filepath.Join(baseDir, newName)
+ if _, err := os.Stat(finalPath); os.IsNotExist(err) {
+ return newName
+ }
+ }
+}
diff --git a/backend/handlers/versioning.go b/backend/handlers/versioning.go
deleted file mode 100644
index 50d16ff..0000000
--- a/backend/handlers/versioning.go
+++ /dev/null
@@ -1,118 +0,0 @@
-package handlers
-
-import (
- "fmt"
- "os"
- "path/filepath"
- "strconv"
- "strings"
- "time"
-
- "git.elijahkuntz.com/Elijah/drive/config"
- "git.elijahkuntz.com/Elijah/drive/database"
-)
-
-// CreateVersion checks if a file exists and if so, moves it to the .versions directory
-// and records it in the database before it gets overwritten.
-// Call this BEFORE writing the new file to disk.
-func CreateVersion(db *database.DB, cfg *config.Config, fullPath string, relPath string) error {
- info, err := os.Stat(fullPath)
- if err != nil {
- if os.IsNotExist(err) {
- return nil // No existing file, nothing to version
- }
- return err
- }
-
- if info.IsDir() {
- return nil // Don't version directories
- }
-
- // Check if versioning is enabled/has a max limit
- val, err := db.GetSetting("max_versions")
- maxVersions := 5
- if err == nil {
- if v, e := strconv.Atoi(val); e == nil {
- maxVersions = v
- }
- }
-
- if maxVersions <= 0 {
- return nil // Versioning disabled
- }
-
- // Get current file details from DB (for checksum)
- var checksum string
- err = db.QueryRow("SELECT checksum FROM files WHERE path = ?", filepath.ToSlash(relPath)).Scan(&checksum)
- if err != nil {
- checksum = "" // fallback
- }
-
- // Generate version path
- timestamp := time.Now().Format("20060102150405")
- versionFileName := fmt.Sprintf("%s_%s%s", strings.TrimSuffix(filepath.Base(relPath), filepath.Ext(relPath)), timestamp, filepath.Ext(relPath))
- versionRelPath := filepath.Join(filepath.Dir(relPath), versionFileName)
- versionFullPath := filepath.Join(cfg.VersionsDir, versionRelPath)
-
- if err := os.MkdirAll(filepath.Dir(versionFullPath), 0755); err != nil {
- return err
- }
-
- // Move current file to versions directory
- if err := os.Rename(fullPath, versionFullPath); err != nil {
- return err
- }
-
- // Determine version number
- var currentMax int
- err = db.QueryRow("SELECT COALESCE(MAX(version_number), 0) FROM file_versions WHERE file_path = ?", filepath.ToSlash(relPath)).Scan(¤tMax)
- if err != nil {
- currentMax = 0
- }
- versionNumber := currentMax + 1
-
- // Insert version record
- _, err = db.Exec(`
- INSERT INTO file_versions (file_path, version_number, version_path, size, checksum)
- VALUES (?, ?, ?, ?, ?)
- `, filepath.ToSlash(relPath), versionNumber, filepath.ToSlash(versionRelPath), info.Size(), checksum)
-
- if err != nil {
- return err
- }
-
- // Prune old versions
- pruneVersions(db, cfg, relPath, maxVersions)
-
- return nil
-}
-
-func pruneVersions(db *database.DB, cfg *config.Config, relPath string, maxVersions int) {
- rows, err := db.Query(`
- SELECT id, version_path FROM file_versions
- WHERE file_path = ?
- ORDER BY version_number DESC
- LIMIT -1 OFFSET ?
- `, filepath.ToSlash(relPath), maxVersions)
-
- if err != nil {
- return
- }
- defer rows.Close()
-
- var idsToDelete []int
- for rows.Next() {
- var id int
- var vPath string
- if err := rows.Scan(&id, &vPath); err == nil {
- idsToDelete = append(idsToDelete, id)
- os.Remove(filepath.Join(cfg.VersionsDir, filepath.FromSlash(vPath)))
- }
- }
-
- if len(idsToDelete) > 0 {
- for _, id := range idsToDelete {
- db.Exec("DELETE FROM file_versions WHERE id = ?", id)
- }
- }
-}
diff --git a/backend/handlers/webdav.go b/backend/handlers/webdav.go
index e8d7729..ac19ff1 100644
--- a/backend/handlers/webdav.go
+++ b/backend/handlers/webdav.go
@@ -84,13 +84,7 @@ func (h *WebDAVHandler) Handle(c *fiber.Ctx) error {
// Adapt Fiber's FastHTTP to standard net/http for the WebDAV handler
fasthttpadaptor.NewFastHTTPHandlerFunc(func(w http.ResponseWriter, r *http.Request) {
relPath := strings.TrimPrefix(r.URL.Path, "/webdav")
- fullPath := filepath.Join(h.Config.StorageDir, filepath.FromSlash(relPath))
-
- // If it's a PUT request, version the existing file before it gets overwritten
- if r.Method == "PUT" {
- CreateVersion(h.DB, h.Config, fullPath, filepath.ToSlash(relPath))
- }
-
+ // Native WebDAV handles overwriting automatically
h.Handler.ServeHTTP(w, r)
// If it was a PUT request, we should sync it with our DB (checksum, size, etc.)
diff --git a/backend/main.go b/backend/main.go
index 302d081..cd345ca 100644
--- a/backend/main.go
+++ b/backend/main.go
@@ -158,6 +158,7 @@ func main() {
protected.Post("/files/rename", fsHandler.Rename)
protected.Post("/files/move", fsHandler.Move)
protected.Post("/files/copy", fsHandler.Copy)
+ protected.Get("/files/download-folder", fsHandler.DownloadFolder)
protected.Post("/files/upload", fsHandler.Upload)
// File listing and download (with path jail)
diff --git a/frontend/node_modules/.bin/loose-envify b/frontend/node_modules/.bin/loose-envify
new file mode 100644
index 0000000..076f91b
--- /dev/null
+++ b/frontend/node_modules/.bin/loose-envify
@@ -0,0 +1,16 @@
+#!/bin/sh
+basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
+
+case `uname` in
+ *CYGWIN*|*MINGW*|*MSYS*)
+ if command -v cygpath > /dev/null 2>&1; then
+ basedir=`cygpath -w "$basedir"`
+ fi
+ ;;
+esac
+
+if [ -x "$basedir/node" ]; then
+ exec "$basedir/node" "$basedir/../loose-envify/cli.js" "$@"
+else
+ exec node "$basedir/../loose-envify/cli.js" "$@"
+fi
diff --git a/frontend/node_modules/.bin/loose-envify.cmd b/frontend/node_modules/.bin/loose-envify.cmd
new file mode 100644
index 0000000..599576f
--- /dev/null
+++ b/frontend/node_modules/.bin/loose-envify.cmd
@@ -0,0 +1,17 @@
+@ECHO off
+GOTO start
+:find_dp0
+SET dp0=%~dp0
+EXIT /b
+:start
+SETLOCAL
+CALL :find_dp0
+
+IF EXIST "%dp0%\node.exe" (
+ SET "_prog=%dp0%\node.exe"
+) ELSE (
+ SET "_prog=node"
+ SET PATHEXT=%PATHEXT:;.JS;=;%
+)
+
+endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\loose-envify\cli.js" %*
diff --git a/frontend/node_modules/.bin/loose-envify.ps1 b/frontend/node_modules/.bin/loose-envify.ps1
new file mode 100644
index 0000000..eb866fc
--- /dev/null
+++ b/frontend/node_modules/.bin/loose-envify.ps1
@@ -0,0 +1,28 @@
+#!/usr/bin/env pwsh
+$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
+
+$exe=""
+if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
+ # Fix case when both the Windows and Linux builds of Node
+ # are installed in the same directory
+ $exe=".exe"
+}
+$ret=0
+if (Test-Path "$basedir/node$exe") {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args
+ } else {
+ & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args
+ }
+ $ret=$LASTEXITCODE
+} else {
+ # Support pipeline input
+ if ($MyInvocation.ExpectingInput) {
+ $input | & "node$exe" "$basedir/../loose-envify/cli.js" $args
+ } else {
+ & "node$exe" "$basedir/../loose-envify/cli.js" $args
+ }
+ $ret=$LASTEXITCODE
+}
+exit $ret
diff --git a/frontend/node_modules/.package-lock.json b/frontend/node_modules/.package-lock.json
index 37b4ec2..41e289c 100644
--- a/frontend/node_modules/.package-lock.json
+++ b/frontend/node_modules/.package-lock.json
@@ -85,6 +85,56 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@napi-rs/canvas": {
+ "version": "0.1.100",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.100.tgz",
+ "integrity": "sha512-xglYA6q3XO5P3BNJYxVZ1IV7DLVjp1Py6nwag88YntrS+3vKHyYcMqXVS4ZztJmwz2uGvz1FWhI/4LgbR5uQDA==",
+ "license": "MIT",
+ "optional": true,
+ "workspaces": [
+ "e2e/*"
+ ],
+ "engines": {
+ "node": ">= 10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ },
+ "optionalDependencies": {
+ "@napi-rs/canvas-android-arm64": "0.1.100",
+ "@napi-rs/canvas-darwin-arm64": "0.1.100",
+ "@napi-rs/canvas-darwin-x64": "0.1.100",
+ "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.100",
+ "@napi-rs/canvas-linux-arm64-gnu": "0.1.100",
+ "@napi-rs/canvas-linux-arm64-musl": "0.1.100",
+ "@napi-rs/canvas-linux-riscv64-gnu": "0.1.100",
+ "@napi-rs/canvas-linux-x64-gnu": "0.1.100",
+ "@napi-rs/canvas-linux-x64-musl": "0.1.100",
+ "@napi-rs/canvas-win32-arm64-msvc": "0.1.100",
+ "@napi-rs/canvas-win32-x64-msvc": "0.1.100"
+ }
+ },
+ "node_modules/@napi-rs/canvas-win32-x64-msvc": {
+ "version": "0.1.100",
+ "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.100.tgz",
+ "integrity": "sha512-MyT1j3mHC2+Lu4pBi9mKyMJhtP6U7k7EldY7sj/uS5gJA65gTXt8MefJQXLJo5d/vZbuWmfxzkEUNc/urV3pHA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ }
+ },
"node_modules/@next/env": {
"version": "15.5.18",
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.18.tgz",
@@ -168,7 +218,7 @@
"version": "19.2.15",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.15.tgz",
"integrity": "sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"peer": true,
"dependencies": {
@@ -404,6 +454,15 @@
"integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
"license": "MIT"
},
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/combine-errors": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/combine-errors/-/combine-errors-3.0.3.tgz",
@@ -440,7 +499,7 @@
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/custom-error-instance": {
@@ -449,6 +508,15 @@
"integrity": "sha512-p6JFxJc3M4OTD2li2qaHkDCw9SfMw82Ldr6OC9Je1aXiGfhx2W8p3GaoeaGrPJTUN9NirTM/KTxHWMUdR1rsUg==",
"license": "ISC"
},
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/detect-libc": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
@@ -726,6 +794,12 @@
"integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==",
"license": "BSD-3-Clause"
},
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
"node_modules/lilconfig": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
@@ -808,6 +882,18 @@
"lodash._baseuniq": "~4.6.0"
}
},
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
"node_modules/lucide-react": {
"version": "0.468.0",
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.468.0.tgz",
@@ -817,6 +903,41 @@
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc"
}
},
+ "node_modules/make-cancellable-promise": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-2.0.0.tgz",
+ "integrity": "sha512-3SEQqTpV9oqVsIWqAcmDuaNeo7yBO3tqPtqGRcKkEo0lrzD3wqbKG9mkxO65KoOgXqj+zH2phJ2LiAsdzlogSw==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/make-cancellable-promise?sponsor=1"
+ }
+ },
+ "node_modules/make-event-props": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/make-event-props/-/make-event-props-2.0.0.tgz",
+ "integrity": "sha512-G/hncXrl4Qt7mauJEXSg3AcdYzmpkIITTNl5I+rH9sog5Yw0kK6vseJjCaPfOXqOqQuPUP89Rkhfz5kPS8ijtw==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/make-event-props?sponsor=1"
+ }
+ },
+ "node_modules/merge-refs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-2.0.0.tgz",
+ "integrity": "sha512-3+B21mYK2IqUWnd2EivABLT7ueDhb0b8/dGK8LoFQPrU61YITeCMn14F7y7qZafWNZhUEKb24cJdiT5Wxs3prg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/wojtekmaj/merge-refs?sponsor=1"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -1013,6 +1134,18 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/pdfjs-dist": {
+ "version": "5.7.284",
+ "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.7.284.tgz",
+ "integrity": "sha512-h4EdYQczmGhbOlqc3PPZwxevn7ApdWPbovAuWXOB/DjIyigSnwfy2oze7c6mRcSr9XgLp3eN3EeL4DyySTPMFw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=22.13.0 || >=24"
+ },
+ "optionalDependencies": {
+ "@napi-rs/canvas": "^0.1.100"
+ }
+ },
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -1234,6 +1367,47 @@
"react": "^19.2.6"
}
},
+ "node_modules/react-pdf": {
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/react-pdf/-/react-pdf-10.4.1.tgz",
+ "integrity": "sha512-kS/35staVCBqS29verTQJQZXw7RfsRCPO3fdJoW1KXylcv7A9dw6DZ3vJXC2w+bIBgLw5FN4pOFvKSQtkQhPfA==",
+ "license": "MIT",
+ "dependencies": {
+ "clsx": "^2.0.0",
+ "dequal": "^2.0.3",
+ "make-cancellable-promise": "^2.0.0",
+ "make-event-props": "^2.0.0",
+ "merge-refs": "^2.0.0",
+ "pdfjs-dist": "5.4.296",
+ "tiny-invariant": "^1.0.0",
+ "warning": "^4.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/wojtekmaj/react-pdf?sponsor=1"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-pdf/node_modules/pdfjs-dist": {
+ "version": "5.4.296",
+ "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.296.tgz",
+ "integrity": "sha512-DlOzet0HO7OEnmUmB6wWGJrrdvbyJKftI1bhMitK7O2N8W2gc757yyYBbINy9IDafXAV9wmKr9t7xsTaNKRG5Q==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=20.16.0 || >=22.3.0"
+ },
+ "optionalDependencies": {
+ "@napi-rs/canvas": "^0.1.80"
+ }
+ },
"node_modules/read-cache": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -1564,6 +1738,12 @@
"node": ">=0.8"
}
},
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
+ "license": "MIT"
+ },
"node_modules/tinyglobby": {
"version": "0.2.16",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
@@ -1726,6 +1906,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/warning": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+ "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
"node_modules/yaml": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz",
diff --git a/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/README.md b/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/README.md
new file mode 100644
index 0000000..f2b4f2a
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/README.md
@@ -0,0 +1,3 @@
+# `@napi-rs/canvas-win32-x64-msvc`
+
+This is the **x86_64-pc-windows-msvc** binary for `@napi-rs/canvas`
diff --git a/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/icudtl.dat b/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/icudtl.dat
new file mode 100644
index 0000000..331d2f3
Binary files /dev/null and b/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/icudtl.dat differ
diff --git a/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/package.json b/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/package.json
new file mode 100644
index 0000000..87197ca
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/package.json
@@ -0,0 +1,45 @@
+{
+ "name": "@napi-rs/canvas-win32-x64-msvc",
+ "version": "0.1.100",
+ "os": [
+ "win32"
+ ],
+ "cpu": [
+ "x64"
+ ],
+ "main": "skia.win32-x64-msvc.node",
+ "files": [
+ "skia.win32-x64-msvc.node",
+ "icudtl.dat"
+ ],
+ "description": "Canvas for Node.js with skia backend",
+ "keywords": [
+ "napi-rs",
+ "NAPI",
+ "N-API",
+ "Rust",
+ "node-addon",
+ "node-addon-api",
+ "canvas",
+ "image",
+ "pdf",
+ "svg",
+ "skia"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ },
+ "publishConfig": {
+ "registry": "https://registry.npmjs.org/",
+ "access": "public"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/Brooooooklyn/canvas.git"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ }
+}
\ No newline at end of file
diff --git a/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/skia.win32-x64-msvc.node b/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/skia.win32-x64-msvc.node
new file mode 100644
index 0000000..b1c622f
Binary files /dev/null and b/frontend/node_modules/@napi-rs/canvas-win32-x64-msvc/skia.win32-x64-msvc.node differ
diff --git a/frontend/node_modules/@napi-rs/canvas/LICENSE b/frontend/node_modules/@napi-rs/canvas/LICENSE
new file mode 100644
index 0000000..e002407
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 lynweklm@gmail.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/frontend/node_modules/@napi-rs/canvas/README.md b/frontend/node_modules/@napi-rs/canvas/README.md
new file mode 100644
index 0000000..ecf2612
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/README.md
@@ -0,0 +1,448 @@
+# `skr canvas`
+
+[](https://github.com/Brooooooklyn/canvas/actions/workflows/CI.yaml)
+
+[](https://packagephobia.com/result?p=@napi-rs/canvas)
+[](https://npmcharts.com/compare/@napi-rs/canvas?minimal=true)
+
+> π Help me to become a full-time open-source developer by [sponsoring me on Github](https://github.com/sponsors/Brooooooklyn)
+
+Google Skia binding to Node.js via [Node-API](https://napi.rs), **0 System dependencies!**
+
+β οΈ This project is in pre-release stage. And there may be some bugs.
+For details on planned features and future direction please refer to the [Roadmap](https://github.com/Brooooooklyn/canvas/issues/113).
+
+[δΈζζζ‘£](./README-zh.md)
+
+# Install
+
+```bash
+yarn add @napi-rs/canvas
+npm install @napi-rs/canvas
+```
+
+# Support matrix
+
+## System requirement
+
+### `arm64`
+
+[**_cortex-a57_**](https://en.wikipedia.org/wiki/ARM_Cortex-A57) or newer CPU architecture on **Linux**.
+
+All Apple M chips on **macOS**.
+
+### `armv7`
+
+[**_cortex-a7_**](https://en.wikipedia.org/wiki/ARM_Cortex-A7) or newer CPU architecture.
+
+### glibc
+
+Since Skia relies on the [glibc](https://www.gnu.org/software/libc/) 2.18 API, you need to have at least glibc version >= 2.18 on your system.
+
+## AWS Lambda usage
+
+To use this library on Lambda you will need to use a Lambda layer.
+
+You can simply attach a lambda layer by getting an ARN from [Canvas-Lambda-Layer](https://github.com/ShivamJoker/Canvas-Lambda-Layer)
+
+> Make sure to exclude `@napi-rs/canvas` while bundling your Lambda.
+
+# Usage
+
+```js
+const { promises } = require('node:fs')
+const { join } = require('node:path')
+const { createCanvas, loadImage } = require('@napi-rs/canvas')
+
+const canvas = createCanvas(300, 320)
+const ctx = canvas.getContext('2d')
+
+ctx.lineWidth = 10
+ctx.strokeStyle = '#03a9f4'
+ctx.fillStyle = '#03a9f4'
+
+// Wall
+ctx.strokeRect(75, 140, 150, 110)
+
+// Door
+ctx.fillRect(130, 190, 40, 60)
+
+// Roof
+ctx.beginPath()
+ctx.moveTo(50, 140)
+ctx.lineTo(150, 60)
+ctx.lineTo(250, 140)
+ctx.closePath()
+ctx.stroke()
+
+async function main() {
+ // load images from disk or from a URL
+ const catImage = await loadImage('path/to/cat.png')
+ const dogImage = await loadImage('https://example.com/path/to/dog.jpg')
+
+ ctx.drawImage(catImage, 0, 0, catImage.width, catImage.height)
+
+ ctx.drawImage(dogImage, canvas.width / 2, canvas.height / 2, dogImage.width, dogImage.height)
+
+ // export canvas as image
+ const pngData = await canvas.encode('png') // JPEG, AVIF and WebP are also supported
+ // encoding in libuv thread pool, non-blocking
+ await promises.writeFile(join(__dirname, 'simple.png'), pngData)
+}
+
+main()
+```
+
+
+
+## Emoji text
+
+```js
+const { writeFileSync } = require('fs')
+const { join } = require('path')
+
+const { createCanvas, GlobalFonts } = require('@napi-rs/canvas')
+
+GlobalFonts.registerFromPath(join(__dirname, '..', 'fonts', 'AppleColorEmoji@2x.ttf'), 'Apple Emoji')
+GlobalFonts.registerFromPath(join(__dirname, '..', '__test__', 'fonts', 'COLRv1.ttf'), 'COLRv1')
+
+console.info(GlobalFonts.families)
+
+const canvas = createCanvas(760, 360)
+const ctx = canvas.getContext('2d')
+
+ctx.font = '50px Apple Emoji'
+ctx.strokeText('ππππππ
ππ€£βΊοΈπππ', 50, 150)
+
+ctx.font = '100px COLRv1'
+ctx.fillText('abc', 50, 300)
+
+const b = canvas.toBuffer('image/png')
+
+writeFileSync(join(__dirname, 'draw-emoji.png'), b)
+```
+
+
+
+# Performance
+
+See [benchmark](./benchmark) for benchmark code.
+
+Hardware info:
+
+```
+ ,MMMM. Host - xxxxxxxxxxxxxxxxxxxxxxx
+ .MMMMMM Machine - Mac15,9
+ MMMMM, Kernel - 24.0.0
+ .;MMMMM:' MMMMMMMMMM;. OS - macOS 15.0.1 Sequoia
+ MMMMMMMMMMMMNWMMMMMMMMMMM: DE - Aqua
+ .MMMMMMMMMMMMMMMMMMMMMMMMWM. WM - Quartz Compositor
+ MMMMMMMMMMMMMMMMMMMMMMMMM. Packages - 194 (Homebrew), 32 (cargo)
+ ;MMMMMMMMMMMMMMMMMMMMMMMM: Shell - zsh
+ :MMMMMMMMMMMMMMMMMMMMMMMM: Terminal - warpterminal (Version v0.2024.10.23.14.49.stable_00)
+ .MMMMMMMMMMMMMMMMMMMMMMMMM. Resolution - 5120x2880@160fps (as 2560x1440)
+ MMMMMMMMMMMMMMMMMMMMMMMMMMM. 2992x1934@120fps (as 1496x967)
+ .MMMMMMMMMMMMMMMMMMMMMMMMMM. 2232x1512@60fps (as 1116x756)
+ MMMMMMMMMMMMMMMMMMMMMMMM Uptime - 1d 2h 32m
+ ;MMMMMMMMMMMMMMMMMMMM. CPU - Apple M3 Max (16)
+ .MMMM,. .MMMM,. CPU Load - 16%
+ Memory - 50.1 GB / 134.2 GB
+ Battery - 78% & Discharging
+ Disk Space - 624.0 GB / 994.7 GB
+```
+
+```
+β― yarn bench
+Draw a House and export to PNG
+βββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββ¬βββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬ββββββββββ
+β (index) β Task name β Latency average (ns) β Latency median (ns) β Throughput average (ops/s) β Throughput median (ops/s) β Samples β
+βββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββΌβββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββΌββββββββββ€
+β 0 β '@napi-rs/skia' β '14676992.14 Β± 0.68%' β '14602333.00' β '68 Β± 0.59%' β '68' β 69 β
+β 1 β 'skia-canvas' β '21167809.17 Β± 2.05%' β '20960021.00 Β± 13646.00' β '47 Β± 1.31%' β '48' β 64 β
+β 2 β 'node-canvas' β '16552027.42 Β± 0.70%' β '16451291.50 Β± 2208.50' β '60 Β± 0.62%' β '61' β 64 β
+βββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββ΄βββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ΄ββββββββββ
+Draw Gradient and export to PNG
+βββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββββββββ¬ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ¬ββββββββββ
+β (index) β Task name β Latency average (ns) β Latency median (ns) β Throughput average (ops/s) β Throughput median (ops/s) β Samples β
+βββββββββββΌββββββββββββββββββΌββββββββββββββββββββββββΌββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββΌββββββββββ€
+β 0 β '@napi-rs/skia' β '15228495.58 Β± 0.53%' β '15146312.50 Β± 1187.50' β '66 Β± 0.48%' β '66' β 66 β
+β 1 β 'skia-canvas' β '21725564.41 Β± 2.20%' β '21412520.50 Β± 2104.50' β '46 Β± 1.39%' β '47' β 64 β
+β 2 β 'node-canvas' β '17976022.14 Β± 1.53%' β '17563479.50 Β± 5104.50' β '56 Β± 1.38%' β '57' β 64 β
+βββββββββββ΄ββββββββββββββββββ΄ββββββββββββββββββββββββ΄ββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββ΄ββββββββββ
+```
+
+# Features
+
+## Path2D
+
+```typescript
+new Path2D()
+new Path2D(path: Path2D)
+// new Path2D('M108.956,403.826c0,0,0.178,3.344-1.276,3.311 c-1.455-0.033-30.507-84.917-66.752-80.957C40.928,326.18,72.326,313.197,108.956,403.826z')
+new Path2D(path: string)
+```
+
+```typescript
+export interface DOMMatrix2DInit {
+ a: number
+ b: number
+ c: number
+ d: number
+ e: number
+ f: number
+}
+
+export class Path2D {
+ constructor(path?: Path2D | string)
+
+ addPath(path: Path2D, transform?: DOMMatrix2DInit): void
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void
+ closePath(): void
+ ellipse(
+ x: number,
+ y: number,
+ radiusX: number,
+ radiusY: number,
+ rotation: number,
+ startAngle: number,
+ endAngle: number,
+ anticlockwise?: boolean,
+ ): void
+ lineTo(x: number, y: number): void
+ moveTo(x: number, y: number): void
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void
+ rect(x: number, y: number, w: number, h: number): void
+
+ // PathKit methods
+ op(path: Path2D, operation: PathOp): Path2D
+ toSVGString(): string
+ getFillType(): FillType
+ getFillTypeString(): string
+ setFillType(type: FillType): void
+ simplify(): Path2D
+ asWinding(): Path2D
+ stroke(stroke?: StrokeOptions): Path2D
+ transform(transform: DOMMatrix2DInit): Path2D
+ getBounds(): [left: number, top: number, right: number, bottom: number]
+ computeTightBounds(): [left: number, top: number, right: number, bottom: number]
+ trim(start: number, end: number, isComplement?: boolean): Path2D
+ round(radius: number): Path2D
+ equals(path: Path2D): boolean
+}
+```
+
+## PathKit
+
+`PathKit` is a toolset for manipulating Path in `Skia`, supporting **_quadratic beziers_**, **_cubic beziers_** and **_conics_**.
+The main features are.
+
+### Path Operation
+
+`.op(path, PathOp)`
+
+```js
+const pathOne = new Path2D(
+ 'M8 50H92C96.4183 50 100 53.5817 100 58V142C100 146.418 96.4183 150 92 150H8C3.58172 150 0 146.418 0 142V58C0 53.5817 3.58172 50 8 50Z',
+)
+const pathTwo = new Path2D(
+ '"M58 0H142C146.418 0 150 3.58172 150 8V92C150 96.4183 146.418 100 142 100H58C53.5817 100 50 96.4183 50 92V8C50 3.58172 53.5817 0 58 0Z',
+)
+
+pathOne.op(pathTwo, PathOp.Intersect).toSVGString()
+// => "M100 100L58 100C53.5817 100 50 96.4183 50 92L50 50L92 50C96.4183 50 100 53.5817 100 58L100 100Z"
+```
+
+- **Union**, subtract the op path from the first path
+- **Difference**, intersect the two paths
+- **ReverseDifference**, union (inclusive-or) the two paths
+- **Intersect**, exclusive-or the two paths
+- **XOR**, subtract the first path from the op path
+
+
+
+### Covert `FillType` in **_Path_**
+
+`.asWinding()`
+
+You can convert `fill-rule="evenodd"` to `fill-rule="nonzero"` in SVG.
+This is useful for **OpenType** font-related tools, as `fill-rule="nonzero"` is only supported in **OpenType** fonts.
+
+
+
+```js
+const pathCircle = new Path2D(
+ 'M24.2979 13.6364H129.394V40.9091H24.2979L14.6278 27.2727L24.2979 13.6364ZM21.9592 0C19.0246 0 16.2716 1.42436 14.571 3.82251L1.67756 22.0043C-0.559186 25.1585 -0.559186 29.387 1.67756 32.5411L14.571 50.7227C16.2716 53.1209 19.0246 54.5455 21.9592 54.5455H70.4673V68.1818H16.073C11.0661 68.1818 7.00728 72.2518 7.00728 77.2727V113.636C7.00728 118.657 11.0661 122.727 16.073 122.727H70.4673V150H84.0658V122.727H128.041C130.975 122.727 133.729 121.303 135.429 118.905L148.323 100.723C150.559 97.5686 150.559 93.3405 148.323 90.1864L135.429 72.0045C133.729 69.6064 130.975 68.1818 128.041 68.1818H84.0658V54.5455H133.927C138.934 54.5455 142.993 50.4755 142.993 45.4545V9.09091C142.993 4.07014 138.934 0 133.927 0H21.9592ZM125.702 109.091H20.6058V81.8182H125.702L135.372 95.4545L125.702 109.091Z',
+)
+pathCircle.setFillType(FillType.EvenOdd)
+pathCircle.asWinding().toSVGString()
+// => "M24.2979 13.6364L129.394 13.6364L129.394 40.9091L24.2979 40.9091L14.6278 27.2727L24.2979 13.6364ZM21.9592 0C19.0246 0 16.2716 1.42436 14.571 3.82251L1.67756 22.0043C-0.559186 25.1585 -0.559186 29.387 1.67756 32.5411L14.571 50.7227C16.2716 53.1209 19.0246 54.5455 21.9592 54.5455L70.4673 54.5455L70.4673 68.1818L16.073 68.1818C11.0661 68.1818 7.00728 72.2518 7.00728 77.2727L7.00728 113.636C7.00728 118.657 11.0661 122.727 16.073 122.727L70.4673 122.727L70.4673 150L84.0658 150L84.0658 122.727L128.041 122.727C130.975 122.727 133.729 121.303 135.429 118.905L148.323 100.723C150.559 97.5686 150.559 93.3405 148.323 90.1864L135.429 72.0045C133.729 69.6064 130.975 68.1818 128.041 68.1818L84.0658 68.1818L84.0658 54.5455L133.927 54.5455C138.934 54.5455 142.993 50.4755 142.993 45.4545L142.993 9.09091C142.993 4.07014 138.934 0 133.927 0L21.9592 0ZM125.702 109.091L20.6058 109.091L20.6058 81.8182L125.702 81.8182L135.372 95.4545L125.702 109.091Z"
+```
+
+### Simplify **_Path_**
+
+`.simplify()`
+
+Set the path to the same non-overlapping contour as the original path area, which means that it can also remove overlapping paths.
+
+
+
+[SVG with overlapping paths](./docs/imgs/overlapping-path.svg) (Left)
+
+```js
+const path =
+ 'M2.933,89.89 L89.005,3.818 Q90.412,2.411 92.249,1.65 Q94.087,0.889 96.076,0.889 Q98.065,0.889 99.903,1.65 Q101.741,2.411 103.147,3.818 L189.22,89.89 Q190.626,91.296 191.387,93.134 Q192.148,94.972 192.148,96.961 Q192.148,98.95 191.387,100.788 Q190.626,102.625 189.219,104.032 Q187.813,105.439 185.975,106.2 Q184.138,106.961 182.148,106.961 Q180.159,106.961 178.322,106.2 Q176.484,105.439 175.077,104.032 L89.005,17.96 L96.076,10.889 L103.147,17.96 L17.075,104.032 Q15.668,105.439 13.831,106.2 Q11.993,106.961 10.004,106.961 Q8.015,106.961 6.177,106.2 Q4.339,105.439 2.933,104.032 Q1.526,102.625 0.765,100.788 Q0.004,98.95 0.004,96.961 Q0.004,94.972 0.765,93.134 Q1.526,91.296 2.933,89.89 Z'
+
+path.simplify().toSVGString()
+// => "M89.005 3.818L2.933 89.89Q1.526 91.296 0.765 93.134Q0.004 94.972 0.004 96.961Q0.004 98.95 0.765 100.788Q1.526 102.625 2.933 104.032Q4.339 105.439 6.177 106.2Q8.015 106.961 10.004 106.961Q11.993 106.961 13.831 106.2Q15.668 105.439 17.075 104.032L96.076 25.031L175.077 104.032Q176.484 105.439 178.322 106.2Q180.159 106.961 182.148 106.961Q184.138 106.961 185.975 106.2Q187.813 105.439 189.219 104.032Q190.626 102.625 191.387 100.788Q192.148 98.95 192.148 96.961Q192.148 94.972 191.387 93.134Q190.626 91.296 189.22 89.89L103.147 3.818Q101.741 2.411 99.903 1.65Q98.065 0.889 96.076 0.889Q94.087 0.889 92.249 1.65Q90.412 2.411 89.005 3.818Z"
+```
+
+## Lottie Animation
+
+Render [Lottie](https://airbnb.io/lottie/) animations using Skia's [Skottie](https://skia.org/docs/user/modules/skottie/) module.
+
+### Load Animation
+
+```js
+const { LottieAnimation } = require('@napi-rs/canvas')
+
+// Load from file
+const animation = LottieAnimation.loadFromFile('animation.json')
+
+// Load from JSON string with resource path for external assets
+const animation = LottieAnimation.loadFromData(jsonString, {
+ resourcePath: '/path/to/assets',
+})
+```
+
+### Animation Properties
+
+```js
+animation.duration // Total duration in seconds
+animation.fps // Frames per second
+animation.frames // Total frame count
+animation.width // Animation width
+animation.height // Animation height
+animation.version // Lottie format version
+```
+
+### Playback Control
+
+```js
+animation.seekFrame(30) // Seek to frame 30
+animation.seek(1.5) // Seek to 1.5 seconds
+```
+
+### Render to Canvas
+
+```js
+const { createCanvas, LottieAnimation } = require('@napi-rs/canvas')
+
+const animation = LottieAnimation.loadFromFile('animation.json')
+const canvas = createCanvas(animation.width, animation.height)
+const ctx = canvas.getContext('2d')
+
+// Render at original size
+animation.render(ctx)
+
+// Render with custom destination rect
+animation.render(ctx, { x: 0, y: 0, width: 800, height: 600 })
+```
+
+### Supported Features
+
+- **Embedded images** - Base64-encoded images (`data:image/png;base64,...`)
+- **Embedded fonts** - Vector glyph paths for text rendering without system fonts
+- **External assets** - Load images from `resourcePath` directory
+- **dotLottie format** - Extract `.lottie` ZIP files at runtime (see example)
+
+### Example: Encode Lottie to Video
+
+See [`example/lottie-to-video.ts`](./example/lottie-to-video.ts) for encoding Lottie animations to MP4 using [`@napi-rs/webcodecs`](https://github.com/Brooooooklyn/webcodecs-node).
+
+```js
+import { createCanvas, LottieAnimation } from '@napi-rs/canvas'
+import {
+ VideoEncoder,
+ VideoFrame,
+ Mp4Muxer,
+ type EncodedVideoChunk,
+ type EncodedVideoChunkMetadata,
+} from '@napi-rs/webcodecs'
+
+const animation = LottieAnimation.loadFromFile('animation.json')
+const canvas = createCanvas(animation.width, animation.height)
+const ctx = canvas.getContext('2d')
+
+for (let frame = 0; frame < animation.frames; frame++) {
+ animation.seekFrame(frame)
+ ctx.fillStyle = '#ffffff'
+ ctx.fillRect(0, 0, canvas.width, canvas.height)
+ animation.render(ctx)
+ // Encode frame to video...
+}
+```
+
+# [Example](./example/tiger.js)
+
+> The tiger.json was serialized from [gojs/samples/tiger](https://github.com/NorthwoodsSoftware/GoJS/blob/master/samples/tiger.html)
+
+
+
+```shell
+node example/anime-girl.js
+```
+
+| SVG | PNG |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 
[CC-BY-SA 3.0](https://creativecommons.org/licenses/by/3.0) by [Niabot](https://commons.wikimedia.org/wiki/User:Niabot) | 
[CC-BY-SA 3.0](https://creativecommons.org/licenses/by/3.0) by [Niabot](https://commons.wikimedia.org/wiki/User:Niabot) |
+
+# Building
+
+## Build skia from source
+
+You can build this project from source, the system requirements are here: https://skia.org/docs/user/build
+
+```sh
+# Clone the code:
+$ git clone --recurse-submodules https://github.com/Brooooooklyn/canvas.git
+$ cd canvas
+
+# Build Skia:
+$ node scripts/build-skia.js
+
+# Install NPM packages, build the Node.js addon:
+$ npm install -g yarn
+$ yarn install --mode=skip-build # Here are modules that are used for benchmarking and are hard to install, you can skip it by specifying `--mode=skip-build`
+$ sudo dnf install clang # https://fedora.pkgs.org/34/fedora-x86_64/clang-12.0.0-0.3.rc1.fc34.x86_64.rpm.html
+$ yarn build
+
+# All done! Run test cases or examples now:
+$ yarn test
+$ node example/tiger.js
+```
+
+## Pull pre-build skia binary from GitHub
+
+You can pull skia pre-build binaries if you just care the `Rust` part:
+
+```sh
+# Clone the code:
+$ git clone --recurse-submodules https://github.com/Brooooooklyn/canvas.git
+$ cd canvas
+
+# Download Skia binaries:
+# It will pull the binaries match the git hash in `./skia` submodule
+$ node scripts/release-skia-binary.mjs --download
+
+# Install NPM packages, build the Node.js addon:
+$ npm install -g yarn
+$ yarn install --mode=skip-build
+$ sudo dnf install clang # https://fedora.pkgs.org/34/fedora-x86_64/clang-12.0.0-0.3.rc1.fc34.x86_64.rpm.html
+$ yarn build
+
+# All done! Run test cases or examples now:
+$ yarn test
+$ node example/tiger.js
+```
diff --git a/frontend/node_modules/@napi-rs/canvas/geometry.js b/frontend/node_modules/@napi-rs/canvas/geometry.js
new file mode 100644
index 0000000..04152ac
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/geometry.js
@@ -0,0 +1,873 @@
+const { inspect } = require('util')
+/*
+ * vendored in order to fix its dependence on the window global [cds 2020/08/04]
+ * otherwise unchanged from https://github.com/jarek-foksa/geometry-polyfill/tree/f36bbc8f4bc43539d980687904ce46c8e915543d
+ */
+
+// @info
+// DOMPoint polyfill
+// @src
+// https://drafts.fxtf.org/geometry/#DOMPoint
+// https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/core/geometry/dom_point_read_only.cc
+class DOMPoint {
+ constructor(x = 0, y = 0, z = 0, w = 1) {
+ this.x = x
+ this.y = y
+ this.z = z
+ this.w = w
+ }
+
+ static fromPoint(otherPoint) {
+ return new DOMPoint(
+ otherPoint.x,
+ otherPoint.y,
+ otherPoint.z !== undefined ? otherPoint.z : 0,
+ otherPoint.w !== undefined ? otherPoint.w : 1,
+ )
+ }
+
+ matrixTransform(matrix) {
+ if ((matrix.is2D || matrix instanceof SVGMatrix) && this.z === 0 && this.w === 1) {
+ return new DOMPoint(
+ this.x * matrix.a + this.y * matrix.c + matrix.e,
+ this.x * matrix.b + this.y * matrix.d + matrix.f,
+ 0,
+ 1,
+ )
+ } else {
+ return new DOMPoint(
+ this.x * matrix.m11 + this.y * matrix.m21 + this.z * matrix.m31 + this.w * matrix.m41,
+ this.x * matrix.m12 + this.y * matrix.m22 + this.z * matrix.m32 + this.w * matrix.m42,
+ this.x * matrix.m13 + this.y * matrix.m23 + this.z * matrix.m33 + this.w * matrix.m43,
+ this.x * matrix.m14 + this.y * matrix.m24 + this.z * matrix.m34 + this.w * matrix.m44,
+ )
+ }
+ }
+
+ toJSON() {
+ return {
+ x: this.x,
+ y: this.y,
+ z: this.z,
+ w: this.w,
+ }
+ }
+}
+
+// @info
+// DOMRect polyfill
+// @src
+// https://drafts.fxtf.org/geometry/#DOMRect
+// https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/core/geometry/dom_rect_read_only.cc
+
+class DOMRect {
+ constructor(x = 0, y = 0, width = 0, height = 0) {
+ this.x = x
+ this.y = y
+ this.width = width
+ this.height = height
+ }
+
+ static fromRect(otherRect) {
+ return new DOMRect(otherRect.x, otherRect.y, otherRect.width, otherRect.height)
+ }
+
+ get top() {
+ return this.y
+ }
+
+ get left() {
+ return this.x
+ }
+
+ get right() {
+ return this.x + this.width
+ }
+
+ get bottom() {
+ return this.y + this.height
+ }
+
+ toJSON() {
+ return {
+ x: this.x,
+ y: this.y,
+ width: this.width,
+ height: this.height,
+ top: this.top,
+ left: this.left,
+ right: this.right,
+ bottom: this.bottom,
+ }
+ }
+}
+
+for (const propertyName of ['top', 'right', 'bottom', 'left']) {
+ const propertyDescriptor = Object.getOwnPropertyDescriptor(DOMRect.prototype, propertyName)
+ propertyDescriptor.enumerable = true
+ Object.defineProperty(DOMRect.prototype, propertyName, propertyDescriptor)
+}
+
+// @info
+// DOMMatrix polyfill (SVG 2)
+// @src
+// https://github.com/chromium/chromium/blob/master/third_party/blink/renderer/core/geometry/dom_matrix_read_only.cc
+// https://github.com/tocharomera/generativecanvas/blob/master/node-canvas/lib/DOMMatrix.js
+
+const M11 = 0,
+ M12 = 1,
+ M13 = 2,
+ M14 = 3
+const M21 = 4,
+ M22 = 5,
+ M23 = 6,
+ M24 = 7
+const M31 = 8,
+ M32 = 9,
+ M33 = 10,
+ M34 = 11
+const M41 = 12,
+ M42 = 13,
+ M43 = 14,
+ M44 = 15
+
+const A = M11,
+ B = M12
+const C = M21,
+ D = M22
+const E = M41,
+ F = M42
+
+const DEGREE_PER_RAD = 180 / Math.PI
+const RAD_PER_DEGREE = Math.PI / 180
+
+const VALUES = Symbol('values')
+const IS_2D = Symbol('is2D')
+
+function parseMatrix(init) {
+ let parsed = init.replace(/matrix\(/, '').split(/,/, 7)
+
+ if (parsed.length !== 6) {
+ throw new Error(`Failed to parse ${init}`)
+ }
+
+ parsed = parsed.map(parseFloat)
+
+ return [parsed[0], parsed[1], 0, 0, parsed[2], parsed[3], 0, 0, 0, 0, 1, 0, parsed[4], parsed[5], 0, 1]
+}
+
+function parseMatrix3d(init) {
+ const parsed = init.replace(/matrix3d\(/, '').split(/,/, 17)
+
+ if (parsed.length !== 16) {
+ throw new Error(`Failed to parse ${init}`)
+ }
+
+ return parsed.map(parseFloat)
+}
+
+function parseTransform(tform) {
+ const type = tform.split(/\(/, 1)[0]
+
+ if (type === 'matrix') {
+ return parseMatrix(tform)
+ } else if (type === 'matrix3d') {
+ return parseMatrix3d(tform)
+ } else {
+ throw new Error(`${type} parsing not implemented`)
+ }
+}
+
+const setNumber2D = (receiver, index, value) => {
+ if (typeof value !== 'number') {
+ throw new TypeError('Expected number')
+ }
+
+ receiver[VALUES][index] = value
+}
+
+const setNumber3D = (receiver, index, value) => {
+ if (typeof value !== 'number') {
+ throw new TypeError('Expected number')
+ }
+
+ if (index === M33 || index === M44) {
+ if (value !== 1) {
+ receiver[IS_2D] = false
+ }
+ } else if (value !== 0) {
+ receiver[IS_2D] = false
+ }
+
+ receiver[VALUES][index] = value
+}
+
+const newInstance = (values) => {
+ const instance = Object.create(DOMMatrix.prototype)
+ instance.constructor = DOMMatrix
+ instance[IS_2D] = true
+ instance[VALUES] = values
+
+ return instance
+}
+
+const multiply = (first, second) => {
+ const dest = new Float64Array(16)
+
+ for (let i = 0; i < 4; i++) {
+ for (let j = 0; j < 4; j++) {
+ let sum = 0
+
+ for (let k = 0; k < 4; k++) {
+ sum += first[i * 4 + k] * second[k * 4 + j]
+ }
+
+ dest[i * 4 + j] = sum
+ }
+ }
+
+ return dest
+}
+
+class DOMMatrix {
+ get m11() {
+ return this[VALUES][M11]
+ }
+ set m11(value) {
+ setNumber2D(this, M11, value)
+ }
+ get m12() {
+ return this[VALUES][M12]
+ }
+ set m12(value) {
+ setNumber2D(this, M12, value)
+ }
+ get m13() {
+ return this[VALUES][M13]
+ }
+ set m13(value) {
+ setNumber3D(this, M13, value)
+ }
+ get m14() {
+ return this[VALUES][M14]
+ }
+ set m14(value) {
+ setNumber3D(this, M14, value)
+ }
+ get m21() {
+ return this[VALUES][M21]
+ }
+ set m21(value) {
+ setNumber2D(this, M21, value)
+ }
+ get m22() {
+ return this[VALUES][M22]
+ }
+ set m22(value) {
+ setNumber2D(this, M22, value)
+ }
+ get m23() {
+ return this[VALUES][M23]
+ }
+ set m23(value) {
+ setNumber3D(this, M23, value)
+ }
+ get m24() {
+ return this[VALUES][M24]
+ }
+ set m24(value) {
+ setNumber3D(this, M24, value)
+ }
+ get m31() {
+ return this[VALUES][M31]
+ }
+ set m31(value) {
+ setNumber3D(this, M31, value)
+ }
+ get m32() {
+ return this[VALUES][M32]
+ }
+ set m32(value) {
+ setNumber3D(this, M32, value)
+ }
+ get m33() {
+ return this[VALUES][M33]
+ }
+ set m33(value) {
+ setNumber3D(this, M33, value)
+ }
+ get m34() {
+ return this[VALUES][M34]
+ }
+ set m34(value) {
+ setNumber3D(this, M34, value)
+ }
+ get m41() {
+ return this[VALUES][M41]
+ }
+ set m41(value) {
+ setNumber2D(this, M41, value)
+ }
+ get m42() {
+ return this[VALUES][M42]
+ }
+ set m42(value) {
+ setNumber2D(this, M42, value)
+ }
+ get m43() {
+ return this[VALUES][M43]
+ }
+ set m43(value) {
+ setNumber3D(this, M43, value)
+ }
+ get m44() {
+ return this[VALUES][M44]
+ }
+ set m44(value) {
+ setNumber3D(this, M44, value)
+ }
+
+ get a() {
+ return this[VALUES][A]
+ }
+ set a(value) {
+ setNumber2D(this, A, value)
+ }
+ get b() {
+ return this[VALUES][B]
+ }
+ set b(value) {
+ setNumber2D(this, B, value)
+ }
+ get c() {
+ return this[VALUES][C]
+ }
+ set c(value) {
+ setNumber2D(this, C, value)
+ }
+ get d() {
+ return this[VALUES][D]
+ }
+ set d(value) {
+ setNumber2D(this, D, value)
+ }
+ get e() {
+ return this[VALUES][E]
+ }
+ set e(value) {
+ setNumber2D(this, E, value)
+ }
+ get f() {
+ return this[VALUES][F]
+ }
+ set f(value) {
+ setNumber2D(this, F, value)
+ }
+
+ get is2D() {
+ return this[IS_2D]
+ }
+
+ get isIdentity() {
+ const values = this[VALUES]
+
+ return (
+ values[M11] === 1 &&
+ values[M12] === 0 &&
+ values[M13] === 0 &&
+ values[M14] === 0 &&
+ values[M21] === 0 &&
+ values[M22] === 1 &&
+ values[M23] === 0 &&
+ values[M24] === 0 &&
+ values[M31] === 0 &&
+ values[M32] === 0 &&
+ values[M33] === 1 &&
+ values[M34] === 0 &&
+ values[M41] === 0 &&
+ values[M42] === 0 &&
+ values[M43] === 0 &&
+ values[M44] === 1
+ )
+ }
+
+ static fromMatrix(init) {
+ if (init instanceof DOMMatrix) {
+ return new DOMMatrix(init[VALUES])
+ } else if (init instanceof SVGMatrix) {
+ return new DOMMatrix([init.a, init.b, init.c, init.d, init.e, init.f])
+ } else {
+ throw new TypeError('Expected DOMMatrix')
+ }
+ }
+
+ static fromFloat32Array(init) {
+ if (!(init instanceof Float32Array)) throw new TypeError('Expected Float32Array')
+ return new DOMMatrix(init)
+ }
+
+ static fromFloat64Array(init) {
+ if (!(init instanceof Float64Array)) throw new TypeError('Expected Float64Array')
+ return new DOMMatrix(init)
+ }
+
+ // @type
+ // (Float64Array) => void
+ constructor(init) {
+ this[IS_2D] = true
+
+ this[VALUES] = new Float64Array([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])
+
+ // Parse CSS transformList
+ if (typeof init === 'string') {
+ if (init === '') {
+ return
+ } else {
+ const tforms = init.split(/\)\s+/, 20).map(parseTransform)
+
+ if (tforms.length === 0) {
+ return
+ }
+
+ init = tforms[0]
+
+ for (let i = 1; i < tforms.length; i++) {
+ init = multiply(tforms[i], init)
+ }
+ }
+ }
+
+ let i = 0
+
+ if (init && init.length === 6) {
+ setNumber2D(this, A, init[i++])
+ setNumber2D(this, B, init[i++])
+ setNumber2D(this, C, init[i++])
+ setNumber2D(this, D, init[i++])
+ setNumber2D(this, E, init[i++])
+ setNumber2D(this, F, init[i++])
+ } else if (init && init.length === 16) {
+ setNumber2D(this, M11, init[i++])
+ setNumber2D(this, M12, init[i++])
+ setNumber3D(this, M13, init[i++])
+ setNumber3D(this, M14, init[i++])
+ setNumber2D(this, M21, init[i++])
+ setNumber2D(this, M22, init[i++])
+ setNumber3D(this, M23, init[i++])
+ setNumber3D(this, M24, init[i++])
+ setNumber3D(this, M31, init[i++])
+ setNumber3D(this, M32, init[i++])
+ setNumber3D(this, M33, init[i++])
+ setNumber3D(this, M34, init[i++])
+ setNumber2D(this, M41, init[i++])
+ setNumber2D(this, M42, init[i++])
+ setNumber3D(this, M43, init[i++])
+ setNumber3D(this, M44, init[i])
+ } else if (init !== undefined) {
+ throw new TypeError('Expected string or array.')
+ }
+ }
+
+ dump() {
+ const mat = this[VALUES]
+ console.info([mat.slice(0, 4), mat.slice(4, 8), mat.slice(8, 12), mat.slice(12, 16)])
+ }
+
+ [inspect.custom](depth) {
+ if (depth < 0) return '[DOMMatrix]'
+
+ const { a, b, c, d, e, f, is2D, isIdentity } = this
+ if (this.is2D) {
+ return `DOMMatrix ${inspect({ a, b, c, d, e, f, is2D, isIdentity }, { colors: true })}`
+ } else {
+ const { m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44, is2D, isIdentity } = this
+ return `DOMMatrix ${inspect(
+ {
+ a,
+ b,
+ c,
+ d,
+ e,
+ f,
+ m11,
+ m12,
+ m13,
+ m14,
+ m21,
+ m22,
+ m23,
+ m24,
+ m31,
+ m32,
+ m33,
+ m34,
+ m41,
+ m42,
+ m43,
+ m44,
+ is2D,
+ isIdentity,
+ },
+ { colors: true },
+ )}`
+ }
+ }
+
+ multiply(other) {
+ return newInstance(this[VALUES]).multiplySelf(other)
+ }
+
+ multiplySelf(other) {
+ this[VALUES] = multiply(other[VALUES], this[VALUES])
+
+ if (!other.is2D) {
+ this[IS_2D] = false
+ }
+
+ return this
+ }
+
+ preMultiplySelf(other) {
+ this[VALUES] = multiply(this[VALUES], other[VALUES])
+
+ if (!other.is2D) {
+ this[IS_2D] = false
+ }
+
+ return this
+ }
+
+ translate(tx, ty, tz) {
+ return newInstance(this[VALUES]).translateSelf(tx, ty, tz)
+ }
+
+ translateSelf(tx = 0, ty = 0, tz = 0) {
+ this[VALUES] = multiply([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1], this[VALUES])
+
+ if (tz !== 0) {
+ this[IS_2D] = false
+ }
+
+ return this
+ }
+
+ scale(scaleX, scaleY, scaleZ, originX, originY, originZ) {
+ return newInstance(this[VALUES]).scaleSelf(scaleX, scaleY, scaleZ, originX, originY, originZ)
+ }
+
+ scale3d(scale, originX, originY, originZ) {
+ return newInstance(this[VALUES]).scale3dSelf(scale, originX, originY, originZ)
+ }
+
+ scale3dSelf(scale, originX, originY, originZ) {
+ return this.scaleSelf(scale, scale, scale, originX, originY, originZ)
+ }
+
+ scaleSelf(scaleX, scaleY, scaleZ, originX, originY, originZ) {
+ // Not redundant with translate's checks because we need to negate the values later.
+ if (typeof originX !== 'number') originX = 0
+ if (typeof originY !== 'number') originY = 0
+ if (typeof originZ !== 'number') originZ = 0
+
+ this.translateSelf(originX, originY, originZ)
+
+ if (typeof scaleX !== 'number') scaleX = 1
+ if (typeof scaleY !== 'number') scaleY = scaleX
+ if (typeof scaleZ !== 'number') scaleZ = 1
+
+ this[VALUES] = multiply([scaleX, 0, 0, 0, 0, scaleY, 0, 0, 0, 0, scaleZ, 0, 0, 0, 0, 1], this[VALUES])
+
+ this.translateSelf(-originX, -originY, -originZ)
+
+ if (scaleZ !== 1 || originZ !== 0) {
+ this[IS_2D] = false
+ }
+
+ return this
+ }
+
+ rotateFromVector(x, y) {
+ return newInstance(this[VALUES]).rotateFromVectorSelf(x, y)
+ }
+
+ rotateFromVectorSelf(x = 0, y = 0) {
+ const theta = x === 0 && y === 0 ? 0 : Math.atan2(y, x) * DEGREE_PER_RAD
+ return this.rotateSelf(theta)
+ }
+
+ rotate(rotX, rotY, rotZ) {
+ return newInstance(this[VALUES]).rotateSelf(rotX, rotY, rotZ)
+ }
+
+ rotateSelf(rotX, rotY, rotZ) {
+ if (rotY === undefined && rotZ === undefined) {
+ rotZ = rotX
+ rotX = rotY = 0
+ }
+
+ if (typeof rotY !== 'number') rotY = 0
+ if (typeof rotZ !== 'number') rotZ = 0
+
+ if (rotX !== 0 || rotY !== 0) {
+ this[IS_2D] = false
+ }
+
+ rotX *= RAD_PER_DEGREE
+ rotY *= RAD_PER_DEGREE
+ rotZ *= RAD_PER_DEGREE
+
+ let c = Math.cos(rotZ)
+ let s = Math.sin(rotZ)
+
+ this[VALUES] = multiply([c, s, 0, 0, -s, c, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], this[VALUES])
+
+ c = Math.cos(rotY)
+ s = Math.sin(rotY)
+
+ this[VALUES] = multiply([c, 0, -s, 0, 0, 1, 0, 0, s, 0, c, 0, 0, 0, 0, 1], this[VALUES])
+
+ c = Math.cos(rotX)
+ s = Math.sin(rotX)
+
+ this[VALUES] = multiply([1, 0, 0, 0, 0, c, s, 0, 0, -s, c, 0, 0, 0, 0, 1], this[VALUES])
+
+ return this
+ }
+
+ rotateAxisAngle(x, y, z, angle) {
+ return newInstance(this[VALUES]).rotateAxisAngleSelf(x, y, z, angle)
+ }
+
+ rotateAxisAngleSelf(x = 0, y = 0, z = 0, angle = 0) {
+ const length = Math.sqrt(x * x + y * y + z * z)
+
+ if (length === 0) {
+ return this
+ }
+
+ if (length !== 1) {
+ x /= length
+ y /= length
+ z /= length
+ }
+
+ angle *= RAD_PER_DEGREE
+
+ const c = Math.cos(angle)
+ const s = Math.sin(angle)
+ const t = 1 - c
+ const tx = t * x
+ const ty = t * y
+
+ this[VALUES] = multiply(
+ [
+ tx * x + c,
+ tx * y + s * z,
+ tx * z - s * y,
+ 0,
+ tx * y - s * z,
+ ty * y + c,
+ ty * z + s * x,
+ 0,
+ tx * z + s * y,
+ ty * z - s * x,
+ t * z * z + c,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ ],
+ this[VALUES],
+ )
+
+ if (x !== 0 || y !== 0) {
+ this[IS_2D] = false
+ }
+
+ return this
+ }
+
+ skewX(sx) {
+ return newInstance(this[VALUES]).skewXSelf(sx)
+ }
+
+ skewXSelf(sx) {
+ if (typeof sx !== 'number') {
+ return this
+ }
+
+ const t = Math.tan(sx * RAD_PER_DEGREE)
+
+ this[VALUES] = multiply([1, 0, 0, 0, t, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], this[VALUES])
+
+ return this
+ }
+
+ skewY(sy) {
+ return newInstance(this[VALUES]).skewYSelf(sy)
+ }
+
+ skewYSelf(sy) {
+ if (typeof sy !== 'number') {
+ return this
+ }
+
+ const t = Math.tan(sy * RAD_PER_DEGREE)
+
+ this[VALUES] = multiply([1, t, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], this[VALUES])
+
+ return this
+ }
+
+ flipX() {
+ return newInstance(multiply([-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], this[VALUES]))
+ }
+
+ flipY() {
+ return newInstance(multiply([1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], this[VALUES]))
+ }
+
+ inverse() {
+ return newInstance(this[VALUES].slice()).invertSelf()
+ }
+
+ invertSelf() {
+ if (this[IS_2D]) {
+ const det = this[VALUES][A] * this[VALUES][D] - this[VALUES][B] * this[VALUES][C]
+
+ // Invertable
+ if (det !== 0) {
+ const newA = this[VALUES][D] / det
+ const newB = -this[VALUES][B] / det
+ const newC = -this[VALUES][C] / det
+ const newD = this[VALUES][A] / det
+ const newE = (this[VALUES][C] * this[VALUES][F] - this[VALUES][D] * this[VALUES][E]) / det
+ const newF = (this[VALUES][B] * this[VALUES][E] - this[VALUES][A] * this[VALUES][F]) / det
+
+ this.a = newA
+ this.b = newB
+ this.c = newC
+ this.d = newD
+ this.e = newE
+ this.f = newF
+
+ return this
+ }
+
+ // Not invertable
+ else {
+ this[IS_2D] = false
+
+ this[VALUES] = [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN]
+
+ return this
+ }
+ } else {
+ throw new Error('3D matrix inversion is not implemented.')
+ }
+ }
+
+ setMatrixValue(transformList) {
+ const temp = new DOMMatrix(transformList)
+
+ this[VALUES] = temp[VALUES]
+ this[IS_2D] = temp[IS_2D]
+
+ return this
+ }
+
+ transformPoint(point) {
+ const x = point.x || 0
+ const y = point.y || 0
+ const z = point.z || 0
+ const w = point.w || 1
+
+ const values = this[VALUES]
+
+ const nx = values[M11] * x + values[M21] * y + values[M31] * z + values[M41] * w
+ const ny = values[M12] * x + values[M22] * y + values[M32] * z + values[M42] * w
+ const nz = values[M13] * x + values[M23] * y + values[M33] * z + values[M43] * w
+ const nw = values[M14] * x + values[M24] * y + values[M34] * z + values[M44] * w
+
+ return new DOMPoint(nx, ny, nz, nw)
+ }
+
+ toFloat32Array() {
+ return Float32Array.from(this[VALUES])
+ }
+
+ toFloat64Array() {
+ return this[VALUES].slice(0)
+ }
+
+ toJSON() {
+ return {
+ a: this.a,
+ b: this.b,
+ c: this.c,
+ d: this.d,
+ e: this.e,
+ f: this.f,
+ m11: this.m11,
+ m12: this.m12,
+ m13: this.m13,
+ m14: this.m14,
+ m21: this.m21,
+ m22: this.m22,
+ m23: this.m23,
+ m24: this.m24,
+ m31: this.m31,
+ m32: this.m32,
+ m33: this.m33,
+ m34: this.m34,
+ m41: this.m41,
+ m42: this.m42,
+ m43: this.m43,
+ m44: this.m44,
+ is2D: this.is2D,
+ isIdentity: this.isIdentity,
+ }
+ }
+
+ toString() {
+ if (this.is2D) {
+ return `matrix(${this.a}, ${this.b}, ${this.c}, ${this.d}, ${this.e}, ${this.f})`
+ } else {
+ return `matrix3d(${this[VALUES].join(', ')})`
+ }
+ }
+}
+
+for (const propertyName of [
+ 'a',
+ 'b',
+ 'c',
+ 'd',
+ 'e',
+ 'f',
+ 'm11',
+ 'm12',
+ 'm13',
+ 'm14',
+ 'm21',
+ 'm22',
+ 'm23',
+ 'm24',
+ 'm31',
+ 'm32',
+ 'm33',
+ 'm34',
+ 'm41',
+ 'm42',
+ 'm43',
+ 'm44',
+ 'is2D',
+ 'isIdentity',
+]) {
+ const propertyDescriptor = Object.getOwnPropertyDescriptor(DOMMatrix.prototype, propertyName)
+ propertyDescriptor.enumerable = true
+ Object.defineProperty(DOMMatrix.prototype, propertyName, propertyDescriptor)
+}
+
+module.exports = { DOMPoint, DOMMatrix, DOMRect }
diff --git a/frontend/node_modules/@napi-rs/canvas/index.d.ts b/frontend/node_modules/@napi-rs/canvas/index.d.ts
new file mode 100644
index 0000000..352e4c9
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/index.d.ts
@@ -0,0 +1,1097 @@
+import { ReadableStream } from 'node:stream/web'
+
+// Clear all type of caches in Skia
+export function clearAllCache(): void
+
+interface CanvasRenderingContext2D
+ extends CanvasCompositing,
+ CanvasDrawPath,
+ CanvasFillStrokeStyles,
+ CanvasFilters,
+ CanvasImageData,
+ CanvasImageSmoothing,
+ CanvasPath,
+ CanvasPathDrawingStyles,
+ CanvasRect,
+ CanvasSettings,
+ CanvasShadowStyles,
+ CanvasState,
+ CanvasText,
+ CanvasTextDrawingStyles,
+ CanvasTransform,
+ CanvasPDFAnnotations { }
+
+interface CanvasState {
+ isContextLost(): boolean
+ reset(): void
+ restore(): void
+ save(): void
+}
+interface CanvasShadowStyles {
+ shadowBlur: number
+ shadowColor: string
+ shadowOffsetX: number
+ shadowOffsetY: number
+}
+interface CanvasRenderingContext2DSettings {
+ alpha?: boolean
+ colorSpace?: PredefinedColorSpace
+ desynchronized?: boolean
+ willReadFrequently?: boolean
+}
+interface CanvasSettings {
+ getContextAttributes(): CanvasRenderingContext2DSettings
+}
+
+interface CanvasRect {
+ clearRect(x: number, y: number, w: number, h: number): void
+ fillRect(x: number, y: number, w: number, h: number): void
+ strokeRect(x: number, y: number, w: number, h: number): void
+}
+
+interface TextMetrics {
+ readonly actualBoundingBoxAscent: number
+ readonly actualBoundingBoxDescent: number
+ readonly actualBoundingBoxLeft: number
+ readonly actualBoundingBoxRight: number
+ readonly alphabeticBaseline: number
+ readonly emHeightAscent: number
+ readonly emHeightDescent: number
+ readonly fontBoundingBoxAscent: number
+ readonly fontBoundingBoxDescent: number
+ readonly hangingBaseline: number
+ readonly ideographicBaseline: number
+ readonly width: number
+}
+
+interface CanvasText {
+ fillText(text: string, x: number, y: number, maxWidth?: number): void
+ measureText(text: string): TextMetrics
+ strokeText(text: string, x: number, y: number, maxWidth?: number): void
+}
+
+type CanvasLineCap = 'butt' | 'round' | 'square'
+type CanvasLineJoin = 'bevel' | 'miter' | 'round'
+
+interface CanvasPathDrawingStyles {
+ lineCap: CanvasLineCap
+ lineDashOffset: number
+ lineJoin: CanvasLineJoin
+ lineWidth: number
+ miterLimit: number
+ getLineDash(): number[]
+ setLineDash(segments: number[]): void
+}
+
+interface CanvasPath {
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void
+ closePath(): void
+ ellipse(
+ x: number,
+ y: number,
+ radiusX: number,
+ radiusY: number,
+ rotation: number,
+ startAngle: number,
+ endAngle: number,
+ counterclockwise?: boolean,
+ ): void
+ lineTo(x: number, y: number): void
+ moveTo(x: number, y: number): void
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void
+ rect(x: number, y: number, w: number, h: number): void
+ roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | (number | DOMPointInit)[]): void
+}
+
+type ImageSmoothingQuality = 'high' | 'low' | 'medium'
+
+interface CanvasImageSmoothing {
+ imageSmoothingEnabled: boolean
+ imageSmoothingQuality: ImageSmoothingQuality
+}
+
+interface CanvasTransform {
+ resetTransform(): void
+ rotate(angle: number): void
+ scale(x: number, y: number): void
+ setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void
+ setTransform(transform?: DOMMatrix2DInit): void
+ transform(a: number, b: number, c: number, d: number, e: number, f: number): void
+ translate(x: number, y: number): void
+}
+
+interface CanvasPDFAnnotations {
+ /**
+ * Create a clickable URL link annotation in a PDF document.
+ * This is only effective when used with PDF documents.
+ * @param left - Left coordinate of the link rectangle
+ * @param top - Top coordinate of the link rectangle
+ * @param right - Right coordinate of the link rectangle
+ * @param bottom - Bottom coordinate of the link rectangle
+ * @param url - The URL to link to
+ */
+ annotateLinkUrl(left: number, top: number, right: number, bottom: number, url: string): void
+
+ /**
+ * Create a named destination at a specific point in a PDF document.
+ * This destination can be used as a target for internal links.
+ * @param x - X coordinate of the destination point
+ * @param y - Y coordinate of the destination point
+ * @param name - Name identifier for the destination
+ */
+ annotateNamedDestination(x: number, y: number, name: string): void
+
+ /**
+ * Create a link to a named destination within the PDF document.
+ * This is only effective when used with PDF documents.
+ * @param left - Left coordinate of the link rectangle
+ * @param top - Top coordinate of the link rectangle
+ * @param right - Right coordinate of the link rectangle
+ * @param bottom - Bottom coordinate of the link rectangle
+ * @param name - Name of the destination to link to
+ */
+ annotateLinkToDestination(left: number, top: number, right: number, bottom: number, name: string): void
+}
+
+type PredefinedColorSpace = 'display-p3' | 'srgb'
+
+interface ImageDataSettings {
+ colorSpace?: PredefinedColorSpace
+}
+interface CanvasImageData {
+ createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData
+ createImageData(imagedata: ImageData): ImageData
+ getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData
+ putImageData(imagedata: ImageData, dx: number, dy: number): void
+ putImageData(
+ imagedata: ImageData,
+ dx: number,
+ dy: number,
+ dirtyX: number,
+ dirtyY: number,
+ dirtyWidth: number,
+ dirtyHeight: number,
+ ): void
+}
+
+type CanvasDirection = 'inherit' | 'ltr' | 'rtl'
+type CanvasFontKerning = 'auto' | 'none' | 'normal'
+type CanvasFontStretch =
+ | 'condensed'
+ | 'expanded'
+ | 'extra-condensed'
+ | 'extra-expanded'
+ | 'normal'
+ | 'semi-condensed'
+ | 'semi-expanded'
+ | 'ultra-condensed'
+ | 'ultra-expanded'
+type CanvasFontVariantCaps =
+ | 'all-petite-caps'
+ | 'all-small-caps'
+ | 'normal'
+ | 'petite-caps'
+ | 'small-caps'
+ | 'titling-caps'
+ | 'unicase'
+type CanvasTextAlign = 'center' | 'end' | 'left' | 'right' | 'start'
+type CanvasTextBaseline = 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top'
+type CanvasTextRendering = 'auto' | 'geometricPrecision' | 'optimizeLegibility' | 'optimizeSpeed'
+
+interface CanvasTextDrawingStyles {
+ direction: CanvasDirection
+ font: string
+ fontKerning: CanvasFontKerning
+ fontStretch: CanvasFontStretch
+ fontVariantCaps: CanvasFontVariantCaps
+ letterSpacing: string
+ textAlign: CanvasTextAlign
+ textBaseline: CanvasTextBaseline
+ textRendering: CanvasTextRendering
+ wordSpacing: string
+ fontVariationSettings: string
+ lang: string
+}
+
+interface CanvasFilters {
+ filter: string
+}
+
+interface CanvasFillStrokeStyles {
+ fillStyle: string | CanvasGradient | CanvasPattern
+ strokeStyle: string | CanvasGradient | CanvasPattern
+ createConicGradient(startAngle: number, x: number, y: number): CanvasGradient
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient
+ createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient
+}
+
+type CanvasFillRule = 'evenodd' | 'nonzero'
+
+interface CanvasDrawPath {
+ beginPath(): void
+ clip(fillRule?: CanvasFillRule): void
+ clip(path: Path2D, fillRule?: CanvasFillRule): void
+ fill(fillRule?: CanvasFillRule): void
+ fill(path: Path2D, fillRule?: CanvasFillRule): void
+ isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean
+ isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean
+ isPointInStroke(x: number, y: number): boolean
+ isPointInStroke(path: Path2D, x: number, y: number): boolean
+ stroke(): void
+ stroke(path: Path2D): void
+}
+
+type GlobalCompositeOperation =
+ | 'color'
+ | 'color-burn'
+ | 'color-dodge'
+ | 'copy'
+ | 'darken'
+ | 'destination-atop'
+ | 'destination-in'
+ | 'destination-out'
+ | 'destination-over'
+ | 'difference'
+ | 'exclusion'
+ | 'hard-light'
+ | 'hue'
+ | 'lighten'
+ | 'lighter'
+ | 'luminosity'
+ | 'multiply'
+ | 'overlay'
+ | 'saturation'
+ | 'screen'
+ | 'soft-light'
+ | 'source-atop'
+ | 'source-in'
+ | 'source-out'
+ | 'source-over'
+ | 'xor'
+
+interface CanvasCompositing {
+ globalAlpha: number
+ globalCompositeOperation: GlobalCompositeOperation
+}
+
+interface DOMPointInit {
+ w?: number
+ x?: number
+ y?: number
+ z?: number
+}
+interface CanvasPattern {
+ setTransform(transform?: DOMMatrix2DInit): void
+}
+
+interface CanvasGradient {
+ addColorStop(offset: number, color: string): void
+}
+
+interface DOMRectInit {
+ height?: number
+ width?: number
+ x?: number
+ y?: number
+}
+
+interface DOMMatrixInit extends DOMMatrix2DInit {
+ is2D?: boolean
+ m13?: number
+ m14?: number
+ m23?: number
+ m24?: number
+ m31?: number
+ m32?: number
+ m33?: number
+ m34?: number
+ m43?: number
+ m44?: number
+}
+
+// ----------- added types
+
+export interface DOMMatrix2DInit {
+ a: number
+ b: number
+ c: number
+ d: number
+ e: number
+ f: number
+}
+
+interface DOMMatrixReadOnly {
+ readonly a: number
+ readonly b: number
+ readonly c: number
+ readonly d: number
+ readonly e: number
+ readonly f: number
+ readonly is2D: boolean
+ readonly isIdentity: boolean
+ readonly m11: number
+ readonly m12: number
+ readonly m13: number
+ readonly m14: number
+ readonly m21: number
+ readonly m22: number
+ readonly m23: number
+ readonly m24: number
+ readonly m31: number
+ readonly m32: number
+ readonly m33: number
+ readonly m34: number
+ readonly m41: number
+ readonly m42: number
+ readonly m43: number
+ readonly m44: number
+ flipX(): DOMMatrix
+ flipY(): DOMMatrix
+ inverse(): DOMMatrix
+ multiply(other?: DOMMatrixInit): DOMMatrix
+ rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix
+ rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix
+ rotateFromVector(x?: number, y?: number): DOMMatrix
+ scale(
+ scaleX?: number,
+ scaleY?: number,
+ scaleZ?: number,
+ originX?: number,
+ originY?: number,
+ originZ?: number,
+ ): DOMMatrix
+ scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix
+ skewX(sx?: number): DOMMatrix
+ skewY(sy?: number): DOMMatrix
+ toFloat32Array(): Float32Array
+ toFloat64Array(): Float64Array
+ transformPoint(point?: DOMPointInit): DOMPoint
+ translate(tx?: number, ty?: number, tz?: number): DOMMatrix
+ toString(): string
+}
+
+export interface DOMMatrix extends DOMMatrixReadOnly {
+ a: number
+ b: number
+ c: number
+ d: number
+ e: number
+ f: number
+ m11: number
+ m12: number
+ m13: number
+ m14: number
+ m21: number
+ m22: number
+ m23: number
+ m24: number
+ m31: number
+ m32: number
+ m33: number
+ m34: number
+ m41: number
+ m42: number
+ m43: number
+ m44: number
+ invertSelf(): DOMMatrix
+ multiplySelf(other?: DOMMatrixInit): DOMMatrix
+ preMultiplySelf(other?: DOMMatrixInit): DOMMatrix
+ rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix
+ rotateFromVectorSelf(x?: number, y?: number): DOMMatrix
+ rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix
+ scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix
+ scaleSelf(
+ scaleX?: number,
+ scaleY?: number,
+ scaleZ?: number,
+ originX?: number,
+ originY?: number,
+ originZ?: number,
+ ): DOMMatrix
+ setMatrixValue(transformList: string): DOMMatrix
+ skewXSelf(sx?: number): DOMMatrix
+ skewYSelf(sy?: number): DOMMatrix
+ translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix
+ toJSON(): { [K in OmitNeverOfMatrix]: DOMMatrix[K] }
+}
+
+type OmitMatrixMethod = { [K in keyof DOMMatrix]: DOMMatrix[K] extends (...args: any[]) => any ? never : K }
+
+type OmitNeverOfMatrix = OmitMatrixMethod[keyof OmitMatrixMethod]
+
+export const DOMMatrix: {
+ prototype: DOMMatrix
+ new(init?: string | number[]): DOMMatrix
+ fromFloat32Array(array32: Float32Array): DOMMatrix
+ fromFloat64Array(array64: Float64Array): DOMMatrix
+ fromMatrix(other?: DOMMatrixInit): DOMMatrix
+}
+
+interface DOMRectReadOnly {
+ readonly bottom: number
+ readonly height: number
+ readonly left: number
+ readonly right: number
+ readonly top: number
+ readonly width: number
+ readonly x: number
+ readonly y: number
+}
+
+export interface DOMRect extends DOMRectReadOnly {
+ height: number
+ width: number
+ x: number
+ y: number
+ toJSON(): Omit
+}
+
+export const DOMRect: {
+ prototype: DOMRect
+ new(x?: number, y?: number, width?: number, height?: number): DOMRect
+ fromRect(other?: DOMRectInit): DOMRect
+}
+
+interface DOMPointReadOnly {
+ readonly w: number
+ readonly x: number
+ readonly y: number
+ readonly z: number
+ matrixTransform(matrix?: DOMMatrixInit): DOMPoint
+}
+
+export interface DOMPoint extends DOMPointReadOnly {
+ w: number
+ x: number
+ y: number
+ z: number
+ toJSON(): Omit
+}
+
+export const DOMPoint: {
+ prototype: DOMPoint
+ new(x?: number, y?: number, z?: number, w?: number): DOMPoint
+ fromPoint(other?: DOMPointInit): DOMPoint
+}
+
+export class ImageData {
+ /**
+ * Returns the one-dimensional array containing the data in RGBA order, as integers in the range 0 to 255.
+ */
+ readonly data: Uint8ClampedArray
+ /**
+ * Returns the actual dimensions of the data in the ImageData object, in pixels.
+ */
+ readonly height: number
+ /**
+ * Returns the actual dimensions of the data in the ImageData object, in pixels.
+ */
+ readonly width: number
+
+ constructor(sw: number, sh: number, attr?: { colorSpace?: ColorSpace })
+ constructor(imageData: ImageData, attr?: { colorSpace?: ColorSpace })
+ constructor(data: Uint8ClampedArray | Uint16Array | Float16Array | Float32Array, sw: number, sh?: number)
+}
+
+export class Image {
+ constructor()
+ // attrs only affects SVG
+ constructor(width: number, height: number, attrs?: { colorSpace?: ColorSpace })
+ width: number
+ height: number
+ readonly naturalWidth: number
+ readonly naturalHeight: number
+ readonly complete: boolean
+ readonly currentSrc: string | null
+ alt: string
+ // the src can be a Uint8Array or a string
+ // if it's a string, it can be a file path, a data URL, a remote URL, or a SVG string
+ src: Uint8Array | string
+ onload?(): void
+ onerror?(err: Error): void
+ decode(): Promise
+}
+
+export class Path2D {
+ constructor(path?: Path2D | string)
+
+ addPath(path: Path2D, transform?: DOMMatrix2DInit): void
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean): void
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void
+ closePath(): void
+ ellipse(
+ x: number,
+ y: number,
+ radiusX: number,
+ radiusY: number,
+ rotation: number,
+ startAngle: number,
+ endAngle: number,
+ anticlockwise?: boolean,
+ ): void
+ lineTo(x: number, y: number): void
+ moveTo(x: number, y: number): void
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void
+ rect(x: number, y: number, w: number, h: number): void
+ roundRect(x: number, y: number, w: number, h: number, radii?: number | number[]): void
+
+ // PathKit methods
+ op(path: Path2D, operation: PathOp): Path2D
+ toSVGString(): string
+ getFillType(): FillType
+ getFillTypeString(): string
+ setFillType(type: FillType): void
+ simplify(): Path2D
+ asWinding(): Path2D
+ stroke(stroke?: StrokeOptions): Path2D
+ transform(transform: DOMMatrix2DInit): Path2D
+ getBounds(): [left: number, top: number, right: number, bottom: number]
+ computeTightBounds(): [left: number, top: number, right: number, bottom: number]
+ trim(start: number, end: number, isComplement?: boolean): Path2D
+ dash(on: number, off: number, phase: number): Path2D
+ round(radius: number): Path2D
+ equals(path: Path2D): boolean
+}
+
+export interface StrokeOptions {
+ width?: number
+ miterLimit?: number
+ cap?: StrokeCap
+ join?: StrokeJoin
+}
+
+export interface SKRSContext2D extends CanvasRenderingContext2D {
+ canvas: Canvas
+ /**
+ * @param startAngle The angle at which to begin the gradient, in radians. Angle measurements start vertically above the centre and move around clockwise.
+ * @param x The x-axis coordinate of the centre of the gradient.
+ * @param y The y-axis coordinate of the centre of the gradient.
+ */
+ createConicGradient(startAngle: number, x: number, y: number): CanvasGradient
+ drawImage(image: Image | Canvas, dx: number, dy: number): void
+ drawImage(image: Image | Canvas, dx: number, dy: number, dw: number, dh: number): void
+ drawImage(
+ image: Image | Canvas,
+ sx: number,
+ sy: number,
+ sw: number,
+ sh: number,
+ dx: number,
+ dy: number,
+ dw: number,
+ dh: number,
+ ): void
+ /**
+ * Draw another canvas, preserving vector graphics when possible.
+ * When the source canvas has recorded operations, this method preserves the
+ * SkPicture representation without rasterization, which can be faster than
+ * drawImage. Falls back to bitmap rendering if no picture is available.
+ */
+ drawCanvas(canvas: Canvas, dx: number, dy: number): void
+ drawCanvas(canvas: Canvas, dx: number, dy: number, dWidth: number, dHeight: number): void
+ drawCanvas(
+ canvas: Canvas,
+ sx: number,
+ sy: number,
+ sWidth: number,
+ sHeight: number,
+ dx: number,
+ dy: number,
+ dWidth: number,
+ dHeight: number,
+ ): void
+ createPattern(
+ image: Image | ImageData | Canvas | SvgCanvas,
+ repeat: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | null,
+ ): CanvasPattern
+ getContextAttributes(): { alpha: boolean; desynchronized: boolean }
+ getTransform(): DOMMatrix
+
+ letterSpacing: string
+ wordSpacing: string
+}
+
+export type ColorSpace = 'srgb' | 'display-p3'
+
+export interface ContextAttributes {
+ alpha?: boolean
+ colorSpace?: ColorSpace
+}
+
+export interface SvgCanvas {
+ width: number
+ height: number
+ getContext(contextType: '2d', contextAttributes?: ContextAttributes): SKRSContext2D
+
+ getContent(): Buffer
+}
+
+export interface AvifConfig {
+ /** 0-100 scale, 100 is lossless */
+ quality?: number
+ /** 0-100 scale */
+ alphaQuality?: number
+ /** rav1e preset 1 (slow) 10 (fast but crappy), default is 4 */
+ speed?: number
+ /** How many threads should be used (0 = match core count) */
+ threads?: number
+ /** set to '4:2:0' to use chroma subsampling, default '4:4:4' */
+ chromaSubsampling?: ChromaSubsampling
+}
+
+/** GIF encoding configuration for single-frame encoding */
+export interface GifConfig {
+ /**
+ * Quality for NeuQuant color quantization (1-30, lower = slower but better quality)
+ * @default 10
+ */
+ quality?: number
+}
+
+/** Configuration for the GIF encoder (animated GIFs) */
+export interface GifEncoderConfig {
+ /**
+ * Loop count: 0 = infinite loop, positive number = finite loops
+ * @default 0 (infinite)
+ */
+ repeat?: number
+ /**
+ * Quality for NeuQuant color quantization (1-30, lower = slower but better quality)
+ * @default 10
+ */
+ quality?: number
+}
+
+/** Configuration for individual GIF frames */
+export interface GifFrameConfig {
+ /**
+ * Frame delay in milliseconds
+ * @default 100
+ */
+ delay?: number
+ /** Disposal method for this frame */
+ disposal?: GifDisposal
+ /** Transparent color index (0-255), if the frame has transparency */
+ transparent?: number
+ /** X offset of this frame within the canvas */
+ left?: number
+ /** Y offset of this frame within the canvas */
+ top?: number
+}
+
+/** GIF frame disposal method */
+export enum GifDisposal {
+ /** Keep the frame visible (default) */
+ Keep = 0,
+ /** Clear the frame area to the background color */
+ Background = 1,
+ /** Restore to the previous frame */
+ Previous = 2,
+}
+
+/**
+ * GIF Encoder for creating animated GIFs.
+ * Implements `Disposable` interface for use with the `using` keyword (ES2024).
+ *
+ * @example
+ * ```typescript
+ * // Basic usage
+ * const encoder = new GifEncoder(100, 100, { repeat: 0, quality: 10 });
+ * encoder.addFrame(rgbaData, 100, 100, { delay: 100 });
+ * encoder.addFrame(rgbaData2, 100, 100, { delay: 100 });
+ * const buffer = encoder.finish();
+ *
+ * // With `using` keyword (automatic cleanup)
+ * {
+ * using encoder = new GifEncoder(100, 100);
+ * encoder.addFrame(frame1, 100, 100, { delay: 100 });
+ * const buffer = encoder.finish();
+ * } // encoder automatically disposed
+ * ```
+ */
+export class GifEncoder implements Disposable {
+ /**
+ * Create a new GIF encoder with the specified dimensions
+ * @param width - Width of the GIF canvas in pixels
+ * @param height - Height of the GIF canvas in pixels
+ * @param config - Optional encoder configuration
+ */
+ constructor(width: number, height: number, config?: GifEncoderConfig)
+
+ /** Width of the GIF canvas */
+ readonly width: number
+ /** Height of the GIF canvas */
+ readonly height: number
+ /** Number of frames added so far */
+ readonly frameCount: number
+
+ /**
+ * Add a frame from RGBA pixel data
+ * @param data - RGBA pixel data (must be width * height * 4 bytes)
+ * @param width - Width of the frame in pixels
+ * @param height - Height of the frame in pixels
+ * @param config - Optional frame configuration
+ */
+ addFrame(data: Uint8Array, width: number, height: number, config?: GifFrameConfig): void
+
+ /**
+ * Finish encoding and return the GIF data.
+ * Clears all accumulated frames after encoding.
+ * @throws Error if no frames have been added
+ */
+ finish(): Buffer
+
+ /**
+ * Dispose of the encoder, clearing all accumulated frames without encoding.
+ * Called automatically when using the `using` keyword.
+ */
+ dispose(): void
+
+ /**
+ * Symbol.dispose implementation for ES2024 Explicit Resource Management.
+ * Allows using `using encoder = new GifEncoder(...)` syntax.
+ */
+ [Symbol.dispose](): void
+}
+/**
+ * https://en.wikipedia.org/wiki/Chroma_subsampling#Types_of_sampling_and_subsampling
+ * https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Video_concepts
+ */
+export enum ChromaSubsampling {
+ /**
+ * Each of the three Y'CbCr components has the same sample rate, thus there is no chroma subsampling. This scheme is sometimes used in high-end film scanners and cinematic post-production.
+ * Note that "4:4:4" may instead be wrongly referring to R'G'B' color space, which implicitly also does not have any chroma subsampling (except in JPEG R'G'B' can be subsampled).
+ * Formats such as HDCAM SR can record 4:4:4 R'G'B' over dual-link HD-SDI.
+ */
+ Yuv444 = 0,
+ /**
+ * The two chroma components are sampled at half the horizontal sample rate of luma: the horizontal chroma resolution is halved. This reduces the bandwidth of an uncompressed video signal by one-third.
+ * Many high-end digital video formats and interfaces use this scheme:
+ * - [AVC-Intra 100](https://en.wikipedia.org/wiki/AVC-Intra)
+ * - [Digital Betacam](https://en.wikipedia.org/wiki/Betacam#Digital_Betacam)
+ * - [Betacam SX](https://en.wikipedia.org/wiki/Betacam#Betacam_SX)
+ * - [DVCPRO50](https://en.wikipedia.org/wiki/DV#DVCPRO) and [DVCPRO HD](https://en.wikipedia.org/wiki/DV#DVCPRO_HD)
+ * - [Digital-S](https://en.wikipedia.org/wiki/Digital-S)
+ * - [CCIR 601](https://en.wikipedia.org/wiki/Rec._601) / [Serial Digital Interface](https://en.wikipedia.org/wiki/Serial_digital_interface) / [D1](https://en.wikipedia.org/wiki/D-1_(Sony))
+ * - [ProRes (HQ, 422, LT, and Proxy)](https://en.wikipedia.org/wiki/Apple_ProRes)
+ * - [XDCAM HD422](https://en.wikipedia.org/wiki/XDCAM)
+ * - [Canon MXF HD422](https://en.wikipedia.org/wiki/Canon_XF-300)
+ */
+ Yuv422 = 1,
+ /**
+ * n 4:2:0, the horizontal sampling is doubled compared to 4:1:1,
+ * but as the **Cb** and **Cr** channels are only sampled on each alternate line in this scheme, the vertical resolution is halved.
+ * The data rate is thus the same.
+ * This fits reasonably well with the PAL color encoding system, since this has only half the vertical chrominance resolution of [NTSC](https://en.wikipedia.org/wiki/NTSC).
+ * It would also fit extremely well with the [SECAM](https://en.wikipedia.org/wiki/SECAM) color encoding system,
+ * since like that format, 4:2:0 only stores and transmits one color channel per line (the other channel being recovered from the previous line).
+ * However, little equipment has actually been produced that outputs a SECAM analogue video signal.
+ * In general, SECAM territories either have to use a PAL-capable display or a [transcoder](https://en.wikipedia.org/wiki/Transcoding) to convert the PAL signal to SECAM for display.
+ */
+ Yuv420 = 2,
+ /**
+ * What if the chroma subsampling model is 4:0:0?
+ * That says to use every pixel of luma data, but that each row has 0 chroma samples applied to it. The resulting image, then, is comprised solely of the luminance dataβa greyscale image.
+ */
+ Yuv400 = 3,
+}
+
+export interface ConvertToBlobOptions {
+ mime?: string
+ quality?: number
+}
+
+export class Canvas {
+ constructor(width: number, height: number, flag?: SvgExportFlag)
+
+ width: number
+ height: number
+ getContext(contextType: '2d', contextAttributes?: ContextAttributes): SKRSContext2D
+ encodeSync(format: 'webp' | 'jpeg', quality?: number): Buffer
+ encodeSync(format: 'png'): Buffer
+ encodeSync(format: 'avif', cfg?: AvifConfig): Buffer
+ encodeSync(format: 'gif', quality?: number): Buffer
+ encode(format: 'webp' | 'jpeg', quality?: number): Promise
+ encode(format: 'png'): Promise
+ encode(format: 'avif', cfg?: AvifConfig): Promise
+ encode(format: 'gif', quality?: number): Promise
+ encodeStream(format: 'webp' | 'jpeg', quality?: number): ReadableStream
+ encodeStream(format: 'png'): ReadableStream
+ toBuffer(mime: 'image/png'): Buffer
+ toBuffer(mime: 'image/jpeg' | 'image/webp', quality?: number): Buffer
+ toBuffer(mime: 'image/avif', cfg?: AvifConfig): Buffer
+ toBuffer(mime: 'image/gif', quality?: number): Buffer
+ // raw pixels
+ data(): Buffer
+ toDataURL(mime?: 'image/png'): string
+ toDataURL(mime: 'image/jpeg' | 'image/webp', quality?: number): string
+ toDataURL(mime: 'image/gif', quality?: number): string
+ toDataURL(mime?: 'image/jpeg' | 'image/webp' | 'image/png' | 'image/gif', quality?: number): string
+ toDataURL(mime?: 'image/avif', cfg?: AvifConfig): string
+
+ toDataURLAsync(mime?: 'image/png'): Promise
+ toDataURLAsync(mime: 'image/jpeg' | 'image/webp', quality?: number): Promise
+ toDataURLAsync(mime: 'image/gif', quality?: number): Promise
+ toDataURLAsync(mime?: 'image/jpeg' | 'image/webp' | 'image/png' | 'image/gif', quality?: number): Promise
+ toDataURLAsync(mime?: 'image/avif', cfg?: AvifConfig): Promise
+
+ toBlob(callback: (blob: Blob | null) => void, mime?: string, quality?: number): void
+ convertToBlob(options?: ConvertToBlobOptions): Promise
+}
+
+export function createCanvas(width: number, height: number): Canvas
+
+export function createCanvas(width: number, height: number, svgExportFlag: SvgExportFlag): SvgCanvas
+
+export declare class FontKey {
+ // make it a unique type
+ private readonly key: symbol
+ readonly typefaceId: number
+}
+
+export interface FontVariationAxis {
+ /** OpenType tag as a 32-bit integer (e.g., 0x77676874 for 'wght') */
+ tag: number
+ /** Current value for this axis */
+ value: number
+ /** Minimum value for this axis */
+ min: number
+ /** Maximum value for this axis */
+ max: number
+ /** Default value for this axis */
+ def: number
+ /** Whether this axis should be hidden from UI */
+ hidden: boolean
+}
+
+interface IGlobalFonts {
+ readonly families: { family: string; styles: { weight: number; width: string; style: string }[] }[]
+ // return FontKey if succeeded, null if failed
+ register(font: Buffer, nameAlias?: string): FontKey | null
+ // absolute path - returns FontKey if succeeded, null if failed
+ registerFromPath(path: string, nameAlias?: string): FontKey | null
+ has(name: string): boolean
+ loadFontsFromDir(path: string): number
+ /**
+ * Set an alias for a font family.
+ * @param fontName The original font family name
+ * @param alias The alias name to set
+ * @returns true if the alias was set successfully, false if the font family doesn't exist
+ */
+ setAlias(fontName: string, alias: string): boolean
+ remove(key: FontKey): boolean
+ /**
+ * Remove multiple fonts by their keys in a single operation.
+ * More efficient than calling remove() multiple times as it triggers only one rebuild.
+ * @param fontKeys Array of FontKey objects to remove
+ * @returns Number of fonts successfully removed
+ */
+ removeBatch(fontKeys: FontKey[]): number
+ /**
+ * Remove ALL registered fonts.
+ * @returns Number of fonts removed
+ */
+ removeAll(): number
+ /**
+ * Get variation axes for a specific font instance
+ * @param familyName The font family name
+ * @param weight Font weight (100-900)
+ * @param width Font width/stretch value
+ * @param slant Font slant (0 = upright, 1 = italic, 2 = oblique)
+ * @returns Array of variation axes or empty array if not a variable font
+ */
+ getVariationAxes(familyName: string, weight: number, width: number, slant: number): FontVariationAxis[]
+ /**
+ * Check if a font has variable font capabilities
+ * @param familyName The font family name
+ * @param weight Font weight (100-900)
+ * @param width Font width/stretch value
+ * @param slant Font slant (0 = upright, 1 = italic, 2 = oblique)
+ * @returns true if the font is a variable font
+ */
+ hasVariations(familyName: string, weight: number, width: number, slant: number): boolean
+}
+
+export const GlobalFonts: IGlobalFonts
+
+export enum PathOp {
+ Difference = 0, // subtract the op path from the first path
+ Intersect = 1, // intersect the two paths
+ Union = 2, // union (inclusive-or) the two paths
+ Xor = 3, // exclusive-or the two paths
+ ReverseDifference = 4, // subtract the first path from the op path
+}
+
+export enum FillType {
+ Winding = 0,
+ EvenOdd = 1,
+ InverseWinding = 2,
+ InverseEvenOdd = 3,
+}
+
+export enum StrokeJoin {
+ Miter = 0,
+ Round = 1,
+ Bevel = 2,
+}
+
+export enum StrokeCap {
+ Butt = 0,
+ Round = 1,
+ Square = 2,
+}
+
+export enum SvgExportFlag {
+ ConvertTextToPaths = 0x01,
+ NoPrettyXML = 0x02,
+ RelativePathEncoding = 0x04,
+}
+
+export function convertSVGTextToPath(svg: Buffer | string): Buffer
+
+export interface LoadImageOptions {
+ alt?: string
+ maxRedirects?: number
+ requestOptions?: import('http').RequestOptions
+}
+
+export function loadImage(
+ source: string | URL | Buffer | ArrayBufferLike | Uint8Array | Image | import('stream').Readable,
+ options?: LoadImageOptions,
+): Promise
+
+export interface PDFMetadata {
+ /// The document's title
+ title?: string
+ /// The name of the person who created the document
+ author?: string
+ /// The subject of the document
+ subject?: string
+ /// Keywords associated with the document
+ keywords?: string
+ /// The product that created the original document
+ creator?: string
+ /// The product that is converting this document to PDF (defaults to "Skia/PDF")
+ producer?: string
+ /// The DPI for rasterization (default: 72.0)
+ rasterDPI?: number
+ /// Encoding quality: 0-100 for lossy JPEG, 101 for lossless (default: 101)
+ encodingQuality?: number
+ /// Whether to conform to PDF/A-2b standard (default: false)
+ pdfa?: boolean
+ /// Compression level: -1 (default), 0 (none), 1 (low/fast), 6 (average), 9 (high/slow)
+ compressionLevel?: number
+}
+
+export interface Rect {
+ left: number
+ top: number
+ right: number
+ bottom: number
+}
+
+export declare class PDFDocument {
+ constructor(metadata?: PDFMetadata | undefined | null)
+ beginPage(width: number, height: number, rect?: Rect | undefined | null): CanvasRenderingContext2D
+ endPage(): void
+ close(): Buffer
+}
+
+export interface LottieAnimationOptions {
+ /** Base path for resolving external resources (images, fonts) */
+ resourcePath?: string
+}
+
+export interface LottieRenderRect {
+ x: number
+ y: number
+ width: number
+ height: number
+}
+
+/**
+ * Lottie animation class for loading and rendering Lottie JSON files.
+ *
+ * @example
+ * ```typescript
+ * import { LottieAnimation, createCanvas } from '@napi-rs/canvas'
+ *
+ * const animation = LottieAnimation.loadFromFile('./animation.json')
+ * const canvas = createCanvas(animation.width, animation.height)
+ * const ctx = canvas.getContext('2d')
+ *
+ * // Render frame 0
+ * animation.seekFrame(0)
+ * animation.render(ctx)
+ *
+ * // Save to PNG
+ * const buffer = canvas.toBuffer('image/png')
+ * ```
+ */
+export declare class LottieAnimation {
+ /**
+ * Load animation from JSON string or Buffer
+ * @param data - JSON string or Buffer containing Lottie animation data
+ * @param options - Optional configuration
+ */
+ static loadFromData(data: string | Buffer, options?: LottieAnimationOptions): LottieAnimation
+
+ /**
+ * Load animation from file path
+ * External assets are resolved relative to the file's directory
+ * @param path - Path to the Lottie JSON file
+ */
+ static loadFromFile(path: string): LottieAnimation
+
+ /** Animation duration in seconds */
+ readonly duration: number
+
+ /** Frame rate (frames per second) */
+ readonly fps: number
+
+ /** Total frame count */
+ readonly frames: number
+
+ /** Animation width in pixels */
+ readonly width: number
+
+ /** Animation height in pixels */
+ readonly height: number
+
+ /** Lottie format version string */
+ readonly version: string
+
+ /** Animation in-point (start frame) */
+ readonly inPoint: number
+
+ /** Animation out-point (end frame) */
+ readonly outPoint: number
+
+ /**
+ * Seek to normalized position
+ * @param t - Position between 0.0 (start) and 1.0 (end)
+ */
+ seek(t: number): void
+
+ /**
+ * Seek to specific frame index
+ * @param frame - Frame index (0 = first frame)
+ */
+ seekFrame(frame: number): void
+
+ /**
+ * Seek to specific time in seconds
+ * @param seconds - Time in seconds from start
+ */
+ seekTime(seconds: number): void
+
+ /**
+ * Render current frame to canvas context
+ * @param ctx - Canvas 2D rendering context
+ * @param dst - Optional destination rectangle for scaling/positioning
+ */
+ render(ctx: CanvasRenderingContext2D, dst?: LottieRenderRect): void
+}
diff --git a/frontend/node_modules/@napi-rs/canvas/index.js b/frontend/node_modules/@napi-rs/canvas/index.js
new file mode 100644
index 0000000..c7773c8
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/index.js
@@ -0,0 +1,196 @@
+const { platform, homedir } = require('os')
+const { join } = require('path')
+
+const {
+ clearAllCache,
+ CanvasRenderingContext2D,
+ CanvasElement,
+ SVGCanvas,
+ Path: Path2D,
+ ImageData,
+ Image,
+ FontKey,
+ GlobalFonts,
+ PathOp,
+ FillType,
+ StrokeJoin,
+ StrokeCap,
+ convertSVGTextToPath,
+ PdfDocument,
+ GifEncoder,
+ GifDisposal,
+ LottieAnimation,
+} = require('./js-binding')
+
+const { DOMPoint, DOMMatrix, DOMRect } = require('./geometry')
+
+const loadImage = require('./load-image')
+
+// Add Symbol.dispose support for GifEncoder (ECMAScript 2024 Explicit Resource Management)
+if (GifEncoder && typeof Symbol.dispose !== 'undefined') {
+ GifEncoder.prototype[Symbol.dispose] = function () {
+ this.dispose()
+ }
+}
+
+const SvgExportFlag = {
+ ConvertTextToPaths: 0x01,
+ NoPrettyXML: 0x02,
+ RelativePathEncoding: 0x04,
+}
+
+if (!('families' in GlobalFonts)) {
+ Object.defineProperty(GlobalFonts, 'families', {
+ get: function () {
+ return JSON.parse(GlobalFonts.getFamilies().toString())
+ },
+ })
+}
+
+if (!('has' in GlobalFonts)) {
+ Object.defineProperty(GlobalFonts, 'has', {
+ value: function has(name) {
+ return !!JSON.parse(GlobalFonts.getFamilies().toString()).find(({ family }) => family === name)
+ },
+ configurable: false,
+ enumerable: false,
+ writable: false,
+ })
+}
+
+const _toBlob = CanvasElement.prototype.toBlob
+const _convertToBlob = CanvasElement.prototype.convertToBlob
+if ('Blob' in globalThis) {
+ CanvasElement.prototype.toBlob = function toBlob(callback, mimeType, quality) {
+ _toBlob.call(
+ this,
+ function (/** @type {Uint8Array} */ imageBuffer) {
+ const blob = new Blob([imageBuffer.buffer], { type: mimeType })
+ callback(blob)
+ },
+ mimeType,
+ quality,
+ )
+ }
+ CanvasElement.prototype.convertToBlob = function convertToBlob(options) {
+ return _convertToBlob.call(this, options).then((/** @type {Uint8Array} */ imageBuffer) => {
+ const blob = new Blob([imageBuffer.buffer], { type: options?.mime || 'image/png' })
+ return blob
+ })
+ }
+} else {
+ // oxlint-disable-next-line no-unused-vars
+ CanvasElement.prototype.toBlob = function toBlob(callback, mimeType, quality) {
+ callback(null)
+ }
+ // oxlint-disable-next-line no-unused-vars
+ CanvasElement.prototype.convertToBlob = function convertToBlob(options) {
+ return Promise.reject(new Error('Blob is not supported in this environment'))
+ }
+}
+
+const _getTransform = CanvasRenderingContext2D.prototype.getTransform
+
+CanvasRenderingContext2D.prototype.getTransform = function getTransform() {
+ const transform = _getTransform.apply(this, arguments)
+ // monkey patched, skip
+ if (transform instanceof DOMMatrix) {
+ return transform
+ }
+ const { a, b, c, d, e, f } = transform
+ return new DOMMatrix([a, b, c, d, e, f])
+}
+
+// Workaround for webpack bundling issue with drawImage
+// Store the original drawImage method
+const _drawImage = CanvasRenderingContext2D.prototype.drawImage
+
+// Override drawImage to ensure proper type recognition in bundled environments
+CanvasRenderingContext2D.prototype.drawImage = function drawImage(image, ...args) {
+ // If the image is a Canvas-like object but not recognized due to bundling,
+ // we need to ensure it's properly identified
+ if (image && typeof image === 'object') {
+ // First check if it's a wrapped canvas object
+ if (image.canvas instanceof CanvasElement || image.canvas instanceof SVGCanvas) {
+ image = image.canvas
+ } else if (image._canvas instanceof CanvasElement || image._canvas instanceof SVGCanvas) {
+ image = image._canvas
+ }
+ // Then check if it's a Canvas-like object by checking for getContext method
+ else if (typeof image.getContext === 'function' && image.width && image.height) {
+ // If it has canvas properties but isn't recognized as CanvasElement or SVGCanvas,
+ // try to correct the prototype chain
+ if (!(image instanceof CanvasElement) && !(image instanceof SVGCanvas)) {
+ // Try to create a proper CanvasElement from the canvas-like object
+ // This helps when webpack has transformed the prototype chain
+ Object.setPrototypeOf(image, CanvasElement.prototype)
+ }
+ }
+ }
+
+ // Call the original drawImage with the potentially corrected image
+ return _drawImage.apply(this, [image, ...args])
+}
+
+function createCanvas(width, height, flag) {
+ const isSvgBackend = typeof flag !== 'undefined'
+ return isSvgBackend ? new SVGCanvas(width, height, flag) : new CanvasElement(width, height)
+}
+
+class Canvas {
+ constructor(width, height, flag) {
+ return createCanvas(width, height, flag)
+ }
+
+ static [Symbol.hasInstance](instance) {
+ return instance instanceof CanvasElement || instance instanceof SVGCanvas
+ }
+}
+
+if (!process.env.DISABLE_SYSTEM_FONTS_LOAD) {
+ GlobalFonts.loadSystemFonts()
+ const platformName = platform()
+ const homedirPath = homedir()
+ switch (platformName) {
+ case 'win32':
+ GlobalFonts.loadFontsFromDir(join(homedirPath, 'AppData', 'Local', 'Microsoft', 'Windows', 'Fonts'))
+ break
+ case 'darwin':
+ GlobalFonts.loadFontsFromDir(join(homedirPath, 'Library', 'Fonts'))
+ break
+ case 'linux':
+ GlobalFonts.loadFontsFromDir(join('usr', 'local', 'share', 'fonts'))
+ GlobalFonts.loadFontsFromDir(join(homedirPath, '.fonts'))
+ break
+ }
+}
+
+module.exports = {
+ clearAllCache,
+ Canvas,
+ createCanvas,
+ Path2D,
+ ImageData,
+ Image,
+ PathOp,
+ FillType,
+ StrokeCap,
+ StrokeJoin,
+ SvgExportFlag,
+ GlobalFonts: GlobalFonts,
+ convertSVGTextToPath,
+ DOMPoint,
+ DOMMatrix,
+ DOMRect,
+ loadImage,
+ FontKey,
+ // Export these for better webpack compatibility
+ CanvasElement,
+ SVGCanvas,
+ PDFDocument: PdfDocument,
+ // GIF encoding
+ GifEncoder,
+ GifDisposal,
+ // Lottie animation
+ LottieAnimation,
+}
diff --git a/frontend/node_modules/@napi-rs/canvas/js-binding.js b/frontend/node_modules/@napi-rs/canvas/js-binding.js
new file mode 100644
index 0000000..1152c68
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/js-binding.js
@@ -0,0 +1,464 @@
+// prettier-ignore
+/* eslint-disable */
+// @ts-nocheck
+/* auto-generated by NAPI-RS */
+
+const { readFileSync } = require('fs')
+let nativeBinding = null
+const loadErrors = []
+
+const isMusl = () => {
+ let musl = false
+ if (process.platform === 'linux') {
+ musl = isMuslFromFilesystem()
+ if (musl === null) {
+ musl = isMuslFromReport()
+ }
+ if (musl === null) {
+ musl = isMuslFromChildProcess()
+ }
+ }
+ return musl
+}
+
+const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
+
+const isMuslFromFilesystem = () => {
+ try {
+ return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
+ } catch {
+ return null
+ }
+}
+
+const isMuslFromReport = () => {
+ let report = null
+ if (typeof process.report?.getReport === 'function') {
+ process.report.excludeNetwork = true
+ report = process.report.getReport()
+ }
+ if (!report) {
+ return null
+ }
+ if (report.header && report.header.glibcVersionRuntime) {
+ return false
+ }
+ if (Array.isArray(report.sharedObjects)) {
+ if (report.sharedObjects.some(isFileMusl)) {
+ return true
+ }
+ }
+ return false
+}
+
+const isMuslFromChildProcess = () => {
+ try {
+ return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
+ } catch (e) {
+ // If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
+ return false
+ }
+}
+
+function requireNative() {
+ if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
+ try {
+ return require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH)
+ } catch (err) {
+ loadErrors.push(err)
+ }
+ } else if (process.platform === 'android') {
+ if (process.arch === 'arm64') {
+ try {
+ return require('./skia.android-arm64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-android-arm64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm') {
+ try {
+ return require('./skia.android-arm-eabi.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-android-arm-eabi')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
+ }
+ } else if (process.platform === 'win32') {
+ if (process.arch === 'x64') {
+ if (
+ process.config?.variables?.shlib_suffix === 'dll.a' ||
+ process.config?.variables?.node_target_type === 'shared_library'
+ ) {
+ try {
+ return require('./skia.win32-x64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-win32-x64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ return require('./skia.win32-x64-msvc.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-win32-x64-msvc')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'ia32') {
+ try {
+ return require('./skia.win32-ia32-msvc.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-win32-ia32-msvc')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm64') {
+ try {
+ return require('./skia.win32-arm64-msvc.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-win32-arm64-msvc')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
+ }
+ } else if (process.platform === 'darwin') {
+ try {
+ return require('./skia.darwin-universal.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-darwin-universal')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ if (process.arch === 'x64') {
+ try {
+ return require('./skia.darwin-x64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-darwin-x64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm64') {
+ try {
+ return require('./skia.darwin-arm64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-darwin-arm64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
+ }
+ } else if (process.platform === 'freebsd') {
+ if (process.arch === 'x64') {
+ try {
+ return require('./skia.freebsd-x64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-freebsd-x64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm64') {
+ try {
+ return require('./skia.freebsd-arm64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-freebsd-arm64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
+ }
+ } else if (process.platform === 'linux') {
+ if (process.arch === 'x64') {
+ if (isMusl()) {
+ try {
+ return require('./skia.linux-x64-musl.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-x64-musl')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ return require('./skia.linux-x64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-x64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'arm64') {
+ if (isMusl()) {
+ try {
+ return require('./skia.linux-arm64-musl.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-arm64-musl')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ return require('./skia.linux-arm64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-arm64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'arm') {
+ if (isMusl()) {
+ try {
+ return require('./skia.linux-arm-musleabihf.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-arm-musleabihf')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ return require('./skia.linux-arm-gnueabihf.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-arm-gnueabihf')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'loong64') {
+ if (isMusl()) {
+ try {
+ return require('./skia.linux-loong64-musl.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-loong64-musl')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ return require('./skia.linux-loong64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-loong64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'riscv64') {
+ if (isMusl()) {
+ try {
+ return require('./skia.linux-riscv64-musl.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-riscv64-musl')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ try {
+ return require('./skia.linux-riscv64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-riscv64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ }
+ } else if (process.arch === 'ppc64') {
+ try {
+ return require('./skia.linux-ppc64-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-ppc64-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 's390x') {
+ try {
+ return require('./skia.linux-s390x-gnu.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-linux-s390x-gnu')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
+ }
+ } else if (process.platform === 'openharmony') {
+ if (process.arch === 'arm64') {
+ try {
+ return require('./skia.openharmony-arm64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-openharmony-arm64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'x64') {
+ try {
+ return require('./skia.openharmony-x64.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ return require('@napi-rs/canvas-openharmony-x64')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else if (process.arch === 'arm') {
+ try {
+ return require('./skia.openharmony-arm.node')
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ try {
+ const binding = require('@napi-rs/canvas-openharmony-arm')
+ return binding
+ } catch (e) {
+ loadErrors.push(e)
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
+ }
+ } else {
+ loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
+ }
+}
+
+nativeBinding = requireNative()
+
+if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
+ let wasiBinding = null
+ let wasiBindingError = null
+ try {
+ wasiBinding = require('./skia.wasi.cjs')
+ nativeBinding = wasiBinding
+ } catch (err) {
+ if (process.env.NAPI_RS_FORCE_WASI) {
+ wasiBindingError = err
+ }
+ }
+ if (!nativeBinding) {
+ try {
+ wasiBinding = require('@napi-rs/canvas-wasm32-wasi')
+ nativeBinding = wasiBinding
+ } catch (err) {
+ if (process.env.NAPI_RS_FORCE_WASI) {
+ wasiBindingError.cause = err
+ loadErrors.push(err)
+ }
+ }
+ }
+}
+
+if (!nativeBinding) {
+ if (loadErrors.length > 0) {
+ throw new Error(
+ `Cannot find native binding. ` +
+ `npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
+ 'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
+ {
+ cause: loadErrors.reduce((err, cur) => {
+ cur.cause = err
+ return cur
+ }),
+ },
+ )
+ }
+ throw new Error(`Failed to load native binding`)
+}
+
+module.exports = nativeBinding
+module.exports.GlobalFonts = nativeBinding.GlobalFonts
+module.exports.CanvasElement = nativeBinding.CanvasElement
+module.exports.CanvasGradient = nativeBinding.CanvasGradient
+module.exports.CanvasPattern = nativeBinding.CanvasPattern
+module.exports.CanvasRenderingContext2D = nativeBinding.CanvasRenderingContext2D
+module.exports.FontKey = nativeBinding.FontKey
+module.exports.Image = nativeBinding.Image
+module.exports.ImageData = nativeBinding.ImageData
+module.exports.Path = nativeBinding.Path
+module.exports.PdfDocument = nativeBinding.PdfDocument
+module.exports.SVGCanvas = nativeBinding.SVGCanvas
+module.exports.ChromaSubsampling = nativeBinding.ChromaSubsampling
+module.exports.clearAllCache = nativeBinding.clearAllCache
+module.exports.convertSVGTextToPath = nativeBinding.convertSVGTextToPath
+module.exports.FillType = nativeBinding.FillType
+module.exports.PathOp = nativeBinding.PathOp
+module.exports.StrokeCap = nativeBinding.StrokeCap
+module.exports.StrokeJoin = nativeBinding.StrokeJoin
+module.exports.SvgExportFlag = nativeBinding.SvgExportFlag
+module.exports.GifEncoder = nativeBinding.GifEncoder
+module.exports.GifDisposal = nativeBinding.GifDisposal
diff --git a/frontend/node_modules/@napi-rs/canvas/load-image.js b/frontend/node_modules/@napi-rs/canvas/load-image.js
new file mode 100644
index 0000000..a8ae707
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/load-image.js
@@ -0,0 +1,156 @@
+const fs = require('fs')
+const { Readable } = require('stream')
+const { URL } = require('url')
+
+const { Image } = require('./js-binding')
+
+let http, https
+
+const MAX_REDIRECTS = 20
+const REDIRECT_STATUSES = new Set([301, 302])
+
+/**
+ * Loads the given source into canvas Image
+ * @param {string|URL|Image|Buffer} source The image source to be loaded
+ * @param {object} options Options passed to the loader
+ */
+module.exports = async function loadImage(source, options = {}) {
+ // use the same buffer without copying if the source is a buffer
+ if (Buffer.isBuffer(source) || source instanceof Uint8Array) return createImage(source, options.alt)
+ // load readable stream as image
+ if (source instanceof Readable) return createImage(await consumeStream(source), options.alt)
+ // construct a Uint8Array if the source is ArrayBuffer or SharedArrayBuffer
+ if (source instanceof ArrayBuffer || source instanceof SharedArrayBuffer)
+ return createImage(new Uint8Array(source), options.alt)
+ // construct a buffer if the source is buffer-like
+ if (isBufferLike(source)) return createImage(Buffer.from(source), options.alt)
+ // if the source is Image instance, copy the image src to new image
+ if (source instanceof Image) return createImage(source.src, options.alt)
+ // if source is string and in data uri format, construct image using data uri
+ if (typeof source === 'string' && source.trimStart().startsWith('data:')) {
+ const commaIdx = source.indexOf(',')
+ const encoding = source.lastIndexOf('base64', commaIdx) < 0 ? 'utf-8' : 'base64'
+ const data = Buffer.from(source.slice(commaIdx + 1), encoding)
+ // Empty payload would silently complete on Image (HTML spec) and the loadImage
+ // promise would never settle; reject upfront instead.
+ // See https://github.com/Brooooooklyn/canvas/issues/1255
+ if (data.length === 0) throw new Error(`Invalid data URI: empty payload in ${source.slice(0, 64)}`)
+ return createImage(data, options.alt)
+ }
+ // if source is a string or URL instance
+ if (typeof source === 'string') {
+ // if the source exists as a file, construct image from that file
+ if (!source.startsWith('http') && !source.startsWith('https') && (await exists(source))) {
+ return createImage(source, options.alt)
+ } else {
+ // the source is a remote url here
+ source = new URL(source)
+ // attempt to download the remote source and construct image
+ const data = await new Promise((resolve, reject) =>
+ makeRequest(
+ source,
+ resolve,
+ reject,
+ typeof options.maxRedirects === 'number' && options.maxRedirects >= 0 ? options.maxRedirects : MAX_REDIRECTS,
+ options.requestOptions,
+ ),
+ )
+ return createImage(data, options.alt)
+ }
+ }
+
+ if (source instanceof URL) {
+ if (source.protocol === 'file:') {
+ // remove the leading slash on windows
+ return createImage(process.platform === 'win32' ? source.pathname.substring(1) : source.pathname, options.alt)
+ } else {
+ const data = await new Promise((resolve, reject) =>
+ makeRequest(
+ source,
+ resolve,
+ reject,
+ typeof options.maxRedirects === 'number' && options.maxRedirects >= 0 ? options.maxRedirects : MAX_REDIRECTS,
+ options.requestOptions,
+ ),
+ )
+ return createImage(data, options.alt)
+ }
+ }
+
+ // throw error as don't support that source
+ throw new TypeError('unsupported image source')
+}
+
+function makeRequest(url, resolve, reject, redirectCount, requestOptions) {
+ const isHttps = url.protocol === 'https:'
+ // lazy load the lib
+ const lib = isHttps ? (!https ? (https = require('https')) : https) : !http ? (http = require('http')) : http
+
+ lib
+ .get(url.toString(), requestOptions || {}, (res) => {
+ try {
+ const shouldRedirect = REDIRECT_STATUSES.has(res.statusCode) && typeof res.headers.location === 'string'
+ if (shouldRedirect && redirectCount > 0)
+ return makeRequest(
+ new URL(res.headers.location, url.origin),
+ resolve,
+ reject,
+ redirectCount - 1,
+ requestOptions,
+ )
+ if (typeof res.statusCode === 'number' && (res.statusCode < 200 || res.statusCode >= 300)) {
+ return reject(new Error(`remote source rejected with status code ${res.statusCode}`))
+ }
+
+ consumeStream(res).then(resolve, reject)
+ } catch (err) {
+ reject(err)
+ }
+ })
+ .on('error', reject)
+}
+
+// use stream/consumers in the future?
+function consumeStream(res) {
+ return new Promise((resolve, reject) => {
+ const chunks = []
+
+ res.on('data', (chunk) => chunks.push(chunk))
+ res.on('end', () => resolve(Buffer.concat(chunks)))
+ res.on('error', reject)
+ })
+}
+
+async function createImage(src, alt) {
+ // Empty Buffer / Uint8Array: Image follows the HTML spec (silent completion,
+ // no events) so the promise below would hang. Reject upfront.
+ // See https://github.com/Brooooooklyn/canvas/issues/1255
+ if ((Buffer.isBuffer(src) || src instanceof Uint8Array) && src.length === 0) {
+ throw new Error('loadImage: empty image data')
+ }
+
+ const image = new Image()
+ if (typeof alt === 'string') image.alt = alt
+
+ return new Promise((resolve, reject) => {
+ image.onload = () => {
+ // Wait for bitmap decode before resolving
+ image.decode().then(() => resolve(image), reject)
+ }
+ image.onerror = (e) => reject(e)
+ image.src = src
+ })
+}
+
+function isBufferLike(src) {
+ return (src && src.type === 'Buffer') || Array.isArray(src)
+}
+
+async function exists(path) {
+ try {
+ await fs.promises.access(path, fs.constants.F_OK)
+ return true
+ } catch {
+ return false
+ }
+}
diff --git a/frontend/node_modules/@napi-rs/canvas/node-canvas.d.ts b/frontend/node_modules/@napi-rs/canvas/node-canvas.d.ts
new file mode 100644
index 0000000..2837cd3
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/node-canvas.d.ts
@@ -0,0 +1,216 @@
+/**
+ * node-canvas compatibility layer for @napi-rs/canvas.
+ *
+ * Provides a drop-in replacement API matching the `canvas` (node-canvas) npm package.
+ * Quality values for JPEG/WebP use the node-canvas 0-1 scale and are automatically
+ * converted to @napi-rs/canvas's 0-100 scale internally.
+ *
+ * @example
+ * ```typescript
+ * // Drop-in replacement: change this import
+ * // import { createCanvas, registerFont, loadImage } from 'canvas'
+ * // to this:
+ * import { createCanvas, registerFont, loadImage } from '@napi-rs/canvas/node-canvas'
+ * ```
+ */
+
+import { Readable } from 'node:stream'
+
+// Re-export types from @napi-rs/canvas that are API-compatible
+import {
+ Image as NapiImage,
+ ImageData as NapiImageData,
+ Path2D as NapiPath2D,
+ DOMPoint as NapiDOMPoint,
+ DOMMatrix as NapiDOMMatrix,
+ DOMRect as NapiDOMRect,
+ SKRSContext2D,
+ Canvas as NapiCanvas,
+ SvgCanvas,
+ SvgExportFlag,
+ IGlobalFonts,
+ PDFDocument,
+} from './index'
+
+// ---------------------------------------------------------------------------
+// Config interfaces (node-canvas conventions)
+// ---------------------------------------------------------------------------
+
+export interface PngConfig {
+ /** ZLIB compression level (0-9). Accepted for compatibility; Skia uses its own encoder. */
+ compressionLevel?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
+ /** PNG filter flags. Accepted for compatibility; Skia uses its own encoder. */
+ filters?: number
+ /** Palette for indexed PNGs. Not supported by Skia backend. */
+ palette?: Uint8ClampedArray
+ /** Background color index for indexed PNGs. Not supported by Skia backend. */
+ backgroundIndex?: number
+ /** Pixels per inch. Accepted for compatibility. */
+ resolution?: number
+}
+
+export interface JpegConfig {
+ /** Quality between 0 and 1. Defaults to 0.75. Converted to 0-100 for Skia. */
+ quality?: number
+ /** Progressive encoding. Accepted for compatibility; not supported by Skia backend. */
+ progressive?: boolean
+ /** 2x2 chroma subsampling. Accepted for compatibility; not supported by Skia backend. */
+ chromaSubsampling?: boolean
+}
+
+// ---------------------------------------------------------------------------
+// Canvas class (with node-canvas compatible methods)
+// ---------------------------------------------------------------------------
+
+export interface Canvas extends Omit {
+ /**
+ * Encode the canvas as a PNG and return a Node.js Readable stream.
+ * @param config PNG encoding options (accepted for compatibility)
+ */
+ createPNGStream(config?: PngConfig): PNGStream
+
+ /**
+ * Encode the canvas as a JPEG and return a Node.js Readable stream.
+ * @param config JPEG encoding options. Quality is 0-1 (default 0.75).
+ */
+ createJPEGStream(config?: JpegConfig): JPEGStream
+
+ // --- toBuffer overloads (node-canvas conventions) ---
+
+ /** Encode as PNG (default). */
+ toBuffer(): Buffer
+ toBuffer(mimeType: 'image/png', config?: PngConfig): Buffer
+ /** Encode as JPEG. Quality in config is 0-1 (default 0.75). */
+ toBuffer(mimeType: 'image/jpeg', config?: JpegConfig): Buffer
+ /** Get raw unencoded pixel data. */
+ toBuffer(mimeType: 'raw'): Buffer
+
+ /** Async: encode as PNG (default) via callback. */
+ toBuffer(cb: (err: Error | null, result: Buffer) => void): void
+ toBuffer(cb: (err: Error | null, result: Buffer) => void, mimeType: 'image/png', config?: PngConfig): void
+ /** Async: encode as JPEG via callback. Quality in config is 0-1 (default 0.75). */
+ toBuffer(cb: (err: Error | null, result: Buffer) => void, mimeType: 'image/jpeg', config?: JpegConfig): void
+
+ // --- toDataURL overloads (node-canvas conventions) ---
+
+ /** Encode as PNG data URL (default). */
+ toDataURL(): string
+ toDataURL(mimeType: 'image/png'): string
+ /** Encode as JPEG data URL. Quality is 0-1. */
+ toDataURL(mimeType: 'image/jpeg', quality?: number): string
+ /** Async: encode as data URL via callback. */
+ toDataURL(cb: (err: Error | null, result: string) => void): void
+ toDataURL(mimeType: 'image/png', cb: (err: Error | null, result: string) => void): void
+ toDataURL(mimeType: 'image/jpeg', cb: (err: Error | null, result: string) => void): void
+ toDataURL(mimeType: 'image/jpeg', quality: number, cb: (err: Error | null, result: string) => void): void
+}
+
+// ---------------------------------------------------------------------------
+// Stream classes
+// ---------------------------------------------------------------------------
+
+/** Readable stream that emits PNG-encoded data. */
+export class PNGStream extends Readable {}
+
+/** Readable stream that emits JPEG-encoded data. */
+export class JPEGStream extends Readable {}
+
+// ---------------------------------------------------------------------------
+// Factory functions
+// ---------------------------------------------------------------------------
+
+/**
+ * Create a new canvas with node-canvas compatible API.
+ * Canvas instances created through this function have `createPNGStream()`,
+ * `createJPEGStream()`, and node-canvas compatible `toBuffer()` overloads.
+ *
+ * When `type` is `'svg'`, returns a `SvgCanvas` which produces vector output
+ * via `getContent()` instead of raster encoding methods.
+ *
+ * @param width Canvas width in pixels
+ * @param height Canvas height in pixels
+ * @param type Canvas type: 'image' (default) or 'svg'
+ */
+export function createCanvas(width: number, height: number, type: 'svg'): SvgCanvas
+export function createCanvas(width: number, height: number, type?: 'image'): Canvas
+
+/**
+ * Create an ImageData instance.
+ * @param data Pixel data array
+ * @param width Width in pixels
+ * @param height Height in pixels (calculated from data length if omitted)
+ */
+export function createImageData(data: Uint8ClampedArray, width: number, height?: number): NapiImageData
+export function createImageData(width: number, height: number): NapiImageData
+
+/**
+ * Load an image from a file path, URL, Buffer, or other source.
+ * Returns a Promise that resolves to an Image instance.
+ */
+export function loadImage(
+ source: string | URL | Buffer | ArrayBufferLike | Uint8Array | NapiImage | import('stream').Readable,
+ options?: { alt?: string; maxRedirects?: number; requestOptions?: import('http').RequestOptions },
+): Promise
+
+// ---------------------------------------------------------------------------
+// Font registration (node-canvas convention)
+// ---------------------------------------------------------------------------
+
+/**
+ * Register a font file for use in canvas text rendering.
+ * Compatible with node-canvas's `registerFont()`.
+ *
+ * Note: @napi-rs/canvas auto-detects weight and style from font file metadata
+ * (matching browser behavior). The `weight` and `style` properties in fontFace
+ * are accepted for API compatibility.
+ *
+ * @param path Absolute path to the font file (.ttf, .otf, etc.)
+ * @param fontFace Font face properties matching CSS @font-face descriptors
+ */
+export function registerFont(path: string, fontFace: { family: string; weight?: string; style?: string }): void
+
+/**
+ * Deregister all previously registered fonts.
+ * Compatible with node-canvas's `deregisterAllFonts()`.
+ */
+export function deregisterAllFonts(): void
+
+// ---------------------------------------------------------------------------
+// Re-exported classes & values
+// ---------------------------------------------------------------------------
+
+// Canvas is exported both as a type (the compat interface above) and as a
+// value (constructor that returns compat Canvas instances at runtime).
+export declare const Canvas: {
+ new (width: number, height: number): Canvas
+ new (width: number, height: number, flag: SvgExportFlag): SvgCanvas
+ prototype: NapiCanvas
+}
+
+export { NapiImage as Image }
+export { NapiImageData as ImageData }
+export { NapiPath2D as Path2D }
+export { NapiDOMPoint as DOMPoint }
+export { NapiDOMMatrix as DOMMatrix }
+export { NapiDOMRect as DOMRect }
+
+// SKRSContext2D is an interface in index.d.ts but a class value at runtime.
+// Declare as const to export the value for instanceof checks and re-export the type.
+export type CanvasRenderingContext2D = SKRSContext2D
+export declare const CanvasRenderingContext2D: { prototype: SKRSContext2D }
+/** Legacy alias for CanvasRenderingContext2D. */
+export type Context2d = SKRSContext2D
+export declare const Context2d: { prototype: SKRSContext2D }
+
+// ---------------------------------------------------------------------------
+// @napi-rs/canvas extras (not part of node-canvas, but useful)
+// ---------------------------------------------------------------------------
+
+export { IGlobalFonts }
+export declare const GlobalFonts: IGlobalFonts & {
+ /** Reload system fonts. Available at runtime but not declared in IGlobalFonts. */
+ loadSystemFonts(): number
+}
+export { PDFDocument }
+export { NapiCanvas as CanvasElement }
+export { SvgCanvas as SVGCanvas }
diff --git a/frontend/node_modules/@napi-rs/canvas/node-canvas.js b/frontend/node_modules/@napi-rs/canvas/node-canvas.js
new file mode 100644
index 0000000..6715f0d
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/node-canvas.js
@@ -0,0 +1,379 @@
+'use strict'
+
+const { Readable } = require('node:stream')
+
+const {
+ createCanvas: _createCanvas,
+ Canvas,
+ CanvasElement,
+ SVGCanvas,
+ GlobalFonts,
+ Image,
+ ImageData,
+ Path2D,
+ DOMPoint,
+ DOMMatrix,
+ DOMRect,
+ loadImage,
+ PDFDocument,
+ SvgExportFlag,
+} = require('./index.js')
+
+// CanvasRenderingContext2D is not re-exported by index.js, grab from native bindings
+const { CanvasRenderingContext2D } = require('./js-binding')
+
+// node-canvas defaults JPEG quality to 0.75 across all paths.
+// @napi-rs/canvas native default is 0.92 (matching Blink/Chrome).
+const NODE_CANVAS_DEFAULT_QUALITY = 0.75
+
+// ---------------------------------------------------------------------------
+// Stream classes (node-canvas returns Node.js Readable streams)
+// ---------------------------------------------------------------------------
+
+class PNGStream extends Readable {
+ constructor(canvas, options) {
+ super()
+ this._canvas = canvas
+ this._options = options || {}
+ this._done = false
+ }
+
+ _read() {
+ if (this._done) return
+ this._done = true
+ this._canvas
+ .encode('png')
+ .then((buf) => {
+ this.push(buf)
+ this.push(null)
+ })
+ .catch((err) => {
+ this.destroy(err)
+ })
+ }
+}
+
+class JPEGStream extends Readable {
+ constructor(canvas, options) {
+ super()
+ this._canvas = canvas
+ const opts = options || {}
+ // node-canvas quality: 0-1 (default 0.75), encode() expects 0-100
+ this._quality = Math.round((opts.quality != null ? opts.quality : NODE_CANVAS_DEFAULT_QUALITY) * 100)
+ this._done = false
+ }
+
+ _read() {
+ if (this._done) return
+ this._done = true
+ this._canvas
+ .encode('jpeg', this._quality)
+ .then((buf) => {
+ this.push(buf)
+ this.push(null)
+ })
+ .catch((err) => {
+ this.destroy(err)
+ })
+ }
+}
+
+// ---------------------------------------------------------------------------
+// Quality normalization helpers
+// ---------------------------------------------------------------------------
+
+const MIME_FORMAT_MAP = {
+ 'image/png': 'png',
+ 'image/jpeg': 'jpeg',
+ 'image/webp': 'webp',
+ 'image/avif': 'avif',
+ 'image/gif': 'gif',
+}
+
+/**
+ * Extract quality from a node-canvas config object or number.
+ * Returns the raw 0-1 quality value, defaulting to NODE_CANVAS_DEFAULT_QUALITY
+ * for JPEG/WebP when not specified.
+ *
+ * @param {string} mime
+ * @param {number|object|undefined} configOrQuality
+ * @returns {number|undefined} 0-1 scale for JPEG/WebP, undefined for other mimes
+ */
+function _extractQuality(mime, configOrQuality) {
+ if (mime !== 'image/jpeg' && mime !== 'image/webp') return undefined
+ if (configOrQuality == null) return NODE_CANVAS_DEFAULT_QUALITY
+ if (typeof configOrQuality === 'number') return configOrQuality
+ if (typeof configOrQuality === 'object' && configOrQuality.quality != null) {
+ return configOrQuality.quality
+ }
+ return NODE_CANVAS_DEFAULT_QUALITY
+}
+
+// ---------------------------------------------------------------------------
+// Compat methods added to each canvas instance created via this module
+// ---------------------------------------------------------------------------
+
+// Keep references to the original prototype methods
+const _origToBuffer = CanvasElement.prototype.toBuffer
+const _origToDataURL = CanvasElement.prototype.toDataURL
+
+function _compatCreatePNGStream(options) {
+ return new PNGStream(this, options)
+}
+
+function _compatCreateJPEGStream(options) {
+ return new JPEGStream(this, options)
+}
+
+/**
+ * node-canvas compatible toBuffer:
+ * - toBuffer() β PNG (sync)
+ * - toBuffer('image/png', config?) β PNG (sync)
+ * - toBuffer('image/jpeg', config?) β JPEG (sync, quality 0-1)
+ * - toBuffer('raw') β raw pixel data (sync)
+ * - toBuffer(callback) β PNG (async)
+ * - toBuffer(callback, mime, config?) β specified format (async)
+ */
+function _compatToBuffer(mimeOrCallback, configOrQuality) {
+ // Callback form: toBuffer(callback) or toBuffer(callback, mime, config)
+ if (typeof mimeOrCallback === 'function') {
+ const callback = mimeOrCallback
+ const mime = typeof configOrQuality === 'string' ? configOrQuality : 'image/png'
+ const config = arguments[2]
+
+ if (mime === 'raw') {
+ let buf
+ try {
+ buf = this.data()
+ } catch (err) {
+ callback(err)
+ return
+ }
+ callback(null, buf)
+ return
+ }
+
+ const format = MIME_FORMAT_MAP[mime]
+ if (!format) {
+ callback(new TypeError(`Unsupported MIME type "${mime}". Supported: ${Object.keys(MIME_FORMAT_MAP).join(', ')}`))
+ return
+ }
+ const q = _extractQuality(mime, config)
+ this.encode(format, q != null ? Math.round(q * 100) : undefined).then(
+ (buf) => callback(null, buf),
+ (err) => callback(err),
+ )
+ return
+ }
+
+ // Sync: no args β PNG
+ if (mimeOrCallback === undefined) {
+ return _origToBuffer.call(this, 'image/png')
+ }
+
+ // Sync: raw pixel data
+ if (mimeOrCallback === 'raw') {
+ return this.data()
+ }
+
+ // Sync: extract quality (0-1) and scale to 0-100 for native toBuffer
+ const q = _extractQuality(mimeOrCallback, configOrQuality)
+ return _origToBuffer.call(this, mimeOrCallback, q != null ? Math.round(q * 100) : undefined)
+}
+
+/**
+ * node-canvas compatible toDataURL:
+ * - toDataURL() β PNG data URL (sync)
+ * - toDataURL('image/jpeg', quality) β JPEG data URL, quality 0-1 (sync)
+ * - toDataURL(callback) β PNG data URL (async)
+ * - toDataURL(mime, callback) β data URL (async)
+ * - toDataURL(mime, quality, callback) β data URL with quality (async)
+ */
+function _compatToDataURL(mimeOrCallback, qualityOrCallback) {
+ // toDataURL(callback)
+ if (typeof mimeOrCallback === 'function') {
+ this.toDataURLAsync('image/png').then(
+ (url) => mimeOrCallback(null, url),
+ (err) => mimeOrCallback(err),
+ )
+ return
+ }
+ // toDataURL(mime, callback)
+ if (typeof qualityOrCallback === 'function') {
+ this.toDataURLAsync(mimeOrCallback, _extractQuality(mimeOrCallback, undefined)).then(
+ (url) => qualityOrCallback(null, url),
+ (err) => qualityOrCallback(err),
+ )
+ return
+ }
+ // toDataURL(mime, quality, callback)
+ const cb = arguments[2]
+ if (typeof cb === 'function') {
+ // Native toDataURLAsync expects 0-1 (f64) β pass quality through as-is
+ const quality = _extractQuality(mimeOrCallback, qualityOrCallback)
+ this.toDataURLAsync(mimeOrCallback, quality).then(
+ (url) => cb(null, url),
+ (err) => cb(err),
+ )
+ return
+ }
+
+ // Sync form: native toDataURL expects 0-1 (f64) β pass quality through as-is
+ const quality = _extractQuality(mimeOrCallback, qualityOrCallback)
+ return _origToDataURL.call(this, mimeOrCallback, quality)
+}
+
+/**
+ * Attach node-canvas compatible methods to a CanvasElement instance.
+ */
+function _addCompatMethods(canvas) {
+ canvas.createPNGStream = _compatCreatePNGStream
+ canvas.createJPEGStream = _compatCreateJPEGStream
+ canvas.toBuffer = _compatToBuffer
+ canvas.toDataURL = _compatToDataURL
+ return canvas
+}
+
+// ---------------------------------------------------------------------------
+// Public API: registerFont / deregisterAllFonts
+// ---------------------------------------------------------------------------
+
+// Track FontKeys from registerFont() so deregisterAllFonts() can remove
+// only user-registered fonts (matching node-canvas behavior which leaves
+// system fonts untouched).
+const _registeredFontKeys = []
+
+/**
+ * Register a font file with the specified font face properties.
+ * Compatible with node-canvas's registerFont(path, { family, weight?, style? }).
+ *
+ * Note: @napi-rs/canvas auto-detects weight and style from font file metadata
+ * (matching browser behavior). The weight and style properties in fontFace are
+ * accepted for API compatibility but the actual values are read from the font.
+ *
+ * @param {string} path Absolute path to the font file (.ttf, .otf, etc.)
+ * @param {{ family: string, weight?: string, style?: string }} fontFace
+ */
+function registerFont(path, fontFace) {
+ if (!fontFace || typeof fontFace.family !== 'string') {
+ throw new TypeError('registerFont requires a fontFace with a "family" property')
+ }
+ const key = GlobalFonts.registerFromPath(path, fontFace.family)
+ if (!key) {
+ throw new Error(`Failed to register font from "${path}" with family "${fontFace.family}"`)
+ }
+ _registeredFontKeys.push(key)
+}
+
+/**
+ * Deregister all fonts previously registered via registerFont().
+ * Compatible with node-canvas's deregisterAllFonts() which only removes
+ * user-registered fonts and leaves system fonts untouched.
+ */
+function deregisterAllFonts() {
+ if (_registeredFontKeys.length > 0) {
+ GlobalFonts.removeBatch(_registeredFontKeys)
+ _registeredFontKeys.length = 0
+ }
+}
+
+// ---------------------------------------------------------------------------
+// Public API: createCanvas / createImageData
+// ---------------------------------------------------------------------------
+
+/**
+ * Create a new canvas instance with node-canvas compatible API.
+ *
+ * @param {number} width
+ * @param {number} height
+ * @param {'image'|'svg'} [type='image']
+ * @returns {Canvas}
+ */
+function createCanvas(width, height, type) {
+ if (type === 'svg') {
+ // SvgExportFlag enum requires a valid variant; NoPrettyXML (0x02) is the
+ // least impactful on rendering behavior (only affects XML whitespace).
+ return _createCanvas(width, height, SvgExportFlag.NoPrettyXML)
+ }
+ if (type === 'pdf') {
+ throw new Error(
+ 'createCanvas with type "pdf" is not supported. Use the PDFDocument class from @napi-rs/canvas directly.',
+ )
+ }
+ if (type != null && type !== 'image') {
+ throw new TypeError(`createCanvas: unknown type "${type}". Supported types: "image", "svg".`)
+ }
+ return _addCompatMethods(_createCanvas(width, height))
+}
+
+/**
+ * Create an ImageData instance.
+ * Compatible with node-canvas's createImageData().
+ *
+ * @param {Uint8ClampedArray|number} dataOrWidth
+ * @param {number} widthOrHeight
+ * @param {number} [height]
+ * @returns {ImageData}
+ */
+function createImageData(dataOrWidth, widthOrHeight, height) {
+ if (typeof dataOrWidth === 'number') {
+ return new ImageData(dataOrWidth, widthOrHeight)
+ }
+ if (height != null) {
+ return new ImageData(dataOrWidth, widthOrHeight, height)
+ }
+ return new ImageData(dataOrWidth, widthOrHeight)
+}
+
+// ---------------------------------------------------------------------------
+// Canvas constructor wrapper
+// ---------------------------------------------------------------------------
+
+// In node-canvas, `new Canvas(w, h)` and `createCanvas(w, h)` produce
+// equivalent canvases. Wrap the native Canvas constructor so that
+// `new Canvas(w, h)` also gets compat methods, without polluting the
+// prototype (which would affect @napi-rs/canvas users who don't use
+// this compat layer).
+const CompatCanvas = new Proxy(Canvas, {
+ construct(target, args) {
+ const canvas = new target(...args)
+ if (canvas instanceof CanvasElement) {
+ return _addCompatMethods(canvas)
+ }
+ return canvas
+ },
+})
+
+// ---------------------------------------------------------------------------
+// Exports (matches node-canvas export shape)
+// ---------------------------------------------------------------------------
+
+module.exports = {
+ // Factory functions
+ Canvas: CompatCanvas,
+ createCanvas,
+ createImageData,
+ loadImage,
+ registerFont,
+ deregisterAllFonts,
+
+ // Classes
+ Image,
+ ImageData,
+ CanvasRenderingContext2D,
+ Context2d: CanvasRenderingContext2D,
+ PNGStream,
+ JPEGStream,
+ Path2D,
+
+ // Geometry
+ DOMPoint,
+ DOMMatrix,
+ DOMRect,
+
+ // @napi-rs/canvas extras (available but not part of node-canvas)
+ GlobalFonts,
+ PDFDocument,
+ CanvasElement,
+ SVGCanvas,
+}
diff --git a/frontend/node_modules/@napi-rs/canvas/package.json b/frontend/node_modules/@napi-rs/canvas/package.json
new file mode 100644
index 0000000..49a9016
--- /dev/null
+++ b/frontend/node_modules/@napi-rs/canvas/package.json
@@ -0,0 +1,176 @@
+{
+ "name": "@napi-rs/canvas",
+ "version": "0.1.100",
+ "description": "Canvas for Node.js with skia backend",
+ "main": "index.js",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/Brooooooklyn/canvas.git"
+ },
+ "workspaces": [
+ "e2e/*"
+ ],
+ "license": "MIT",
+ "keywords": [
+ "napi-rs",
+ "NAPI",
+ "N-API",
+ "Rust",
+ "node-addon",
+ "node-addon-api",
+ "canvas",
+ "image",
+ "pdf",
+ "svg",
+ "skia"
+ ],
+ "files": [
+ "index.d.ts",
+ "index.js",
+ "geometry.js",
+ "js-binding.js",
+ "load-image.js",
+ "node-canvas.js",
+ "node-canvas.d.ts"
+ ],
+ "napi": {
+ "binaryName": "skia",
+ "targets": [
+ "x86_64-unknown-linux-gnu",
+ "x86_64-apple-darwin",
+ "x86_64-pc-windows-msvc",
+ "aarch64-pc-windows-msvc",
+ "armv7-unknown-linux-gnueabihf",
+ "x86_64-unknown-linux-musl",
+ "aarch64-unknown-linux-gnu",
+ "aarch64-unknown-linux-musl",
+ "aarch64-apple-darwin",
+ "aarch64-linux-android",
+ "riscv64-unknown-linux-gnu"
+ ]
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "publishConfig": {
+ "registry": "https://registry.npmjs.org/",
+ "access": "public"
+ },
+ "scripts": {
+ "artifacts": "napi artifacts",
+ "bench": "node --import @oxc-node/core/register benchmark/bench.ts",
+ "build": "napi build --platform --release --js js-binding.js",
+ "build:debug": "napi build --platform --js js-binding.js",
+ "example-lottie": "yarn oxnode ./example/lottie-to-video.ts",
+ "format": "run-p format:source format:rs format:toml",
+ "format:rs": "cargo fmt",
+ "format:source": "prettier . -w",
+ "format:toml": "taplo format",
+ "lint": "oxlint",
+ "prepublishOnly": "pinst --disable && napi prepublish -t npm",
+ "postpublish": "pinst --enable",
+ "test:ci": "ava -c 1",
+ "test": "ava",
+ "e2e": "yarn workspace @napi-rs/canvas-e2e-webpack test",
+ "version": "napi version && conventional-changelog -p angular -i CHANGELOG.md -s && git add ."
+ },
+ "devDependencies": {
+ "@jimp/core": "^1.6.0",
+ "@jimp/custom": "^0.22.12",
+ "@jimp/jpeg": "^0.22.12",
+ "@jimp/png": "^0.22.12",
+ "@napi-rs/cli": "^3.5.0",
+ "@napi-rs/webcodecs": "^1.1.1",
+ "@octokit/rest": "^22.0.1",
+ "@oxc-node/cli": "^0.1.0",
+ "@oxc-node/core": "^0.1.0",
+ "@taplo/cli": "^0.7.0",
+ "@types/lodash": "^4.17.21",
+ "@types/node": "^25.0.3",
+ "@types/semver": "^7",
+ "ava": "^7.0.0",
+ "canvas": "^3.2.0",
+ "canvaskit-wasm": "^0.41.0",
+ "colorette": "^2.0.20",
+ "conventional-changelog-cli": "^5.0.0",
+ "core-js": "^3.47.0",
+ "echarts": "^6.0.0",
+ "electron": "^41.0.0",
+ "husky": "^9.1.7",
+ "lint-staged": "^16.2.7",
+ "lodash": "^4.17.21",
+ "npm-run-all2": "^8.0.4",
+ "oxlint": "^1.34.0",
+ "oxlint-tsgolint": "^0.22.0",
+ "pinst": "^3.0.0",
+ "png.js": "^0.2.1",
+ "prettier": "^3.7.4",
+ "pretty-bytes": "^7.1.0",
+ "semver": "^7.7.3",
+ "skia-canvas": "^3.0.8",
+ "table": "^6.9.0",
+ "tinybench": "^6.0.0",
+ "typescript": "^6.0.0"
+ },
+ "lint-staged": {
+ "*.@(js|ts|tsx|yml|yaml|md|json|html)": [
+ "prettier --write"
+ ],
+ "*.@(js|ts|tsx)": [
+ "oxlint --fix"
+ ]
+ },
+ "ava": {
+ "nodeArguments": [
+ "--import=@oxc-node/core/register",
+ "--import=core-js/proposals/promise-with-resolvers.js"
+ ],
+ "extensions": {
+ "ts": "module"
+ },
+ "files": [
+ "__test__/**/*.spec.ts",
+ "scripts/__test__/**/*.spec.ts"
+ ],
+ "workerThreads": false,
+ "cache": false,
+ "timeout": "3m",
+ "environmentVariables": {
+ "SWC_NODE_PROJECT": "./tsconfig.json",
+ "NODE_ENV": "ava"
+ }
+ },
+ "prettier": {
+ "printWidth": 120,
+ "semi": false,
+ "trailingComma": "all",
+ "singleQuote": true,
+ "arrowParens": "always"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ },
+ "packageManager": "yarn@4.14.1",
+ "dependenciesMeta": {
+ "canvas": {
+ "built": true
+ },
+ "skia-canvas": {
+ "built": true
+ }
+ },
+ "optionalDependencies": {
+ "@napi-rs/canvas-linux-x64-gnu": "0.1.100",
+ "@napi-rs/canvas-darwin-x64": "0.1.100",
+ "@napi-rs/canvas-win32-x64-msvc": "0.1.100",
+ "@napi-rs/canvas-win32-arm64-msvc": "0.1.100",
+ "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.100",
+ "@napi-rs/canvas-linux-x64-musl": "0.1.100",
+ "@napi-rs/canvas-linux-arm64-gnu": "0.1.100",
+ "@napi-rs/canvas-linux-arm64-musl": "0.1.100",
+ "@napi-rs/canvas-darwin-arm64": "0.1.100",
+ "@napi-rs/canvas-android-arm64": "0.1.100",
+ "@napi-rs/canvas-linux-riscv64-gnu": "0.1.100"
+ }
+}
\ No newline at end of file
diff --git a/frontend/node_modules/clsx/clsx.d.mts b/frontend/node_modules/clsx/clsx.d.mts
new file mode 100644
index 0000000..025bb7f
--- /dev/null
+++ b/frontend/node_modules/clsx/clsx.d.mts
@@ -0,0 +1,6 @@
+export type ClassValue = ClassArray | ClassDictionary | string | number | bigint | null | boolean | undefined;
+export type ClassDictionary = Record;
+export type ClassArray = ClassValue[];
+
+export function clsx(...inputs: ClassValue[]): string;
+export default clsx;
diff --git a/frontend/node_modules/clsx/clsx.d.ts b/frontend/node_modules/clsx/clsx.d.ts
new file mode 100644
index 0000000..a4233f5
--- /dev/null
+++ b/frontend/node_modules/clsx/clsx.d.ts
@@ -0,0 +1,10 @@
+declare namespace clsx {
+ type ClassValue = ClassArray | ClassDictionary | string | number | bigint | null | boolean | undefined;
+ type ClassDictionary = Record;
+ type ClassArray = ClassValue[];
+ function clsx(...inputs: ClassValue[]): string;
+}
+
+declare function clsx(...inputs: clsx.ClassValue[]): string;
+
+export = clsx;
diff --git a/frontend/node_modules/clsx/license b/frontend/node_modules/clsx/license
new file mode 100644
index 0000000..fa6089f
--- /dev/null
+++ b/frontend/node_modules/clsx/license
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Luke Edwards (lukeed.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/frontend/node_modules/clsx/package.json b/frontend/node_modules/clsx/package.json
new file mode 100644
index 0000000..69954cb
--- /dev/null
+++ b/frontend/node_modules/clsx/package.json
@@ -0,0 +1,60 @@
+{
+ "name": "clsx",
+ "version": "2.1.1",
+ "repository": "lukeed/clsx",
+ "description": "A tiny (239B) utility for constructing className strings conditionally.",
+ "module": "dist/clsx.mjs",
+ "unpkg": "dist/clsx.min.js",
+ "main": "dist/clsx.js",
+ "types": "clsx.d.ts",
+ "license": "MIT",
+ "exports": {
+ ".": {
+ "import": {
+ "types": "./clsx.d.mts",
+ "default": "./dist/clsx.mjs"
+ },
+ "default": {
+ "types": "./clsx.d.ts",
+ "default": "./dist/clsx.js"
+ }
+ },
+ "./lite": {
+ "import": {
+ "types": "./clsx.d.mts",
+ "default": "./dist/lite.mjs"
+ },
+ "default": {
+ "types": "./clsx.d.ts",
+ "default": "./dist/lite.js"
+ }
+ }
+ },
+ "author": {
+ "name": "Luke Edwards",
+ "email": "luke.edwards05@gmail.com",
+ "url": "https://lukeed.com"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "scripts": {
+ "build": "node bin",
+ "test": "uvu -r esm test"
+ },
+ "files": [
+ "*.d.mts",
+ "*.d.ts",
+ "dist"
+ ],
+ "keywords": [
+ "classes",
+ "classname",
+ "classnames"
+ ],
+ "devDependencies": {
+ "esm": "3.2.25",
+ "terser": "4.8.0",
+ "uvu": "0.5.4"
+ }
+}
diff --git a/frontend/node_modules/clsx/readme.md b/frontend/node_modules/clsx/readme.md
new file mode 100644
index 0000000..b1af2b3
--- /dev/null
+++ b/frontend/node_modules/clsx/readme.md
@@ -0,0 +1,154 @@
+# clsx [](https://github.com/lukeed/clsx/actions?query=workflow%3ACI) [](https://codecov.io/gh/lukeed/clsx) [](https://licenses.dev/npm/clsx)
+
+> A tiny (239B) utility for constructing `className` strings conditionally.
Also serves as a [faster](bench) & smaller drop-in replacement for the `classnames` module.
+
+This module is available in three formats:
+
+* **ES Module**: `dist/clsx.mjs`
+* **CommonJS**: `dist/clsx.js`
+* **UMD**: `dist/clsx.min.js`
+
+
+## Install
+
+```
+$ npm install --save clsx
+```
+
+
+## Usage
+
+```js
+import clsx from 'clsx';
+// or
+import { clsx } from 'clsx';
+
+// Strings (variadic)
+clsx('foo', true && 'bar', 'baz');
+//=> 'foo bar baz'
+
+// Objects
+clsx({ foo:true, bar:false, baz:isTrue() });
+//=> 'foo baz'
+
+// Objects (variadic)
+clsx({ foo:true }, { bar:false }, null, { '--foobar':'hello' });
+//=> 'foo --foobar'
+
+// Arrays
+clsx(['foo', 0, false, 'bar']);
+//=> 'foo bar'
+
+// Arrays (variadic)
+clsx(['foo'], ['', 0, false, 'bar'], [['baz', [['hello'], 'there']]]);
+//=> 'foo bar baz hello there'
+
+// Kitchen sink (with nesting)
+clsx('foo', [1 && 'bar', { baz:false, bat:null }, ['hello', ['world']]], 'cya');
+//=> 'foo bar hello world cya'
+```
+
+
+## API
+
+### clsx(...input)
+Returns: `String`
+
+#### input
+Type: `Mixed`
+
+The `clsx` function can take ***any*** number of arguments, each of which can be an Object, Array, Boolean, or String.
+
+> **Important:** _Any_ falsey values are discarded!
Standalone Boolean values are discarded as well.
+
+```js
+clsx(true, false, '', null, undefined, 0, NaN);
+//=> ''
+```
+
+## Modes
+
+There are multiple "versions" of `clsx` available, which allows you to bring only the functionality you need!
+
+#### `clsx`
+> **Size (gzip):** 239 bytes
+> **Availability:** CommonJS, ES Module, UMD
+
+The default `clsx` module; see [API](#API) for info.
+
+```js
+import { clsx } from 'clsx';
+// or
+import clsx from 'clsx';
+```
+
+#### `clsx/lite`
+> **Size (gzip):** 140 bytes
+> **Availability:** CommonJS, ES Module
+> **CAUTION:** Accepts **ONLY** string arguments!
+
+Ideal for applications that ***only*** use the string-builder pattern.
+
+Any non-string arguments are ignored!
+
+```js
+import { clsx } from 'clsx/lite';
+// or
+import clsx from 'clsx/lite';
+
+// string
+clsx('hello', true && 'foo', false && 'bar');
+// => "hello foo"
+
+// NOTE: Any non-string input(s) ignored
+clsx({ foo: true });
+//=> ""
+```
+
+## Benchmarks
+
+For snapshots of cross-browser results, check out the [`bench`](bench) directory~!
+
+## Support
+
+All versions of Node.js are supported.
+
+All browsers that support [`Array.isArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray#Browser_compatibility) are supported (IE9+).
+
+>**Note:** For IE8 support and older, please install `clsx@1.0.x` and beware of [#17](https://github.com/lukeed/clsx/issues/17).
+
+## Tailwind Support
+
+Here some additional (optional) steps to enable classes autocompletion using `clsx` with Tailwind CSS.
+
+
+
+ Visual Studio Code
+
+
+1. [Install the "Tailwind CSS IntelliSense" Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss)
+
+2. Add the following to your [`settings.json`](https://code.visualstudio.com/docs/getstarted/settings):
+
+ ```json
+ {
+ "tailwindCSS.experimental.classRegex": [
+ ["clsx\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"]
+ ]
+ }
+ ```
+
+
+You may find the [`clsx/lite`](#clsxlite) module useful within Tailwind contexts. This is especially true if/when your application **only** composes classes in this pattern:
+
+```js
+clsx('text-base', props.active && 'text-primary', props.className);
+```
+
+## Related
+
+- [obj-str](https://github.com/lukeed/obj-str) - A smaller (96B) and similiar utility that only works with Objects.
+
+## License
+
+MIT Β© [Luke Edwards](https://lukeed.com)
diff --git a/frontend/node_modules/dequal/index.d.ts b/frontend/node_modules/dequal/index.d.ts
new file mode 100644
index 0000000..a9aea5d
--- /dev/null
+++ b/frontend/node_modules/dequal/index.d.ts
@@ -0,0 +1 @@
+export function dequal(foo: any, bar: any): boolean;
\ No newline at end of file
diff --git a/frontend/node_modules/dequal/license b/frontend/node_modules/dequal/license
new file mode 100644
index 0000000..a3f96f8
--- /dev/null
+++ b/frontend/node_modules/dequal/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Luke Edwards (lukeed.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/frontend/node_modules/dequal/lite/index.d.ts b/frontend/node_modules/dequal/lite/index.d.ts
new file mode 100644
index 0000000..a9aea5d
--- /dev/null
+++ b/frontend/node_modules/dequal/lite/index.d.ts
@@ -0,0 +1 @@
+export function dequal(foo: any, bar: any): boolean;
\ No newline at end of file
diff --git a/frontend/node_modules/dequal/lite/index.js b/frontend/node_modules/dequal/lite/index.js
new file mode 100644
index 0000000..ac3eb6b
--- /dev/null
+++ b/frontend/node_modules/dequal/lite/index.js
@@ -0,0 +1,31 @@
+var has = Object.prototype.hasOwnProperty;
+
+function dequal(foo, bar) {
+ var ctor, len;
+ if (foo === bar) return true;
+
+ if (foo && bar && (ctor=foo.constructor) === bar.constructor) {
+ if (ctor === Date) return foo.getTime() === bar.getTime();
+ if (ctor === RegExp) return foo.toString() === bar.toString();
+
+ if (ctor === Array) {
+ if ((len=foo.length) === bar.length) {
+ while (len-- && dequal(foo[len], bar[len]));
+ }
+ return len === -1;
+ }
+
+ if (!ctor || typeof foo === 'object') {
+ len = 0;
+ for (ctor in foo) {
+ if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
+ if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
+ }
+ return Object.keys(bar).length === len;
+ }
+ }
+
+ return foo !== foo && bar !== bar;
+}
+
+exports.dequal = dequal;
\ No newline at end of file
diff --git a/frontend/node_modules/dequal/lite/index.min.js b/frontend/node_modules/dequal/lite/index.min.js
new file mode 100644
index 0000000..2eaa55f
--- /dev/null
+++ b/frontend/node_modules/dequal/lite/index.min.js
@@ -0,0 +1 @@
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.dequal={})}(this,(function(e){var t=Object.prototype.hasOwnProperty;e.dequal=function e(r,n){var o,i;if(r===n)return!0;if(r&&n&&(o=r.constructor)===n.constructor){if(o===Date)return r.getTime()===n.getTime();if(o===RegExp)return r.toString()===n.toString();if(o===Array){if((i=r.length)===n.length)for(;i--&&e(r[i],n[i]););return-1===i}if(!o||"object"==typeof r){for(o in i=0,r){if(t.call(r,o)&&++i&&!t.call(n,o))return!1;if(!(o in n)||!e(r[o],n[o]))return!1}return Object.keys(n).length===i}}return r!=r&&n!=n}}));
\ No newline at end of file
diff --git a/frontend/node_modules/dequal/lite/index.mjs b/frontend/node_modules/dequal/lite/index.mjs
new file mode 100644
index 0000000..5820d67
--- /dev/null
+++ b/frontend/node_modules/dequal/lite/index.mjs
@@ -0,0 +1,29 @@
+var has = Object.prototype.hasOwnProperty;
+
+export function dequal(foo, bar) {
+ var ctor, len;
+ if (foo === bar) return true;
+
+ if (foo && bar && (ctor=foo.constructor) === bar.constructor) {
+ if (ctor === Date) return foo.getTime() === bar.getTime();
+ if (ctor === RegExp) return foo.toString() === bar.toString();
+
+ if (ctor === Array) {
+ if ((len=foo.length) === bar.length) {
+ while (len-- && dequal(foo[len], bar[len]));
+ }
+ return len === -1;
+ }
+
+ if (!ctor || typeof foo === 'object') {
+ len = 0;
+ for (ctor in foo) {
+ if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
+ if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;
+ }
+ return Object.keys(bar).length === len;
+ }
+ }
+
+ return foo !== foo && bar !== bar;
+}
diff --git a/frontend/node_modules/dequal/package.json b/frontend/node_modules/dequal/package.json
new file mode 100644
index 0000000..df1cb29
--- /dev/null
+++ b/frontend/node_modules/dequal/package.json
@@ -0,0 +1,57 @@
+{
+ "name": "dequal",
+ "version": "2.0.3",
+ "repository": "lukeed/dequal",
+ "description": "A tiny (304B to 489B) utility for check for deep equality",
+ "unpkg": "dist/index.min.js",
+ "module": "dist/index.mjs",
+ "main": "dist/index.js",
+ "types": "index.d.ts",
+ "license": "MIT",
+ "author": {
+ "name": "Luke Edwards",
+ "email": "luke.edwards05@gmail.com",
+ "url": "https://lukeed.com"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "scripts": {
+ "build": "bundt",
+ "pretest": "npm run build",
+ "postbuild": "echo \"lite\" | xargs -n1 cp -v index.d.ts",
+ "test": "uvu -r esm test"
+ },
+ "files": [
+ "*.d.ts",
+ "dist",
+ "lite"
+ ],
+ "exports": {
+ ".": {
+ "types": "./index.d.ts",
+ "import": "./dist/index.mjs",
+ "require": "./dist/index.js"
+ },
+ "./lite": {
+ "types": "./index.d.ts",
+ "import": "./lite/index.mjs",
+ "require": "./lite/index.js"
+ },
+ "./package.json": "./package.json"
+ },
+ "modes": {
+ "lite": "src/lite.js",
+ "default": "src/index.js"
+ },
+ "keywords": [
+ "deep",
+ "deep-equal",
+ "equality"
+ ],
+ "devDependencies": {
+ "bundt": "1.0.2",
+ "esm": "3.2.25",
+ "uvu": "0.3.2"
+ }
+}
diff --git a/frontend/node_modules/dequal/readme.md b/frontend/node_modules/dequal/readme.md
new file mode 100644
index 0000000..e3341ef
--- /dev/null
+++ b/frontend/node_modules/dequal/readme.md
@@ -0,0 +1,112 @@
+# dequal [](https://github.com/lukeed/dequal/actions)
+
+> A tiny (304B to 489B) utility to check for deep equality
+
+This module supports comparison of all types, including `Function`, `RegExp`, `Date`, `Set`, `Map`, `TypedArray`s, `DataView`, `null`, `undefined`, and `NaN` values. Complex values (eg, Objects, Arrays, Sets, Maps, etc) are traversed recursively.
+
+> **Important:**
+> * key order **within Objects** does not matter
+> * value order **within Arrays** _does_ matter
+> * values **within Sets and Maps** use value equality
+> * keys **within Maps** use value equality
+
+
+## Install
+
+```
+$ npm install --save dequal
+```
+
+## Modes
+
+There are two "versions" of `dequal` available:
+
+#### `dequal`
+> **Size (gzip):** 489 bytes
+> **Availability:** [CommonJS](https://unpkg.com/dequal/dist/index.js), [ES Module](https://unpkg.com/dequal/dist/index.mjs), [UMD](https://unpkg.com/dequal/dist/index.min.js)
+
+#### `dequal/lite`
+> **Size (gzip):** 304 bytes
+> **Availability:** [CommonJS](https://unpkg.com/dequal/lite/index.js), [ES Module](https://unpkg.com/dequal/lite/index.mjs)
+
+| | IE9+ | Number | String | Date | RegExp | Object | Array | Class | Set | Map | ArrayBuffer | [TypedArray](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#TypedArray_objects) | [DataView](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) |
+|-|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
+| `dequal` | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
+| `dequal/lite` | :+1: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: |
+
+> **Note:** Table scrolls horizontally!
+
+## Usage
+
+```js
+import { dequal } from 'dequal';
+
+dequal(1, 1); //=> true
+dequal({}, {}); //=> true
+dequal('foo', 'foo'); //=> true
+dequal([1, 2, 3], [1, 2, 3]); //=> true
+dequal(dequal, dequal); //=> true
+dequal(/foo/, /foo/); //=> true
+dequal(null, null); //=> true
+dequal(NaN, NaN); //=> true
+dequal([], []); //=> true
+dequal(
+ [{ a:1 }, [{ b:{ c:[1] } }]],
+ [{ a:1 }, [{ b:{ c:[1] } }]]
+); //=> true
+
+dequal(1, '1'); //=> false
+dequal(null, undefined); //=> false
+dequal({ a:1, b:[2,3] }, { a:1, b:[2,5] }); //=> false
+dequal(/foo/i, /bar/g); //=> false
+```
+
+## API
+
+### dequal(foo, bar)
+Returns: `Boolean`
+
+Both `foo` and `bar` can be of any type.
+A `Boolean` is returned indicating if the two were deeply equal.
+
+
+## Benchmarks
+
+> Running Node v10.13.0
+
+The benchmarks can be found in the [`/bench`](/bench) directory. They are separated into two categories:
+
+* `basic` β compares an object comprised of `String`, `Number`, `Date`, `Array`, and `Object` values.
+* `complex` β like `basic`, but adds `RegExp`, `Map`, `Set`, and `Uint8Array` values.
+
+> **Note:** Only candidates that pass validation step(s) are listed.
For example, `fast-deep-equal/es6` handles `Set` and `Map` values, but uses _referential equality_ while those listed use _value equality_.
+
+```
+Load times:
+ assert 0.109ms
+ util 0.006ms
+ fast-deep-equal 0.479ms
+ lodash/isequal 22.826ms
+ nano-equal 0.417ms
+ dequal 0.396ms
+ dequal/lite 0.264ms
+
+Benchmark :: basic
+ assert.deepStrictEqual x 325,262 ops/sec Β±0.57% (94 runs sampled)
+ util.isDeepStrictEqual x 318,812 ops/sec Β±0.87% (94 runs sampled)
+ fast-deep-equal x 1,332,393 ops/sec Β±0.36% (93 runs sampled)
+ lodash.isEqual x 269,129 ops/sec Β±0.59% (95 runs sampled)
+ nano-equal x 1,122,053 ops/sec Β±0.36% (96 runs sampled)
+ dequal/lite x 1,700,972 ops/sec Β±0.31% (94 runs sampled)
+ dequal x 1,698,972 ops/sec Β±0.63% (97 runs sampled)
+
+Benchmark :: complex
+ assert.deepStrictEqual x 124,518 ops/sec Β±0.64% (96 runs sampled)
+ util.isDeepStrictEqual x 125,113 ops/sec Β±0.24% (96 runs sampled)
+ lodash.isEqual x 58,677 ops/sec Β±0.49% (96 runs sampled)
+ dequal x 345,386 ops/sec Β±0.27% (96 runs sampled)
+```
+
+## License
+
+MIT Β© [Luke Edwards](https://lukeed.com)
diff --git a/frontend/node_modules/js-tokens/CHANGELOG.md b/frontend/node_modules/js-tokens/CHANGELOG.md
new file mode 100644
index 0000000..755e6f6
--- /dev/null
+++ b/frontend/node_modules/js-tokens/CHANGELOG.md
@@ -0,0 +1,151 @@
+### Version 4.0.0 (2018-01-28) ###
+
+- Added: Support for ES2018. The only change needed was recognizing the `s`
+ regex flag.
+- Changed: _All_ tokens returned by the `matchToToken` function now have a
+ `closed` property. It is set to `undefined` for the tokens where βclosedβ
+ doesnβt make sense. This means that all tokens objects have the same shape,
+ which might improve performance.
+
+These are the breaking changes:
+
+- `'/a/s'.match(jsTokens)` no longer returns `['/', 'a', '/', 's']`, but
+ `['/a/s']`. (There are of course other variations of this.)
+- Code that rely on some token objects not having the `closed` property could
+ now behave differently.
+
+
+### Version 3.0.2 (2017-06-28) ###
+
+- No code changes. Just updates to the readme.
+
+
+### Version 3.0.1 (2017-01-30) ###
+
+- Fixed: ES2015 unicode escapes with more than 6 hex digits are now matched
+ correctly.
+
+
+### Version 3.0.0 (2017-01-11) ###
+
+This release contains one breaking change, that should [improve performance in
+V8][v8-perf]:
+
+> So how can you, as a JavaScript developer, ensure that your RegExps are fast?
+> If you are not interested in hooking into RegExp internals, make sure that
+> neither the RegExp instance, nor its prototype is modified in order to get the
+> best performance:
+>
+> ```js
+> var re = /./g;
+> re.exec(''); // Fast path.
+> re.new_property = 'slow';
+> ```
+
+This module used to export a single regex, with `.matchToToken` bolted
+on, just like in the above example. This release changes the exports of
+the module to avoid this issue.
+
+Before:
+
+```js
+import jsTokens from "js-tokens"
+// or:
+var jsTokens = require("js-tokens")
+var matchToToken = jsTokens.matchToToken
+```
+
+After:
+
+```js
+import jsTokens, {matchToToken} from "js-tokens"
+// or:
+var jsTokens = require("js-tokens").default
+var matchToToken = require("js-tokens").matchToToken
+```
+
+[v8-perf]: http://v8project.blogspot.se/2017/01/speeding-up-v8-regular-expressions.html
+
+
+### Version 2.0.0 (2016-06-19) ###
+
+- Added: Support for ES2016. In other words, support for the `**` exponentiation
+ operator.
+
+These are the breaking changes:
+
+- `'**'.match(jsTokens)` no longer returns `['*', '*']`, but `['**']`.
+- `'**='.match(jsTokens)` no longer returns `['*', '*=']`, but `['**=']`.
+
+
+### Version 1.0.3 (2016-03-27) ###
+
+- Improved: Made the regex ever so slightly smaller.
+- Updated: The readme.
+
+
+### Version 1.0.2 (2015-10-18) ###
+
+- Improved: Limited npm package contents for a smaller download. Thanks to
+ @zertosh!
+
+
+### Version 1.0.1 (2015-06-20) ###
+
+- Fixed: Declared an undeclared variable.
+
+
+### Version 1.0.0 (2015-02-26) ###
+
+- Changed: Merged the 'operator' and 'punctuation' types into 'punctuator'. That
+ type is now equivalent to the Punctuator token in the ECMAScript
+ specification. (Backwards-incompatible change.)
+- Fixed: A `-` followed by a number is now correctly matched as a punctuator
+ followed by a number. It used to be matched as just a number, but there is no
+ such thing as negative number literals. (Possibly backwards-incompatible
+ change.)
+
+
+### Version 0.4.1 (2015-02-21) ###
+
+- Added: Support for the regex `u` flag.
+
+
+### Version 0.4.0 (2015-02-21) ###
+
+- Improved: `jsTokens.matchToToken` performance.
+- Added: Support for octal and binary number literals.
+- Added: Support for template strings.
+
+
+### Version 0.3.1 (2015-01-06) ###
+
+- Fixed: Support for unicode spaces. They used to be allowed in names (which is
+ very confusing), and some unicode newlines were wrongly allowed in strings and
+ regexes.
+
+
+### Version 0.3.0 (2014-12-19) ###
+
+- Changed: The `jsTokens.names` array has been replaced with the
+ `jsTokens.matchToToken` function. The capturing groups of `jsTokens` are no
+ longer part of the public API; instead use said function. See this [gist] for
+ an example. (Backwards-incompatible change.)
+- Changed: The empty string is now considered an βinvalidβ token, instead an
+ βemptyβ token (its own group). (Backwards-incompatible change.)
+- Removed: component support. (Backwards-incompatible change.)
+
+[gist]: https://gist.github.com/lydell/be49dbf80c382c473004
+
+
+### Version 0.2.0 (2014-06-19) ###
+
+- Changed: Match ES6 function arrows (`=>`) as an operator, instead of its own
+ category (βfunctionArrowβ), for simplicity. (Backwards-incompatible change.)
+- Added: ES6 splats (`...`) are now matched as an operator (instead of three
+ punctuations). (Backwards-incompatible change.)
+
+
+### Version 0.1.0 (2014-03-08) ###
+
+- Initial release.
diff --git a/frontend/node_modules/js-tokens/LICENSE b/frontend/node_modules/js-tokens/LICENSE
new file mode 100644
index 0000000..54aef52
--- /dev/null
+++ b/frontend/node_modules/js-tokens/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/frontend/node_modules/js-tokens/README.md b/frontend/node_modules/js-tokens/README.md
new file mode 100644
index 0000000..00cdf16
--- /dev/null
+++ b/frontend/node_modules/js-tokens/README.md
@@ -0,0 +1,240 @@
+Overview [](https://travis-ci.org/lydell/js-tokens)
+========
+
+A regex that tokenizes JavaScript.
+
+```js
+var jsTokens = require("js-tokens").default
+
+var jsString = "var foo=opts.foo;\n..."
+
+jsString.match(jsTokens)
+// ["var", " ", "foo", "=", "opts", ".", "foo", ";", "\n", ...]
+```
+
+
+Installation
+============
+
+`npm install js-tokens`
+
+```js
+import jsTokens from "js-tokens"
+// or:
+var jsTokens = require("js-tokens").default
+```
+
+
+Usage
+=====
+
+### `jsTokens` ###
+
+A regex with the `g` flag that matches JavaScript tokens.
+
+The regex _always_ matches, even invalid JavaScript and the empty string.
+
+The next match is always directly after the previous.
+
+### `var token = matchToToken(match)` ###
+
+```js
+import {matchToToken} from "js-tokens"
+// or:
+var matchToToken = require("js-tokens").matchToToken
+```
+
+Takes a `match` returned by `jsTokens.exec(string)`, and returns a `{type:
+String, value: String}` object. The following types are available:
+
+- string
+- comment
+- regex
+- number
+- name
+- punctuator
+- whitespace
+- invalid
+
+Multi-line comments and strings also have a `closed` property indicating if the
+token was closed or not (see below).
+
+Comments and strings both come in several flavors. To distinguish them, check if
+the token starts with `//`, `/*`, `'`, `"` or `` ` ``.
+
+Names are ECMAScript IdentifierNames, that is, including both identifiers and
+keywords. You may use [is-keyword-js] to tell them apart.
+
+Whitespace includes both line terminators and other whitespace.
+
+[is-keyword-js]: https://github.com/crissdev/is-keyword-js
+
+
+ECMAScript support
+==================
+
+The intention is to always support the latest ECMAScript version whose feature
+set has been finalized.
+
+If adding support for a newer version requires changes, a new version with a
+major verion bump will be released.
+
+Currently, ECMAScript 2018 is supported.
+
+
+Invalid code handling
+=====================
+
+Unterminated strings are still matched as strings. JavaScript strings cannot
+contain (unescaped) newlines, so unterminated strings simply end at the end of
+the line. Unterminated template strings can contain unescaped newlines, though,
+so they go on to the end of input.
+
+Unterminated multi-line comments are also still matched as comments. They
+simply go on to the end of the input.
+
+Unterminated regex literals are likely matched as division and whatever is
+inside the regex.
+
+Invalid ASCII characters have their own capturing group.
+
+Invalid non-ASCII characters are treated as names, to simplify the matching of
+names (except unicode spaces which are treated as whitespace). Note: See also
+the [ES2018](#es2018) section.
+
+Regex literals may contain invalid regex syntax. They are still matched as
+regex literals. They may also contain repeated regex flags, to keep the regex
+simple.
+
+Strings may contain invalid escape sequences.
+
+
+Limitations
+===========
+
+Tokenizing JavaScript using regexesβin fact, _one single regex_βwonβt be
+perfect. But thatβs not the point either.
+
+You may compare jsTokens with [esprima] by using `esprima-compare.js`.
+See `npm run esprima-compare`!
+
+[esprima]: http://esprima.org/
+
+### Template string interpolation ###
+
+Template strings are matched as single tokens, from the starting `` ` `` to the
+ending `` ` ``, including interpolations (whose tokens are not matched
+individually).
+
+Matching template string interpolations requires recursive balancing of `{` and
+`}`βsomething that JavaScript regexes cannot do. Only one level of nesting is
+supported.
+
+### Division and regex literals collision ###
+
+Consider this example:
+
+```js
+var g = 9.82
+var number = bar / 2/g
+
+var regex = / 2/g
+```
+
+A human can easily understand that in the `number` line weβre dealing with
+division, and in the `regex` line weβre dealing with a regex literal. How come?
+Because humans can look at the whole code to put the `/` characters in context.
+A JavaScript regex cannot. It only sees forwards. (Well, ES2018 regexes can also
+look backwards. See the [ES2018](#es2018) section).
+
+When the `jsTokens` regex scans throught the above, it will see the following
+at the end of both the `number` and `regex` rows:
+
+```js
+/ 2/g
+```
+
+It is then impossible to know if that is a regex literal, or part of an
+expression dealing with division.
+
+Here is a similar case:
+
+```js
+foo /= 2/g
+foo(/= 2/g)
+```
+
+The first line divides the `foo` variable with `2/g`. The second line calls the
+`foo` function with the regex literal `/= 2/g`. Again, since `jsTokens` only
+sees forwards, it cannot tell the two cases apart.
+
+There are some cases where we _can_ tell division and regex literals apart,
+though.
+
+First off, we have the simple cases where thereβs only one slash in the line:
+
+```js
+var foo = 2/g
+foo /= 2
+```
+
+Regex literals cannot contain newlines, so the above cases are correctly
+identified as division. Things are only problematic when there are more than
+one non-comment slash in a single line.
+
+Secondly, not every character is a valid regex flag.
+
+```js
+var number = bar / 2/e
+```
+
+The above example is also correctly identified as division, because `e` is not a
+valid regex flag. I initially wanted to future-proof by allowing `[a-zA-Z]*`
+(any letter) as flags, but it is not worth it since it increases the amount of
+ambigous cases. So only the standard `g`, `m`, `i`, `y` and `u` flags are
+allowed. This means that the above example will be identified as division as
+long as you donβt rename the `e` variable to some permutation of `gmiyus` 1 to 6
+characters long.
+
+Lastly, we can look _forward_ for information.
+
+- If the token following what looks like a regex literal is not valid after a
+ regex literal, but is valid in a division expression, then the regex literal
+ is treated as division instead. For example, a flagless regex cannot be
+ followed by a string, number or name, but all of those three can be the
+ denominator of a division.
+- Generally, if what looks like a regex literal is followed by an operator, the
+ regex literal is treated as division instead. This is because regexes are
+ seldomly used with operators (such as `+`, `*`, `&&` and `==`), but division
+ could likely be part of such an expression.
+
+Please consult the regex source and the test cases for precise information on
+when regex or division is matched (should you need to know). In short, you
+could sum it up as:
+
+If the end of a statement looks like a regex literal (even if it isnβt), it
+will be treated as one. Otherwise it should work as expected (if you write sane
+code).
+
+### ES2018 ###
+
+ES2018 added some nice regex improvements to the language.
+
+- [Unicode property escapes] should allow telling names and invalid non-ASCII
+ characters apart without blowing up the regex size.
+- [Lookbehind assertions] should allow matching telling division and regex
+ literals apart in more cases.
+- [Named capture groups] might simplify some things.
+
+These things would be nice to do, but are not critical. They probably have to
+wait until the oldest maintained Node.js LTS release supports those features.
+
+[Unicode property escapes]: http://2ality.com/2017/07/regexp-unicode-property-escapes.html
+[Lookbehind assertions]: http://2ality.com/2017/05/regexp-lookbehind-assertions.html
+[Named capture groups]: http://2ality.com/2017/05/regexp-named-capture-groups.html
+
+
+License
+=======
+
+[MIT](LICENSE).
diff --git a/frontend/node_modules/js-tokens/index.js b/frontend/node_modules/js-tokens/index.js
new file mode 100644
index 0000000..b23a4a0
--- /dev/null
+++ b/frontend/node_modules/js-tokens/index.js
@@ -0,0 +1,23 @@
+// Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell
+// License: MIT. (See LICENSE.)
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+})
+
+// This regex comes from regex.coffee, and is inserted here by generate-index.js
+// (run `npm run build`).
+exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g
+
+exports.matchToToken = function(match) {
+ var token = {type: "invalid", value: match[0], closed: undefined}
+ if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4])
+ else if (match[ 5]) token.type = "comment"
+ else if (match[ 6]) token.type = "comment", token.closed = !!match[7]
+ else if (match[ 8]) token.type = "regex"
+ else if (match[ 9]) token.type = "number"
+ else if (match[10]) token.type = "name"
+ else if (match[11]) token.type = "punctuator"
+ else if (match[12]) token.type = "whitespace"
+ return token
+}
diff --git a/frontend/node_modules/js-tokens/package.json b/frontend/node_modules/js-tokens/package.json
new file mode 100644
index 0000000..66752fa
--- /dev/null
+++ b/frontend/node_modules/js-tokens/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "js-tokens",
+ "version": "4.0.0",
+ "author": "Simon Lydell",
+ "license": "MIT",
+ "description": "A regex that tokenizes JavaScript.",
+ "keywords": [
+ "JavaScript",
+ "js",
+ "token",
+ "tokenize",
+ "regex"
+ ],
+ "files": [
+ "index.js"
+ ],
+ "repository": "lydell/js-tokens",
+ "scripts": {
+ "test": "mocha --ui tdd",
+ "esprima-compare": "node esprima-compare ./index.js everything.js/es5.js",
+ "build": "node generate-index.js",
+ "dev": "npm run build && npm test"
+ },
+ "devDependencies": {
+ "coffeescript": "2.1.1",
+ "esprima": "4.0.0",
+ "everything.js": "1.0.3",
+ "mocha": "5.0.0"
+ }
+}
diff --git a/frontend/node_modules/loose-envify/LICENSE b/frontend/node_modules/loose-envify/LICENSE
new file mode 100644
index 0000000..fbafb48
--- /dev/null
+++ b/frontend/node_modules/loose-envify/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Andres Suarez
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/frontend/node_modules/loose-envify/README.md b/frontend/node_modules/loose-envify/README.md
new file mode 100644
index 0000000..7f4e07b
--- /dev/null
+++ b/frontend/node_modules/loose-envify/README.md
@@ -0,0 +1,45 @@
+# loose-envify
+
+[](https://travis-ci.org/zertosh/loose-envify)
+
+Fast (and loose) selective `process.env` replacer using [js-tokens](https://github.com/lydell/js-tokens) instead of an AST. Works just like [envify](https://github.com/hughsk/envify) but much faster.
+
+## Gotchas
+
+* Doesn't handle broken syntax.
+* Doesn't look inside embedded expressions in template strings.
+ - **this won't work:**
+ ```js
+ console.log(`the current env is ${process.env.NODE_ENV}`);
+ ```
+* Doesn't replace oddly-spaced or oddly-commented expressions.
+ - **this won't work:**
+ ```js
+ console.log(process./*won't*/env./*work*/NODE_ENV);
+ ```
+
+## Usage/Options
+
+loose-envify has the exact same interface as [envify](https://github.com/hughsk/envify), including the CLI.
+
+## Benchmark
+
+```
+envify:
+
+ $ for i in {1..5}; do node bench/bench.js 'envify'; done
+ 708ms
+ 727ms
+ 791ms
+ 719ms
+ 720ms
+
+loose-envify:
+
+ $ for i in {1..5}; do node bench/bench.js '../'; done
+ 51ms
+ 52ms
+ 52ms
+ 52ms
+ 52ms
+```
diff --git a/frontend/node_modules/loose-envify/cli.js b/frontend/node_modules/loose-envify/cli.js
new file mode 100644
index 0000000..c0b63cb
--- /dev/null
+++ b/frontend/node_modules/loose-envify/cli.js
@@ -0,0 +1,16 @@
+#!/usr/bin/env node
+'use strict';
+
+var looseEnvify = require('./');
+var fs = require('fs');
+
+if (process.argv[2]) {
+ fs.createReadStream(process.argv[2], {encoding: 'utf8'})
+ .pipe(looseEnvify(process.argv[2]))
+ .pipe(process.stdout);
+} else {
+ process.stdin.resume()
+ process.stdin
+ .pipe(looseEnvify(__filename))
+ .pipe(process.stdout);
+}
diff --git a/frontend/node_modules/loose-envify/custom.js b/frontend/node_modules/loose-envify/custom.js
new file mode 100644
index 0000000..6389bfa
--- /dev/null
+++ b/frontend/node_modules/loose-envify/custom.js
@@ -0,0 +1,4 @@
+// envify compatibility
+'use strict';
+
+module.exports = require('./loose-envify');
diff --git a/frontend/node_modules/loose-envify/index.js b/frontend/node_modules/loose-envify/index.js
new file mode 100644
index 0000000..8cd8305
--- /dev/null
+++ b/frontend/node_modules/loose-envify/index.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('./loose-envify')(process.env);
diff --git a/frontend/node_modules/loose-envify/loose-envify.js b/frontend/node_modules/loose-envify/loose-envify.js
new file mode 100644
index 0000000..b5a5be2
--- /dev/null
+++ b/frontend/node_modules/loose-envify/loose-envify.js
@@ -0,0 +1,36 @@
+'use strict';
+
+var stream = require('stream');
+var util = require('util');
+var replace = require('./replace');
+
+var jsonExtRe = /\.json$/;
+
+module.exports = function(rootEnv) {
+ rootEnv = rootEnv || process.env;
+ return function (file, trOpts) {
+ if (jsonExtRe.test(file)) {
+ return stream.PassThrough();
+ }
+ var envs = trOpts ? [rootEnv, trOpts] : [rootEnv];
+ return new LooseEnvify(envs);
+ };
+};
+
+function LooseEnvify(envs) {
+ stream.Transform.call(this);
+ this._data = '';
+ this._envs = envs;
+}
+util.inherits(LooseEnvify, stream.Transform);
+
+LooseEnvify.prototype._transform = function(buf, enc, cb) {
+ this._data += buf;
+ cb();
+};
+
+LooseEnvify.prototype._flush = function(cb) {
+ var replaced = replace(this._data, this._envs);
+ this.push(replaced);
+ cb();
+};
diff --git a/frontend/node_modules/loose-envify/package.json b/frontend/node_modules/loose-envify/package.json
new file mode 100644
index 0000000..5e3d0e2
--- /dev/null
+++ b/frontend/node_modules/loose-envify/package.json
@@ -0,0 +1,36 @@
+{
+ "name": "loose-envify",
+ "version": "1.4.0",
+ "description": "Fast (and loose) selective `process.env` replacer using js-tokens instead of an AST",
+ "keywords": [
+ "environment",
+ "variables",
+ "browserify",
+ "browserify-transform",
+ "transform",
+ "source",
+ "configuration"
+ ],
+ "homepage": "https://github.com/zertosh/loose-envify",
+ "license": "MIT",
+ "author": "Andres Suarez ",
+ "main": "index.js",
+ "bin": {
+ "loose-envify": "cli.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/zertosh/loose-envify.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "devDependencies": {
+ "browserify": "^13.1.1",
+ "envify": "^3.4.0",
+ "tap": "^8.0.0"
+ }
+}
diff --git a/frontend/node_modules/loose-envify/replace.js b/frontend/node_modules/loose-envify/replace.js
new file mode 100644
index 0000000..ec15e81
--- /dev/null
+++ b/frontend/node_modules/loose-envify/replace.js
@@ -0,0 +1,65 @@
+'use strict';
+
+var jsTokens = require('js-tokens').default;
+
+var processEnvRe = /\bprocess\.env\.[_$a-zA-Z][$\w]+\b/;
+var spaceOrCommentRe = /^(?:\s|\/[/*])/;
+
+function replace(src, envs) {
+ if (!processEnvRe.test(src)) {
+ return src;
+ }
+
+ var out = [];
+ var purge = envs.some(function(env) {
+ return env._ && env._.indexOf('purge') !== -1;
+ });
+
+ jsTokens.lastIndex = 0
+ var parts = src.match(jsTokens);
+
+ for (var i = 0; i < parts.length; i++) {
+ if (parts[i ] === 'process' &&
+ parts[i + 1] === '.' &&
+ parts[i + 2] === 'env' &&
+ parts[i + 3] === '.') {
+ var prevCodeToken = getAdjacentCodeToken(-1, parts, i);
+ var nextCodeToken = getAdjacentCodeToken(1, parts, i + 4);
+ var replacement = getReplacementString(envs, parts[i + 4], purge);
+ if (prevCodeToken !== '.' &&
+ nextCodeToken !== '.' &&
+ nextCodeToken !== '=' &&
+ typeof replacement === 'string') {
+ out.push(replacement);
+ i += 4;
+ continue;
+ }
+ }
+ out.push(parts[i]);
+ }
+
+ return out.join('');
+}
+
+function getAdjacentCodeToken(dir, parts, i) {
+ while (true) {
+ var part = parts[i += dir];
+ if (!spaceOrCommentRe.test(part)) {
+ return part;
+ }
+ }
+}
+
+function getReplacementString(envs, name, purge) {
+ for (var j = 0; j < envs.length; j++) {
+ var env = envs[j];
+ if (typeof env[name] !== 'undefined') {
+ return JSON.stringify(env[name]);
+ }
+ }
+ if (purge) {
+ return 'undefined';
+ }
+}
+
+module.exports = replace;
diff --git a/frontend/node_modules/make-cancellable-promise/LICENSE b/frontend/node_modules/make-cancellable-promise/LICENSE
new file mode 100644
index 0000000..0f0119b
--- /dev/null
+++ b/frontend/node_modules/make-cancellable-promise/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019β2024 Wojciech Maj
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/frontend/node_modules/make-cancellable-promise/README.md b/frontend/node_modules/make-cancellable-promise/README.md
new file mode 100644
index 0000000..5bdceda
--- /dev/null
+++ b/frontend/node_modules/make-cancellable-promise/README.md
@@ -0,0 +1,80 @@
+[](https://www.npmjs.com/package/make-cancellable-promise)  [](https://github.com/wojtekmaj/make-cancellable-promise/actions)
+
+# Make-Cancellable-Promise
+
+Make any Promise cancellable.
+
+## tl;dr
+
+- Install by executing `npm install make-cancellable-promise` or `yarn add make-cancellable-promise`.
+- Import by adding `import makeCancellablePromise from 'make-cancellable-promise`.
+- Do stuff with it!
+ ```ts
+ const { promise, cancel } = makeCancellablePromise(myPromise);
+ ```
+
+## User guide
+
+### makeCancellablePromise(myPromise)
+
+A function that returns an object with two properties:
+
+`promise` and `cancel`. `promise` is a wrapped around your promise. `cancel` is a function which stops `.then()` and `.catch()` from working on `promise`, even if promise passed to `makeCancellablePromise` resolves or rejects.
+
+#### Usage
+
+```ts
+const { promise, cancel } = makeCancellablePromise(myPromise);
+```
+
+Typically, you'd want to use `makeCancellablePromise` in React components. If you call `setState` on an unmounted component, React will throw an error.
+
+Here's how you can use `makeCancellablePromise` with React:
+
+```tsx
+function MyComponent() {
+ const [status, setStatus] = useState('initial');
+
+ useEffect(() => {
+ const { promise, cancel } = makeCancellable(fetchData());
+
+ promise.then(() => setStatus('success')).catch(() => setStatus('error'));
+
+ return () => {
+ cancel();
+ };
+ }, []);
+
+ const text = (() => {
+ switch (status) {
+ case 'pending':
+ return 'Fetchingβ¦';
+ case 'success':
+ return 'Success';
+ case 'error':
+ return 'Error!';
+ default:
+ return 'Click to fetch';
+ }
+ })();
+
+ return {text}
;
+}
+```
+
+## License
+
+The MIT License.
+
+## Author
+
+
diff --git a/frontend/node_modules/make-cancellable-promise/package.json b/frontend/node_modules/make-cancellable-promise/package.json
new file mode 100644
index 0000000..cba2f56
--- /dev/null
+++ b/frontend/node_modules/make-cancellable-promise/package.json
@@ -0,0 +1,54 @@
+{
+ "name": "make-cancellable-promise",
+ "version": "2.0.0",
+ "description": "Make any Promise cancellable.",
+ "type": "module",
+ "sideEffects": false,
+ "main": "./dist/index.js",
+ "source": "./src/index.ts",
+ "types": "./dist/index.d.ts",
+ "exports": {
+ ".": "./dist/index.js",
+ "./*": "./*"
+ },
+ "scripts": {
+ "build": "tsc --project tsconfig.build.json",
+ "clean": "rimraf dist",
+ "format": "biome format",
+ "lint": "biome lint",
+ "prepack": "yarn clean && yarn build",
+ "test": "yarn lint && yarn tsc && yarn format && yarn unit",
+ "tsc": "tsc",
+ "unit": "vitest"
+ },
+ "keywords": [
+ "promise",
+ "promise-cancelling"
+ ],
+ "author": {
+ "name": "Wojciech Maj",
+ "email": "kontakt@wojtekmaj.pl"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "@biomejs/biome": "1.9.0",
+ "husky": "^9.0.0",
+ "rimraf": "^6.0.0",
+ "typescript": "^5.5.2",
+ "vitest": "^3.0.5"
+ },
+ "publishConfig": {
+ "access": "public",
+ "provenance": true
+ },
+ "files": [
+ "dist",
+ "src"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/wojtekmaj/make-cancellable-promise.git"
+ },
+ "funding": "https://github.com/wojtekmaj/make-cancellable-promise?sponsor=1",
+ "packageManager": "yarn@4.3.1"
+}
\ No newline at end of file
diff --git a/frontend/node_modules/make-cancellable-promise/src/index.spec.ts b/frontend/node_modules/make-cancellable-promise/src/index.spec.ts
new file mode 100644
index 0000000..258d698
--- /dev/null
+++ b/frontend/node_modules/make-cancellable-promise/src/index.spec.ts
@@ -0,0 +1,79 @@
+import { describe, expect, it, vi } from 'vitest';
+
+import makeCancellablePromise from './index.js';
+
+vi.useFakeTimers();
+
+describe('makeCancellablePromise()', () => {
+ function resolveInFiveSeconds(): Promise {
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve('Success');
+ }, 5000);
+ });
+ }
+
+ function rejectInFiveSeconds() {
+ return new Promise((_resolve, reject) => {
+ setTimeout(() => {
+ reject(new Error('Error'));
+ }, 5000);
+ });
+ }
+
+ it('resolves promise if not cancelled', async () => {
+ const resolve = vi.fn();
+ const reject = vi.fn();
+
+ const { promise } = makeCancellablePromise(resolveInFiveSeconds());
+
+ vi.advanceTimersByTime(5000);
+ await promise.then(resolve).catch(reject);
+
+ expect(resolve).toHaveBeenCalledWith('Success');
+ expect(reject).not.toHaveBeenCalled();
+ });
+
+ it('rejects promise if not cancelled', async () => {
+ const resolve = vi.fn();
+ const reject = vi.fn();
+
+ const { promise } = makeCancellablePromise(rejectInFiveSeconds());
+
+ vi.runAllTimers();
+ await promise.then(resolve).catch(reject);
+
+ expect(resolve).not.toHaveBeenCalled();
+ expect(reject).toHaveBeenCalledWith(expect.any(Error));
+ });
+
+ it('does not resolve promise if cancelled', async () => {
+ const resolve = vi.fn();
+ const reject = vi.fn();
+
+ const { promise, cancel } = makeCancellablePromise(rejectInFiveSeconds());
+ promise.then(resolve).catch(reject);
+
+ vi.advanceTimersByTime(2500);
+ cancel();
+ vi.advanceTimersByTime(2500);
+
+ expect(resolve).not.toHaveBeenCalled();
+ expect(reject).not.toHaveBeenCalled();
+ });
+
+ it('does not reject promise if cancelled', () => {
+ const resolve = vi.fn();
+ const reject = vi.fn();
+
+ const { promise, cancel } = makeCancellablePromise(rejectInFiveSeconds());
+ promise.then(resolve).catch(reject);
+
+ vi.advanceTimersByTime(2500);
+ cancel();
+ vi.advanceTimersByTime(2500);
+
+ expect(resolve).not.toHaveBeenCalled();
+ expect(reject).not.toHaveBeenCalled();
+ });
+});
diff --git a/frontend/node_modules/make-cancellable-promise/src/index.ts b/frontend/node_modules/make-cancellable-promise/src/index.ts
new file mode 100644
index 0000000..79a1fb3
--- /dev/null
+++ b/frontend/node_modules/make-cancellable-promise/src/index.ts
@@ -0,0 +1,19 @@
+export default function makeCancellablePromise(promise: Promise): {
+ promise: Promise;
+ cancel(): void;
+} {
+ let isCancelled = false;
+
+ const wrappedPromise: Promise = new Promise((resolve, reject) => {
+ promise
+ .then((value) => !isCancelled && resolve(value))
+ .catch((error) => !isCancelled && reject(error));
+ });
+
+ return {
+ promise: wrappedPromise,
+ cancel() {
+ isCancelled = true;
+ },
+ };
+}
diff --git a/frontend/node_modules/make-event-props/LICENSE b/frontend/node_modules/make-event-props/LICENSE
new file mode 100644
index 0000000..093714e
--- /dev/null
+++ b/frontend/node_modules/make-event-props/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018β2024 Wojciech Maj
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/frontend/node_modules/make-event-props/README.md b/frontend/node_modules/make-event-props/README.md
new file mode 100644
index 0000000..13c15cb
--- /dev/null
+++ b/frontend/node_modules/make-event-props/README.md
@@ -0,0 +1,40 @@
+[](https://www.npmjs.com/package/make-event-props)  [](https://github.com/wojtekmaj/make-event-props/actions)
+
+# Make-Event-Props
+
+A function that, given props, returns an object of event callback props optionally curried with additional arguments.
+
+This package allows you to pass event callback props to a rendered DOM element without the risk of applying any invalid props that could cause unwanted side effects.
+
+## tl;dr
+
+- Install by executing `npm install make-event-props` or `yarn add make-event-props`.
+- Import by adding `import makeEventProps from 'make-event-props'`.
+- Create your event props object:
+ ```ts
+ const eventProps = useMemo(
+ () => makeEventProps(props, (eventName) => additionalArgs),
+ [additionalArgs],
+ );
+ ```
+- Use your event props:
+ ```tsx
+ return ;
+ ```
+
+## License
+
+The MIT License.
+
+## Author
+
+
diff --git a/frontend/node_modules/make-event-props/package.json b/frontend/node_modules/make-event-props/package.json
new file mode 100644
index 0000000..d762737
--- /dev/null
+++ b/frontend/node_modules/make-event-props/package.json
@@ -0,0 +1,58 @@
+{
+ "name": "make-event-props",
+ "version": "2.0.0",
+ "description": "Returns an object with on-event callback props curried with provided args.",
+ "type": "module",
+ "sideEffects": false,
+ "main": "./dist/index.js",
+ "source": "./src/index.ts",
+ "types": "./dist/index.d.ts",
+ "exports": {
+ ".": "./dist/index.js",
+ "./*": "./*"
+ },
+ "scripts": {
+ "build": "tsc --project tsconfig.build.json",
+ "clean": "rimraf dist",
+ "format": "biome format",
+ "lint": "biome lint",
+ "prepack": "yarn clean && yarn build",
+ "test": "yarn lint && yarn tsc && yarn format && yarn unit",
+ "tsc": "tsc",
+ "unit": "vitest --typecheck"
+ },
+ "keywords": [
+ "react",
+ "event",
+ "event props"
+ ],
+ "author": {
+ "name": "Wojciech Maj",
+ "email": "kontakt@wojtekmaj.pl"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "@biomejs/biome": "1.9.0",
+ "@types/react": "*",
+ "husky": "^9.0.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "rimraf": "^6.0.0",
+ "typescript": "^5.5.2",
+ "vitest": "^3.0.5"
+ },
+ "publishConfig": {
+ "access": "public",
+ "provenance": true
+ },
+ "files": [
+ "dist",
+ "src"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/wojtekmaj/make-event-props.git"
+ },
+ "funding": "https://github.com/wojtekmaj/make-event-props?sponsor=1",
+ "packageManager": "yarn@4.3.1"
+}
\ No newline at end of file
diff --git a/frontend/node_modules/make-event-props/src/__snapshots__/index.spec.tsx.snap b/frontend/node_modules/make-event-props/src/__snapshots__/index.spec.tsx.snap
new file mode 100644
index 0000000..056a652
--- /dev/null
+++ b/frontend/node_modules/make-event-props/src/__snapshots__/index.spec.tsx.snap
@@ -0,0 +1,86 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`allEvents > should contain all events 1`] = `
+Set {
+ "onAbort",
+ "onAnimationEnd",
+ "onAnimationIteration",
+ "onAnimationStart",
+ "onBlur",
+ "onCanPlay",
+ "onCanPlayThrough",
+ "onChange",
+ "onClick",
+ "onCompositionEnd",
+ "onCompositionStart",
+ "onCompositionUpdate",
+ "onContextMenu",
+ "onCopy",
+ "onCut",
+ "onDoubleClick",
+ "onDrag",
+ "onDragEnd",
+ "onDragEnter",
+ "onDragExit",
+ "onDragLeave",
+ "onDragOver",
+ "onDragStart",
+ "onDrop",
+ "onDurationChange",
+ "onEmptied",
+ "onEncrypted",
+ "onEnded",
+ "onError",
+ "onFocus",
+ "onGotPointerCapture",
+ "onInput",
+ "onInvalid",
+ "onKeyDown",
+ "onKeyPress",
+ "onKeyUp",
+ "onLoad",
+ "onLoadStart",
+ "onLoadedData",
+ "onLoadedMetadata",
+ "onLostPointerCapture",
+ "onMouseDown",
+ "onMouseEnter",
+ "onMouseLeave",
+ "onMouseMove",
+ "onMouseOut",
+ "onMouseOver",
+ "onMouseUp",
+ "onPaste",
+ "onPause",
+ "onPlay",
+ "onPlaying",
+ "onPointerCancel",
+ "onPointerDown",
+ "onPointerEnter",
+ "onPointerLeave",
+ "onPointerMove",
+ "onPointerOut",
+ "onPointerOver",
+ "onPointerUp",
+ "onProgress",
+ "onRateChange",
+ "onReset",
+ "onScroll",
+ "onSeeked",
+ "onSeeking",
+ "onSelect",
+ "onStalled",
+ "onSubmit",
+ "onSuspend",
+ "onTimeUpdate",
+ "onToggle",
+ "onTouchCancel",
+ "onTouchEnd",
+ "onTouchMove",
+ "onTouchStart",
+ "onTransitionEnd",
+ "onVolumeChange",
+ "onWaiting",
+ "onWheel",
+}
+`;
diff --git a/frontend/node_modules/make-event-props/src/index.spec.tsx b/frontend/node_modules/make-event-props/src/index.spec.tsx
new file mode 100644
index 0000000..61b84f2
--- /dev/null
+++ b/frontend/node_modules/make-event-props/src/index.spec.tsx
@@ -0,0 +1,229 @@
+import { assertType, describe, expect, it, vi } from 'vitest';
+
+import makeEventProps, { allEvents } from './index.js';
+
+describe('makeEventProps()', () => {
+ const fakeEvent = {};
+
+ it('returns object with valid and only valid event callbacks', () => {
+ const props = {
+ onClick: vi.fn(),
+ someInvalidProp: vi.fn(),
+ };
+ const result = makeEventProps(props);
+
+ expect(result).toMatchObject({ onClick: expect.any(Function) });
+ });
+
+ it('calls getArgs function on event invoke if given', () => {
+ const props = {
+ onClick: vi.fn(),
+ someInvalidProp: vi.fn(),
+ };
+ const getArgs = vi.fn();
+ const result = makeEventProps(props, getArgs);
+
+ // getArgs shall not be invoked before a given event is fired
+ expect(getArgs).not.toHaveBeenCalled();
+
+ result.onClick(fakeEvent);
+
+ expect(getArgs).toHaveBeenCalledTimes(1);
+ expect(getArgs).toHaveBeenCalledWith('onClick');
+ });
+
+ it('properly calls callbacks given in props given no getArgs function', () => {
+ const props = {
+ onClick: vi.fn(),
+ };
+ const result = makeEventProps(props);
+
+ result.onClick(fakeEvent);
+
+ expect(props.onClick).toHaveBeenCalledWith(fakeEvent);
+ });
+
+ it('properly calls callbacks given in props given getArgs function', () => {
+ const props = {
+ onClick: vi.fn(),
+ };
+ const getArgs = vi.fn();
+ const args = {};
+ getArgs.mockReturnValue(args);
+ const result = makeEventProps(props, getArgs);
+
+ result.onClick(fakeEvent);
+
+ expect(props.onClick).toHaveBeenCalledWith(fakeEvent, args);
+ });
+
+ it('should not filter out valid event props', () => {
+ const props = {
+ onClick: vi.fn(),
+ };
+
+ const result = makeEventProps(props);
+
+ assertType(result.onClick);
+ });
+
+ it('should filter out invalid event props', () => {
+ const props = {
+ someInvalidProp: vi.fn(),
+ };
+
+ const result = makeEventProps(props);
+
+ expect(result).not.toHaveProperty('someInvalidProp');
+ });
+
+ it('should allow valid onClick handler to be passed', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent) => {
+ // Intentionally empty
+ },
+ };
+
+ // @ts-expect-no-error
+ makeEventProps(props);
+ });
+
+ it('should not allow invalid onClick handler to be passed', () => {
+ const props = {
+ onClick: 'potato',
+ };
+
+ // @ts-expect-error-next-line
+ makeEventProps(props);
+ });
+
+ it('should allow onClick handler with extra args to be passed if getArgs is provided', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent, _args: string) => {
+ // Intentionally empty
+ },
+ };
+
+ // @ts-expect-no-error
+ makeEventProps(props, () => 'hello');
+ });
+
+ it('should not allow onClick handler with extra args to be passed if getArgs is not provided', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent, _args: string) => {
+ // Intentionally empty
+ },
+ };
+
+ // @ts-expect-error-next-line
+ makeEventProps(props);
+ });
+
+ it('should not allow onClick handler with extra args to be passed if getArgs is provided but returns different type', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent, _args: string) => {
+ // Intentionally empty
+ },
+ };
+
+ // @ts-expect-error-next-line
+ makeEventProps(props, () => 5);
+ });
+
+ it('should allow div onClick handler to be passed to div', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent) => {
+ // Intentionally empty
+ },
+ };
+
+ const result = makeEventProps(props);
+
+ // @ts-expect-no-error
+ // biome-ignore lint/a11y/useKeyWithClickEvents: This is only a test
+ ;
+ });
+
+ it('should not allow div onClick handler to be passed to button', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent) => {
+ // Intentionally empty
+ },
+ };
+
+ const result = makeEventProps(props);
+
+ // @ts-expect-error-next-line
+ ;
+ });
+
+ it('should allow div onClick handler with extra args to be passed to div if getArgs is provided', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent, _args: string) => {
+ // Intentionally empty
+ },
+ };
+
+ const result = makeEventProps(props, () => 'hello');
+
+ // @ts-expect-no-error
+ // biome-ignore lint/a11y/useKeyWithClickEvents: This is only a test
+ ;
+ });
+
+ it('should not allow div onClick handler with extra args to be passed to button if getArgs is provided', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent, _args: string) => {
+ // Intentionally empty
+ },
+ };
+
+ const result = makeEventProps(props, () => 'hello');
+
+ // @ts-expect-error-next-line
+ ;
+ });
+
+ it('should allow onClick handler with valid extra args to be passed with args explicitly typed', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent, _args: string) => {
+ // Intentionally empty
+ },
+ };
+
+ // @ts-expect-no-error
+ makeEventProps(props, () => 'hello');
+ });
+
+ it('should not allow onClick handler with invalid extra args to be passed with args explicitly typed', () => {
+ const props = {
+ onClick: (_event: React.MouseEvent, _args: number) => {
+ // Intentionally empty
+ },
+ };
+
+ // @ts-expect-error-next-line
+ makeEventProps(props, () => 'hello');
+ });
+
+ it('should allow getArgs returning valid type to be passed with args explicitly typed', () => {
+ const props = {};
+
+ // @ts-expect-no-error
+ makeEventProps(props, () => 'hello');
+ });
+
+ it('should not allow getArgs returning invalid type to be passed with args explicitly typed', () => {
+ const props = {};
+
+ // @ts-expect-error-next-line
+ makeEventProps(props, () => 5);
+ });
+});
+
+describe('allEvents', () => {
+ it('should contain all events', () => {
+ const sortedAllEvents = new Set([...allEvents].sort());
+ expect(sortedAllEvents).toMatchSnapshot();
+ });
+});
diff --git a/frontend/node_modules/make-event-props/src/index.ts b/frontend/node_modules/make-event-props/src/index.ts
new file mode 100644
index 0000000..2185c25
--- /dev/null
+++ b/frontend/node_modules/make-event-props/src/index.ts
@@ -0,0 +1,250 @@
+// As defined on the list of supported events: https://reactjs.org/docs/events.html
+export const clipboardEvents = ['onCopy', 'onCut', 'onPaste'] as const;
+export const compositionEvents = [
+ 'onCompositionEnd',
+ 'onCompositionStart',
+ 'onCompositionUpdate',
+] as const;
+export const focusEvents = ['onFocus', 'onBlur'] as const;
+export const formEvents = ['onInput', 'onInvalid', 'onReset', 'onSubmit'] as const;
+export const imageEvents = ['onLoad', 'onError'] as const;
+export const keyboardEvents = ['onKeyDown', 'onKeyPress', 'onKeyUp'] as const;
+export const mediaEvents = [
+ 'onAbort',
+ 'onCanPlay',
+ 'onCanPlayThrough',
+ 'onDurationChange',
+ 'onEmptied',
+ 'onEncrypted',
+ 'onEnded',
+ 'onError',
+ 'onLoadedData',
+ 'onLoadedMetadata',
+ 'onLoadStart',
+ 'onPause',
+ 'onPlay',
+ 'onPlaying',
+ 'onProgress',
+ 'onRateChange',
+ 'onSeeked',
+ 'onSeeking',
+ 'onStalled',
+ 'onSuspend',
+ 'onTimeUpdate',
+ 'onVolumeChange',
+ 'onWaiting',
+] as const;
+export const mouseEvents = [
+ 'onClick',
+ 'onContextMenu',
+ 'onDoubleClick',
+ 'onMouseDown',
+ 'onMouseEnter',
+ 'onMouseLeave',
+ 'onMouseMove',
+ 'onMouseOut',
+ 'onMouseOver',
+ 'onMouseUp',
+] as const;
+export const dragEvents = [
+ 'onDrag',
+ 'onDragEnd',
+ 'onDragEnter',
+ 'onDragExit',
+ 'onDragLeave',
+ 'onDragOver',
+ 'onDragStart',
+ 'onDrop',
+] as const;
+export const selectionEvents = ['onSelect'] as const;
+export const touchEvents = ['onTouchCancel', 'onTouchEnd', 'onTouchMove', 'onTouchStart'] as const;
+export const pointerEvents = [
+ 'onPointerDown',
+ 'onPointerMove',
+ 'onPointerUp',
+ 'onPointerCancel',
+ 'onGotPointerCapture',
+ 'onLostPointerCapture',
+ 'onPointerEnter',
+ 'onPointerLeave',
+ 'onPointerOver',
+ 'onPointerOut',
+] as const;
+export const uiEvents = ['onScroll'] as const;
+export const wheelEvents = ['onWheel'] as const;
+export const animationEvents = [
+ 'onAnimationStart',
+ 'onAnimationEnd',
+ 'onAnimationIteration',
+] as const;
+export const transitionEvents = ['onTransitionEnd'] as const;
+export const otherEvents = ['onToggle'] as const;
+export const changeEvents = ['onChange'] as const;
+
+export const allEvents: readonly [
+ 'onCopy',
+ 'onCut',
+ 'onPaste',
+ 'onCompositionEnd',
+ 'onCompositionStart',
+ 'onCompositionUpdate',
+ 'onFocus',
+ 'onBlur',
+ 'onInput',
+ 'onInvalid',
+ 'onReset',
+ 'onSubmit',
+ 'onLoad',
+ 'onError',
+ 'onKeyDown',
+ 'onKeyPress',
+ 'onKeyUp',
+ 'onAbort',
+ 'onCanPlay',
+ 'onCanPlayThrough',
+ 'onDurationChange',
+ 'onEmptied',
+ 'onEncrypted',
+ 'onEnded',
+ 'onError',
+ 'onLoadedData',
+ 'onLoadedMetadata',
+ 'onLoadStart',
+ 'onPause',
+ 'onPlay',
+ 'onPlaying',
+ 'onProgress',
+ 'onRateChange',
+ 'onSeeked',
+ 'onSeeking',
+ 'onStalled',
+ 'onSuspend',
+ 'onTimeUpdate',
+ 'onVolumeChange',
+ 'onWaiting',
+ 'onClick',
+ 'onContextMenu',
+ 'onDoubleClick',
+ 'onMouseDown',
+ 'onMouseEnter',
+ 'onMouseLeave',
+ 'onMouseMove',
+ 'onMouseOut',
+ 'onMouseOver',
+ 'onMouseUp',
+ 'onDrag',
+ 'onDragEnd',
+ 'onDragEnter',
+ 'onDragExit',
+ 'onDragLeave',
+ 'onDragOver',
+ 'onDragStart',
+ 'onDrop',
+ 'onSelect',
+ 'onTouchCancel',
+ 'onTouchEnd',
+ 'onTouchMove',
+ 'onTouchStart',
+ 'onPointerDown',
+ 'onPointerMove',
+ 'onPointerUp',
+ 'onPointerCancel',
+ 'onGotPointerCapture',
+ 'onLostPointerCapture',
+ 'onPointerEnter',
+ 'onPointerLeave',
+ 'onPointerOver',
+ 'onPointerOut',
+ 'onScroll',
+ 'onWheel',
+ 'onAnimationStart',
+ 'onAnimationEnd',
+ 'onAnimationIteration',
+ 'onTransitionEnd',
+ 'onChange',
+ 'onToggle',
+] = [
+ ...clipboardEvents,
+ ...compositionEvents,
+ ...focusEvents,
+ ...formEvents,
+ ...imageEvents,
+ ...keyboardEvents,
+ ...mediaEvents,
+ ...mouseEvents,
+ ...dragEvents,
+ ...selectionEvents,
+ ...touchEvents,
+ ...pointerEvents,
+ ...uiEvents,
+ ...wheelEvents,
+ ...animationEvents,
+ ...transitionEvents,
+ ...changeEvents,
+ ...otherEvents,
+] as const;
+
+type AllEvents = (typeof allEvents)[number];
+
+// biome-ignore lint/suspicious/noExplicitAny: Impossible to type
+type EventHandler = (event: any, args: ArgsType) => void;
+
+// Creates inferred type for event handler without args.
+type EventHandlerWithoutArgs = OriginalEventHandler extends (
+ event: infer Event,
+ args: ArgsType,
+) => void
+ ? (event: Event) => void
+ : never;
+
+export type EventProps = {
+ [K in AllEvents]?: EventHandler;
+};
+
+type Props = Record & EventProps;
+
+type EventPropsWithoutArgs = {
+ [K in keyof PropsType as K extends AllEvents ? K : never]: EventHandlerWithoutArgs<
+ ArgsType,
+ PropsType[K]
+ >;
+};
+
+type GetArgs = (eventName: string) => ArgsType;
+
+/**
+ * Returns an object with on-event callback props curried with provided args.
+ *
+ * @template ArgsType Type of arguments to curry on-event callbacks with.
+ * @param {PropsType} props Props passed to a component.
+ * @param {GetArgs} [getArgs] A function that returns argument(s) on-event callbacks
+ * shall be curried with.
+ */
+export default function makeEventProps<
+ ArgsType,
+ PropsType extends Props = Props,
+>(props: PropsType, getArgs?: GetArgs): EventPropsWithoutArgs {
+ const eventProps: EventPropsWithoutArgs = {} as EventPropsWithoutArgs<
+ ArgsType,
+ PropsType
+ >;
+
+ for (const eventName of allEvents) {
+ type EventHandlerType = EventPropsWithoutArgs[typeof eventName];
+
+ const eventHandler = props[eventName];
+
+ if (!eventHandler) {
+ continue;
+ }
+
+ if (getArgs) {
+ eventProps[eventName] = ((event) =>
+ eventHandler(event, getArgs(eventName))) as EventHandlerType;
+ } else {
+ eventProps[eventName] = eventHandler as EventHandlerType;
+ }
+ }
+
+ return eventProps;
+}
diff --git a/frontend/node_modules/merge-refs/LICENSE b/frontend/node_modules/merge-refs/LICENSE
new file mode 100644
index 0000000..20dca59
--- /dev/null
+++ b/frontend/node_modules/merge-refs/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017β2024 Wojciech Maj
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/frontend/node_modules/merge-refs/README.md b/frontend/node_modules/merge-refs/README.md
new file mode 100644
index 0000000..69e8d10
--- /dev/null
+++ b/frontend/node_modules/merge-refs/README.md
@@ -0,0 +1,47 @@
+[](https://www.npmjs.com/package/merge-refs)  [](https://github.com/wojtekmaj/merge-refs/actions)
+
+# Merge-Refs
+
+A function that merges React refs into one. Filters out invalid (eg. falsy) refs as well and returns original ref if only one valid ref was given.
+
+## tl;dr
+
+- Install by executing `npm install merge-refs` or `yarn add merge-refs`.
+- Import by adding `import mergeRefs from 'merge-refs'`.
+- Use it in `ref` like so: ``
+
+## Accepted refs
+
+- Refs created using `createRef()`
+- Refs created using `useRef()`
+- Functional refs
+
+## Example
+
+```tsx
+function Hello() {
+ const ref1 = useRef(); // I'm going to be updated!
+ const ref2 = (element: HTMLDivElement) => {
+ // I'm going to be called!
+ };
+
+ return ;
+}
+```
+
+## License
+
+The MIT License.
+
+## Author
+
+
diff --git a/frontend/node_modules/merge-refs/package.json b/frontend/node_modules/merge-refs/package.json
new file mode 100644
index 0000000..89c8cd2
--- /dev/null
+++ b/frontend/node_modules/merge-refs/package.json
@@ -0,0 +1,70 @@
+{
+ "name": "merge-refs",
+ "version": "2.0.0",
+ "description": "A function that merges React refs into one.",
+ "type": "module",
+ "sideEffects": false,
+ "main": "./dist/index.js",
+ "source": "./src/index.ts",
+ "types": "./dist/index.d.ts",
+ "exports": {
+ ".": "./dist/index.js",
+ "./*": "./*"
+ },
+ "scripts": {
+ "build": "tsc --project tsconfig.build.json",
+ "clean": "rimraf dist",
+ "format": "biome format",
+ "lint": "biome lint",
+ "prepack": "yarn clean && yarn build",
+ "test": "yarn lint && yarn tsc && yarn format && yarn unit",
+ "tsc": "tsc",
+ "unit": "vitest"
+ },
+ "keywords": [
+ "react",
+ "react ref",
+ "react refs",
+ "merge"
+ ],
+ "author": {
+ "name": "Wojciech Maj",
+ "email": "kontakt@wojtekmaj.pl"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "@biomejs/biome": "1.9.0",
+ "@testing-library/dom": "^10.0.0",
+ "@testing-library/react": "^16.0.0",
+ "@types/react": "*",
+ "happy-dom": "^15.10.2",
+ "husky": "^9.0.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "rimraf": "^6.0.0",
+ "typescript": "^5.5.2",
+ "vitest": "^3.0.5"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ },
+ "publishConfig": {
+ "access": "public",
+ "provenance": true
+ },
+ "files": [
+ "dist",
+ "src"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/wojtekmaj/merge-refs.git"
+ },
+ "funding": "https://github.com/wojtekmaj/merge-refs?sponsor=1",
+ "packageManager": "yarn@4.3.1"
+}
\ No newline at end of file
diff --git a/frontend/node_modules/merge-refs/src/index.spec.tsx b/frontend/node_modules/merge-refs/src/index.spec.tsx
new file mode 100644
index 0000000..85d1f37
--- /dev/null
+++ b/frontend/node_modules/merge-refs/src/index.spec.tsx
@@ -0,0 +1,68 @@
+import { describe, expect, it, vi } from 'vitest';
+import { createRef } from 'react';
+import { render } from '@testing-library/react';
+
+import mergeRefs from './index.js';
+
+describe('mergeRefs()', () => {
+ it('returns falsy result given no arguments', () => {
+ const result = mergeRefs();
+
+ expect(result).toBeFalsy();
+ });
+
+ it('returns falsy result given falsy arguments', () => {
+ const result = mergeRefs(null, null);
+
+ expect(result).toBeFalsy();
+ });
+
+ it('returns original ref given only one ref', () => {
+ const ref = vi.fn();
+
+ const result = mergeRefs(ref);
+
+ expect(result).toBe(ref);
+ });
+
+ it('returns original ref given one ref and one falsy argument', () => {
+ const ref = vi.fn();
+
+ const result = mergeRefs(ref, null);
+
+ expect(result).toBe(ref);
+ });
+
+ it('returns merged refs properly', () => {
+ const ref1 = vi.fn();
+ const ref2 = createRef();
+
+ const result = mergeRefs(ref1, ref2);
+
+ expect(result).not.toBe(ref1);
+ expect(result).toEqual(expect.any(Function));
+ });
+
+ it('handles merged functional refs properly', () => {
+ const ref1 = vi.fn();
+ const ref2 = createRef();
+
+ const mergedRef = mergeRefs(ref1, ref2);
+
+ const { container } = render();
+
+ expect(ref1).toHaveBeenCalledTimes(1);
+ expect(ref1).toHaveBeenCalledWith(container.firstElementChild);
+ });
+
+ it('handles merged object refs properly', () => {
+ const ref1 = createRef();
+ const ref2 = vi.fn();
+
+ const mergedRef = mergeRefs(ref1, ref2);
+
+ const { container } = render();
+
+ expect(ref1.current).toBe(container.firstElementChild);
+ });
+});
diff --git a/frontend/node_modules/merge-refs/src/index.ts b/frontend/node_modules/merge-refs/src/index.ts
new file mode 100644
index 0000000..475e8d2
--- /dev/null
+++ b/frontend/node_modules/merge-refs/src/index.ts
@@ -0,0 +1,35 @@
+import type * as React from 'react';
+
+/**
+ * A function that merges React refs into one.
+ * Supports both functions and ref objects created using createRef() and useRef().
+ *
+ * Usage:
+ * ```tsx
+ *
+ * ```
+ *
+ * @param {(React.Ref | undefined)[]} inputRefs Array of refs
+ * @returns {React.Ref | React.RefCallback} Merged refs
+ */
+export default function mergeRefs(
+ ...inputRefs: (React.Ref | undefined)[]
+): React.Ref | React.RefCallback {
+ const filteredInputRefs = inputRefs.filter(Boolean);
+
+ if (filteredInputRefs.length <= 1) {
+ const firstRef = filteredInputRefs[0];
+
+ return firstRef || null;
+ }
+
+ return function mergedRefs(ref) {
+ for (const inputRef of filteredInputRefs) {
+ if (typeof inputRef === 'function') {
+ inputRef(ref);
+ } else if (inputRef) {
+ (inputRef as React.MutableRefObject).current = ref;
+ }
+ }
+ };
+}
diff --git a/frontend/node_modules/pdfjs-dist/CODE_OF_CONDUCT.md b/frontend/node_modules/pdfjs-dist/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..498baa3
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/CODE_OF_CONDUCT.md
@@ -0,0 +1,15 @@
+# Community Participation Guidelines
+
+This repository is governed by Mozilla's code of conduct and etiquette guidelines.
+For more details, please read the
+[Mozilla Community Participation Guidelines](https://www.mozilla.org/about/governance/policies/participation/).
+
+## How to Report
+For more information on how to report violations of the Community Participation Guidelines, please read our '[How to Report](https://www.mozilla.org/about/governance/policies/participation/reporting/)' page.
+
+
diff --git a/frontend/node_modules/pdfjs-dist/LICENSE b/frontend/node_modules/pdfjs-dist/LICENSE
new file mode 100644
index 0000000..f433b1a
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/LICENSE
@@ -0,0 +1,177 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
diff --git a/frontend/node_modules/pdfjs-dist/README.md b/frontend/node_modules/pdfjs-dist/README.md
new file mode 100644
index 0000000..70b6b3c
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/README.md
@@ -0,0 +1,14 @@
+# PDF.js
+
+PDF.js is a Portable Document Format (PDF) library that is built with HTML5.
+Our goal is to create a general-purpose, web standards-based platform for
+parsing and rendering PDFs.
+
+This is a pre-built version of the PDF.js source code. It is automatically
+generated by the build scripts.
+
+For usage with older browsers/environments, without native support for the
+latest JavaScript features, please see the `legacy/` folder.
+Please see [this wiki page](https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-support) for information about supported browsers/environments.
+
+See https://github.com/mozilla/pdf.js for learning and contributing.
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/78-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/78-EUC-H.bcmap
new file mode 100644
index 0000000..2655fc7
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/78-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/78-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/78-EUC-V.bcmap
new file mode 100644
index 0000000..f1ed853
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/78-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/78-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/78-H.bcmap
new file mode 100644
index 0000000..39e89d3
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/78-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/78-RKSJ-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/78-RKSJ-H.bcmap
new file mode 100644
index 0000000..e4167cb
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/78-RKSJ-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/78-RKSJ-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/78-RKSJ-V.bcmap
new file mode 100644
index 0000000..50b1646
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/78-RKSJ-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/78-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/78-V.bcmap
new file mode 100644
index 0000000..d7af99b
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/78-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/78ms-RKSJ-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/78ms-RKSJ-H.bcmap
new file mode 100644
index 0000000..37077d0
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/78ms-RKSJ-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/78ms-RKSJ-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/78ms-RKSJ-V.bcmap
new file mode 100644
index 0000000..acf2323
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/78ms-RKSJ-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/83pv-RKSJ-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/83pv-RKSJ-H.bcmap
new file mode 100644
index 0000000..2359bc5
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/83pv-RKSJ-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/90ms-RKSJ-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/90ms-RKSJ-H.bcmap
new file mode 100644
index 0000000..af82938
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/90ms-RKSJ-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/90ms-RKSJ-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/90ms-RKSJ-V.bcmap
new file mode 100644
index 0000000..780549d
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/90ms-RKSJ-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/90msp-RKSJ-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/90msp-RKSJ-H.bcmap
new file mode 100644
index 0000000..bfd3119
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/90msp-RKSJ-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/90msp-RKSJ-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/90msp-RKSJ-V.bcmap
new file mode 100644
index 0000000..25ef14a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/90msp-RKSJ-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/90pv-RKSJ-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/90pv-RKSJ-H.bcmap
new file mode 100644
index 0000000..02f713b
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/90pv-RKSJ-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/90pv-RKSJ-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/90pv-RKSJ-V.bcmap
new file mode 100644
index 0000000..d08e0cc
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/90pv-RKSJ-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Add-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Add-H.bcmap
new file mode 100644
index 0000000..59442ac
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Add-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Add-RKSJ-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Add-RKSJ-H.bcmap
new file mode 100644
index 0000000..a3065e4
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Add-RKSJ-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Add-RKSJ-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Add-RKSJ-V.bcmap
new file mode 100644
index 0000000..040014c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Add-RKSJ-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Add-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Add-V.bcmap
new file mode 100644
index 0000000..2f816d3
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Add-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-0.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-0.bcmap
new file mode 100644
index 0000000..88ec04a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-0.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-1.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-1.bcmap
new file mode 100644
index 0000000..03a5014
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-1.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-2.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-2.bcmap
new file mode 100644
index 0000000..2aa9514
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-2.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-3.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-3.bcmap
new file mode 100644
index 0000000..86d8b8c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-3.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-4.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-4.bcmap
new file mode 100644
index 0000000..f50fc6c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-4.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-5.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-5.bcmap
new file mode 100644
index 0000000..6caf4a8
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-5.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-6.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-6.bcmap
new file mode 100644
index 0000000..b77fb07
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-6.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-UCS2.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-UCS2.bcmap
new file mode 100644
index 0000000..69d79a2
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-UCS2.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-0.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-0.bcmap
new file mode 100644
index 0000000..3610108
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-0.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-1.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-1.bcmap
new file mode 100644
index 0000000..707bb10
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-1.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-2.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-2.bcmap
new file mode 100644
index 0000000..f7648cc
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-2.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-3.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-3.bcmap
new file mode 100644
index 0000000..8521458
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-3.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-4.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-4.bcmap
new file mode 100644
index 0000000..e40c63a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-4.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-5.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-5.bcmap
new file mode 100644
index 0000000..d7623b5
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-5.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-UCS2.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-UCS2.bcmap
new file mode 100644
index 0000000..7586525
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-GB1-UCS2.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-0.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-0.bcmap
new file mode 100644
index 0000000..f0e94ec
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-0.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-1.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-1.bcmap
new file mode 100644
index 0000000..dad42c5
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-1.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-2.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-2.bcmap
new file mode 100644
index 0000000..090819a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-2.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-3.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-3.bcmap
new file mode 100644
index 0000000..087dfc1
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-3.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-4.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-4.bcmap
new file mode 100644
index 0000000..46aa9bf
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-4.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-5.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-5.bcmap
new file mode 100644
index 0000000..5b4b65c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-5.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-6.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-6.bcmap
new file mode 100644
index 0000000..e77d699
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-6.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-UCS2.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-UCS2.bcmap
new file mode 100644
index 0000000..128a141
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-UCS2.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-0.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-0.bcmap
new file mode 100644
index 0000000..cef1a99
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-0.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-1.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-1.bcmap
new file mode 100644
index 0000000..11ffa36
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-1.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-2.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-2.bcmap
new file mode 100644
index 0000000..3172308
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-2.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-UCS2.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-UCS2.bcmap
new file mode 100644
index 0000000..f3371c0
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-UCS2.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/B5-H.bcmap
new file mode 100644
index 0000000..beb4d22
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/B5-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/B5-V.bcmap
new file mode 100644
index 0000000..2d4f87d
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/B5pc-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/B5pc-H.bcmap
new file mode 100644
index 0000000..ce00131
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/B5pc-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/B5pc-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/B5pc-V.bcmap
new file mode 100644
index 0000000..73b99ff
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/B5pc-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/CNS-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/CNS-EUC-H.bcmap
new file mode 100644
index 0000000..61d1d0c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/CNS-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/CNS-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/CNS-EUC-V.bcmap
new file mode 100644
index 0000000..1a393a5
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/CNS-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/CNS1-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/CNS1-H.bcmap
new file mode 100644
index 0000000..f738e21
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/CNS1-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/CNS1-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/CNS1-V.bcmap
new file mode 100644
index 0000000..9c3169f
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/CNS1-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/CNS2-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/CNS2-H.bcmap
new file mode 100644
index 0000000..c89b352
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/CNS2-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/CNS2-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/CNS2-V.bcmap
new file mode 100644
index 0000000..7588cec
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/cmaps/CNS2-V.bcmap
@@ -0,0 +1,3 @@
+ΰRCopyright 1990-2009 Adobe Systems Incorporated.
+All rights reserved.
+See ./LICENSEαCNS2-H
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/ETHK-B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/ETHK-B5-H.bcmap
new file mode 100644
index 0000000..cb29415
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/ETHK-B5-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/ETHK-B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/ETHK-B5-V.bcmap
new file mode 100644
index 0000000..f09aec6
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/ETHK-B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/ETen-B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/ETen-B5-H.bcmap
new file mode 100644
index 0000000..c2d7746
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/ETen-B5-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/ETen-B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/ETen-B5-V.bcmap
new file mode 100644
index 0000000..89bff15
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/ETen-B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/ETenms-B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/ETenms-B5-H.bcmap
new file mode 100644
index 0000000..a7d69db
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/cmaps/ETenms-B5-H.bcmap
@@ -0,0 +1,3 @@
+ΰRCopyright 1990-2009 Adobe Systems Incorporated.
+All rights reserved.
+See ./LICENSEα ETen-B5-H` ^
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/ETenms-B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/ETenms-B5-V.bcmap
new file mode 100644
index 0000000..adc5d61
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/ETenms-B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/EUC-H.bcmap
new file mode 100644
index 0000000..e92ea5b
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/EUC-V.bcmap
new file mode 100644
index 0000000..7a7c183
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Ext-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Ext-H.bcmap
new file mode 100644
index 0000000..3b5cde4
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Ext-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Ext-RKSJ-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Ext-RKSJ-H.bcmap
new file mode 100644
index 0000000..ea4d2d9
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Ext-RKSJ-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Ext-RKSJ-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Ext-RKSJ-V.bcmap
new file mode 100644
index 0000000..3457c27
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Ext-RKSJ-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Ext-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Ext-V.bcmap
new file mode 100644
index 0000000..4999ca4
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Ext-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GB-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GB-EUC-H.bcmap
new file mode 100644
index 0000000..e39908b
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GB-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GB-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GB-EUC-V.bcmap
new file mode 100644
index 0000000..d5be544
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GB-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GB-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GB-H.bcmap
new file mode 100644
index 0000000..39189c5
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/cmaps/GB-H.bcmap
@@ -0,0 +1,4 @@
+ΰRCopyright 1990-2009 Adobe Systems Incorporated.
+All rights reserved.
+See ./LICENSE!!Ί]aX!!]`21> pz$]"Rd-U7*
4%+ Z {/
%
<9K
b1]."`],"]
+"]h"]F"]$"]"]`"]>"]"]z"]X"]6"]"]r"]P"]."]"]j"]H"]&"]"]b"]@"]"]|"]Z"]8"]"]t"]R"]0"]"]l"]J"] ("]‘"]‘d"]’B"]£ "X£~']€W"]₯5"]¦"]¦q"]§O"]¨-"]©"]©i"]ͺG"]«%"]¬"]¬a"]?"]"]{"]―Y"]°7"]±"]±s"]²Q"]³/"]΄
"]΄k"]΅I"]Ά'"]·"]·c"]ΈA"]Ή"]Ή}"]Ί["]»9
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GB-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GB-V.bcmap
new file mode 100644
index 0000000..3108345
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GB-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBK-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBK-EUC-H.bcmap
new file mode 100644
index 0000000..05fff7e
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBK-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBK-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBK-EUC-V.bcmap
new file mode 100644
index 0000000..0cdf6be
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBK-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBK2K-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBK2K-H.bcmap
new file mode 100644
index 0000000..46f6ba5
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBK2K-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBK2K-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBK2K-V.bcmap
new file mode 100644
index 0000000..d9a9479
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBK2K-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBKp-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBKp-EUC-H.bcmap
new file mode 100644
index 0000000..5cb0af6
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBKp-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBKp-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBKp-EUC-V.bcmap
new file mode 100644
index 0000000..bca93b8
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBKp-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBT-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBT-EUC-H.bcmap
new file mode 100644
index 0000000..4b4e2d3
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBT-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBT-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBT-EUC-V.bcmap
new file mode 100644
index 0000000..38f7066
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBT-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBT-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBT-H.bcmap
new file mode 100644
index 0000000..8437ac3
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBT-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBT-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBT-V.bcmap
new file mode 100644
index 0000000..697ab4a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBT-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBTpc-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBTpc-EUC-H.bcmap
new file mode 100644
index 0000000..f6e50e8
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBTpc-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBTpc-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBTpc-EUC-V.bcmap
new file mode 100644
index 0000000..6c0d71a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBTpc-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBpc-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBpc-EUC-H.bcmap
new file mode 100644
index 0000000..c9edf67
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBpc-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/GBpc-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/GBpc-EUC-V.bcmap
new file mode 100644
index 0000000..31450c9
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/GBpc-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/H.bcmap
new file mode 100644
index 0000000..7b24ea4
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKdla-B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKdla-B5-H.bcmap
new file mode 100644
index 0000000..7d30c05
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKdla-B5-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKdla-B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKdla-B5-V.bcmap
new file mode 100644
index 0000000..7894694
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKdla-B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKdlb-B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKdlb-B5-H.bcmap
new file mode 100644
index 0000000..d829a23
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKdlb-B5-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKdlb-B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKdlb-B5-V.bcmap
new file mode 100644
index 0000000..2b572b5
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKdlb-B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKgccs-B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKgccs-B5-H.bcmap
new file mode 100644
index 0000000..971a4f2
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKgccs-B5-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKgccs-B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKgccs-B5-V.bcmap
new file mode 100644
index 0000000..d353ca2
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKgccs-B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKm314-B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKm314-B5-H.bcmap
new file mode 100644
index 0000000..576dc01
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKm314-B5-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKm314-B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKm314-B5-V.bcmap
new file mode 100644
index 0000000..0e96d0e
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKm314-B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKm471-B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKm471-B5-H.bcmap
new file mode 100644
index 0000000..11d170c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKm471-B5-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKm471-B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKm471-B5-V.bcmap
new file mode 100644
index 0000000..54959bf
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKm471-B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKscs-B5-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKscs-B5-H.bcmap
new file mode 100644
index 0000000..6ef7857
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKscs-B5-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/HKscs-B5-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/HKscs-B5-V.bcmap
new file mode 100644
index 0000000..1fb2fa2
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/HKscs-B5-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Hankaku.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Hankaku.bcmap
new file mode 100644
index 0000000..4b8ec7f
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Hankaku.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Hiragana.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Hiragana.bcmap
new file mode 100644
index 0000000..17e983e
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Hiragana.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSC-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSC-EUC-H.bcmap
new file mode 100644
index 0000000..a45c65f
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSC-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSC-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSC-EUC-V.bcmap
new file mode 100644
index 0000000..0e7b21f
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSC-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSC-H.bcmap
new file mode 100644
index 0000000..b9b22b6
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSC-Johab-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSC-Johab-H.bcmap
new file mode 100644
index 0000000..2531ffc
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSC-Johab-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSC-Johab-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSC-Johab-V.bcmap
new file mode 100644
index 0000000..367ceb2
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSC-Johab-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSC-V.bcmap
new file mode 100644
index 0000000..6ae2f0b
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-H.bcmap
new file mode 100644
index 0000000..a8d4240
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-HW-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-HW-H.bcmap
new file mode 100644
index 0000000..8b4ae18
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-HW-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-HW-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-HW-V.bcmap
new file mode 100644
index 0000000..b655dbc
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-HW-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-V.bcmap
new file mode 100644
index 0000000..21f97f6
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSCms-UHC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSCpc-EUC-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSCpc-EUC-H.bcmap
new file mode 100644
index 0000000..e06f361
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSCpc-EUC-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/KSCpc-EUC-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/KSCpc-EUC-V.bcmap
new file mode 100644
index 0000000..f3c9113
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/KSCpc-EUC-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Katakana.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Katakana.bcmap
new file mode 100644
index 0000000..524303c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Katakana.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/LICENSE b/frontend/node_modules/pdfjs-dist/cmaps/LICENSE
new file mode 100644
index 0000000..b1ad168
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/cmaps/LICENSE
@@ -0,0 +1,36 @@
+%%Copyright: -----------------------------------------------------------
+%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
+%%Copyright: All rights reserved.
+%%Copyright:
+%%Copyright: Redistribution and use in source and binary forms, with or
+%%Copyright: without modification, are permitted provided that the
+%%Copyright: following conditions are met:
+%%Copyright:
+%%Copyright: Redistributions of source code must retain the above
+%%Copyright: copyright notice, this list of conditions and the following
+%%Copyright: disclaimer.
+%%Copyright:
+%%Copyright: Redistributions in binary form must reproduce the above
+%%Copyright: copyright notice, this list of conditions and the following
+%%Copyright: disclaimer in the documentation and/or other materials
+%%Copyright: provided with the distribution.
+%%Copyright:
+%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
+%%Copyright: of its contributors may be used to endorse or promote
+%%Copyright: products derived from this software without specific prior
+%%Copyright: written permission.
+%%Copyright:
+%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+%%Copyright: -----------------------------------------------------------
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/NWP-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/NWP-H.bcmap
new file mode 100644
index 0000000..afc5e4b
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/NWP-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/NWP-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/NWP-V.bcmap
new file mode 100644
index 0000000..bb5785e
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/NWP-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/RKSJ-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/RKSJ-H.bcmap
new file mode 100644
index 0000000..fb8d298
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/RKSJ-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/RKSJ-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/RKSJ-V.bcmap
new file mode 100644
index 0000000..a2555a6
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/RKSJ-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/Roman.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/Roman.bcmap
new file mode 100644
index 0000000..f896dcf
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/Roman.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UCS2-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UCS2-H.bcmap
new file mode 100644
index 0000000..d5db27c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UCS2-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UCS2-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UCS2-V.bcmap
new file mode 100644
index 0000000..1dc9b7a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UCS2-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF16-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF16-H.bcmap
new file mode 100644
index 0000000..961afef
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF16-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF16-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF16-V.bcmap
new file mode 100644
index 0000000..df0cffe
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF16-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF32-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF32-H.bcmap
new file mode 100644
index 0000000..1ab18a1
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF32-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF32-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF32-V.bcmap
new file mode 100644
index 0000000..ad14662
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF32-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF8-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF8-H.bcmap
new file mode 100644
index 0000000..83c6bd7
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF8-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF8-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF8-V.bcmap
new file mode 100644
index 0000000..22a27e4
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniCNS-UTF8-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UCS2-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UCS2-H.bcmap
new file mode 100644
index 0000000..5bd6228
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UCS2-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UCS2-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UCS2-V.bcmap
new file mode 100644
index 0000000..53c534b
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UCS2-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF16-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF16-H.bcmap
new file mode 100644
index 0000000..b95045b
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF16-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF16-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF16-V.bcmap
new file mode 100644
index 0000000..51f023e
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF16-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF32-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF32-H.bcmap
new file mode 100644
index 0000000..f0dbd14
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF32-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF32-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF32-V.bcmap
new file mode 100644
index 0000000..ce9c30a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF32-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF8-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF8-H.bcmap
new file mode 100644
index 0000000..982ca46
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF8-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF8-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF8-V.bcmap
new file mode 100644
index 0000000..f78020d
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniGB-UTF8-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-H.bcmap
new file mode 100644
index 0000000..7daf56a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-HW-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-HW-H.bcmap
new file mode 100644
index 0000000..ac9975c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-HW-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-HW-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-HW-V.bcmap
new file mode 100644
index 0000000..3da0a1c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-HW-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-V.bcmap
new file mode 100644
index 0000000..c50b9dd
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UCS2-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF16-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF16-H.bcmap
new file mode 100644
index 0000000..6761344
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF16-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF16-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF16-V.bcmap
new file mode 100644
index 0000000..70bf90c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF16-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF32-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF32-H.bcmap
new file mode 100644
index 0000000..7a83d53
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF32-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF32-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF32-V.bcmap
new file mode 100644
index 0000000..7a87135
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF32-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF8-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF8-H.bcmap
new file mode 100644
index 0000000..9f0334c
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF8-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF8-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF8-V.bcmap
new file mode 100644
index 0000000..808a94f
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS-UTF8-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF16-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF16-H.bcmap
new file mode 100644
index 0000000..d768bf8
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF16-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF16-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF16-V.bcmap
new file mode 100644
index 0000000..3d5bf6f
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF16-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF32-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF32-H.bcmap
new file mode 100644
index 0000000..09eee10
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF32-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF32-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF32-V.bcmap
new file mode 100644
index 0000000..6c54600
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF32-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF8-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF8-H.bcmap
new file mode 100644
index 0000000..1b1a64f
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF8-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF8-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF8-V.bcmap
new file mode 100644
index 0000000..994aa9e
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJIS2004-UTF8-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJISPro-UCS2-HW-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJISPro-UCS2-HW-V.bcmap
new file mode 100644
index 0000000..643f921
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJISPro-UCS2-HW-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJISPro-UCS2-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJISPro-UCS2-V.bcmap
new file mode 100644
index 0000000..c148f67
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJISPro-UCS2-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJISPro-UTF8-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJISPro-UTF8-V.bcmap
new file mode 100644
index 0000000..1849d80
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJISPro-UTF8-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJISX0213-UTF32-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJISX0213-UTF32-H.bcmap
new file mode 100644
index 0000000..a83a677
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJISX0213-UTF32-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJISX0213-UTF32-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJISX0213-UTF32-V.bcmap
new file mode 100644
index 0000000..f527248
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJISX0213-UTF32-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJISX02132004-UTF32-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJISX02132004-UTF32-H.bcmap
new file mode 100644
index 0000000..e1a988d
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJISX02132004-UTF32-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniJISX02132004-UTF32-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniJISX02132004-UTF32-V.bcmap
new file mode 100644
index 0000000..47e054a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniJISX02132004-UTF32-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UCS2-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UCS2-H.bcmap
new file mode 100644
index 0000000..b5b9485
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UCS2-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UCS2-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UCS2-V.bcmap
new file mode 100644
index 0000000..026adca
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UCS2-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF16-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF16-H.bcmap
new file mode 100644
index 0000000..fd4e66e
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF16-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF16-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF16-V.bcmap
new file mode 100644
index 0000000..075efb7
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF16-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF32-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF32-H.bcmap
new file mode 100644
index 0000000..769d214
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF32-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF32-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF32-V.bcmap
new file mode 100644
index 0000000..bdab208
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF32-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF8-H.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF8-H.bcmap
new file mode 100644
index 0000000..6ff8674
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF8-H.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF8-V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF8-V.bcmap
new file mode 100644
index 0000000..8dfa76a
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/UniKS-UTF8-V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/V.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/V.bcmap
new file mode 100644
index 0000000..fdec990
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/V.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/cmaps/WP-Symbol.bcmap b/frontend/node_modules/pdfjs-dist/cmaps/WP-Symbol.bcmap
new file mode 100644
index 0000000..46729bb
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/cmaps/WP-Symbol.bcmap differ
diff --git a/frontend/node_modules/pdfjs-dist/iccs/CGATS001Compat-v2-micro.icc b/frontend/node_modules/pdfjs-dist/iccs/CGATS001Compat-v2-micro.icc
new file mode 100644
index 0000000..b5a7349
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/iccs/CGATS001Compat-v2-micro.icc differ
diff --git a/frontend/node_modules/pdfjs-dist/iccs/LICENSE b/frontend/node_modules/pdfjs-dist/iccs/LICENSE
new file mode 100644
index 0000000..4ee29e0
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/iccs/LICENSE
@@ -0,0 +1,116 @@
+CC0 1.0 Universal
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator and
+subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for the
+purpose of contributing to a commons of creative, cultural and scientific
+works ("Commons") that the public can reliably and without fear of later
+claims of infringement build upon, modify, incorporate in other works, reuse
+and redistribute as freely as possible in any form whatsoever and for any
+purposes, including without limitation commercial purposes. These owners may
+contribute to the Commons to promote the ideal of a free culture and the
+further production of creative, cultural and scientific works, or to gain
+reputation or greater distribution for their Work in part through the use and
+efforts of others.
+
+For these and/or other purposes and motivations, and without any expectation
+of additional consideration or compensation, the person associating CC0 with a
+Work (the "Affirmer"), to the extent that he or she is an owner of Copyright
+and Related Rights in the Work, voluntarily elects to apply CC0 to the Work
+and publicly distribute the Work under its terms, with knowledge of his or her
+Copyright and Related Rights in the Work and the meaning and intended legal
+effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not limited
+to, the following:
+
+ i. the right to reproduce, adapt, distribute, perform, display, communicate,
+ and translate a Work;
+
+ ii. moral rights retained by the original author(s) and/or performer(s);
+
+ iii. publicity and privacy rights pertaining to a person's image or likeness
+ depicted in a Work;
+
+ iv. rights protecting against unfair competition in regards to a Work,
+ subject to the limitations in paragraph 4(a), below;
+
+ v. rights protecting the extraction, dissemination, use and reuse of data in
+ a Work;
+
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+ European Parliament and of the Council of 11 March 1996 on the legal
+ protection of databases, and under any national implementation thereof,
+ including any amended or successor version of such directive); and
+
+ vii. other similar, equivalent or corresponding rights throughout the world
+ based on applicable law or treaty, and any national implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention of,
+applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and
+unconditionally waives, abandons, and surrenders all of Affirmer's Copyright
+and Related Rights and associated claims and causes of action, whether now
+known or unknown (including existing as well as future claims and causes of
+action), in the Work (i) in all territories worldwide, (ii) for the maximum
+duration provided by applicable law or treaty (including future time
+extensions), (iii) in any current or future medium and for any number of
+copies, and (iv) for any purpose whatsoever, including without limitation
+commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes
+the Waiver for the benefit of each member of the public at large and to the
+detriment of Affirmer's heirs and successors, fully intending that such Waiver
+shall not be subject to revocation, rescission, cancellation, termination, or
+any other legal or equitable action to disrupt the quiet enjoyment of the Work
+by the public as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason be
+judged legally invalid or ineffective under applicable law, then the Waiver
+shall be preserved to the maximum extent permitted taking into account
+Affirmer's express Statement of Purpose. In addition, to the extent the Waiver
+is so judged Affirmer hereby grants to each affected person a royalty-free,
+non transferable, non sublicensable, non exclusive, irrevocable and
+unconditional license to exercise Affirmer's Copyright and Related Rights in
+the Work (i) in all territories worldwide, (ii) for the maximum duration
+provided by applicable law or treaty (including future time extensions), (iii)
+in any current or future medium and for any number of copies, and (iv) for any
+purpose whatsoever, including without limitation commercial, advertising or
+promotional purposes (the "License"). The License shall be deemed effective as
+of the date CC0 was applied by Affirmer to the Work. Should any part of the
+License for any reason be judged legally invalid or ineffective under
+applicable law, such partial invalidity or ineffectiveness shall not
+invalidate the remainder of the License, and in such case Affirmer hereby
+affirms that he or she will not (i) exercise any of his or her remaining
+Copyright and Related Rights in the Work or (ii) assert any associated claims
+and causes of action with respect to the Work, in either case contrary to
+Affirmer's express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+ surrendered, licensed or otherwise affected by this document.
+
+ b. Affirmer offers the Work as-is and makes no representations or warranties
+ of any kind concerning the Work, express, implied, statutory or otherwise,
+ including without limitation warranties of title, merchantability, fitness
+ for a particular purpose, non infringement, or the absence of latent or
+ other defects, accuracy, or the present or absence of errors, whether or not
+ discoverable, all to the greatest extent permissible under applicable law.
+
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+ that may apply to the Work or any use thereof, including without limitation
+ any person's Copyright and Related Rights in the Work. Further, Affirmer
+ disclaims responsibility for obtaining any necessary consents, permissions
+ or other rights required for any use of the Work.
+
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+ party to this document and has no duty or obligation with respect to this
+ CC0 or use of the Work.
+
+For more information, please see
+http://creativecommons.org/publicdomain/zero/1.0/
diff --git a/frontend/node_modules/pdfjs-dist/image_decoders/pdf.image_decoders.min.mjs b/frontend/node_modules/pdfjs-dist/image_decoders/pdf.image_decoders.min.mjs
new file mode 100644
index 0000000..674e38c
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/image_decoders/pdf.image_decoders.min.mjs
@@ -0,0 +1,31 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * JavaScript code in this page
+ *
+ * Copyright 2024 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @licend The above is the entire license notice for the
+ * JavaScript code in this page
+ */
+/**
+ * pdfjsVersion = 5.7.284
+ * pdfjsBuild = 7e5b36c2d
+ */"object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&process.type;const t=[1/0,1/0,-1/0,-1/0],e=(new Float32Array(t),{ERRORS:0,WARNINGS:1,INFOS:5});let r=e.WARNINGS;function setVerbosityLevel(t){Number.isInteger(t)&&(r=t)}function getVerbosityLevel(){return r}function info(t){r>=e.INFOS&&console.info(`Info: ${t}`)}function warn(t){r>=e.WARNINGS&&console.warn(`Warning: ${t}`)}function unreachable(t){throw new Error(t)}function shadow(t,e,r,n=!1){Object.defineProperty(t,e,{value:r,enumerable:!n,configurable:!0,writable:!1});return r}const n=function BaseExceptionClosure(){function BaseException(t,e){this.message=t;this.name=e}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();class FormatError extends n{constructor(t){super(t,"FormatError")}}function bytesToString(t){"object"==typeof t&&void 0!==t?.length||unreachable("Invalid argument for bytesToString");const e=t.length,r=8192;if(e{if("undefined"==typeof document)return!1;const t=document.createElement("input");t.type="color";t.setAttribute("alpha","");t.value="#ff000080";return"#ff0000"!==t.value})())}}class Util{static get hexNums(){return shadow(this,"hexNums",Array.from(Array(256).keys(),t=>t.toString(16).padStart(2,"0")))}static makeHexColor(t,e,r){return`#${this.hexNums[t]}${this.hexNums[e]}${this.hexNums[r]}`}static domMatrixToTransform(t){return[t.a,t.b,t.c,t.d,t.e,t.f]}static scaleMinMax(t,e){let r;if(t[0]){if(t[0]<0){r=e[0];e[0]=e[2];e[2]=r}e[0]*=t[0];e[2]*=t[0];if(t[3]<0){r=e[1];e[1]=e[3];e[3]=r}e[1]*=t[3];e[3]*=t[3]}else{r=e[0];e[0]=e[1];e[1]=r;r=e[2];e[2]=e[3];e[3]=r;if(t[1]<0){r=e[1];e[1]=e[3];e[3]=r}e[1]*=t[1];e[3]*=t[1];if(t[2]<0){r=e[0];e[0]=e[2];e[2]=r}e[0]*=t[2];e[2]*=t[2]}e[0]+=t[4];e[1]+=t[5];e[2]+=t[4];e[3]+=t[5]}static transform(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}static multiplyByDOMMatrix(t,e){return[t[0]*e.a+t[2]*e.b,t[1]*e.a+t[3]*e.b,t[0]*e.c+t[2]*e.d,t[1]*e.c+t[3]*e.d,t[0]*e.e+t[2]*e.f+t[4],t[1]*e.e+t[3]*e.f+t[5]]}static applyTransform(t,e,r=0){const n=t[r],s=t[r+1];t[r]=n*e[0]+s*e[2]+e[4];t[r+1]=n*e[1]+s*e[3]+e[5]}static applyTransformToBezier(t,e,r=0){const n=e[0],s=e[1],a=e[2],i=e[3],o=e[4],c=e[5];for(let e=0;e<6;e+=2){const l=t[r+e],u=t[r+e+1];t[r+e]=l*n+u*a+o;t[r+e+1]=l*s+u*i+c}}static applyInverseTransform(t,e){const r=t[0],n=t[1],s=e[0]*e[3]-e[1]*e[2];t[0]=(r*e[3]-n*e[2]+e[2]*e[5]-e[4]*e[3])/s;t[1]=(-r*e[1]+n*e[0]+e[4]*e[1]-e[5]*e[0])/s}static axialAlignedBoundingBox(t,e,r){const n=e[0],s=e[1],a=e[2],i=e[3],o=e[4],c=e[5],l=t[0],u=t[1],f=t[2],h=t[3];let m=n*l+o,g=m,d=n*f+o,p=d,b=i*u+c,y=b,w=i*h+c,C=w;if(0!==s||0!==a){const t=s*l,e=s*f,r=a*u,n=a*h;m+=r;p+=r;d+=n;g+=n;b+=t;C+=t;w+=e;y+=e}r[0]=Math.min(r[0],m,d,g,p);r[1]=Math.min(r[1],b,w,y,C);r[2]=Math.max(r[2],m,d,g,p);r[3]=Math.max(r[3],b,w,y,C)}static inverseTransform(t){const e=t[0]*t[3]-t[1]*t[2];return[t[3]/e,-t[1]/e,-t[2]/e,t[0]/e,(t[2]*t[5]-t[4]*t[3])/e,(t[4]*t[1]-t[5]*t[0])/e]}static singularValueDecompose2dScale(t,e){const r=t[0],n=t[1],s=t[2],a=t[3],i=r**2+n**2,o=r*s+n*a,c=s**2+a**2,l=(i+c)/2,u=Math.sqrt(l**2-(i*c-o**2));e[0]=Math.sqrt(l+u||1);e[1]=Math.sqrt(l-u||1)}static normalizeRect(t){const e=t.slice(0);if(t[0]>t[2]){e[0]=t[2];e[2]=t[0]}if(t[1]>t[3]){e[1]=t[3];e[3]=t[1]}return e}static intersect(t,e){const r=Math.max(Math.min(t[0],t[2]),Math.min(e[0],e[2])),n=Math.min(Math.max(t[0],t[2]),Math.max(e[0],e[2]));if(r>n)return null;const s=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),a=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return s>a?null:[r,s,n,a]}static pointBoundingBox(t,e,r){r[0]=Math.min(r[0],t);r[1]=Math.min(r[1],e);r[2]=Math.max(r[2],t);r[3]=Math.max(r[3],e)}static rectBoundingBox(t,e,r,n,s){s[0]=Math.min(s[0],t,r);s[1]=Math.min(s[1],e,n);s[2]=Math.max(s[2],t,r);s[3]=Math.max(s[3],e,n)}static#t(t,e,r,n,s,a,i,o,c,l){if(c<=0||c>=1)return;const u=1-c,f=c*c,h=f*c,m=u*(u*(u*t+3*c*e)+3*f*r)+h*n,g=u*(u*(u*s+3*c*a)+3*f*i)+h*o;l[0]=Math.min(l[0],m);l[1]=Math.min(l[1],g);l[2]=Math.max(l[2],m);l[3]=Math.max(l[3],g)}static#e(t,e,r,n,s,a,i,o,c,l,u,f){if(Math.abs(c)<1e-12){Math.abs(l)>=1e-12&&this.#t(t,e,r,n,s,a,i,o,-u/l,f);return}const h=l**2-4*u*c;if(h<0)return;const m=Math.sqrt(h),g=2*c;this.#t(t,e,r,n,s,a,i,o,(-l+m)/g,f);this.#t(t,e,r,n,s,a,i,o,(-l-m)/g,f)}static bezierBoundingBox(t,e,r,n,s,a,i,o,c){c[0]=Math.min(c[0],t,i);c[1]=Math.min(c[1],e,o);c[2]=Math.max(c[2],t,i);c[3]=Math.max(c[3],e,o);this.#e(t,r,s,i,e,n,a,o,3*(3*(r-s)-t+i),6*(t-2*r+s),3*(r-t),c);this.#e(t,r,s,i,e,n,a,o,3*(3*(n-a)-e+o),6*(e-2*n+a),3*(n-e),c)}}Symbol("CIRCULAR_REF"),Symbol("EOF");Object.create(null);let s=Object.create(null),a=Object.create(null);class Name{constructor(t){this.name=t}static get(t){return s[t]||=new Name(t)}}const i=function nonSerializableClosure(){return i};class Dict{__nonSerializable__=i;#r=new Map;objId=null;suppressEncryption=!1;xref;constructor(t=null){this.xref=t}assignXref(t){this.xref=t}get size(){return this.#r.size}#n(t,e,r,n){let s=this.#r.get(e);if(void 0===s&&void 0!==r){s=this.#r.get(r);void 0===s&&void 0!==n&&(s=this.#r.get(n))}return s instanceof Ref&&this.xref?t?this.xref.fetchAsync(s,this.suppressEncryption):this.xref.fetch(s,this.suppressEncryption):s}get(t,e,r){return this.#n(!1,t,e,r)}async getAsync(t,e,r){return this.#n(!0,t,e,r)}getArray(t,e,r){let n=this.#n(!1,t,e,r);if(Array.isArray(n)){n=n.slice();for(let t=0,e=n.length;t{unreachable("Should not call `set` on the empty dictionary.")};return shadow(this,"empty",t)}static merge({xref:t,dictArray:e,mergeSubDicts:r=!1}){const n=new Dict(t),s=new Map;for(const t of e)if(t instanceof Dict)for(const[e,n]of t.getRawEntries()){let t=s.get(e);if(void 0===t){t=[];s.set(e,t)}else if(!(r&&n instanceof Dict))continue;t.push(n)}for(const[e,r]of s){if(1===r.length||!(r[0]instanceof Dict)){n.set(e,r[0]);continue}const s=new Dict(t);for(const t of r)for(const[e,r]of t.getRawEntries())s.setIfNotExists(e,r);s.size>0&&n.set(e,s)}s.clear();return n.size>0?n:Dict.empty}clone(){const t=new Dict(this.xref);for(const[e,r]of this.#r)t.set(e,r);return t}delete(t){this.#r.delete(t)}}class Ref{constructor(t,e){this.num=t;this.gen=e}toString(){return 0===this.gen?`${this.num}R`:`${this.num}R${this.gen}`}static fromString(t){const e=a[t];if(e)return e;const r=/^(\d+)R(\d*)$/.exec(t);return r&&"0"!==r[1]?a[t]=new Ref(parseInt(r[1],10),r[2]?parseInt(r[2],10):0):null}static get(t,e){const r=0===e?`${t}R`:`${t}R${e}`;return a[r]||=new Ref(t,e)}}Symbol.iterator;Symbol.iterator;class BaseStream{get length(){unreachable("Abstract getter `length` accessed")}get isEmpty(){unreachable("Abstract getter `isEmpty` accessed")}get isDataLoaded(){return shadow(this,"isDataLoaded",!0)}getByte(){unreachable("Abstract method `getByte` called")}getBytes(t){unreachable("Abstract method `getBytes` called")}async getImageData(t,e){return this.getBytes(t,e)}async asyncGetBytes(){unreachable("Abstract method `asyncGetBytes` called")}get isAsync(){return!1}get isAsyncDecoder(){return!1}get isImageStream(){return!1}get canAsyncDecodeImageFromBuffer(){return!1}async getTransferableImage(){return null}peekByte(){const t=this.getByte();-1!==t&&this.pos--;return t}peekBytes(t){const e=this.getBytes(t);this.pos-=e.length;return e}getUint16(){const t=this.getByte(),e=this.getByte();return-1===t||-1===e?-1:(t<<8)+e}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getByteRange(t,e){unreachable("Abstract method `getByteRange` called")}getString(t){return bytesToString(this.getBytes(t))}skip(t){this.pos+=t||1}reset(){unreachable("Abstract method `reset` called")}moveStart(){unreachable("Abstract method `moveStart` called")}makeSubStream(t,e,r=null){unreachable("Abstract method `makeSubStream` called")}getBaseStreams(){return null}getOriginalStream(){return this.stream?.getOriginalStream()||this}}class MissingDataException extends n{constructor(t,e){super(`Missing data [${t}, ${e})`,"MissingDataException");this.begin=t;this.end=e}}async function fetchBinaryData(t){const e=await fetch(t);if(!e.ok)throw new Error(`Failed to fetch file "${t}" with "${e.statusText}".`);return e.bytes()}const o=async function JBig2(t={}){var e=t,quit_=(t,e)=>{throw e},r=import.meta.url;try{new URL(".",r).href}catch{}0;console.log.bind(console);var n,s,a,i,o,c=console.error.bind(console),l=!1,u=!1;function updateMemoryViews(){var t=h.buffer;i=new Int8Array(t);new Int16Array(t);o=new Uint8Array(t);new Uint16Array(t);new Int32Array(t);new Uint32Array(t);new Float32Array(t);new Float64Array(t);new BigInt64Array(t);new BigUint64Array(t)}class ExitStatus{name="ExitStatus";constructor(t){this.message=`Program terminated with exit(${t})`;this.status=t}}var f,h,callRuntimeCallbacks=t=>{for(;t.length>0;)t.shift()(e)},m=[],addOnPostRun=t=>m.push(t),g=[],addOnPreRun=t=>g.push(t),d=!0,p=0,b={},handleException=t=>{if(t instanceof ExitStatus||"unwind"==t)return n;quit_(0,t)},keepRuntimeAlive=()=>d||p>0,_proc_exit=t=>{n=t;if(!keepRuntimeAlive()){e.onExit?.(t);l=!0}quit_(0,new ExitStatus(t))},_exit=(t,e)=>{n=t;_proc_exit(t)},callUserCallback=t=>{if(!l)try{return t()}catch(t){handleException(t)}finally{(()=>{if(!keepRuntimeAlive())try{_exit(n)}catch(t){handleException(t)}})()}},alignMemory=(t,e)=>Math.ceil(t/e)*e,growMemory=t=>{var e=(t-h.buffer.byteLength+65535)/65536|0;try{h.grow(e);updateMemoryViews();return 1}catch(t){}};e.noExitRuntime&&(d=e.noExitRuntime);e.print&&e.print;e.printErr&&(c=e.printErr);e.wasmBinary&&e.wasmBinary;e.arguments&&e.arguments;e.thisProgram&&e.thisProgram;if(e.preInit){"function"==typeof e.preInit&&(e.preInit=[e.preInit]);for(;e.preInit.length>0;)e.preInit.shift()()}e.writeArrayToMemory=(t,e)=>{i.set(t,e)};var y,w={e:()=>function abort(t){e.onAbort?.(t);c(t="Aborted("+t+")");l=!0;t+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(t);a?.(r);throw r}(""),b:()=>{d=!1;p=0},c:(t,e)=>{if(b[t]){clearTimeout(b[t].id);delete b[t]}if(!e)return 0;var r=setTimeout(()=>{delete b[t];callUserCallback(()=>f(t,performance.now()))},e);b[t]={id:r,timeout_ms:e};return 0},g:function _createImageData(t){e.imageData=new Uint8Array(t)},d:t=>{var e=o.length,r=2147483648;if((t>>>=0)>r)return!1;for(var n=1;n<=4;n*=2){var s=e*(1+.2/n);s=Math.min(s,t+100663296);var a=Math.min(r,alignMemory(Math.max(t,s),65536));if(growMemory(a))return!0}return!1},a:_proc_exit,h:function _setImageData(t,r,n,s){if(n===r){e.imageData=new Uint8ClampedArray(o.subarray(t,t+n*s));return}const a=r*s,i=e.imageData=new Uint8ClampedArray(a);for(let e=t,s=0;s{e.instantiateWasm(t,(t,e)=>{r(receiveInstance(t))})})}();!function run(){!function preRun(){if(e.preRun){"function"==typeof e.preRun&&(e.preRun=[e.preRun]);for(;e.preRun.length;)addOnPreRun(e.preRun.shift())}callRuntimeCallbacks(g)}();function doRun(){e.calledRun=!0;if(!l){!function initRuntime(){u=!0;y.j()}();s?.(e);e.onRuntimeInitialized?.();!function postRun(){if(e.postRun){"function"==typeof e.postRun&&(e.postRun=[e.postRun]);for(;e.postRun.length;)addOnPostRun(e.postRun.shift())}callRuntimeCallbacks(m)}()}}if(e.setStatus){e.setStatus("Running...");setTimeout(()=>{setTimeout(()=>e.setStatus(""),1);doRun()},1)}else doRun()}();return u?e:new Promise((t,e)=>{s=t;a=e})};class Jbig2Error extends n{constructor(t){super(t,"Jbig2Error")}}class JBig2CCITTFaxImage{static#s=null;static#a=null;static#i=null;static#o=!0;static#c=!0;static#l=null;static setOptions({handler:t,useWasm:e,useWorkerFetch:r,wasmUrl:n}){this.#o=e;this.#c=r;this.#l=n;r||(this.#a=t)}static async#u(t){const e=`${this.#l}jbig2_nowasm_fallback.js`;let r=null;try{r=(await import(
+/*webpackIgnore: true*/
+/*@vite-ignore*/
+e)).default()}catch(t){warn(`JBig2CCITTFaxImage#getJsModule: ${t}`)}t(r)}static async#f(t,e,r){const n="jbig2.wasm";try{this.#s||(this.#c?this.#s=await fetchBinaryData(`${this.#l}${n}`):this.#s=await this.#a.sendWithPromise("FetchBinaryData",{kind:"wasmUrl",filename:n}));return r((await WebAssembly.instantiate(this.#s,e)).instance)}catch(e){warn(`JBig2CCITTFaxImage#instantiateWasm: ${e}`);this.#u(t);return null}finally{this.#a=null}}static async decode(t,e,r,n,s){if(!this.#i){const{promise:t,resolve:e}=Promise.withResolvers(),r=[t];this.#o?r.push(o({warn,instantiateWasm:this.#f.bind(this,e)})):this.#u(e);this.#i=Promise.race(r)}const a=await this.#i;if(!a)throw new Jbig2Error("JBig2 failed to initialize");let i,c;try{const o=t.length;i=a._malloc(o);a.writeArrayToMemory(t,i);if(s)a._ccitt_decode(i,o,e,r,s.K,s.EndOfLine?1:0,s.EncodedByteAlign?1:0,s.BlackIs1?1:0,s.Columns,s.Rows);else{const t=n?n.length:0;if(t>0){c=a._malloc(t);a.writeArrayToMemory(n,c)}a._jbig2_decode(i,o,e,r,c,t)}if(!a.imageData)throw new Jbig2Error("Unknown error");const{imageData:l}=a;a.imageData=null;return l}finally{i&&a._free(i);c&&a._free(c)}}static cleanup(){this.#i=null}}function MathClamp(t,e,r){return Math.min(Math.max(t,e),r)}function isDefaultDecodeHelper(t,e){if(!Array.isArray(t))return!0;const r=t.length;if(re){info("Truncating too long decode map.");t.length=e}return!1}class ColorSpace{static#h=new Uint8ClampedArray(3);constructor(t,e){this.name=t;this.numComps=e}getRgb(t,e,r=new Uint8ClampedArray(3)){this.getRgbItem(t,e,r,0);return r}getRgbHex(t,e){const r=this.getRgb(t,e,ColorSpace.#h);return Util.makeHexColor(r[0],r[1],r[2])}getRgbItem(t,e,r,n){unreachable("Should not call ColorSpace.getRgbItem")}getRgbBuffer(t,e,r,n,s,a,i){unreachable("Should not call ColorSpace.getRgbBuffer")}getOutputLength(t,e){unreachable("Should not call ColorSpace.getOutputLength")}isPassthrough(t){return!1}isDefaultDecode(t,e){return ColorSpace.isDefaultDecode(t,this.numComps)}fillRgb(t,e,r,n,s,a,i,o,c){const l=e*r;let u=null;const f=1<f&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const e=i<=8?new Uint8Array(f):new Uint16Array(f);for(let t=0;t=.99554525?1:MathClamp(1.055*t**(1/2.4)-.055,0,1)}#S(t){return t<0?-this.#S(-t):t>8?((t+16)/116)**3:t*CalRGBCS.#_}#v(t,e,r){if(0===t[0]&&0===t[1]&&0===t[2]){r[0]=e[0];r[1]=e[1];r[2]=e[2];return}const n=this.#S(0),s=(1-n)/(1-this.#S(t[0])),a=1-s,i=(1-n)/(1-this.#S(t[1])),o=1-i,c=(1-n)/(1-this.#S(t[2])),l=1-c;r[0]=e[0]*s+a;r[1]=e[1]*i+o;r[2]=e[2]*c+l}#M(t,e,r){if(1===t[0]&&1===t[2]){r[0]=e[0];r[1]=e[1];r[2]=e[2];return}const n=r;this.#R(CalRGBCS.#g,e,n);const s=CalRGBCS.#y;this.#A(t,n,s);this.#R(CalRGBCS.#d,s,r)}#I(t,e,r){const n=r;this.#R(CalRGBCS.#g,e,n);const s=CalRGBCS.#y;this.#B(t,n,s);this.#R(CalRGBCS.#d,s,r)}#m(t,e,r,n,s){const a=MathClamp(t[e]*s,0,1),i=MathClamp(t[e+1]*s,0,1),o=MathClamp(t[e+2]*s,0,1),c=1===a?1:a**this.GR,l=1===i?1:i**this.GG,u=1===o?1:o**this.GB,f=this.MXA*c+this.MXB*l+this.MXC*u,h=this.MYA*c+this.MYB*l+this.MYC*u,m=this.MZA*c+this.MZB*l+this.MZC*u,g=CalRGBCS.#w;g[0]=f;g[1]=h;g[2]=m;const d=CalRGBCS.#C;this.#M(this.whitePoint,g,d);const p=CalRGBCS.#w;this.#v(this.blackPoint,d,p);const b=CalRGBCS.#C;this.#I(CalRGBCS.#b,p,b);const y=CalRGBCS.#w;this.#R(CalRGBCS.#p,b,y);r[n]=255*this.#x(y[0]);r[n+1]=255*this.#x(y[1]);r[n+2]=255*this.#x(y[2])}getRgbItem(t,e,r,n){this.#m(t,e,r,n,1)}getRgbBuffer(t,e,r,n,s,a,i){const o=1/((1<this.amax||this.bmin>this.bmax){info("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}#k(t){return t>=6/29?t**3:108/841*(t-4/29)}#D(t,e,r,n){return r+t*(n-r)/e}#m(t,e,r,n,s){let a=t[e],i=t[e+1],o=t[e+2];if(!1!==r){a=this.#D(a,r,0,100);i=this.#D(i,r,this.amin,this.amax);o=this.#D(o,r,this.bmin,this.bmax)}i>this.amax?i=this.amax:ithis.bmax?o=this.bmax:o=h){f=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});f.decode();m=e}return f.decode(getUint8ArrayMemory0().subarray(t,t+e))}(t>>>=0,e)}(t,e))},__wbg_copy_result_0d15f3bf9d9012ae:function(t,e){!function copy_result(t,e){const{_mustAddAlpha:r,_destBuffer:n,_destOffset:s,_destLength:a,_memoryArray:i}=QCMS;if(e!==a)if(r)for(let r=t,a=t+e,o=s;r>>0,e>>>0)},__wbg_copy_rgb_0106d9d9464fce43:function(t){!function copy_rgb(t){const{_destBuffer:e,_destOffset:r,_memoryArray:n}=QCMS;e[r]=n[t];e[r+1]=n[t+1];e[r+2]=n[t+2]}(t>>>0)},__wbg_make_cssRGB_8e24b34f71f5363e:function(t){!function make_cssRGB(t){const{_memoryArray:e}=QCMS;QCMS._cssColor=QCMS._makeHexColor(e[t],e[t+1],e[t+2])}(t>>>0)},__wbindgen_init_externref_table:function(){const t=d.__wbindgen_externrefs,e=t.grow(4);t.set(0,void 0);t.set(e+0,void 0);t.set(e+1,null);t.set(e+2,!0);t.set(e+3,!1)}}}}let u=null;function getUint8ArrayMemory0(){null!==u&&0!==u.byteLength||(u=new Uint8Array(d.memory.buffer));return u}function passArray8ToWasm0(t,e){const r=e(1*t.length,1)>>>0;getUint8ArrayMemory0().set(t,r/1);p=t.length;return r}let f=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});f.decode();const h=2146435072;let m=0;let g,d,p=0;function __wbg_finalize_init(t,e){d=t.exports;g=e;u=null;d.__wbindgen_start();return d}function fetchSync(t){const e=new XMLHttpRequest;e.open("GET",t,!1);e.responseType="arraybuffer";e.send(null);return e.response}class IccColorSpace extends ColorSpace{#T;#P;static#o=!0;static#l=null;static#U=null;constructor(t,e,r){if(!IccColorSpace.isUsable)throw new Error("No ICC color space support");super(e,r);let n;switch(r){case 1:n=c.Gray8;this.#P=(t,e,r)=>function qcms_convert_one(t,e,r){d.qcms_convert_one(t,e,r)}(this.#T,255*t[e],r);break;case 3:n=c.RGB8;this.#P=(t,e,r)=>function qcms_convert_three(t,e,r,n,s){d.qcms_convert_three(t,e,r,n,s)}(this.#T,255*t[e],255*t[e+1],255*t[e+2],r);break;case 4:n=c.CMYK;this.#P=(t,e,r)=>function qcms_convert_four(t,e,r,n,s,a){d.qcms_convert_four(t,e,r,n,s,a)}(this.#T,255*t[e],255*t[e+1],255*t[e+2],255*t[e+3],r);break;default:throw new Error(`Unsupported number of components: ${r}`)}this.#T=function qcms_transformer_from_memory(t,e,r){const n=passArray8ToWasm0(t,d.__wbindgen_malloc),s=p;return d.qcms_transformer_from_memory(n,s,e,r)>>>0}(t,n,l.Perceptual);if(!this.#T)throw new Error("Failed to create ICC color space");IccColorSpace.#U||=new FinalizationRegistry(t=>{!function qcms_drop_transformer(t){d.qcms_drop_transformer(t)}(t)});IccColorSpace.#U.register(this,this.#T)}getRgbHex(t,e){this.#P(t,e,!0);return QCMS._cssColor}getRgbItem(t,e,r,n){QCMS._destBuffer=r;QCMS._destOffset=n;QCMS._destLength=3;this.#P(t,e,!1);QCMS._destBuffer=null}getRgbBuffer(t,e,r,n,s,a,i){t=t.subarray(e,e+r*this.numComps);if(8!==a){const e=255/((1<0&&!t[a-1];)a--;const i=[{children:[],index:0}];let o,c=i[0];for(r=0;r0;)c=i.pop();c.index++;i.push(c);for(;i.length<=r;){i.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}s++}if(r+10){d--;return g>>d&1}g=t[r++];if(255===g){const s=t[r++];if(s){if(220===s&&u){r+=2;const t=e.getUint16(r);r+=2;if(t>0&&t!==n.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",t)}else if(217===s){if(u){const t=C*(8===n.precision?8:0);if(t>0&&Math.round(n.scanLines/t)>=5)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",t)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError(`unexpected marker ${(g<<8|s).toString(16)}`)}}d=7;return g>>>7}function decodeHuffman(t){let e=t;for(;;){e=e[readBit()];switch(typeof e){case"number":return e;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(t){let e=0;for(;t>0;){e=e<<1|readBit();t--}return e}function receiveAndExtend(t){if(1===t)return 1===readBit()?1:-1;const e=receive(t);return e>=1<0){p--;return}let r=i;const n=o;for(;r<=n;){const n=decodeHuffman(t.huffmanTableAC),s=15&n,a=n>>4;if(0===s){if(a<15){p=receive(a)+(1<>4;if(0===s)if(c<15){p=receive(c)+(1<>4;if(0===n){if(a<15)break;s+=16;continue}s+=a;const i=b[s];t.blockData[e+i]=receiveAndExtend(n);s++}};let M,I=0;const k=1===_?s[0].blocksPerLine*s[0].blocksPerColumn:f*n.mcusPerColumn;let D,E;for(;I<=k;){const n=a?Math.min(k-I,a):k;if(n>0){for(A=0;A<_;A++)s[A].pred=0;p=0;if(1===_){R=s[0];for(S=0;S0?"unexpected":"excessive"} MCU data, current marker is: ${M.invalid}`);r=M.offset}if(!(M.marker>=65488&&M.marker<=65495))break;r+=2}return r-m}function quantizeAndInverse(t,e,r){const n=t.quantizationTable,s=t.blockData;let a,i,o,c,l,u,f,h,m,g,d,p,b,S,v,M,I;if(!n)throw new JpegError("missing required Quantization Table.");for(let t=0;t<64;t+=8){m=s[e+t];g=s[e+t+1];d=s[e+t+2];p=s[e+t+3];b=s[e+t+4];S=s[e+t+5];v=s[e+t+6];M=s[e+t+7];m*=n[t];if(0!==(g|d|p|b|S|v|M)){g*=n[t+1];d*=n[t+2];p*=n[t+3];b*=n[t+4];S*=n[t+5];v*=n[t+6];M*=n[t+7];a=B*m+128>>8;i=B*b+128>>8;o=d;c=v;l=x*(g-M)+128>>8;h=x*(g+M)+128>>8;u=p<<4;f=S<<4;a=a+i+1>>1;i=a-i;I=o*A+c*R+128>>8;o=o*R-c*A+128>>8;c=I;l=l+f+1>>1;f=l-f;h=h+u+1>>1;u=h-u;a=a+c+1>>1;c=a-c;i=i+o+1>>1;o=i-o;I=l*_+h*C+2048>>12;l=l*C-h*_+2048>>12;h=I;I=u*w+f*y+2048>>12;u=u*y-f*w+2048>>12;f=I;r[t]=a+h;r[t+7]=a-h;r[t+1]=i+f;r[t+6]=i-f;r[t+2]=o+u;r[t+5]=o-u;r[t+3]=c+l;r[t+4]=c-l}else{I=B*m+512>>10;r[t]=I;r[t+1]=I;r[t+2]=I;r[t+3]=I;r[t+4]=I;r[t+5]=I;r[t+6]=I;r[t+7]=I}}for(let t=0;t<8;++t){m=r[t];g=r[t+8];d=r[t+16];p=r[t+24];b=r[t+32];S=r[t+40];v=r[t+48];M=r[t+56];if(0!==(g|d|p|b|S|v|M)){a=B*m+2048>>12;i=B*b+2048>>12;o=d;c=v;l=x*(g-M)+2048>>12;h=x*(g+M)+2048>>12;u=p;f=S;a=4112+(a+i+1>>1);i=a-i;I=o*A+c*R+2048>>12;o=o*R-c*A+2048>>12;c=I;l=l+f+1>>1;f=l-f;h=h+u+1>>1;u=h-u;a=a+c+1>>1;c=a-c;i=i+o+1>>1;o=i-o;I=l*_+h*C+2048>>12;l=l*C-h*_+2048>>12;h=I;I=u*w+f*y+2048>>12;u=u*y-f*w+2048>>12;f=I;m=a+h;M=a-h;g=i+f;v=i-f;d=o+u;S=o-u;p=c+l;b=c-l;m<16?m=0:m>=4080?m=255:m>>=4;g<16?g=0:g>=4080?g=255:g>>=4;d<16?d=0:d>=4080?d=255:d>>=4;p<16?p=0:p>=4080?p=255:p>>=4;b<16?b=0:b>=4080?b=255:b>>=4;S<16?S=0:S>=4080?S=255:S>>=4;v<16?v=0:v>=4080?v=255:v>>=4;M<16?M=0:M>=4080?M=255:M>>=4;s[e+t]=m;s[e+t+8]=g;s[e+t+16]=d;s[e+t+24]=p;s[e+t+32]=b;s[e+t+40]=S;s[e+t+48]=v;s[e+t+56]=M}else{I=B*m+8192>>14;I=I<-2040?0:I>=2024?255:I+2056>>4;s[e+t]=I;s[e+t+8]=I;s[e+t+16]=I;s[e+t+24]=I;s[e+t+32]=I;s[e+t+40]=I;s[e+t+48]=I;s[e+t+56]=I}}}function buildComponentData(t,e){const r=e.blocksPerLine,n=e.blocksPerColumn,s=new Int16Array(64);for(let t=0;t=s)return null;const i=e.getUint16(r);if(i>=65472&&i<=65534)return{invalid:null,marker:i,offset:r};let o=e.getUint16(a);for(;!(o>=65472&&o<=65534);){if(++a>=s)return null;o=e.getUint16(a)}return{invalid:i.toString(16),marker:o,offset:a}}function prepareComponents(t){const e=Math.ceil(t.samplesPerLine/8/t.maxH),r=Math.ceil(t.scanLines/8/t.maxV);for(const n of t.components){const s=Math.ceil(Math.ceil(t.samplesPerLine/8)*n.h/t.maxH),a=Math.ceil(Math.ceil(t.scanLines/8)*n.v/t.maxV),i=e*n.h,o=64*(r*n.v)*(i+1);n.blockData=new Int16Array(o);n.blocksPerLine=s;n.blocksPerColumn=a}t.mcusPerLine=e;t.mcusPerColumn=r}function readDataBlock(t,e,r){const n=e.getUint16(r);let s=(r+=2)+n-2;const a=findNextFileMarker(t,e,s,r);if(a?.invalid){warn("readDataBlock - incorrect length, current marker is: "+a.invalid);s=a.offset}const i=t.subarray(r,s);return{appData:i,oldOffset:r,newOffset:r+i.length}}function skipData(t,e,r){const n=e.getUint16(r),s=(r+=2)+n-2,a=findNextFileMarker(t,e,s,r);return a?.invalid?a.offset:s}class JpegImage{constructor({decodeTransform:t=null,colorTransform:e=-1}={}){this._decodeTransform=t;this._colorTransform=e}static canUseImageDecoder(t,e=-1){const r=new DataView(t.buffer,t.byteOffset,t.byteLength);let n=null,s=0,a=null,i=r.getUint16(s);s+=2;if(65496!==i)throw new JpegError("SOI not found");i=r.getUint16(s);s+=2;t:for(;65497!==i;){switch(i){case 65505:const{appData:e,oldOffset:o,newOffset:c}=readDataBlock(t,r,s);s=c;if(69===e[0]&&120===e[1]&&105===e[2]&&102===e[3]&&0===e[4]&&0===e[5]){if(n)throw new JpegError("Duplicate EXIF-blocks found.");n={exifStart:o+6,exifEnd:c}}i=r.getUint16(s);s+=2;continue;case 65472:case 65473:case 65474:a=t[s+7];break t;case 65535:255!==t[s]&&s--}s=skipData(t,r,s);i=r.getUint16(s);s+=2}return 4===a||3===a&&0===e?null:n||{}}parse(t,{dnlScanLines:e=null}={}){const r=new DataView(t.buffer,t.byteOffset,t.byteLength),n=t.length-1;let s,a,i=0,o=null,c=null,l=0;const u=[],f=[],h=[];let m=r.getUint16(i);i+=2;if(65496!==m)throw new JpegError("SOI not found");m=r.getUint16(i);i+=2;t:for(;65497!==m;){let g,d,p;switch(m){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:const{appData:y,newOffset:w}=readDataBlock(t,r,i);i=w;65504===m&&74===y[0]&&70===y[1]&&73===y[2]&&70===y[3]&&0===y[4]&&(o={version:{major:y[5],minor:y[6]},densityUnits:y[7],xDensity:y[8]<<8|y[9],yDensity:y[10]<<8|y[11],thumbWidth:y[12],thumbHeight:y[13],thumbData:y.subarray(14,14+3*y[12]*y[13])});65518===m&&65===y[0]&&100===y[1]&&111===y[2]&&98===y[3]&&101===y[4]&&(c={version:y[5]<<8|y[6],flags0:y[7]<<8|y[8],flags1:y[9]<<8|y[10],transformCode:y[11]});break;case 65499:const C=r.getUint16(i);i+=2;const _=C+i-2;let R;for(;i<_;){const e=t[i++],n=new Uint16Array(64);if(e>>4){if(e>>4!=1)throw new JpegError("DQT - invalid table spec");for(d=0;d<64;d++){R=b[d];n[R]=r.getUint16(i);i+=2}}else for(d=0;d<64;d++){R=b[d];n[R]=t[i++]}u[15&e]=n}break;case 65472:case 65473:case 65474:if(s)throw new JpegError("Only single frame JPEGs supported");i+=2;s={};s.extended=65473===m;s.progressive=65474===m;s.precision=t[i++];const A=r.getUint16(i);i+=2;s.scanLines=e||A;s.samplesPerLine=r.getUint16(i);i+=2;s.components=[];s.componentIds={};const B=t[i++];let x=0,S=0;for(g=0;g>4,n=15&t[i+1];x>4?f:h)[15&e]=buildHuffmanTable(r,s)}break;case 65501:i+=2;a=r.getUint16(i);i+=2;break;case 65498:const M=1===++l&&!e;i+=2;const I=t[i++],k=[];for(g=0;g>4];n.huffmanTableAC=f[15&a];k.push(n)}const D=t[i++],E=t[i++],T=t[i++];try{i+=decodeScan(t,r,i,s,k,a,D,E,T>>4,15&T,M)}catch(e){if(e instanceof DNLMarkerError){warn(`${e.message} -- attempting to re-parse the JPEG image.`);return this.parse(t,{dnlScanLines:e.scanLines})}if(e instanceof EOIMarkerError){warn(`${e.message} -- ignoring the rest of the image data.`);break t}throw e}break;case 65500:i+=4;break;case 65535:255!==t[i]&&i--;break;default:const P=findNextFileMarker(t,r,i-2,i-3);if(P?.invalid){warn("JpegImage.parse - unexpected data, current marker is: "+P.invalid);i=P.offset;break}if(!P||i>=n){warn("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break t}throw new JpegError("JpegImage.parse - unknown marker: "+m.toString(16))}if(i>8)+A[m+1];return w}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(t){let e,r,n;for(let s=0,a=t.length;s4)throw new JpegError("Unsupported color mode");const a=this._getLinearizedBlockData(t,e,s);if(1===this.numComponents&&(r||n)){const t=a.length*(r?4:3),e=new Uint8ClampedArray(t);let n=0;if(r)!function grayToRGBA(t,e){if(FeatureTest.isLittleEndian)for(let r=0,n=t.length;r{throw e},n=import.meta.url;try{new URL(".",n).href}catch{}0;var s,a,i,o,c,l,u,f=console.log.bind(console),h=console.error.bind(console),m=!1,g=!1;function updateMemoryViews(){var t=p.buffer;c=new Int8Array(t);new Int16Array(t);u=new Uint8Array(t);new Uint16Array(t);o=new Int32Array(t);l=new Uint32Array(t);new Float32Array(t);new Float64Array(t);new BigInt64Array(t);new BigUint64Array(t)}class ExitStatus{name="ExitStatus";constructor(t){this.message=`Program terminated with exit(${t})`;this.status=t}}var d,p,callRuntimeCallbacks=t=>{for(;t.length>0;)t.shift()(e)},b=[],addOnPostRun=t=>b.push(t),y=[],addOnPreRun=t=>y.push(t),w=!0,C=0,_={},handleException=t=>{if(t instanceof ExitStatus||"unwind"==t)return s;quit_(0,t)},keepRuntimeAlive=()=>w||C>0,_proc_exit=t=>{s=t;if(!keepRuntimeAlive()){e.onExit?.(t);m=!0}quit_(0,new ExitStatus(t))},_exit=(t,e)=>{s=t;_proc_exit(t)},callUserCallback=t=>{if(!m)try{return t()}catch(t){handleException(t)}finally{(()=>{if(!keepRuntimeAlive())try{_exit(s)}catch(t){handleException(t)}})()}},alignMemory=(t,e)=>Math.ceil(t/e)*e,growMemory=t=>{var e=(t-p.buffer.byteLength+65535)/65536|0;try{p.grow(e);updateMemoryViews();return 1}catch(t){}},R={},getEnvStrings=()=>{if(!getEnvStrings.strings){var t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:r||"./this.program"};for(var e in R)void 0===R[e]?delete t[e]:t[e]=R[e];var n=[];for(var e in t)n.push(`${e}=${t[e]}`);getEnvStrings.strings=n}return getEnvStrings.strings},stringToUTF8=(t,e,r)=>((t,e,r,n)=>{if(!(n>0))return 0;for(var s=r,a=r+n-1,i=0;i=a)break;e[r++]=o}else if(o<=2047){if(r+1>=a)break;e[r++]=192|o>>6;e[r++]=128|63&o}else if(o<=65535){if(r+2>=a)break;e[r++]=224|o>>12;e[r++]=128|o>>6&63;e[r++]=128|63&o}else{if(r+3>=a)break;e[r++]=240|o>>18;e[r++]=128|o>>12&63;e[r++]=128|o>>6&63;e[r++]=128|63&o;i++}}e[r]=0;return r-s})(t,u,e,r),lengthBytesUTF8=t=>{for(var e=0,r=0;r=55296&&n<=57343){e+=4;++r}else e+=3}return e},A=[null,[],[]],B=globalThis.TextDecoder&&new TextDecoder,UTF8ArrayToString=(t,e=0,r,n)=>{var s=((t,e,r,n)=>{var s=e+r;if(n)return s;for(;t[e]&&!(e>=s);)++e;return e})(t,e,r,n);if(s-e>16&&t.buffer&&B)return B.decode(t.subarray(e,s));for(var a="";e>10,56320|1023&l)}}else a+=String.fromCharCode((31&i)<<6|o)}else a+=String.fromCharCode(i)}return a},printChar=(t,e)=>{var r=A[t];if(0===e||10===e){(1===t?f:h)(UTF8ArrayToString(r));r.length=0}else r.push(e)},UTF8ToString=(t,e,r)=>t?UTF8ArrayToString(u,t,e,r):"";e.noExitRuntime&&(w=e.noExitRuntime);e.print&&(f=e.print);e.printErr&&(h=e.printErr);e.wasmBinary&&e.wasmBinary;e.arguments&&e.arguments;e.thisProgram&&(r=e.thisProgram);if(e.preInit){"function"==typeof e.preInit&&(e.preInit=[e.preInit]);for(;e.preInit.length>0;)e.preInit.shift()()}e.writeArrayToMemory=(t,e)=>{c.set(t,e)};var x,S={m:()=>function abort(t){e.onAbort?.(t);h(t=`Aborted(${t})`);m=!0;t+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(t);i?.(r);throw r}(""),l:()=>{w=!1;C=0},i:(t,e)=>{if(_[t]){clearTimeout(_[t].id);delete _[t]}if(!e)return 0;var r=setTimeout(()=>{delete _[t];callUserCallback(()=>d(t,performance.now()))},e);_[t]={id:r,timeout_ms:e};return 0},f:function _copy_pixels_1(t,r){t>>=2;const n=e.imageData=new Uint8ClampedArray(r),s=o.subarray(t,t+r);n.set(s)},e:function _copy_pixels_3(t,r,n,s){t>>=2;r>>=2;n>>=2;const a=e.imageData=new Uint8ClampedArray(3*s),i=o.subarray(t,t+s),c=o.subarray(r,r+s),l=o.subarray(n,n+s);for(let t=0;t>=2;r>>=2;n>>=2;s>>=2;const i=e.imageData=new Uint8ClampedArray(4*a),c=o.subarray(t,t+a),l=o.subarray(r,r+a),u=o.subarray(n,n+a),f=o.subarray(s,s+a);for(let t=0;t{var e=u.length,r=2147483648;if((t>>>=0)>r)return!1;for(var n=1;n<=4;n*=2){var s=e*(1+.2/n);s=Math.min(s,t+100663296);var a=Math.min(r,alignMemory(Math.max(t,s),65536));if(growMemory(a))return!0}return!1},o:(t,e)=>{var r=0,n=0;for(var s of getEnvStrings()){var a=e+r;l[t+n>>2]=a;r+=stringToUTF8(s,a,1/0)+1;n+=4}return 0},p:(t,e)=>{var r=getEnvStrings();l[t>>2]=r.length;var n=0;for(var s of r)n+=lengthBytesUTF8(s)+1;l[e>>2]=n;return 0},n:function _fd_seek(t,e,r,n){e=(s=e)<-9007199254740992||s>9007199254740992?NaN:Number(s);var s;return 70},b:(t,e,r,n)=>{for(var s=0,a=0;a>2],o=l[e+4>>2];e+=8;for(var c=0;c>2]=s;return 0},q:function _gray_to_rgba(t,r){t>>=2;const n=e.imageData=new Uint8ClampedArray(4*r),s=o.subarray(t,t+r);for(let t=0;t>=2;r>>=2;const s=e.imageData=new Uint8ClampedArray(4*n),a=o.subarray(t,t+n),i=o.subarray(r,r+n);for(let t=0;t>=2;r>>=2;n>>=2;const a=e.imageData=new Uint8ClampedArray(4*s),i=o.subarray(t,t+s),c=o.subarray(r,r+s),l=o.subarray(n,n+s);for(let t=0;t{e.instantiateWasm(t,(t,e)=>{r(receiveInstance(t))})})}();!function run(){!function preRun(){if(e.preRun){"function"==typeof e.preRun&&(e.preRun=[e.preRun]);for(;e.preRun.length;)addOnPreRun(e.preRun.shift())}callRuntimeCallbacks(y)}();function doRun(){e.calledRun=!0;if(!m){!function initRuntime(){g=!0;x.s()}();a?.(e);e.onRuntimeInitialized?.();!function postRun(){if(e.postRun){"function"==typeof e.postRun&&(e.postRun=[e.postRun]);for(;e.postRun.length;)addOnPostRun(e.postRun.shift())}callRuntimeCallbacks(b)}()}}if(e.setStatus){e.setStatus("Running...");setTimeout(()=>{setTimeout(()=>e.setStatus(""),1);doRun()},1)}else doRun()}();return g?e:new Promise((t,e)=>{a=t;i=e})};class Stream extends BaseStream{constructor(t,e,r,n){super();this.bytes=t instanceof Uint8Array?t:new Uint8Array(t);this.start=e||0;this.pos=this.start;this.end=e+r||this.bytes.length;this.dict=n}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(t){const e=this.bytes,r=this.pos,n=this.end;if(!t){this.pos=n;return e.subarray(r,n)}let s=r+t;s>n&&(s=n);this.pos=s;return e.subarray(r,s)}getByteRange(t,e){t<0&&(t=0);e>this.end&&(e=this.end);return this.bytes.subarray(t,e)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(t,e,r=null){return new Stream(this.bytes.buffer,t,e,r)}clone(){return new Stream(this.bytes.buffer,this.start,this.end-this.start,this.dict.clone())}}class JpxError extends n{constructor(t){super(t,"JpxError")}}class JpxImage{static#s=null;static#a=null;static#i=null;static#o=!0;static#c=!0;static#l=null;static setOptions({handler:t,useWasm:e,useWorkerFetch:r,wasmUrl:n}){this.#o=e;this.#c=r;this.#l=n;r||(this.#a=t)}static async#u(t){const e=`${this.#l}openjpeg_nowasm_fallback.js`;let r=null;try{r=(await import(
+/*webpackIgnore: true*/
+/*@vite-ignore*/
+e)).default()}catch(t){warn(`JpxImage#getJsModule: ${t}`)}t(r)}static async#f(t,e,r){const n="openjpeg.wasm";try{this.#s||(this.#c?this.#s=await fetchBinaryData(`${this.#l}${n}`):this.#s=await this.#a.sendWithPromise("FetchBinaryData",{kind:"wasmUrl",filename:n}));return r((await WebAssembly.instantiate(this.#s,e)).instance)}catch(e){warn(`JpxImage#instantiateWasm: ${e}`);this.#u(t);return null}finally{this.#a=null}}static async decode(t,{numComponents:e=4,isIndexedColormap:r=!1,smaskInData:n=!1,reducePower:s=0}={}){if(!this.#i){const{promise:t,resolve:e}=Promise.withResolvers(),r=[t];this.#o?r.push(S({warn,instantiateWasm:this.#f.bind(this,e)})):this.#u(e);this.#i=Promise.race(r)}const a=await this.#i;if(!a)throw new JpxError("OpenJPEG failed to initialize");let i;try{const o=t.length;i=a._malloc(o);a.writeArrayToMemory(t,i);if(a._jp2_decode(i,o,e>0?e:0,!!r,!!n,s)){const{errorMessages:t}=a;if(t){delete a.errorMessages;throw new JpxError(t)}throw new JpxError("Unknown error")}const{imageData:c}=a;a.imageData=null;return c}finally{i&&a._free(i)}}static cleanup(){this.#i=null}static parseImageProperties(t){if(!(t instanceof ArrayBuffer||ArrayBuffer.isView(t)))throw new JpxError("Invalid data format, must be a TypedArray.");let e=(t=new Stream(t)).getByte();for(;e>=0;){const r=e;e=t.getByte();if(65361===(r<<8|e)){t.skip(4);const e=t.getInt32()>>>0,r=t.getInt32()>>>0,n=t.getInt32()>>>0,s=t.getInt32()>>>0;t.skip(16);return{width:e-n,height:r-s,bitsPerComponent:8,componentsCount:t.getUint16()}}}throw new JpxError("No size marker found in JPX stream")}}globalThis.pdfjsImageDecoders={getVerbosityLevel,Jbig2Error,Jbig2Image:JBig2CCITTFaxImage,JpegError,JpegImage,JpxError,JpxImage,setVerbosityLevel,VerbosityLevel:e};export{Jbig2Error,JBig2CCITTFaxImage as Jbig2Image,JpegError,JpegImage,JpxError,JpxImage,e as VerbosityLevel,getVerbosityLevel,setVerbosityLevel};
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/image_decoders/pdf.image_decoders.mjs b/frontend/node_modules/pdfjs-dist/image_decoders/pdf.image_decoders.mjs
new file mode 100644
index 0000000..2c0047c
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/image_decoders/pdf.image_decoders.mjs
@@ -0,0 +1,5555 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * JavaScript code in this page
+ *
+ * Copyright 2024 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @licend The above is the entire license notice for the
+ * JavaScript code in this page
+ */
+
+/**
+ * pdfjsVersion = 5.7.284
+ * pdfjsBuild = 7e5b36c2d
+ */
+/******/ // The require scope
+/******/ var __webpack_require__ = {};
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/************************************************************************/
+
+;// ./src/shared/util.js
+const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser");
+const BBOX_INIT = [Infinity, Infinity, -Infinity, -Infinity];
+const F32_BBOX_INIT = new Float32Array(BBOX_INIT);
+const FONT_IDENTITY_MATRIX = (/* unused pure expression or super */ null && ([0.001, 0, 0, 0.001, 0, 0]));
+const LINE_FACTOR = 1.35;
+const LINE_DESCENT_FACTOR = 0.35;
+const BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;
+const RenderingIntentFlag = {
+ ANY: 0x01,
+ DISPLAY: 0x02,
+ PRINT: 0x04,
+ SAVE: 0x08,
+ ANNOTATIONS_FORMS: 0x10,
+ ANNOTATIONS_STORAGE: 0x20,
+ ANNOTATIONS_DISABLE: 0x40,
+ IS_EDITING: 0x80,
+ OPLIST: 0x100
+};
+const AnnotationMode = {
+ DISABLE: 0,
+ ENABLE: 1,
+ ENABLE_FORMS: 2,
+ ENABLE_STORAGE: 3
+};
+const AnnotationEditorPrefix = "pdfjs_internal_editor_";
+const AnnotationEditorType = {
+ DISABLE: -1,
+ NONE: 0,
+ FREETEXT: 3,
+ HIGHLIGHT: 9,
+ STAMP: 13,
+ INK: 15,
+ POPUP: 16,
+ SIGNATURE: 101,
+ COMMENT: 102
+};
+const AnnotationEditorParamsType = {
+ RESIZE: 1,
+ CREATE: 2,
+ FREETEXT_SIZE: 11,
+ FREETEXT_COLOR: 12,
+ FREETEXT_OPACITY: 13,
+ INK_COLOR: 21,
+ INK_THICKNESS: 22,
+ INK_OPACITY: 23,
+ INK_COLOR_AND_OPACITY: 24,
+ HIGHLIGHT_COLOR: 31,
+ HIGHLIGHT_THICKNESS: 32,
+ HIGHLIGHT_FREE: 33,
+ HIGHLIGHT_SHOW_ALL: 34,
+ DRAW_STEP: 41
+};
+const PermissionFlag = {
+ PRINT: 0x04,
+ MODIFY_CONTENTS: 0x08,
+ COPY: 0x10,
+ MODIFY_ANNOTATIONS: 0x20,
+ FILL_INTERACTIVE_FORMS: 0x100,
+ COPY_FOR_ACCESSIBILITY: 0x200,
+ ASSEMBLE: 0x400,
+ PRINT_HIGH_QUALITY: 0x800
+};
+const MeshFigureType = {
+ TRIANGLES: 1,
+ LATTICE: 2,
+ PATCH: 3
+};
+const TextRenderingMode = {
+ FILL: 0,
+ STROKE: 1,
+ FILL_STROKE: 2,
+ INVISIBLE: 3,
+ FILL_ADD_TO_PATH: 4,
+ STROKE_ADD_TO_PATH: 5,
+ FILL_STROKE_ADD_TO_PATH: 6,
+ ADD_TO_PATH: 7,
+ FILL_STROKE_MASK: 3,
+ ADD_TO_PATH_FLAG: 4
+};
+const ImageKind = {
+ GRAYSCALE_1BPP: 1,
+ RGB_24BPP: 2,
+ RGBA_32BPP: 3
+};
+const AnnotationType = {
+ TEXT: 1,
+ LINK: 2,
+ FREETEXT: 3,
+ LINE: 4,
+ SQUARE: 5,
+ CIRCLE: 6,
+ POLYGON: 7,
+ POLYLINE: 8,
+ HIGHLIGHT: 9,
+ UNDERLINE: 10,
+ SQUIGGLY: 11,
+ STRIKEOUT: 12,
+ STAMP: 13,
+ CARET: 14,
+ INK: 15,
+ POPUP: 16,
+ FILEATTACHMENT: 17,
+ SOUND: 18,
+ MOVIE: 19,
+ WIDGET: 20,
+ SCREEN: 21,
+ PRINTERMARK: 22,
+ TRAPNET: 23,
+ WATERMARK: 24,
+ THREED: 25,
+ REDACT: 26
+};
+const AnnotationReplyType = {
+ GROUP: "Group",
+ REPLY: "R"
+};
+const AnnotationFlag = {
+ INVISIBLE: 0x01,
+ HIDDEN: 0x02,
+ PRINT: 0x04,
+ NOZOOM: 0x08,
+ NOROTATE: 0x10,
+ NOVIEW: 0x20,
+ READONLY: 0x40,
+ LOCKED: 0x80,
+ TOGGLENOVIEW: 0x100,
+ LOCKEDCONTENTS: 0x200
+};
+const AnnotationFieldFlag = {
+ READONLY: 0x0000001,
+ REQUIRED: 0x0000002,
+ NOEXPORT: 0x0000004,
+ MULTILINE: 0x0001000,
+ PASSWORD: 0x0002000,
+ NOTOGGLETOOFF: 0x0004000,
+ RADIO: 0x0008000,
+ PUSHBUTTON: 0x0010000,
+ COMBO: 0x0020000,
+ EDIT: 0x0040000,
+ SORT: 0x0080000,
+ FILESELECT: 0x0100000,
+ MULTISELECT: 0x0200000,
+ DONOTSPELLCHECK: 0x0400000,
+ DONOTSCROLL: 0x0800000,
+ COMB: 0x1000000,
+ RICHTEXT: 0x2000000,
+ RADIOSINUNISON: 0x2000000,
+ COMMITONSELCHANGE: 0x4000000
+};
+const AnnotationBorderStyleType = {
+ SOLID: 1,
+ DASHED: 2,
+ BEVELED: 3,
+ INSET: 4,
+ UNDERLINE: 5
+};
+const AnnotationActionEventType = {
+ E: "Mouse Enter",
+ X: "Mouse Exit",
+ D: "Mouse Down",
+ U: "Mouse Up",
+ Fo: "Focus",
+ Bl: "Blur",
+ PO: "PageOpen",
+ PC: "PageClose",
+ PV: "PageVisible",
+ PI: "PageInvisible",
+ K: "Keystroke",
+ F: "Format",
+ V: "Validate",
+ C: "Calculate"
+};
+const DocumentActionEventType = {
+ WC: "WillClose",
+ WS: "WillSave",
+ DS: "DidSave",
+ WP: "WillPrint",
+ DP: "DidPrint"
+};
+const PageActionEventType = {
+ O: "PageOpen",
+ C: "PageClose"
+};
+const VerbosityLevel = {
+ ERRORS: 0,
+ WARNINGS: 1,
+ INFOS: 5
+};
+const OPS = {
+ dependency: 1,
+ setLineWidth: 2,
+ setLineCap: 3,
+ setLineJoin: 4,
+ setMiterLimit: 5,
+ setDash: 6,
+ setRenderingIntent: 7,
+ setFlatness: 8,
+ setGState: 9,
+ save: 10,
+ restore: 11,
+ transform: 12,
+ moveTo: 13,
+ lineTo: 14,
+ curveTo: 15,
+ curveTo2: 16,
+ curveTo3: 17,
+ closePath: 18,
+ rectangle: 19,
+ stroke: 20,
+ closeStroke: 21,
+ fill: 22,
+ eoFill: 23,
+ fillStroke: 24,
+ eoFillStroke: 25,
+ closeFillStroke: 26,
+ closeEOFillStroke: 27,
+ endPath: 28,
+ clip: 29,
+ eoClip: 30,
+ beginText: 31,
+ endText: 32,
+ setCharSpacing: 33,
+ setWordSpacing: 34,
+ setHScale: 35,
+ setLeading: 36,
+ setFont: 37,
+ setTextRenderingMode: 38,
+ setTextRise: 39,
+ moveText: 40,
+ setLeadingMoveText: 41,
+ setTextMatrix: 42,
+ nextLine: 43,
+ showText: 44,
+ showSpacedText: 45,
+ nextLineShowText: 46,
+ nextLineSetSpacingShowText: 47,
+ setCharWidth: 48,
+ setCharWidthAndBounds: 49,
+ setStrokeColorSpace: 50,
+ setFillColorSpace: 51,
+ setStrokeColor: 52,
+ setStrokeColorN: 53,
+ setFillColor: 54,
+ setFillColorN: 55,
+ setStrokeGray: 56,
+ setFillGray: 57,
+ setStrokeRGBColor: 58,
+ setFillRGBColor: 59,
+ setStrokeCMYKColor: 60,
+ setFillCMYKColor: 61,
+ shadingFill: 62,
+ beginInlineImage: 63,
+ beginImageData: 64,
+ endInlineImage: 65,
+ paintXObject: 66,
+ markPoint: 67,
+ markPointProps: 68,
+ beginMarkedContent: 69,
+ beginMarkedContentProps: 70,
+ endMarkedContent: 71,
+ beginCompat: 72,
+ endCompat: 73,
+ paintFormXObjectBegin: 74,
+ paintFormXObjectEnd: 75,
+ beginGroup: 76,
+ endGroup: 77,
+ beginAnnotation: 80,
+ endAnnotation: 81,
+ paintImageMaskXObject: 83,
+ paintImageMaskXObjectGroup: 84,
+ paintImageXObject: 85,
+ paintInlineImageXObject: 86,
+ paintInlineImageXObjectGroup: 87,
+ paintImageXObjectRepeat: 88,
+ paintImageMaskXObjectRepeat: 89,
+ paintSolidColorImageMask: 90,
+ constructPath: 91,
+ setStrokeTransparent: 92,
+ setFillTransparent: 93,
+ rawFillPath: 94
+};
+const DrawOPS = {
+ moveTo: 0,
+ lineTo: 1,
+ curveTo: 2,
+ quadraticCurveTo: 3,
+ closePath: 4
+};
+const PasswordResponses = {
+ NEED_PASSWORD: 1,
+ INCORRECT_PASSWORD: 2
+};
+let verbosity = VerbosityLevel.WARNINGS;
+function setVerbosityLevel(level) {
+ if (Number.isInteger(level)) {
+ verbosity = level;
+ }
+}
+function getVerbosityLevel() {
+ return verbosity;
+}
+function info(msg) {
+ if (verbosity >= VerbosityLevel.INFOS) {
+ console.info(`Info: ${msg}`);
+ }
+}
+function warn(msg) {
+ if (verbosity >= VerbosityLevel.WARNINGS) {
+ console.warn(`Warning: ${msg}`);
+ }
+}
+function unreachable(msg) {
+ throw new Error(msg);
+}
+function assert(cond, msg) {
+ if (!cond) {
+ unreachable(msg);
+ }
+}
+function _isValidProtocol(url) {
+ switch (url?.protocol) {
+ case "http:":
+ case "https:":
+ case "ftp:":
+ case "mailto:":
+ case "tel:":
+ return true;
+ default:
+ return false;
+ }
+}
+function createValidAbsoluteUrl(url, baseUrl = null, options = null) {
+ if (!url) {
+ return null;
+ }
+ if (options && typeof url === "string") {
+ if (options.addDefaultProtocol && url.startsWith("www.")) {
+ const dots = url.match(/\./g);
+ if (dots?.length >= 2) {
+ url = `http://${url}`;
+ }
+ }
+ if (options.tryConvertEncoding) {
+ try {
+ url = stringToUTF8String(url);
+ } catch {}
+ }
+ }
+ const absoluteUrl = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);
+ return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;
+}
+function updateUrlHash(url, hash, allowRel = false) {
+ const res = URL.parse(url);
+ if (res) {
+ res.hash = hash;
+ return res.href;
+ }
+ if (allowRel && createValidAbsoluteUrl(url, "http://example.com")) {
+ return url.split("#", 1)[0] + `${hash ? `#${hash}` : ""}`;
+ }
+ return "";
+}
+function stripPath(str) {
+ return str.substring(str.lastIndexOf("/") + 1);
+}
+function shadow(obj, prop, value, nonSerializable = false) {
+ Object.defineProperty(obj, prop, {
+ value,
+ enumerable: !nonSerializable,
+ configurable: true,
+ writable: false
+ });
+ return value;
+}
+const BaseException = function BaseExceptionClosure() {
+ function BaseException(message, name) {
+ this.message = message;
+ this.name = name;
+ }
+ BaseException.prototype = new Error();
+ BaseException.constructor = BaseException;
+ return BaseException;
+}();
+class PasswordException extends BaseException {
+ constructor(msg, code) {
+ super(msg, "PasswordException");
+ this.code = code;
+ }
+}
+class UnknownErrorException extends BaseException {
+ constructor(msg, details) {
+ super(msg, "UnknownErrorException");
+ this.details = details;
+ }
+}
+class InvalidPDFException extends BaseException {
+ constructor(msg) {
+ super(msg, "InvalidPDFException");
+ }
+}
+class ResponseException extends BaseException {
+ constructor(msg, status, missing) {
+ super(msg, "ResponseException");
+ this.status = status;
+ this.missing = missing;
+ }
+}
+class FormatError extends BaseException {
+ constructor(msg) {
+ super(msg, "FormatError");
+ }
+}
+class AbortException extends BaseException {
+ constructor(msg) {
+ super(msg, "AbortException");
+ }
+}
+function bytesToString(bytes) {
+ if (typeof bytes !== "object" || bytes?.length === undefined) {
+ unreachable("Invalid argument for bytesToString");
+ }
+ const length = bytes.length;
+ const MAX_ARGUMENT_COUNT = 8192;
+ if (length < MAX_ARGUMENT_COUNT) {
+ return String.fromCharCode.apply(null, bytes);
+ }
+ const strBuf = [];
+ for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
+ const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
+ const chunk = bytes.subarray(i, chunkEnd);
+ strBuf.push(String.fromCharCode.apply(null, chunk));
+ }
+ return strBuf.join("");
+}
+function stringToBytes(str) {
+ if (typeof str !== "string") {
+ unreachable("Invalid argument for stringToBytes");
+ }
+ const length = str.length;
+ const bytes = new Uint8Array(length);
+ for (let i = 0; i < length; ++i) {
+ bytes[i] = str.charCodeAt(i) & 0xff;
+ }
+ return bytes;
+}
+function objectSize(obj) {
+ return Object.keys(obj).length;
+}
+function isLittleEndian() {
+ const buffer8 = new Uint8Array(4);
+ buffer8[0] = 1;
+ const view32 = new Uint32Array(buffer8.buffer, 0, 1);
+ return view32[0] === 1;
+}
+class FeatureTest {
+ static get isLittleEndian() {
+ return shadow(this, "isLittleEndian", isLittleEndian());
+ }
+ static get isOffscreenCanvasSupported() {
+ return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined");
+ }
+ static get isImageDecoderSupported() {
+ return shadow(this, "isImageDecoderSupported", typeof ImageDecoder !== "undefined");
+ }
+ static get isFloat16ArraySupported() {
+ return shadow(this, "isFloat16ArraySupported", typeof Float16Array !== "undefined");
+ }
+ static get isSanitizerSupported() {
+ return shadow(this, "isSanitizerSupported", typeof Sanitizer !== "undefined");
+ }
+ static get platform() {
+ const {
+ platform,
+ userAgent
+ } = navigator;
+ return shadow(this, "platform", {
+ isAndroid: userAgent.includes("Android"),
+ isLinux: platform.includes("Linux"),
+ isMac: platform.includes("Mac"),
+ isWindows: platform.includes("Win"),
+ isFirefox: userAgent.includes("Firefox")
+ });
+ }
+ static get isCSSRoundSupported() {
+ return shadow(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)"));
+ }
+ static get isAlphaColorInputSupported() {
+ return shadow(this, "isAlphaColorInputSupported", (() => {
+ if (typeof document === "undefined") {
+ return false;
+ }
+ const input = document.createElement("input");
+ input.type = "color";
+ input.setAttribute("alpha", "");
+ input.value = "#ff000080";
+ return input.value !== "#ff0000";
+ })());
+ }
+}
+class Util {
+ static get hexNums() {
+ return shadow(this, "hexNums", Array.from(Array(256).keys(), n => n.toString(16).padStart(2, "0")));
+ }
+ static makeHexColor(r, g, b) {
+ return `#${this.hexNums[r]}${this.hexNums[g]}${this.hexNums[b]}`;
+ }
+ static domMatrixToTransform(dm) {
+ return [dm.a, dm.b, dm.c, dm.d, dm.e, dm.f];
+ }
+ static scaleMinMax(transform, minMax) {
+ let temp;
+ if (transform[0]) {
+ if (transform[0] < 0) {
+ temp = minMax[0];
+ minMax[0] = minMax[2];
+ minMax[2] = temp;
+ }
+ minMax[0] *= transform[0];
+ minMax[2] *= transform[0];
+ if (transform[3] < 0) {
+ temp = minMax[1];
+ minMax[1] = minMax[3];
+ minMax[3] = temp;
+ }
+ minMax[1] *= transform[3];
+ minMax[3] *= transform[3];
+ } else {
+ temp = minMax[0];
+ minMax[0] = minMax[1];
+ minMax[1] = temp;
+ temp = minMax[2];
+ minMax[2] = minMax[3];
+ minMax[3] = temp;
+ if (transform[1] < 0) {
+ temp = minMax[1];
+ minMax[1] = minMax[3];
+ minMax[3] = temp;
+ }
+ minMax[1] *= transform[1];
+ minMax[3] *= transform[1];
+ if (transform[2] < 0) {
+ temp = minMax[0];
+ minMax[0] = minMax[2];
+ minMax[2] = temp;
+ }
+ minMax[0] *= transform[2];
+ minMax[2] *= transform[2];
+ }
+ minMax[0] += transform[4];
+ minMax[1] += transform[5];
+ minMax[2] += transform[4];
+ minMax[3] += transform[5];
+ }
+ static transform(m1, m2) {
+ return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];
+ }
+ static multiplyByDOMMatrix(m, md) {
+ return [m[0] * md.a + m[2] * md.b, m[1] * md.a + m[3] * md.b, m[0] * md.c + m[2] * md.d, m[1] * md.c + m[3] * md.d, m[0] * md.e + m[2] * md.f + m[4], m[1] * md.e + m[3] * md.f + m[5]];
+ }
+ static applyTransform(p, m, pos = 0) {
+ const p0 = p[pos];
+ const p1 = p[pos + 1];
+ p[pos] = p0 * m[0] + p1 * m[2] + m[4];
+ p[pos + 1] = p0 * m[1] + p1 * m[3] + m[5];
+ }
+ static applyTransformToBezier(p, transform, pos = 0) {
+ const m0 = transform[0];
+ const m1 = transform[1];
+ const m2 = transform[2];
+ const m3 = transform[3];
+ const m4 = transform[4];
+ const m5 = transform[5];
+ for (let i = 0; i < 6; i += 2) {
+ const pI = p[pos + i];
+ const pI1 = p[pos + i + 1];
+ p[pos + i] = pI * m0 + pI1 * m2 + m4;
+ p[pos + i + 1] = pI * m1 + pI1 * m3 + m5;
+ }
+ }
+ static applyInverseTransform(p, m) {
+ const p0 = p[0];
+ const p1 = p[1];
+ const d = m[0] * m[3] - m[1] * m[2];
+ p[0] = (p0 * m[3] - p1 * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
+ p[1] = (-p0 * m[1] + p1 * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
+ }
+ static axialAlignedBoundingBox(rect, transform, output) {
+ const m0 = transform[0];
+ const m1 = transform[1];
+ const m2 = transform[2];
+ const m3 = transform[3];
+ const m4 = transform[4];
+ const m5 = transform[5];
+ const r0 = rect[0];
+ const r1 = rect[1];
+ const r2 = rect[2];
+ const r3 = rect[3];
+ let a0 = m0 * r0 + m4;
+ let a2 = a0;
+ let a1 = m0 * r2 + m4;
+ let a3 = a1;
+ let b0 = m3 * r1 + m5;
+ let b2 = b0;
+ let b1 = m3 * r3 + m5;
+ let b3 = b1;
+ if (m1 !== 0 || m2 !== 0) {
+ const m1r0 = m1 * r0;
+ const m1r2 = m1 * r2;
+ const m2r1 = m2 * r1;
+ const m2r3 = m2 * r3;
+ a0 += m2r1;
+ a3 += m2r1;
+ a1 += m2r3;
+ a2 += m2r3;
+ b0 += m1r0;
+ b3 += m1r0;
+ b1 += m1r2;
+ b2 += m1r2;
+ }
+ output[0] = Math.min(output[0], a0, a1, a2, a3);
+ output[1] = Math.min(output[1], b0, b1, b2, b3);
+ output[2] = Math.max(output[2], a0, a1, a2, a3);
+ output[3] = Math.max(output[3], b0, b1, b2, b3);
+ }
+ static inverseTransform(m) {
+ const d = m[0] * m[3] - m[1] * m[2];
+ return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];
+ }
+ static singularValueDecompose2dScale(matrix, output) {
+ const m0 = matrix[0];
+ const m1 = matrix[1];
+ const m2 = matrix[2];
+ const m3 = matrix[3];
+ const a = m0 ** 2 + m1 ** 2;
+ const b = m0 * m2 + m1 * m3;
+ const c = m2 ** 2 + m3 ** 2;
+ const first = (a + c) / 2;
+ const second = Math.sqrt(first ** 2 - (a * c - b ** 2));
+ output[0] = Math.sqrt(first + second || 1);
+ output[1] = Math.sqrt(first - second || 1);
+ }
+ static normalizeRect(rect) {
+ const r = rect.slice(0);
+ if (rect[0] > rect[2]) {
+ r[0] = rect[2];
+ r[2] = rect[0];
+ }
+ if (rect[1] > rect[3]) {
+ r[1] = rect[3];
+ r[3] = rect[1];
+ }
+ return r;
+ }
+ static intersect(rect1, rect2) {
+ const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));
+ const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));
+ if (xLow > xHigh) {
+ return null;
+ }
+ const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));
+ const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));
+ if (yLow > yHigh) {
+ return null;
+ }
+ return [xLow, yLow, xHigh, yHigh];
+ }
+ static pointBoundingBox(x, y, minMax) {
+ minMax[0] = Math.min(minMax[0], x);
+ minMax[1] = Math.min(minMax[1], y);
+ minMax[2] = Math.max(minMax[2], x);
+ minMax[3] = Math.max(minMax[3], y);
+ }
+ static rectBoundingBox(x0, y0, x1, y1, minMax) {
+ minMax[0] = Math.min(minMax[0], x0, x1);
+ minMax[1] = Math.min(minMax[1], y0, y1);
+ minMax[2] = Math.max(minMax[2], x0, x1);
+ minMax[3] = Math.max(minMax[3], y0, y1);
+ }
+ static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {
+ if (t <= 0 || t >= 1) {
+ return;
+ }
+ const mt = 1 - t;
+ const tt = t * t;
+ const ttt = tt * t;
+ const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;
+ const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;
+ minMax[0] = Math.min(minMax[0], x);
+ minMax[1] = Math.min(minMax[1], y);
+ minMax[2] = Math.max(minMax[2], x);
+ minMax[3] = Math.max(minMax[3], y);
+ }
+ static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {
+ if (Math.abs(a) < 1e-12) {
+ if (Math.abs(b) >= 1e-12) {
+ this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax);
+ }
+ return;
+ }
+ const delta = b ** 2 - 4 * c * a;
+ if (delta < 0) {
+ return;
+ }
+ const sqrtDelta = Math.sqrt(delta);
+ const a2 = 2 * a;
+ this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax);
+ this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax);
+ }
+ static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {
+ minMax[0] = Math.min(minMax[0], x0, x3);
+ minMax[1] = Math.min(minMax[1], y0, y3);
+ minMax[2] = Math.max(minMax[2], x0, x3);
+ minMax[3] = Math.max(minMax[3], y0, y3);
+ this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax);
+ this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax);
+ }
+}
+const PDFStringTranslateTable = (/* unused pure expression or super */ null && ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]));
+function stringToPDFString(str, keepEscapeSequence = false) {
+ if (str[0] >= "\xEF") {
+ let encoding;
+ if (str[0] === "\xFE" && str[1] === "\xFF") {
+ encoding = "utf-16be";
+ if (str.length % 2 === 1) {
+ str = str.slice(0, -1);
+ }
+ } else if (str[0] === "\xFF" && str[1] === "\xFE") {
+ encoding = "utf-16le";
+ if (str.length % 2 === 1) {
+ str = str.slice(0, -1);
+ }
+ } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") {
+ encoding = "utf-8";
+ }
+ if (encoding) {
+ try {
+ const decoder = new TextDecoder(encoding, {
+ fatal: true
+ });
+ const buffer = stringToBytes(str);
+ const decoded = decoder.decode(buffer);
+ if (keepEscapeSequence || !decoded.includes("\x1b")) {
+ return decoded;
+ }
+ return decoded.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g, "");
+ } catch (ex) {
+ warn(`stringToPDFString: "${ex}".`);
+ }
+ }
+ }
+ const strBuf = [];
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const charCode = str.charCodeAt(i);
+ if (!keepEscapeSequence && charCode === 0x1b) {
+ while (++i < ii && str.charCodeAt(i) !== 0x1b) {}
+ continue;
+ }
+ const code = PDFStringTranslateTable[charCode];
+ strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
+ }
+ return strBuf.join("");
+}
+function stringToUTF8String(str) {
+ return decodeURIComponent(escape(str));
+}
+function utf8StringToString(str) {
+ return unescape(encodeURIComponent(str));
+}
+function isArrayEqual(arr1, arr2) {
+ if (arr1.length !== arr2.length) {
+ return false;
+ }
+ for (let i = 0, ii = arr1.length; i < ii; i++) {
+ if (arr1[i] !== arr2[i]) {
+ return false;
+ }
+ }
+ return true;
+}
+function getModificationDate(date = new Date()) {
+ if (!(date instanceof Date)) {
+ date = new Date(date);
+ }
+ const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")];
+ return buffer.join("");
+}
+let NormalizeRegex = null;
+let NormalizationMap = null;
+function normalizeUnicode(str) {
+ if (!NormalizeRegex) {
+ NormalizeRegex = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu;
+ NormalizationMap = new Map([["ο¬
", "ΕΏt"]]);
+ }
+ return str.replaceAll(NormalizeRegex, (_, p1, p2) => p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2));
+}
+function getUuid() {
+ if (typeof crypto.randomUUID === "function") {
+ return crypto.randomUUID();
+ }
+ const buf = new Uint8Array(32);
+ crypto.getRandomValues(buf);
+ return bytesToString(buf);
+}
+const AnnotationPrefix = "pdfjs_internal_id_";
+function _isValidExplicitDest(validRef, validName, dest) {
+ if (!Array.isArray(dest) || dest.length < 2) {
+ return false;
+ }
+ const [page, zoom, ...args] = dest;
+ if (!validRef(page) && !Number.isInteger(page)) {
+ return false;
+ }
+ if (!validName(zoom)) {
+ return false;
+ }
+ const argsLen = args.length;
+ let allowNull = true;
+ switch (zoom.name) {
+ case "XYZ":
+ if (argsLen < 2 || argsLen > 3) {
+ return false;
+ }
+ break;
+ case "Fit":
+ case "FitB":
+ return argsLen === 0;
+ case "FitH":
+ case "FitBH":
+ case "FitV":
+ case "FitBV":
+ if (argsLen > 1) {
+ return false;
+ }
+ break;
+ case "FitR":
+ if (argsLen !== 4) {
+ return false;
+ }
+ allowNull = false;
+ break;
+ default:
+ return false;
+ }
+ for (const arg of args) {
+ if (typeof arg === "number" || allowNull && arg === null) {
+ continue;
+ }
+ return false;
+ }
+ return true;
+}
+const makeArr = () => [];
+const makeMap = () => new Map();
+const makeObj = () => Object.create(null);
+
+;// ./src/core/primitives.js
+
+const CIRCULAR_REF = Symbol("CIRCULAR_REF");
+const EOF = Symbol("EOF");
+let CmdCache = Object.create(null);
+let NameCache = Object.create(null);
+let RefCache = Object.create(null);
+function clearPrimitiveCaches() {
+ CmdCache = Object.create(null);
+ NameCache = Object.create(null);
+ RefCache = Object.create(null);
+}
+class Name {
+ constructor(name) {
+ this.name = name;
+ }
+ static get(name) {
+ return NameCache[name] ||= new Name(name);
+ }
+}
+class Cmd {
+ constructor(cmd) {
+ this.cmd = cmd;
+ }
+ static get(cmd) {
+ return CmdCache[cmd] ||= new Cmd(cmd);
+ }
+}
+const nonSerializable = function nonSerializableClosure() {
+ return nonSerializable;
+};
+class Dict {
+ __nonSerializable__ = nonSerializable;
+ #map = new Map();
+ objId = null;
+ suppressEncryption = false;
+ xref;
+ constructor(xref = null) {
+ this.xref = xref;
+ }
+ assignXref(newXref) {
+ this.xref = newXref;
+ }
+ get size() {
+ return this.#map.size;
+ }
+ #getValue(isAsync, key1, key2, key3) {
+ let value = this.#map.get(key1);
+ if (value === undefined && key2 !== undefined) {
+ value = this.#map.get(key2);
+ if (value === undefined && key3 !== undefined) {
+ value = this.#map.get(key3);
+ }
+ }
+ if (value instanceof Ref && this.xref) {
+ return isAsync ? this.xref.fetchAsync(value, this.suppressEncryption) : this.xref.fetch(value, this.suppressEncryption);
+ }
+ return value;
+ }
+ get(key1, key2, key3) {
+ return this.#getValue(false, key1, key2, key3);
+ }
+ async getAsync(key1, key2, key3) {
+ return this.#getValue(true, key1, key2, key3);
+ }
+ getArray(key1, key2, key3) {
+ let value = this.#getValue(false, key1, key2, key3);
+ if (Array.isArray(value)) {
+ value = value.slice();
+ for (let i = 0, ii = value.length; i < ii; i++) {
+ if (value[i] instanceof Ref && this.xref) {
+ value[i] = this.xref.fetch(value[i], this.suppressEncryption);
+ }
+ }
+ }
+ return value;
+ }
+ getRaw(key) {
+ return this.#map.get(key);
+ }
+ getKeys() {
+ return this.#map.keys();
+ }
+ getRawValues() {
+ return this.#map.values();
+ }
+ getRawEntries() {
+ return this.#map.entries();
+ }
+ set(key, value) {
+ this.#map.set(key, value);
+ }
+ setIfNotExists(key, value) {
+ if (!this.has(key)) {
+ this.set(key, value);
+ }
+ }
+ setIfNumber(key, value) {
+ if (typeof value === "number") {
+ this.set(key, value);
+ }
+ }
+ setIfArray(key, value) {
+ if (Array.isArray(value) || ArrayBuffer.isView(value)) {
+ this.set(key, value);
+ }
+ }
+ setIfDefined(key, value) {
+ if (value !== undefined && value !== null) {
+ this.set(key, value);
+ }
+ }
+ setIfName(key, value) {
+ if (typeof value === "string") {
+ this.set(key, Name.get(value));
+ } else if (value instanceof Name) {
+ this.set(key, value);
+ }
+ }
+ setIfDict(key, value) {
+ if (value instanceof Dict) {
+ this.set(key, value);
+ }
+ }
+ has(key) {
+ return this.#map.has(key);
+ }
+ *[Symbol.iterator]() {
+ for (const [key, value] of this.#map) {
+ yield [key, value instanceof Ref && this.xref ? this.xref.fetch(value, this.suppressEncryption) : value];
+ }
+ }
+ static get empty() {
+ const emptyDict = new Dict(null);
+ emptyDict.set = (key, value) => {
+ unreachable("Should not call `set` on the empty dictionary.");
+ };
+ return shadow(this, "empty", emptyDict);
+ }
+ static merge({
+ xref,
+ dictArray,
+ mergeSubDicts = false
+ }) {
+ const mergedDict = new Dict(xref),
+ properties = new Map();
+ for (const dict of dictArray) {
+ if (!(dict instanceof Dict)) {
+ continue;
+ }
+ for (const [key, value] of dict.getRawEntries()) {
+ let property = properties.get(key);
+ if (property === undefined) {
+ property = [];
+ properties.set(key, property);
+ } else if (!mergeSubDicts || !(value instanceof Dict)) {
+ continue;
+ }
+ property.push(value);
+ }
+ }
+ for (const [name, values] of properties) {
+ if (values.length === 1 || !(values[0] instanceof Dict)) {
+ mergedDict.set(name, values[0]);
+ continue;
+ }
+ const subDict = new Dict(xref);
+ for (const dict of values) {
+ for (const [key, value] of dict.getRawEntries()) {
+ subDict.setIfNotExists(key, value);
+ }
+ }
+ if (subDict.size > 0) {
+ mergedDict.set(name, subDict);
+ }
+ }
+ properties.clear();
+ return mergedDict.size > 0 ? mergedDict : Dict.empty;
+ }
+ clone() {
+ const dict = new Dict(this.xref);
+ for (const [key, value] of this.#map) {
+ dict.set(key, value);
+ }
+ return dict;
+ }
+ delete(key) {
+ this.#map.delete(key);
+ }
+}
+class Ref {
+ constructor(num, gen) {
+ this.num = num;
+ this.gen = gen;
+ }
+ toString() {
+ if (this.gen === 0) {
+ return `${this.num}R`;
+ }
+ return `${this.num}R${this.gen}`;
+ }
+ static fromString(str) {
+ const ref = RefCache[str];
+ if (ref) {
+ return ref;
+ }
+ const m = /^(\d+)R(\d*)$/.exec(str);
+ if (!m || m[1] === "0") {
+ return null;
+ }
+ return RefCache[str] = new Ref(parseInt(m[1], 10), !m[2] ? 0 : parseInt(m[2], 10));
+ }
+ static get(num, gen) {
+ const key = gen === 0 ? `${num}R` : `${num}R${gen}`;
+ return RefCache[key] ||= new Ref(num, gen);
+ }
+}
+class RefSet {
+ constructor(parent = null) {
+ this._set = new Set(parent?._set);
+ }
+ has(ref) {
+ return this._set.has(ref.toString());
+ }
+ put(ref) {
+ this._set.add(ref.toString());
+ }
+ remove(ref) {
+ this._set.delete(ref.toString());
+ }
+ [Symbol.iterator]() {
+ return this._set.values();
+ }
+ clear() {
+ this._set.clear();
+ }
+}
+class RefSetCache {
+ _map = new Map();
+ get size() {
+ return this._map.size;
+ }
+ get(ref) {
+ return this._map.get(ref.toString());
+ }
+ has(ref) {
+ return this._map.has(ref.toString());
+ }
+ put(ref, obj) {
+ this._map.set(ref.toString(), obj);
+ }
+ putAlias(ref, aliasRef) {
+ this._map.set(ref.toString(), this.get(aliasRef));
+ }
+ [Symbol.iterator]() {
+ return this._map.values();
+ }
+ clear() {
+ this._map.clear();
+ }
+ *values() {
+ yield* this._map.values();
+ }
+ *items() {
+ for (const [ref, value] of this._map) {
+ yield [Ref.fromString(ref), value];
+ }
+ }
+ *keys() {
+ for (const ref of this._map.keys()) {
+ yield Ref.fromString(ref);
+ }
+ }
+}
+function isName(v, name) {
+ return v instanceof Name && (name === undefined || v.name === name);
+}
+function isCmd(v, cmd) {
+ return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);
+}
+function isDict(v, type) {
+ return v instanceof Dict && (type === undefined || isName(v.get("Type"), type));
+}
+function isRefsEqual(v1, v2) {
+ return v1.num === v2.num && v1.gen === v2.gen;
+}
+
+;// ./src/core/base_stream.js
+
+class BaseStream {
+ get length() {
+ unreachable("Abstract getter `length` accessed");
+ }
+ get isEmpty() {
+ unreachable("Abstract getter `isEmpty` accessed");
+ }
+ get isDataLoaded() {
+ return shadow(this, "isDataLoaded", true);
+ }
+ getByte() {
+ unreachable("Abstract method `getByte` called");
+ }
+ getBytes(length) {
+ unreachable("Abstract method `getBytes` called");
+ }
+ async getImageData(length, decoderOptions) {
+ return this.getBytes(length, decoderOptions);
+ }
+ async asyncGetBytes() {
+ unreachable("Abstract method `asyncGetBytes` called");
+ }
+ get isAsync() {
+ return false;
+ }
+ get isAsyncDecoder() {
+ return false;
+ }
+ get isImageStream() {
+ return false;
+ }
+ get canAsyncDecodeImageFromBuffer() {
+ return false;
+ }
+ async getTransferableImage() {
+ return null;
+ }
+ peekByte() {
+ const peekedByte = this.getByte();
+ if (peekedByte !== -1) {
+ this.pos--;
+ }
+ return peekedByte;
+ }
+ peekBytes(length) {
+ const bytes = this.getBytes(length);
+ this.pos -= bytes.length;
+ return bytes;
+ }
+ getUint16() {
+ const b0 = this.getByte();
+ const b1 = this.getByte();
+ if (b0 === -1 || b1 === -1) {
+ return -1;
+ }
+ return (b0 << 8) + b1;
+ }
+ getInt32() {
+ const b0 = this.getByte();
+ const b1 = this.getByte();
+ const b2 = this.getByte();
+ const b3 = this.getByte();
+ return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;
+ }
+ getByteRange(begin, end) {
+ unreachable("Abstract method `getByteRange` called");
+ }
+ getString(length) {
+ return bytesToString(this.getBytes(length));
+ }
+ skip(n) {
+ this.pos += n || 1;
+ }
+ reset() {
+ unreachable("Abstract method `reset` called");
+ }
+ moveStart() {
+ unreachable("Abstract method `moveStart` called");
+ }
+ makeSubStream(start, length, dict = null) {
+ unreachable("Abstract method `makeSubStream` called");
+ }
+ getBaseStreams() {
+ return null;
+ }
+ getOriginalStream() {
+ return this.stream?.getOriginalStream() || this;
+ }
+}
+
+;// ./src/core/core_utils.js
+/* unused harmony import specifier */ var core_utils_assert;
+/* unused harmony import specifier */ var core_utils_Util;
+/* unused harmony import specifier */ var core_utils_stringToPDFString;
+/* unused harmony import specifier */ var core_utils_objectSize;
+/* unused harmony import specifier */ var core_utils_warn;
+/* unused harmony import specifier */ var core_utils_AnnotationEditorPrefix;
+/* unused harmony import specifier */ var core_utils_makeArr;
+/* unused harmony import specifier */ var core_utils_RefSet;
+/* unused harmony import specifier */ var core_utils_Dict;
+/* unused harmony import specifier */ var core_utils_Ref;
+/* unused harmony import specifier */ var core_utils_isName;
+/* unused harmony import specifier */ var core_utils_BaseStream;
+
+
+
+const PDF_VERSION_REGEXP = /^[1-9]\.\d$/;
+const MAX_INT_32 = (/* unused pure expression or super */ null && (2 ** 31 - 1));
+const IDENTITY_MATRIX = (/* unused pure expression or super */ null && ([1, 0, 0, 1, 0, 0]));
+const RESOURCES_KEYS_OPERATOR_LIST = (/* unused pure expression or super */ null && (["ColorSpace", "ExtGState", "Font", "Pattern", "Properties", "Shading", "XObject"]));
+const RESOURCES_KEYS_TEXT_CONTENT = (/* unused pure expression or super */ null && (["ExtGState", "Font", "Properties", "XObject"]));
+function getLookupTableFactory(initializer) {
+ let lookup;
+ return function () {
+ if (initializer) {
+ lookup = Object.create(null);
+ initializer(lookup);
+ initializer = null;
+ }
+ return lookup;
+ };
+}
+class MissingDataException extends BaseException {
+ constructor(begin, end) {
+ super(`Missing data [${begin}, ${end})`, "MissingDataException");
+ this.begin = begin;
+ this.end = end;
+ }
+}
+class ParserEOFException extends BaseException {
+ constructor(msg) {
+ super(msg, "ParserEOFException");
+ }
+}
+class XRefEntryException extends BaseException {
+ constructor(msg) {
+ super(msg, "XRefEntryException");
+ }
+}
+class XRefParseException extends BaseException {
+ constructor(msg) {
+ super(msg, "XRefParseException");
+ }
+}
+function arrayBuffersToBytes(arr) {
+ const length = arr.length;
+ if (length === 0) {
+ return new Uint8Array(0);
+ }
+ if (length === 1) {
+ return new Uint8Array(arr[0]);
+ }
+ let dataLength = 0;
+ for (let i = 0; i < length; i++) {
+ dataLength += arr[i].byteLength;
+ }
+ const data = new Uint8Array(dataLength);
+ let pos = 0;
+ for (let i = 0; i < length; i++) {
+ const item = new Uint8Array(arr[i]);
+ data.set(item, pos);
+ pos += item.byteLength;
+ }
+ return data;
+}
+async function fetchBinaryData(url) {
+ const response = await fetch(url);
+ if (!response.ok) {
+ throw new Error(`Failed to fetch file "${url}" with "${response.statusText}".`);
+ }
+ return response.bytes();
+}
+function getInheritableProperty({
+ dict,
+ key,
+ getArray = false,
+ stopWhenFound = true
+}) {
+ let values;
+ const visited = new core_utils_RefSet();
+ while (dict instanceof core_utils_Dict && !(dict.objId && visited.has(dict.objId))) {
+ if (dict.objId) {
+ visited.put(dict.objId);
+ }
+ const value = getArray ? dict.getArray(key) : dict.get(key);
+ if (value !== undefined) {
+ if (stopWhenFound) {
+ return value;
+ }
+ (values ||= []).push(value);
+ }
+ dict = dict.get("Parent");
+ }
+ return values;
+}
+function getParentToUpdate(dict, ref, xref) {
+ const visited = new core_utils_RefSet();
+ const firstDict = dict;
+ const result = {
+ dict: null,
+ ref: null
+ };
+ while (dict instanceof core_utils_Dict && !visited.has(ref)) {
+ visited.put(ref);
+ if (dict.has("T")) {
+ break;
+ }
+ ref = dict.getRaw("Parent");
+ if (!(ref instanceof core_utils_Ref)) {
+ return result;
+ }
+ dict = xref.fetch(ref);
+ }
+ if (dict instanceof core_utils_Dict && dict !== firstDict) {
+ result.dict = dict;
+ result.ref = ref;
+ }
+ return result;
+}
+function deepCompare(a, b) {
+ if (a === b) {
+ return true;
+ }
+ if (a instanceof core_utils_Dict && b instanceof core_utils_Dict) {
+ if (a.size !== b.size) {
+ return false;
+ }
+ for (const [key, value1] of a.getRawEntries()) {
+ const value2 = b.getRaw(key);
+ if (value2 === undefined || !deepCompare(value1, value2)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ if (Array.isArray(a) && Array.isArray(b)) {
+ if (a.length !== b.length) {
+ return false;
+ }
+ for (let i = 0, ii = a.length; i < ii; i++) {
+ if (!deepCompare(a[i], b[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+ return false;
+}
+const ROMAN_NUMBER_MAP = (/* unused pure expression or super */ null && (["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]));
+function toRomanNumerals(number, lowerCase = false) {
+ core_utils_assert(Number.isInteger(number) && number > 0, "The number should be a positive integer.");
+ const roman = "M".repeat(number / 1000 | 0) + ROMAN_NUMBER_MAP[number % 1000 / 100 | 0] + ROMAN_NUMBER_MAP[10 + (number % 100 / 10 | 0)] + ROMAN_NUMBER_MAP[20 + number % 10];
+ return lowerCase ? roman.toLowerCase() : roman;
+}
+function isWhiteSpace(ch) {
+ return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;
+}
+function isBooleanArray(arr, len) {
+ return Array.isArray(arr) && (len === null || arr.length === len) && arr.every(x => typeof x === "boolean");
+}
+function isNumberArray(arr, len) {
+ if (Array.isArray(arr)) {
+ return (len === null || arr.length === len) && arr.every(x => typeof x === "number");
+ }
+ return ArrayBuffer.isView(arr) && !(arr instanceof BigInt64Array || arr instanceof BigUint64Array) && (len === null || arr.length === len);
+}
+function lookupMatrix(arr, fallback) {
+ return isNumberArray(arr, 6) ? arr : fallback;
+}
+function lookupRect(arr, fallback) {
+ return isNumberArray(arr, 4) ? arr : fallback;
+}
+function lookupNormalRect(arr, fallback) {
+ return isNumberArray(arr, 4) ? core_utils_Util.normalizeRect(arr) : fallback;
+}
+function parseXFAPath(path) {
+ const positionPattern = /(.+)\[(\d+)\]$/;
+ return path.split(".").map(component => {
+ const m = component.match(positionPattern);
+ if (m) {
+ return {
+ name: m[1],
+ pos: parseInt(m[2], 10)
+ };
+ }
+ return {
+ name: component,
+ pos: 0
+ };
+ });
+}
+function escapePDFName(str) {
+ const buffer = [];
+ let start = 0;
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.charCodeAt(i);
+ if (char < 0x21 || char > 0x7e || char === 0x23 || char === 0x28 || char === 0x29 || char === 0x3c || char === 0x3e || char === 0x5b || char === 0x5d || char === 0x7b || char === 0x7d || char === 0x2f || char === 0x25) {
+ if (start < i) {
+ buffer.push(str.substring(start, i));
+ }
+ buffer.push(`#${char.toString(16)}`);
+ start = i + 1;
+ }
+ }
+ if (buffer.length === 0) {
+ return str;
+ }
+ if (start < str.length) {
+ buffer.push(str.substring(start, str.length));
+ }
+ return buffer.join("");
+}
+function escapeString(str) {
+ return str.replaceAll(/([()\\\n\r])/g, match => {
+ if (match === "\n") {
+ return "\\n";
+ } else if (match === "\r") {
+ return "\\r";
+ }
+ return `\\${match}`;
+ });
+}
+function _collectJS(entry, xref, list, parents) {
+ if (!entry) {
+ return;
+ }
+ let parent = null;
+ if (entry instanceof core_utils_Ref) {
+ if (parents.has(entry)) {
+ return;
+ }
+ parent = entry;
+ parents.put(parent);
+ entry = xref.fetch(entry);
+ }
+ if (Array.isArray(entry)) {
+ for (const element of entry) {
+ _collectJS(element, xref, list, parents);
+ }
+ } else if (entry instanceof core_utils_Dict) {
+ if (core_utils_isName(entry.get("S"), "JavaScript")) {
+ const js = entry.get("JS");
+ let code;
+ if (js instanceof core_utils_BaseStream) {
+ code = js.getString();
+ } else if (typeof js === "string") {
+ code = js;
+ }
+ code &&= core_utils_stringToPDFString(code, true).replaceAll("\x00", "");
+ if (code) {
+ list.push(code.trim());
+ }
+ }
+ _collectJS(entry.getRaw("Next"), xref, list, parents);
+ }
+ if (parent) {
+ parents.remove(parent);
+ }
+}
+function collectActions(xref, dict, eventType) {
+ const actions = Object.create(null);
+ const additionalActionsDicts = getInheritableProperty({
+ dict,
+ key: "AA",
+ stopWhenFound: false
+ });
+ if (additionalActionsDicts) {
+ for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {
+ const additionalActions = additionalActionsDicts[i];
+ if (!(additionalActions instanceof core_utils_Dict)) {
+ continue;
+ }
+ for (const [key, rawActionDict] of additionalActions.getRawEntries()) {
+ const action = eventType[key];
+ if (!action) {
+ continue;
+ }
+ const parents = new core_utils_RefSet();
+ const list = [];
+ _collectJS(rawActionDict, xref, list, parents);
+ if (list.length > 0) {
+ actions[action] = list;
+ }
+ }
+ }
+ }
+ if (dict.has("A")) {
+ const actionDict = dict.get("A");
+ const parents = new core_utils_RefSet();
+ const list = [];
+ _collectJS(actionDict, xref, list, parents);
+ if (list.length > 0) {
+ actions.Action = list;
+ }
+ }
+ return core_utils_objectSize(actions) > 0 ? actions : null;
+}
+const XMLEntities = {
+ 0x3c: "<",
+ 0x3e: ">",
+ 0x26: "&",
+ 0x22: """,
+ 0x27: "'"
+};
+function* codePointIter(str) {
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.codePointAt(i);
+ if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {
+ i++;
+ }
+ yield char;
+ }
+}
+function encodeToXmlString(str) {
+ const buffer = [];
+ let start = 0;
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.codePointAt(i);
+ if (0x20 <= char && char <= 0x7e) {
+ const entity = XMLEntities[char];
+ if (entity) {
+ if (start < i) {
+ buffer.push(str.substring(start, i));
+ }
+ buffer.push(entity);
+ start = i + 1;
+ }
+ } else {
+ if (start < i) {
+ buffer.push(str.substring(start, i));
+ }
+ buffer.push(`${char.toString(16).toUpperCase()};`);
+ if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {
+ i++;
+ }
+ start = i + 1;
+ }
+ }
+ if (buffer.length === 0) {
+ return str;
+ }
+ if (start < str.length) {
+ buffer.push(str.substring(start, str.length));
+ }
+ return buffer.join("");
+}
+function validateFontName(fontFamily, mustWarn = false) {
+ const m = /^("|').*("|')$/.exec(fontFamily);
+ if (m && m[1] === m[2]) {
+ const re = new RegExp(`[^\\\\]${m[1]}`);
+ if (re.test(fontFamily.slice(1, -1))) {
+ if (mustWarn) {
+ core_utils_warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`);
+ }
+ return false;
+ }
+ } else {
+ for (const ident of fontFamily.split(/[ \t]+/)) {
+ if (/^(\d|(-(\d|-)))/.test(ident) || !/^[\w-\\]+$/.test(ident)) {
+ if (mustWarn) {
+ core_utils_warn(`FontFamily contains invalid : ${fontFamily}.`);
+ }
+ return false;
+ }
+ }
+ }
+ return true;
+}
+function validateCSSFont(cssFontInfo) {
+ const DEFAULT_CSS_FONT_OBLIQUE = "14";
+ const DEFAULT_CSS_FONT_WEIGHT = "400";
+ const CSS_FONT_WEIGHT_VALUES = new Set(["100", "200", "300", "400", "500", "600", "700", "800", "900", "1000", "normal", "bold", "bolder", "lighter"]);
+ const {
+ fontFamily,
+ fontWeight,
+ italicAngle
+ } = cssFontInfo;
+ if (!validateFontName(fontFamily, true)) {
+ return false;
+ }
+ const weight = fontWeight ? fontWeight.toString() : "";
+ cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight) ? weight : DEFAULT_CSS_FONT_WEIGHT;
+ const angle = parseFloat(italicAngle);
+ cssFontInfo.italicAngle = isNaN(angle) || angle < -90 || angle > 90 ? DEFAULT_CSS_FONT_OBLIQUE : italicAngle.toString();
+ return true;
+}
+function recoverJsURL(str) {
+ const URL_OPEN_METHODS = ["app.launchURL", "window.open", "xfa.host.gotoURL"];
+ const regex = new RegExp("^\\s*(" + URL_OPEN_METHODS.join("|").replaceAll(".", "\\.") + ")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))", "i");
+ const jsUrl = regex.exec(str);
+ if (jsUrl?.[2]) {
+ return {
+ url: jsUrl[2],
+ newWindow: jsUrl[1] === "app.launchURL" && jsUrl[3] === "true"
+ };
+ }
+ return null;
+}
+function numberToString(value) {
+ if (Number.isInteger(value)) {
+ return value.toString();
+ }
+ const roundedValue = Math.round(value * 100);
+ if (roundedValue % 100 === 0) {
+ return (roundedValue / 100).toString();
+ }
+ if (roundedValue % 10 === 0) {
+ return value.toFixed(1);
+ }
+ return value.toFixed(2);
+}
+function getNewAnnotationsMap(annotationStorage) {
+ if (!annotationStorage) {
+ return null;
+ }
+ const newAnnotationsByPage = new Map();
+ for (const [key, value] of annotationStorage) {
+ if (!key.startsWith(core_utils_AnnotationEditorPrefix)) {
+ continue;
+ }
+ newAnnotationsByPage.getOrInsertComputed(value.pageIndex, core_utils_makeArr).push(value);
+ }
+ return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;
+}
+function stringToAsciiOrUTF16BE(str) {
+ if (str === null || str === undefined) {
+ return str;
+ }
+ return isAscii(str) ? str : stringToUTF16String(str, true);
+}
+function isAscii(str) {
+ if (typeof str !== "string") {
+ return false;
+ }
+ return !str || /^[\x00-\x7F]*$/.test(str);
+}
+function stringToUTF16HexString(str) {
+ const buf = [];
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.charCodeAt(i);
+ buf.push(core_utils_Util.hexNums[char >> 8 & 0xff], core_utils_Util.hexNums[char & 0xff]);
+ }
+ return buf.join("");
+}
+function stringToUTF16String(str, bigEndian = false) {
+ const buf = [];
+ if (bigEndian) {
+ buf.push("\xFE\xFF");
+ }
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.charCodeAt(i);
+ buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));
+ }
+ return buf.join("");
+}
+function getRotationMatrix(rotation, width, height) {
+ switch (rotation) {
+ case 90:
+ return [0, 1, -1, 0, width, 0];
+ case 180:
+ return [-1, 0, 0, -1, width, height];
+ case 270:
+ return [0, -1, 1, 0, 0, height];
+ default:
+ throw new Error("Invalid rotation");
+ }
+}
+function getSizeInBytes(x) {
+ return Math.ceil(Math.ceil(Math.log2(1 + x)) / 8);
+}
+
+;// ./external/jbig2/jbig2.js
+async function JBig2(moduleArg = {}) {
+ var moduleRtn;
+ var Module = moduleArg;
+ var ENVIRONMENT_IS_WEB = true;
+ var ENVIRONMENT_IS_WORKER = false;
+ var arguments_ = [];
+ var thisProgram = "./this.program";
+ var quit_ = (status, toThrow) => {
+ throw toThrow;
+ };
+ var _scriptName = import.meta.url;
+ var scriptDirectory = "";
+ var readAsync, readBinary;
+ if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
+ try {
+ scriptDirectory = new URL(".", _scriptName).href;
+ } catch {}
+ readAsync = async url => {
+ var response = await fetch(url, {
+ credentials: "same-origin"
+ });
+ if (response.ok) {
+ return response.arrayBuffer();
+ }
+ throw new Error(response.status + " : " + response.url);
+ };
+ } else {}
+ var out = console.log.bind(console);
+ var err = console.error.bind(console);
+ var wasmBinary;
+ var ABORT = false;
+ var EXITSTATUS;
+ var readyPromiseResolve, readyPromiseReject;
+ var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
+ var HEAP64, HEAPU64;
+ var runtimeInitialized = false;
+ function updateMemoryViews() {
+ var b = wasmMemory.buffer;
+ HEAP8 = new Int8Array(b);
+ HEAP16 = new Int16Array(b);
+ HEAPU8 = new Uint8Array(b);
+ HEAPU16 = new Uint16Array(b);
+ HEAP32 = new Int32Array(b);
+ HEAPU32 = new Uint32Array(b);
+ HEAPF32 = new Float32Array(b);
+ HEAPF64 = new Float64Array(b);
+ HEAP64 = new BigInt64Array(b);
+ HEAPU64 = new BigUint64Array(b);
+ }
+ function preRun() {
+ if (Module["preRun"]) {
+ if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]];
+ while (Module["preRun"].length) {
+ addOnPreRun(Module["preRun"].shift());
+ }
+ }
+ callRuntimeCallbacks(onPreRuns);
+ }
+ function initRuntime() {
+ runtimeInitialized = true;
+ wasmExports["j"]();
+ }
+ function postRun() {
+ if (Module["postRun"]) {
+ if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]];
+ while (Module["postRun"].length) {
+ addOnPostRun(Module["postRun"].shift());
+ }
+ }
+ callRuntimeCallbacks(onPostRuns);
+ }
+ function abort(what) {
+ Module["onAbort"]?.(what);
+ what = "Aborted(" + what + ")";
+ err(what);
+ ABORT = true;
+ what += ". Build with -sASSERTIONS for more info.";
+ var e = new WebAssembly.RuntimeError(what);
+ readyPromiseReject?.(e);
+ throw e;
+ }
+ var wasmBinaryFile;
+ function getWasmImports() {
+ var imports = {
+ a: wasmImports
+ };
+ return imports;
+ }
+ async function createWasm() {
+ function receiveInstance(instance, module) {
+ wasmExports = instance.exports;
+ assignWasmExports(wasmExports);
+ updateMemoryViews();
+ return wasmExports;
+ }
+ var info = getWasmImports();
+ return new Promise((resolve, reject) => {
+ Module["instantiateWasm"](info, (inst, mod) => {
+ resolve(receiveInstance(inst, mod));
+ });
+ });
+ }
+ class ExitStatus {
+ name = "ExitStatus";
+ constructor(status) {
+ this.message = `Program terminated with exit(${status})`;
+ this.status = status;
+ }
+ }
+ var callRuntimeCallbacks = callbacks => {
+ while (callbacks.length > 0) {
+ callbacks.shift()(Module);
+ }
+ };
+ var onPostRuns = [];
+ var addOnPostRun = cb => onPostRuns.push(cb);
+ var onPreRuns = [];
+ var addOnPreRun = cb => onPreRuns.push(cb);
+ var noExitRuntime = true;
+ var __abort_js = () => abort("");
+ var runtimeKeepaliveCounter = 0;
+ var __emscripten_runtime_keepalive_clear = () => {
+ noExitRuntime = false;
+ runtimeKeepaliveCounter = 0;
+ };
+ var timers = {};
+ var handleException = e => {
+ if (e instanceof ExitStatus || e == "unwind") {
+ return EXITSTATUS;
+ }
+ quit_(1, e);
+ };
+ var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;
+ var _proc_exit = code => {
+ EXITSTATUS = code;
+ if (!keepRuntimeAlive()) {
+ Module["onExit"]?.(code);
+ ABORT = true;
+ }
+ quit_(code, new ExitStatus(code));
+ };
+ var exitJS = (status, implicit) => {
+ EXITSTATUS = status;
+ _proc_exit(status);
+ };
+ var _exit = exitJS;
+ var maybeExit = () => {
+ if (!keepRuntimeAlive()) {
+ try {
+ _exit(EXITSTATUS);
+ } catch (e) {
+ handleException(e);
+ }
+ }
+ };
+ var callUserCallback = func => {
+ if (ABORT) {
+ return;
+ }
+ try {
+ return func();
+ } catch (e) {
+ handleException(e);
+ } finally {
+ maybeExit();
+ }
+ };
+ var _emscripten_get_now = () => performance.now();
+ var __setitimer_js = (which, timeout_ms) => {
+ if (timers[which]) {
+ clearTimeout(timers[which].id);
+ delete timers[which];
+ }
+ if (!timeout_ms) return 0;
+ var id = setTimeout(() => {
+ delete timers[which];
+ callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()));
+ }, timeout_ms);
+ timers[which] = {
+ id,
+ timeout_ms
+ };
+ return 0;
+ };
+ function _createImageData(size) {
+ Module.imageData = new Uint8Array(size);
+ }
+ var getHeapMax = () => 2147483648;
+ var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
+ var growMemory = size => {
+ var oldHeapSize = wasmMemory.buffer.byteLength;
+ var pages = (size - oldHeapSize + 65535) / 65536 | 0;
+ try {
+ wasmMemory.grow(pages);
+ updateMemoryViews();
+ return 1;
+ } catch (e) {}
+ };
+ var _emscripten_resize_heap = requestedSize => {
+ var oldSize = HEAPU8.length;
+ requestedSize >>>= 0;
+ var maxHeapSize = getHeapMax();
+ if (requestedSize > maxHeapSize) {
+ return false;
+ }
+ for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
+ var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
+ overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
+ var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
+ var replacement = growMemory(newSize);
+ if (replacement) {
+ return true;
+ }
+ }
+ return false;
+ };
+ function _setImageData(array_ptr, pitch8, pitch32, height) {
+ if (pitch32 === pitch8) {
+ Module.imageData = new Uint8ClampedArray(HEAPU8.subarray(array_ptr, array_ptr + pitch32 * height));
+ return;
+ }
+ const destSize = pitch8 * height;
+ const imageData = Module.imageData = new Uint8ClampedArray(destSize);
+ for (let srcStart = array_ptr, destStart = 0; destStart < destSize; srcStart += pitch32, destStart += pitch8) {
+ imageData.set(HEAPU8.subarray(srcStart, srcStart + pitch8), destStart);
+ }
+ }
+ function _setLineData(line_ptr, pitch8, offset) {
+ Module.imageData.set(HEAPU8.subarray(line_ptr, line_ptr + pitch8), offset);
+ }
+ var writeArrayToMemory = (array, buffer) => {
+ HEAP8.set(array, buffer);
+ };
+ if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
+ if (Module["print"]) out = Module["print"];
+ if (Module["printErr"]) err = Module["printErr"];
+ if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
+ if (Module["arguments"]) arguments_ = Module["arguments"];
+ if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
+ if (Module["preInit"]) {
+ if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
+ while (Module["preInit"].length > 0) {
+ Module["preInit"].shift()();
+ }
+ }
+ Module["writeArrayToMemory"] = writeArrayToMemory;
+ var _malloc, _free, _jbig2_decode, _ccitt_decode, __emscripten_timeout, memory, __indirect_function_table, wasmMemory;
+ function assignWasmExports(wasmExports) {
+ _malloc = Module["_malloc"] = wasmExports["k"];
+ _free = Module["_free"] = wasmExports["l"];
+ _jbig2_decode = Module["_jbig2_decode"] = wasmExports["m"];
+ _ccitt_decode = Module["_ccitt_decode"] = wasmExports["n"];
+ __emscripten_timeout = wasmExports["o"];
+ memory = wasmMemory = wasmExports["i"];
+ __indirect_function_table = wasmExports["__indirect_function_table"];
+ }
+ var wasmImports = {
+ e: __abort_js,
+ b: __emscripten_runtime_keepalive_clear,
+ c: __setitimer_js,
+ g: _createImageData,
+ d: _emscripten_resize_heap,
+ a: _proc_exit,
+ h: _setImageData,
+ f: _setLineData
+ };
+ function run() {
+ preRun();
+ function doRun() {
+ Module["calledRun"] = true;
+ if (ABORT) return;
+ initRuntime();
+ readyPromiseResolve?.(Module);
+ Module["onRuntimeInitialized"]?.();
+ postRun();
+ }
+ if (Module["setStatus"]) {
+ Module["setStatus"]("Running...");
+ setTimeout(() => {
+ setTimeout(() => Module["setStatus"](""), 1);
+ doRun();
+ }, 1);
+ } else {
+ doRun();
+ }
+ }
+ var wasmExports;
+ wasmExports = await createWasm();
+ run();
+ if (runtimeInitialized) {
+ moduleRtn = Module;
+ } else {
+ moduleRtn = new Promise((resolve, reject) => {
+ readyPromiseResolve = resolve;
+ readyPromiseReject = reject;
+ });
+ }
+ return moduleRtn;
+}
+/* harmony default export */ const jbig2 = (JBig2);
+;// ./src/core/jbig2_ccittFax.js
+
+
+
+class Jbig2Error extends BaseException {
+ constructor(msg) {
+ super(msg, "Jbig2Error");
+ }
+}
+class JBig2CCITTFaxImage {
+ static #buffer = null;
+ static #handler = null;
+ static #modulePromise = null;
+ static #useWasm = true;
+ static #useWorkerFetch = true;
+ static #wasmUrl = null;
+ static setOptions({
+ handler,
+ useWasm,
+ useWorkerFetch,
+ wasmUrl
+ }) {
+ this.#useWasm = useWasm;
+ this.#useWorkerFetch = useWorkerFetch;
+ this.#wasmUrl = wasmUrl;
+ if (!useWorkerFetch) {
+ this.#handler = handler;
+ }
+ }
+ static async #getJsModule(fallbackCallback) {
+ const path = `${this.#wasmUrl}jbig2_nowasm_fallback.js`;
+ let instance = null;
+ try {
+ const mod = await import(
+ /*webpackIgnore: true*/
+ /*@vite-ignore*/
+ path);
+ instance = mod.default();
+ } catch (e) {
+ warn(`JBig2CCITTFaxImage#getJsModule: ${e}`);
+ }
+ fallbackCallback(instance);
+ }
+ static async #instantiateWasm(fallbackCallback, imports, successCallback) {
+ const filename = "jbig2.wasm";
+ try {
+ if (!this.#buffer) {
+ if (this.#useWorkerFetch) {
+ this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);
+ } else {
+ this.#buffer = await this.#handler.sendWithPromise("FetchBinaryData", {
+ kind: "wasmUrl",
+ filename
+ });
+ }
+ }
+ const results = await WebAssembly.instantiate(this.#buffer, imports);
+ return successCallback(results.instance);
+ } catch (reason) {
+ warn(`JBig2CCITTFaxImage#instantiateWasm: ${reason}`);
+ this.#getJsModule(fallbackCallback);
+ return null;
+ } finally {
+ this.#handler = null;
+ }
+ }
+ static async decode(bytes, width, height, globals, CCITTOptions) {
+ if (!this.#modulePromise) {
+ const {
+ promise,
+ resolve
+ } = Promise.withResolvers();
+ const promises = [promise];
+ if (!this.#useWasm) {
+ this.#getJsModule(resolve);
+ } else {
+ promises.push(jbig2({
+ warn: warn,
+ instantiateWasm: this.#instantiateWasm.bind(this, resolve)
+ }));
+ }
+ this.#modulePromise = Promise.race(promises);
+ }
+ const module = await this.#modulePromise;
+ if (!module) {
+ throw new Jbig2Error("JBig2 failed to initialize");
+ }
+ let ptr, globalsPtr;
+ try {
+ const size = bytes.length;
+ ptr = module._malloc(size);
+ module.writeArrayToMemory(bytes, ptr);
+ if (CCITTOptions) {
+ module._ccitt_decode(ptr, size, width, height, CCITTOptions.K, CCITTOptions.EndOfLine ? 1 : 0, CCITTOptions.EncodedByteAlign ? 1 : 0, CCITTOptions.BlackIs1 ? 1 : 0, CCITTOptions.Columns, CCITTOptions.Rows);
+ } else {
+ const globalsSize = globals ? globals.length : 0;
+ if (globalsSize > 0) {
+ globalsPtr = module._malloc(globalsSize);
+ module.writeArrayToMemory(globals, globalsPtr);
+ }
+ module._jbig2_decode(ptr, size, width, height, globalsPtr, globalsSize);
+ }
+ if (!module.imageData) {
+ throw new Jbig2Error("Unknown error");
+ }
+ const {
+ imageData
+ } = module;
+ module.imageData = null;
+ return imageData;
+ } finally {
+ if (ptr) {
+ module._free(ptr);
+ }
+ if (globalsPtr) {
+ module._free(globalsPtr);
+ }
+ }
+ }
+ static cleanup() {
+ this.#modulePromise = null;
+ }
+}
+
+;// ./src/shared/math_clamp.js
+function MathClamp(v, min, max) {
+ return Math.min(Math.max(v, min), max);
+}
+
+;// ./src/core/colorspace.js
+
+
+
+function resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {
+ const COMPONENTS = 3;
+ alpha01 = alpha01 !== 1 ? 0 : alpha01;
+ const xRatio = w1 / w2;
+ const yRatio = h1 / h2;
+ let newIndex = 0,
+ oldIndex;
+ const xScaled = new Uint16Array(w2);
+ const w1Scanline = w1 * COMPONENTS;
+ for (let i = 0; i < w2; i++) {
+ xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;
+ }
+ for (let i = 0; i < h2; i++) {
+ const py = Math.floor(i * yRatio) * w1Scanline;
+ for (let j = 0; j < w2; j++) {
+ oldIndex = py + xScaled[j];
+ dest[newIndex++] = src[oldIndex++];
+ dest[newIndex++] = src[oldIndex++];
+ dest[newIndex++] = src[oldIndex++];
+ newIndex += alpha01;
+ }
+ }
+}
+function resizeRgbaImage(src, dest, w1, h1, w2, h2, alpha01) {
+ const xRatio = w1 / w2;
+ const yRatio = h1 / h2;
+ let newIndex = 0;
+ const xScaled = new Uint16Array(w2);
+ if (alpha01 === 1) {
+ for (let i = 0; i < w2; i++) {
+ xScaled[i] = Math.floor(i * xRatio);
+ }
+ const src32 = new Uint32Array(src.buffer);
+ const dest32 = new Uint32Array(dest.buffer);
+ const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;
+ for (let i = 0; i < h2; i++) {
+ const buf = src32.subarray(Math.floor(i * yRatio) * w1);
+ for (let j = 0; j < w2; j++) {
+ dest32[newIndex++] |= buf[xScaled[j]] & rgbMask;
+ }
+ }
+ } else {
+ const COMPONENTS = 4;
+ const w1Scanline = w1 * COMPONENTS;
+ for (let i = 0; i < w2; i++) {
+ xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;
+ }
+ for (let i = 0; i < h2; i++) {
+ const buf = src.subarray(Math.floor(i * yRatio) * w1Scanline);
+ for (let j = 0; j < w2; j++) {
+ const oldIndex = xScaled[j];
+ dest[newIndex++] = buf[oldIndex];
+ dest[newIndex++] = buf[oldIndex + 1];
+ dest[newIndex++] = buf[oldIndex + 2];
+ }
+ }
+ }
+}
+function copyRgbaImage(src, dest, alpha01) {
+ if (alpha01 === 1) {
+ const src32 = new Uint32Array(src.buffer);
+ const dest32 = new Uint32Array(dest.buffer);
+ const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;
+ for (let i = 0, ii = src32.length; i < ii; i++) {
+ dest32[i] |= src32[i] & rgbMask;
+ }
+ } else {
+ let j = 0;
+ for (let i = 0, ii = src.length; i < ii; i += 4) {
+ dest[j++] = src[i];
+ dest[j++] = src[i + 1];
+ dest[j++] = src[i + 2];
+ }
+ }
+}
+function isDefaultDecodeHelper(decode, expectedLen) {
+ if (!Array.isArray(decode)) {
+ return true;
+ }
+ const decodeLen = decode.length;
+ if (decodeLen < expectedLen) {
+ warn("Decode map length is too short.");
+ return true;
+ }
+ if (decodeLen > expectedLen) {
+ info("Truncating too long decode map.");
+ decode.length = expectedLen;
+ }
+ return false;
+}
+class ColorSpace {
+ static #rgbBuf = new Uint8ClampedArray(3);
+ constructor(name, numComps) {
+ this.name = name;
+ this.numComps = numComps;
+ }
+ getRgb(src, srcOffset, output = new Uint8ClampedArray(3)) {
+ this.getRgbItem(src, srcOffset, output, 0);
+ return output;
+ }
+ getRgbHex(src, srcOffset) {
+ const buffer = this.getRgb(src, srcOffset, ColorSpace.#rgbBuf);
+ return Util.makeHexColor(buffer[0], buffer[1], buffer[2]);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ unreachable("Should not call ColorSpace.getRgbItem");
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ unreachable("Should not call ColorSpace.getRgbBuffer");
+ }
+ getOutputLength(inputLength, alpha01) {
+ unreachable("Should not call ColorSpace.getOutputLength");
+ }
+ isPassthrough(bits) {
+ return false;
+ }
+ isDefaultDecode(decode, bpc) {
+ return ColorSpace.isDefaultDecode(decode, this.numComps);
+ }
+ fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {
+ const count = originalWidth * originalHeight;
+ let rgbBuf = null;
+ const numComponentColors = 1 << bpc;
+ const needsResizing = originalHeight !== height || originalWidth !== width;
+ if (this.isPassthrough(bpc)) {
+ rgbBuf = comps;
+ } else if (this.numComps === 1 && count > numComponentColors && this.name !== "DeviceGray" && this.name !== "DeviceRGB") {
+ const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);
+ for (let i = 0; i < numComponentColors; i++) {
+ allColors[i] = i;
+ }
+ const colorMap = new Uint8ClampedArray(numComponentColors * 3);
+ this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);
+ if (!needsResizing) {
+ let destPos = 0;
+ for (let i = 0; i < count; ++i) {
+ const key = comps[i] * 3;
+ dest[destPos++] = colorMap[key];
+ dest[destPos++] = colorMap[key + 1];
+ dest[destPos++] = colorMap[key + 2];
+ destPos += alpha01;
+ }
+ } else {
+ rgbBuf = new Uint8Array(count * 3);
+ let rgbPos = 0;
+ for (let i = 0; i < count; ++i) {
+ const key = comps[i] * 3;
+ rgbBuf[rgbPos++] = colorMap[key];
+ rgbBuf[rgbPos++] = colorMap[key + 1];
+ rgbBuf[rgbPos++] = colorMap[key + 2];
+ }
+ }
+ } else if (!needsResizing) {
+ this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);
+ } else {
+ rgbBuf = new Uint8ClampedArray(count * 3);
+ this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);
+ }
+ if (rgbBuf) {
+ if (needsResizing) {
+ resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);
+ } else {
+ let destPos = 0,
+ rgbPos = 0;
+ for (let i = 0, ii = width * actualHeight; i < ii; i++) {
+ dest[destPos++] = rgbBuf[rgbPos++];
+ dest[destPos++] = rgbBuf[rgbPos++];
+ dest[destPos++] = rgbBuf[rgbPos++];
+ destPos += alpha01;
+ }
+ }
+ }
+ }
+ get usesZeroToOneRange() {
+ return shadow(this, "usesZeroToOneRange", true);
+ }
+ static isDefaultDecode(decode, numComps) {
+ if (isDefaultDecodeHelper(decode, numComps * 2)) {
+ return true;
+ }
+ for (let i = 0, ii = decode.length; i < ii; i += 2) {
+ if (decode[i] !== 0 || decode[i + 1] !== 1) {
+ return false;
+ }
+ }
+ return true;
+ }
+}
+class AlternateCS extends ColorSpace {
+ constructor(numComps, base, tintFn) {
+ super("Alternate", numComps);
+ this.base = base;
+ this.tintFn = tintFn;
+ this.tmpBuf = new Float32Array(base.numComps);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ const tmpBuf = this.tmpBuf;
+ this.tintFn(src, srcOffset, tmpBuf, 0);
+ this.base.getRgbItem(tmpBuf, 0, dest, destOffset);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const tintFn = this.tintFn;
+ const base = this.base;
+ const scale = 1 / ((1 << bits) - 1);
+ const baseNumComps = base.numComps;
+ const usesZeroToOneRange = base.usesZeroToOneRange;
+ const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;
+ let pos = isPassthrough ? destOffset : 0;
+ const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);
+ const numComps = this.numComps;
+ const scaled = new Float32Array(numComps);
+ const tinted = new Float32Array(baseNumComps);
+ let i, j;
+ for (i = 0; i < count; i++) {
+ for (j = 0; j < numComps; j++) {
+ scaled[j] = src[srcOffset++] * scale;
+ }
+ tintFn(scaled, 0, tinted, 0);
+ if (usesZeroToOneRange) {
+ for (j = 0; j < baseNumComps; j++) {
+ baseBuf[pos++] = tinted[j] * 255;
+ }
+ } else {
+ base.getRgbItem(tinted, 0, baseBuf, pos);
+ pos += baseNumComps;
+ }
+ }
+ if (!isPassthrough) {
+ base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);
+ }
+}
+class PatternCS extends ColorSpace {
+ constructor(baseCS) {
+ super("Pattern", null);
+ this.base = baseCS;
+ }
+ isDefaultDecode(decode, bpc) {
+ unreachable("Should not call PatternCS.isDefaultDecode");
+ }
+}
+class IndexedCS extends ColorSpace {
+ constructor(base, highVal, lookup) {
+ super("Indexed", 1);
+ this.base = base;
+ this.highVal = highVal;
+ const length = base.numComps * (highVal + 1);
+ this.lookup = new Uint8Array(length);
+ if (lookup instanceof BaseStream) {
+ const bytes = lookup.getBytes(length);
+ this.lookup.set(bytes);
+ } else if (typeof lookup === "string") {
+ for (let i = 0; i < length; ++i) {
+ this.lookup[i] = lookup.charCodeAt(i) & 0xff;
+ }
+ } else {
+ throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);
+ }
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ const {
+ base,
+ highVal,
+ lookup
+ } = this;
+ const start = MathClamp(Math.round(src[srcOffset]), 0, highVal) * base.numComps;
+ base.getRgbBuffer(lookup, start, 1, dest, destOffset, 8, 0);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const {
+ base,
+ highVal,
+ lookup
+ } = this;
+ const {
+ numComps
+ } = base;
+ const outputDelta = base.getOutputLength(numComps, alpha01);
+ for (let i = 0; i < count; ++i) {
+ const lookupPos = MathClamp(Math.round(src[srcOffset++]), 0, highVal) * numComps;
+ base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);
+ destOffset += outputDelta;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);
+ }
+ isDefaultDecode(decode, bpc) {
+ if (isDefaultDecodeHelper(decode, 2)) {
+ return true;
+ }
+ if (!Number.isInteger(bpc) || bpc < 1) {
+ warn("Bits per component is not correct");
+ return true;
+ }
+ return decode[0] === 0 && decode[1] === (1 << bpc) - 1;
+ }
+}
+class DeviceGrayCS extends ColorSpace {
+ constructor() {
+ super("DeviceGray", 1);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ const c = src[srcOffset] * 255;
+ dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const scale = 255 / ((1 << bits) - 1);
+ let j = srcOffset,
+ q = destOffset;
+ for (let i = 0; i < count; ++i) {
+ const c = scale * src[j++];
+ dest[q++] = c;
+ dest[q++] = c;
+ dest[q++] = c;
+ q += alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01);
+ }
+}
+class DeviceRgbCS extends ColorSpace {
+ constructor() {
+ super("DeviceRGB", 3);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ dest[destOffset] = src[srcOffset] * 255;
+ dest[destOffset + 1] = src[srcOffset + 1] * 255;
+ dest[destOffset + 2] = src[srcOffset + 2] * 255;
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ if (bits === 8 && alpha01 === 0) {
+ dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);
+ return;
+ }
+ const scale = 255 / ((1 << bits) - 1);
+ let j = srcOffset,
+ q = destOffset;
+ for (let i = 0; i < count; ++i) {
+ dest[q++] = scale * src[j++];
+ dest[q++] = scale * src[j++];
+ dest[q++] = scale * src[j++];
+ q += alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01) / 3 | 0;
+ }
+ isPassthrough(bits) {
+ return bits === 8;
+ }
+}
+class DeviceRgbaCS extends ColorSpace {
+ constructor() {
+ super("DeviceRGBA", 4);
+ }
+ getOutputLength(inputLength, _alpha01) {
+ return inputLength * 4;
+ }
+ isPassthrough(bits) {
+ return bits === 8;
+ }
+ fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {
+ if (originalHeight !== height || originalWidth !== width) {
+ resizeRgbaImage(comps, dest, originalWidth, originalHeight, width, height, alpha01);
+ } else {
+ copyRgbaImage(comps, dest, alpha01);
+ }
+ }
+}
+class DeviceCmykCS extends ColorSpace {
+ constructor() {
+ super("DeviceCMYK", 4);
+ }
+ #toRgb(src, srcOffset, srcScale, dest, destOffset) {
+ const c = src[srcOffset] * srcScale;
+ const m = src[srcOffset + 1] * srcScale;
+ const y = src[srcOffset + 2] * srcScale;
+ const k = src[srcOffset + 3] * srcScale;
+ dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747);
+ dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578);
+ dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ this.#toRgb(src, srcOffset, 1, dest, destOffset);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const scale = 1 / ((1 << bits) - 1);
+ for (let i = 0; i < count; i++) {
+ this.#toRgb(src, srcOffset, scale, dest, destOffset);
+ srcOffset += 4;
+ destOffset += 3 + alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength / 4 * (3 + alpha01) | 0;
+ }
+}
+class CalGrayCS extends ColorSpace {
+ constructor(whitePoint, blackPoint, gamma) {
+ super("CalGray", 1);
+ if (!whitePoint) {
+ throw new FormatError("WhitePoint missing - required for color space CalGray");
+ }
+ [this.XW, this.YW, this.ZW] = whitePoint;
+ [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];
+ this.G = gamma || 1;
+ if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {
+ throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);
+ }
+ if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
+ info(`Invalid BlackPoint for ${this.name}, falling back to default.`);
+ this.XB = this.YB = this.ZB = 0;
+ }
+ if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {
+ warn(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`);
+ }
+ if (this.G < 1) {
+ info(`Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`);
+ this.G = 1;
+ }
+ }
+ #toRgb(src, srcOffset, dest, destOffset, scale) {
+ const A = src[srcOffset] * scale;
+ const AG = A ** this.G;
+ const L = this.YW * AG;
+ const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);
+ dest[destOffset] = val;
+ dest[destOffset + 1] = val;
+ dest[destOffset + 2] = val;
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ this.#toRgb(src, srcOffset, dest, destOffset, 1);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const scale = 1 / ((1 << bits) - 1);
+ for (let i = 0; i < count; ++i) {
+ this.#toRgb(src, srcOffset, dest, destOffset, scale);
+ srcOffset += 1;
+ destOffset += 3 + alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01);
+ }
+}
+class CalRGBCS extends ColorSpace {
+ static #BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);
+ static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);
+ static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);
+ static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);
+ static #tempNormalizeMatrix = new Float32Array(3);
+ static #tempConvertMatrix1 = new Float32Array(3);
+ static #tempConvertMatrix2 = new Float32Array(3);
+ static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;
+ constructor(whitePoint, blackPoint, gamma, matrix) {
+ super("CalRGB", 3);
+ if (!whitePoint) {
+ throw new FormatError("WhitePoint missing - required for color space CalRGB");
+ }
+ const [XW, YW, ZW] = this.whitePoint = whitePoint;
+ const [XB, YB, ZB] = this.blackPoint = blackPoint || new Float32Array(3);
+ [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]);
+ [this.MXA, this.MYA, this.MZA, this.MXB, this.MYB, this.MZB, this.MXC, this.MYC, this.MZC] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
+ if (XW < 0 || ZW < 0 || YW !== 1) {
+ throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);
+ }
+ if (XB < 0 || YB < 0 || ZB < 0) {
+ info(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + "falling back to default.");
+ this.blackPoint = new Float32Array(3);
+ }
+ if (this.GR < 0 || this.GG < 0 || this.GB < 0) {
+ info(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`);
+ this.GR = this.GG = this.GB = 1;
+ }
+ }
+ #matrixProduct(a, b, result) {
+ result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
+ result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];
+ result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];
+ }
+ #toFlat(sourceWhitePoint, LMS, result) {
+ result[0] = LMS[0] * 1 / sourceWhitePoint[0];
+ result[1] = LMS[1] * 1 / sourceWhitePoint[1];
+ result[2] = LMS[2] * 1 / sourceWhitePoint[2];
+ }
+ #toD65(sourceWhitePoint, LMS, result) {
+ const D65X = 0.95047;
+ const D65Y = 1;
+ const D65Z = 1.08883;
+ result[0] = LMS[0] * D65X / sourceWhitePoint[0];
+ result[1] = LMS[1] * D65Y / sourceWhitePoint[1];
+ result[2] = LMS[2] * D65Z / sourceWhitePoint[2];
+ }
+ #sRGBTransferFunction(color) {
+ if (color <= 0.0031308) {
+ return MathClamp(12.92 * color, 0, 1);
+ }
+ if (color >= 0.99554525) {
+ return 1;
+ }
+ return MathClamp((1 + 0.055) * color ** (1 / 2.4) - 0.055, 0, 1);
+ }
+ #decodeL(L) {
+ if (L < 0) {
+ return -this.#decodeL(-L);
+ }
+ if (L > 8.0) {
+ return ((L + 16) / 116) ** 3;
+ }
+ return L * CalRGBCS.#DECODE_L_CONSTANT;
+ }
+ #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {
+ if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {
+ result[0] = XYZ_Flat[0];
+ result[1] = XYZ_Flat[1];
+ result[2] = XYZ_Flat[2];
+ return;
+ }
+ const zeroDecodeL = this.#decodeL(0);
+ const X_DST = zeroDecodeL;
+ const X_SRC = this.#decodeL(sourceBlackPoint[0]);
+ const Y_DST = zeroDecodeL;
+ const Y_SRC = this.#decodeL(sourceBlackPoint[1]);
+ const Z_DST = zeroDecodeL;
+ const Z_SRC = this.#decodeL(sourceBlackPoint[2]);
+ const X_Scale = (1 - X_DST) / (1 - X_SRC);
+ const X_Offset = 1 - X_Scale;
+ const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);
+ const Y_Offset = 1 - Y_Scale;
+ const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);
+ const Z_Offset = 1 - Z_Scale;
+ result[0] = XYZ_Flat[0] * X_Scale + X_Offset;
+ result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;
+ result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;
+ }
+ #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {
+ if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {
+ result[0] = XYZ_In[0];
+ result[1] = XYZ_In[1];
+ result[2] = XYZ_In[2];
+ return;
+ }
+ const LMS = result;
+ this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);
+ const LMS_Flat = CalRGBCS.#tempNormalizeMatrix;
+ this.#toFlat(sourceWhitePoint, LMS, LMS_Flat);
+ this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);
+ }
+ #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {
+ const LMS = result;
+ this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);
+ const LMS_D65 = CalRGBCS.#tempNormalizeMatrix;
+ this.#toD65(sourceWhitePoint, LMS, LMS_D65);
+ this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);
+ }
+ #toRgb(src, srcOffset, dest, destOffset, scale) {
+ const A = MathClamp(src[srcOffset] * scale, 0, 1);
+ const B = MathClamp(src[srcOffset + 1] * scale, 0, 1);
+ const C = MathClamp(src[srcOffset + 2] * scale, 0, 1);
+ const AGR = A === 1 ? 1 : A ** this.GR;
+ const BGG = B === 1 ? 1 : B ** this.GG;
+ const CGB = C === 1 ? 1 : C ** this.GB;
+ const X = this.MXA * AGR + this.MXB * BGG + this.MXC * CGB;
+ const Y = this.MYA * AGR + this.MYB * BGG + this.MYC * CGB;
+ const Z = this.MZA * AGR + this.MZB * BGG + this.MZC * CGB;
+ const XYZ = CalRGBCS.#tempConvertMatrix1;
+ XYZ[0] = X;
+ XYZ[1] = Y;
+ XYZ[2] = Z;
+ const XYZ_Flat = CalRGBCS.#tempConvertMatrix2;
+ this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat);
+ const XYZ_Black = CalRGBCS.#tempConvertMatrix1;
+ this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black);
+ const XYZ_D65 = CalRGBCS.#tempConvertMatrix2;
+ this.#normalizeWhitePointToD65(CalRGBCS.#FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);
+ const SRGB = CalRGBCS.#tempConvertMatrix1;
+ this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);
+ dest[destOffset] = this.#sRGBTransferFunction(SRGB[0]) * 255;
+ dest[destOffset + 1] = this.#sRGBTransferFunction(SRGB[1]) * 255;
+ dest[destOffset + 2] = this.#sRGBTransferFunction(SRGB[2]) * 255;
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ this.#toRgb(src, srcOffset, dest, destOffset, 1);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const scale = 1 / ((1 << bits) - 1);
+ for (let i = 0; i < count; ++i) {
+ this.#toRgb(src, srcOffset, dest, destOffset, scale);
+ srcOffset += 3;
+ destOffset += 3 + alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01) / 3 | 0;
+ }
+}
+class LabCS extends ColorSpace {
+ constructor(whitePoint, blackPoint, range) {
+ super("Lab", 3);
+ if (!whitePoint) {
+ throw new FormatError("WhitePoint missing - required for color space Lab");
+ }
+ [this.XW, this.YW, this.ZW] = whitePoint;
+ [this.amin, this.amax, this.bmin, this.bmax] = range || [-100, 100, -100, 100];
+ [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];
+ if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {
+ throw new FormatError("Invalid WhitePoint components, no fallback available");
+ }
+ if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
+ info("Invalid BlackPoint, falling back to default");
+ this.XB = this.YB = this.ZB = 0;
+ }
+ if (this.amin > this.amax || this.bmin > this.bmax) {
+ info("Invalid Range, falling back to defaults");
+ this.amin = -100;
+ this.amax = 100;
+ this.bmin = -100;
+ this.bmax = 100;
+ }
+ }
+ #fn_g(x) {
+ return x >= 6 / 29 ? x ** 3 : 108 / 841 * (x - 4 / 29);
+ }
+ #decode(value, high1, low2, high2) {
+ return low2 + value * (high2 - low2) / high1;
+ }
+ #toRgb(src, srcOffset, maxVal, dest, destOffset) {
+ let Ls = src[srcOffset];
+ let as = src[srcOffset + 1];
+ let bs = src[srcOffset + 2];
+ if (maxVal !== false) {
+ Ls = this.#decode(Ls, maxVal, 0, 100);
+ as = this.#decode(as, maxVal, this.amin, this.amax);
+ bs = this.#decode(bs, maxVal, this.bmin, this.bmax);
+ }
+ if (as > this.amax) {
+ as = this.amax;
+ } else if (as < this.amin) {
+ as = this.amin;
+ }
+ if (bs > this.bmax) {
+ bs = this.bmax;
+ } else if (bs < this.bmin) {
+ bs = this.bmin;
+ }
+ const M = (Ls + 16) / 116;
+ const L = M + as / 500;
+ const N = M - bs / 200;
+ const X = this.XW * this.#fn_g(L);
+ const Y = this.YW * this.#fn_g(M);
+ const Z = this.ZW * this.#fn_g(N);
+ let r, g, b;
+ if (this.ZW < 1) {
+ r = X * 3.1339 + Y * -1.617 + Z * -0.4906;
+ g = X * -0.9785 + Y * 1.916 + Z * 0.0333;
+ b = X * 0.072 + Y * -0.229 + Z * 1.4057;
+ } else {
+ r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;
+ g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;
+ b = X * 0.0557 + Y * -0.204 + Z * 1.057;
+ }
+ dest[destOffset] = Math.sqrt(r) * 255;
+ dest[destOffset + 1] = Math.sqrt(g) * 255;
+ dest[destOffset + 2] = Math.sqrt(b) * 255;
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ this.#toRgb(src, srcOffset, false, dest, destOffset);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const maxVal = (1 << bits) - 1;
+ for (let i = 0; i < count; i++) {
+ this.#toRgb(src, srcOffset, maxVal, dest, destOffset);
+ srcOffset += 3;
+ destOffset += 3 + alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01) / 3 | 0;
+ }
+ isDefaultDecode(decode, bpc) {
+ return true;
+ }
+ get usesZeroToOneRange() {
+ return shadow(this, "usesZeroToOneRange", false);
+ }
+}
+
+;// ./external/qcms/qcms_utils.js
+class QCMS {
+ static #memoryArray = null;
+ static _memory = null;
+ static _mustAddAlpha = false;
+ static _destBuffer = null;
+ static _destOffset = 0;
+ static _destLength = 0;
+ static _cssColor = "";
+ static _makeHexColor = null;
+ static get _memoryArray() {
+ const array = this.#memoryArray;
+ if (array?.byteLength) {
+ return array;
+ }
+ return this.#memoryArray = new Uint8Array(this._memory.buffer);
+ }
+}
+function copy_result(ptr, len) {
+ const {
+ _mustAddAlpha,
+ _destBuffer,
+ _destOffset,
+ _destLength,
+ _memoryArray
+ } = QCMS;
+ if (len === _destLength) {
+ _destBuffer.set(_memoryArray.subarray(ptr, ptr + len), _destOffset);
+ return;
+ }
+ if (_mustAddAlpha) {
+ for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {
+ _destBuffer[j] = _memoryArray[i];
+ _destBuffer[j + 1] = _memoryArray[i + 1];
+ _destBuffer[j + 2] = _memoryArray[i + 2];
+ _destBuffer[j + 3] = 255;
+ }
+ } else {
+ for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {
+ _destBuffer[j] = _memoryArray[i];
+ _destBuffer[j + 1] = _memoryArray[i + 1];
+ _destBuffer[j + 2] = _memoryArray[i + 2];
+ }
+ }
+}
+function copy_rgb(ptr) {
+ const {
+ _destBuffer,
+ _destOffset,
+ _memoryArray
+ } = QCMS;
+ _destBuffer[_destOffset] = _memoryArray[ptr];
+ _destBuffer[_destOffset + 1] = _memoryArray[ptr + 1];
+ _destBuffer[_destOffset + 2] = _memoryArray[ptr + 2];
+}
+function make_cssRGB(ptr) {
+ const {
+ _memoryArray
+ } = QCMS;
+ QCMS._cssColor = QCMS._makeHexColor(_memoryArray[ptr], _memoryArray[ptr + 1], _memoryArray[ptr + 2]);
+}
+
+;// ./external/qcms/qcms.js
+
+const DataType = Object.freeze({
+ RGB8: 0,
+ "0": "RGB8",
+ RGBA8: 1,
+ "1": "RGBA8",
+ BGRA8: 2,
+ "2": "BGRA8",
+ Gray8: 3,
+ "3": "Gray8",
+ GrayA8: 4,
+ "4": "GrayA8",
+ CMYK: 5,
+ "5": "CMYK"
+});
+const Intent = Object.freeze({
+ Perceptual: 0,
+ "0": "Perceptual",
+ RelativeColorimetric: 1,
+ "1": "RelativeColorimetric",
+ Saturation: 2,
+ "2": "Saturation",
+ AbsoluteColorimetric: 3,
+ "3": "AbsoluteColorimetric"
+});
+function qcms_convert_array(transformer, src) {
+ const ptr0 = passArray8ToWasm0(src, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ wasm.qcms_convert_array(transformer, ptr0, len0);
+}
+function qcms_convert_four(transformer, src1, src2, src3, src4, css) {
+ wasm.qcms_convert_four(transformer, src1, src2, src3, src4, css);
+}
+function qcms_convert_one(transformer, src, css) {
+ wasm.qcms_convert_one(transformer, src, css);
+}
+function qcms_convert_three(transformer, src1, src2, src3, css) {
+ wasm.qcms_convert_three(transformer, src1, src2, src3, css);
+}
+function qcms_drop_transformer(transformer) {
+ wasm.qcms_drop_transformer(transformer);
+}
+function qcms_transformer_from_memory(mem, in_type, intent) {
+ const ptr0 = passArray8ToWasm0(mem, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ret = wasm.qcms_transformer_from_memory(ptr0, len0, in_type, intent);
+ return ret >>> 0;
+}
+function __wbg_get_imports() {
+ const import0 = {
+ __proto__: null,
+ __wbg___wbindgen_throw_6b64449b9b9ed33c: function (arg0, arg1) {
+ throw new Error(getStringFromWasm0(arg0, arg1));
+ },
+ __wbg_copy_result_0d15f3bf9d9012ae: function (arg0, arg1) {
+ copy_result(arg0 >>> 0, arg1 >>> 0);
+ },
+ __wbg_copy_rgb_0106d9d9464fce43: function (arg0) {
+ copy_rgb(arg0 >>> 0);
+ },
+ __wbg_make_cssRGB_8e24b34f71f5363e: function (arg0) {
+ make_cssRGB(arg0 >>> 0);
+ },
+ __wbindgen_init_externref_table: function () {
+ const table = wasm.__wbindgen_externrefs;
+ const offset = table.grow(4);
+ table.set(0, undefined);
+ table.set(offset + 0, undefined);
+ table.set(offset + 1, null);
+ table.set(offset + 2, true);
+ table.set(offset + 3, false);
+ }
+ };
+ return {
+ __proto__: null,
+ "./qcms_bg.js": import0
+ };
+}
+function getStringFromWasm0(ptr, len) {
+ ptr = ptr >>> 0;
+ return decodeText(ptr, len);
+}
+let cachedUint8ArrayMemory0 = null;
+function getUint8ArrayMemory0() {
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
+ }
+ return cachedUint8ArrayMemory0;
+}
+function passArray8ToWasm0(arg, malloc) {
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
+ getUint8ArrayMemory0().set(arg, ptr / 1);
+ WASM_VECTOR_LEN = arg.length;
+ return ptr;
+}
+let cachedTextDecoder = new TextDecoder('utf-8', {
+ ignoreBOM: true,
+ fatal: true
+});
+cachedTextDecoder.decode();
+const MAX_SAFARI_DECODE_BYTES = 2146435072;
+let numBytesDecoded = 0;
+function decodeText(ptr, len) {
+ numBytesDecoded += len;
+ if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
+ cachedTextDecoder = new TextDecoder('utf-8', {
+ ignoreBOM: true,
+ fatal: true
+ });
+ cachedTextDecoder.decode();
+ numBytesDecoded = len;
+ }
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
+}
+let WASM_VECTOR_LEN = 0;
+let wasmModule, wasm;
+function __wbg_finalize_init(instance, module) {
+ wasm = instance.exports;
+ wasmModule = module;
+ cachedUint8ArrayMemory0 = null;
+ wasm.__wbindgen_start();
+ return wasm;
+}
+async function __wbg_load(module, imports) {
+ if (typeof Response === 'function' && module instanceof Response) {
+ if (typeof WebAssembly.instantiateStreaming === 'function') {
+ try {
+ return await WebAssembly.instantiateStreaming(module, imports);
+ } catch (e) {
+ const validResponse = module.ok && expectedResponseType(module.type);
+ if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {
+ console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
+ } else {
+ throw e;
+ }
+ }
+ }
+ const bytes = await module.arrayBuffer();
+ return await WebAssembly.instantiate(bytes, imports);
+ } else {
+ const instance = await WebAssembly.instantiate(module, imports);
+ if (instance instanceof WebAssembly.Instance) {
+ return {
+ instance,
+ module
+ };
+ } else {
+ return instance;
+ }
+ }
+ function expectedResponseType(type) {
+ switch (type) {
+ case 'basic':
+ case 'cors':
+ case 'default':
+ return true;
+ }
+ return false;
+ }
+}
+function initSync(module) {
+ if (wasm !== undefined) return wasm;
+ if (module !== undefined) {
+ if (Object.getPrototypeOf(module) === Object.prototype) {
+ ({
+ module
+ } = module);
+ } else {
+ console.warn('using deprecated parameters for `initSync()`; pass a single object instead');
+ }
+ }
+ const imports = __wbg_get_imports();
+ if (!(module instanceof WebAssembly.Module)) {
+ module = new WebAssembly.Module(module);
+ }
+ const instance = new WebAssembly.Instance(module, imports);
+ return __wbg_finalize_init(instance, module);
+}
+async function __wbg_init(module_or_path) {
+ if (wasm !== undefined) return wasm;
+ if (module_or_path !== undefined) {
+ if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
+ ({
+ module_or_path
+ } = module_or_path);
+ } else {
+ console.warn('using deprecated parameters for the initialization function; pass a single object instead');
+ }
+ }
+ const imports = __wbg_get_imports();
+ if (typeof module_or_path === 'string' || typeof Request === 'function' && module_or_path instanceof Request || typeof URL === 'function' && module_or_path instanceof URL) {
+ module_or_path = fetch(module_or_path);
+ }
+ const {
+ instance,
+ module
+ } = await __wbg_load(await module_or_path, imports);
+ return __wbg_finalize_init(instance, module);
+}
+
+;// ./src/core/icc_colorspace.js
+
+
+
+
+function fetchSync(url) {
+ const xhr = new XMLHttpRequest();
+ xhr.open("GET", url, false);
+ xhr.responseType = "arraybuffer";
+ xhr.send(null);
+ return xhr.response;
+}
+class IccColorSpace extends ColorSpace {
+ #transformer;
+ #convertPixel;
+ static #useWasm = true;
+ static #wasmUrl = null;
+ static #finalizer = null;
+ constructor(iccProfile, name, numComps) {
+ if (!IccColorSpace.isUsable) {
+ throw new Error("No ICC color space support");
+ }
+ super(name, numComps);
+ let inType;
+ switch (numComps) {
+ case 1:
+ inType = DataType.Gray8;
+ this.#convertPixel = (src, srcOffset, css) => qcms_convert_one(this.#transformer, src[srcOffset] * 255, css);
+ break;
+ case 3:
+ inType = DataType.RGB8;
+ this.#convertPixel = (src, srcOffset, css) => qcms_convert_three(this.#transformer, src[srcOffset] * 255, src[srcOffset + 1] * 255, src[srcOffset + 2] * 255, css);
+ break;
+ case 4:
+ inType = DataType.CMYK;
+ this.#convertPixel = (src, srcOffset, css) => qcms_convert_four(this.#transformer, src[srcOffset] * 255, src[srcOffset + 1] * 255, src[srcOffset + 2] * 255, src[srcOffset + 3] * 255, css);
+ break;
+ default:
+ throw new Error(`Unsupported number of components: ${numComps}`);
+ }
+ this.#transformer = qcms_transformer_from_memory(iccProfile, inType, Intent.Perceptual);
+ if (!this.#transformer) {
+ throw new Error("Failed to create ICC color space");
+ }
+ IccColorSpace.#finalizer ||= new FinalizationRegistry(transformer => {
+ qcms_drop_transformer(transformer);
+ });
+ IccColorSpace.#finalizer.register(this, this.#transformer);
+ }
+ getRgbHex(src, srcOffset) {
+ this.#convertPixel(src, srcOffset, true);
+ return QCMS._cssColor;
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ QCMS._destBuffer = dest;
+ QCMS._destOffset = destOffset;
+ QCMS._destLength = 3;
+ this.#convertPixel(src, srcOffset, false);
+ QCMS._destBuffer = null;
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ src = src.subarray(srcOffset, srcOffset + count * this.numComps);
+ if (bits !== 8) {
+ const scale = 255 / ((1 << bits) - 1);
+ for (let i = 0, ii = src.length; i < ii; i++) {
+ src[i] *= scale;
+ }
+ }
+ QCMS._mustAddAlpha = alpha01 && dest.buffer === src.buffer;
+ QCMS._destBuffer = dest;
+ QCMS._destOffset = destOffset;
+ QCMS._destLength = count * (3 + alpha01);
+ qcms_convert_array(this.#transformer, src);
+ QCMS._mustAddAlpha = false;
+ QCMS._destBuffer = null;
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength / this.numComps * (3 + alpha01) | 0;
+ }
+ static setOptions({
+ useWasm,
+ useWorkerFetch,
+ wasmUrl
+ }) {
+ if (!useWorkerFetch) {
+ this.#useWasm = false;
+ return;
+ }
+ this.#useWasm = useWasm;
+ this.#wasmUrl = wasmUrl;
+ }
+ static get isUsable() {
+ let isUsable = false;
+ if (this.#useWasm) {
+ if (this.#wasmUrl) {
+ try {
+ this._module = initSync({
+ module: fetchSync(`${this.#wasmUrl}qcms_bg.wasm`)
+ });
+ isUsable = !!this._module;
+ QCMS._memory = this._module.memory;
+ QCMS._makeHexColor = Util.makeHexColor.bind(Util);
+ } catch (e) {
+ warn(`ICCBased color space: "${e}".`);
+ }
+ } else {
+ warn("No ICC color space support due to missing `wasmUrl` API option");
+ }
+ }
+ return shadow(this, "isUsable", isUsable);
+ }
+}
+class CmykICCBasedCS extends IccColorSpace {
+ static #iccUrl;
+ constructor() {
+ const iccProfile = new Uint8Array(fetchSync(`${CmykICCBasedCS.#iccUrl}CGATS001Compat-v2-micro.icc`));
+ super(iccProfile, "DeviceCMYK", 4);
+ }
+ static setOptions({
+ iccUrl
+ }) {
+ this.#iccUrl = iccUrl;
+ }
+ static get isUsable() {
+ let isUsable = false;
+ if (IccColorSpace.isUsable) {
+ if (this.#iccUrl) {
+ isUsable = true;
+ } else {
+ warn("No CMYK ICC profile support due to missing `iccUrl` API option");
+ }
+ }
+ return shadow(this, "isUsable", isUsable);
+ }
+}
+
+;// ./src/core/colorspace_utils.js
+
+
+
+
+
+
+class ColorSpaceUtils {
+ static parse({
+ cs,
+ xref,
+ resources = null,
+ pdfFunctionFactory,
+ globalColorSpaceCache,
+ localColorSpaceCache,
+ asyncIfNotCached = false
+ }) {
+ const options = {
+ xref,
+ resources,
+ pdfFunctionFactory,
+ globalColorSpaceCache,
+ localColorSpaceCache
+ };
+ let csName, csRef, parsedCS;
+ if (cs instanceof Ref) {
+ csRef = cs;
+ const cachedCS = globalColorSpaceCache.getByRef(csRef) || localColorSpaceCache.getByRef(csRef);
+ if (cachedCS) {
+ return cachedCS;
+ }
+ cs = xref.fetch(cs);
+ }
+ if (cs instanceof Name) {
+ csName = cs.name;
+ const cachedCS = localColorSpaceCache.getByName(csName);
+ if (cachedCS) {
+ return cachedCS;
+ }
+ }
+ try {
+ parsedCS = this.#parse(cs, options);
+ } catch (ex) {
+ if (asyncIfNotCached && !(ex instanceof MissingDataException)) {
+ return Promise.reject(ex);
+ }
+ throw ex;
+ }
+ if (csName || csRef) {
+ localColorSpaceCache.set(csName, csRef, parsedCS);
+ if (csRef) {
+ globalColorSpaceCache.set(null, csRef, parsedCS);
+ }
+ }
+ return asyncIfNotCached ? Promise.resolve(parsedCS) : parsedCS;
+ }
+ static #subParse(cs, options) {
+ const {
+ globalColorSpaceCache
+ } = options;
+ let csRef;
+ if (cs instanceof Ref) {
+ csRef = cs;
+ const cachedCS = globalColorSpaceCache.getByRef(csRef);
+ if (cachedCS) {
+ return cachedCS;
+ }
+ }
+ const parsedCS = this.#parse(cs, options);
+ if (csRef) {
+ globalColorSpaceCache.set(null, csRef, parsedCS);
+ }
+ return parsedCS;
+ }
+ static #parse(cs, options) {
+ const {
+ xref,
+ resources,
+ pdfFunctionFactory,
+ globalColorSpaceCache
+ } = options;
+ cs = xref.fetchIfRef(cs);
+ if (cs instanceof Name) {
+ switch (cs.name) {
+ case "G":
+ case "DeviceGray":
+ return this.gray;
+ case "RGB":
+ case "DeviceRGB":
+ return this.rgb;
+ case "DeviceRGBA":
+ return this.rgba;
+ case "CMYK":
+ case "DeviceCMYK":
+ return this.cmyk;
+ case "Pattern":
+ return new PatternCS(null);
+ default:
+ if (resources instanceof Dict) {
+ const colorSpaces = resources.get("ColorSpace");
+ if (colorSpaces instanceof Dict) {
+ const resourcesCS = colorSpaces.get(cs.name);
+ if (resourcesCS) {
+ if (resourcesCS instanceof Name) {
+ return this.#parse(resourcesCS, options);
+ }
+ cs = resourcesCS;
+ break;
+ }
+ }
+ }
+ warn(`Unrecognized ColorSpace: ${cs.name}`);
+ return this.gray;
+ }
+ }
+ if (Array.isArray(cs)) {
+ const mode = xref.fetchIfRef(cs[0]).name;
+ let params, numComps, baseCS, whitePoint, blackPoint, gamma;
+ switch (mode) {
+ case "G":
+ case "DeviceGray":
+ return this.gray;
+ case "RGB":
+ case "DeviceRGB":
+ return this.rgb;
+ case "CMYK":
+ case "DeviceCMYK":
+ return this.cmyk;
+ case "CalGray":
+ params = xref.fetchIfRef(cs[1]);
+ whitePoint = params.getArray("WhitePoint");
+ blackPoint = params.getArray("BlackPoint");
+ gamma = params.get("Gamma");
+ return new CalGrayCS(whitePoint, blackPoint, gamma);
+ case "CalRGB":
+ params = xref.fetchIfRef(cs[1]);
+ whitePoint = params.getArray("WhitePoint");
+ blackPoint = params.getArray("BlackPoint");
+ gamma = params.getArray("Gamma");
+ const matrix = params.getArray("Matrix");
+ return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);
+ case "ICCBased":
+ const isRef = cs[1] instanceof Ref;
+ if (isRef) {
+ const cachedCS = globalColorSpaceCache.getByRef(cs[1]);
+ if (cachedCS) {
+ return cachedCS;
+ }
+ }
+ const stream = xref.fetchIfRef(cs[1]);
+ const dict = stream.dict;
+ numComps = dict.get("N");
+ if (IccColorSpace.isUsable) {
+ try {
+ const iccCS = new IccColorSpace(stream.getBytes(), "ICCBased", numComps);
+ if (isRef) {
+ globalColorSpaceCache.set(null, cs[1], iccCS);
+ }
+ return iccCS;
+ } catch (ex) {
+ if (ex instanceof MissingDataException) {
+ throw ex;
+ }
+ warn(`ICCBased color space (${cs[1]}): "${ex}".`);
+ }
+ }
+ const altRaw = dict.getRaw("Alternate");
+ if (altRaw) {
+ const altCS = this.#subParse(altRaw, options);
+ if (altCS.numComps === numComps) {
+ return altCS;
+ }
+ warn("ICCBased color space: Ignoring incorrect /Alternate entry.");
+ }
+ if (numComps === 1) {
+ return this.gray;
+ } else if (numComps === 3) {
+ return this.rgb;
+ } else if (numComps === 4) {
+ return this.cmyk;
+ }
+ break;
+ case "Pattern":
+ baseCS = cs[1] || null;
+ if (baseCS) {
+ baseCS = this.#subParse(baseCS, options);
+ }
+ return new PatternCS(baseCS);
+ case "I":
+ case "Indexed":
+ baseCS = this.#subParse(cs[1], options);
+ const hiVal = MathClamp(xref.fetchIfRef(cs[2]), 0, 255);
+ const lookup = xref.fetchIfRef(cs[3]);
+ return new IndexedCS(baseCS, hiVal, lookup);
+ case "Separation":
+ case "DeviceN":
+ const name = xref.fetchIfRef(cs[1]);
+ numComps = Array.isArray(name) ? name.length : 1;
+ baseCS = this.#subParse(cs[2], options);
+ const tintFn = pdfFunctionFactory.create(cs[3]);
+ return new AlternateCS(numComps, baseCS, tintFn);
+ case "Lab":
+ params = xref.fetchIfRef(cs[1]);
+ whitePoint = params.getArray("WhitePoint");
+ blackPoint = params.getArray("BlackPoint");
+ const range = params.getArray("Range");
+ return new LabCS(whitePoint, blackPoint, range);
+ default:
+ warn(`Unimplemented ColorSpace object: ${mode}`);
+ return this.gray;
+ }
+ }
+ warn(`Unrecognized ColorSpace object: ${cs}`);
+ return this.gray;
+ }
+ static get gray() {
+ return shadow(this, "gray", new DeviceGrayCS());
+ }
+ static get rgb() {
+ return shadow(this, "rgb", new DeviceRgbCS());
+ }
+ static get rgba() {
+ return shadow(this, "rgba", new DeviceRgbaCS());
+ }
+ static get cmyk() {
+ if (CmykICCBasedCS.isUsable) {
+ try {
+ return shadow(this, "cmyk", new CmykICCBasedCS());
+ } catch {
+ warn("CMYK fallback: DeviceCMYK");
+ }
+ }
+ return shadow(this, "cmyk", new DeviceCmykCS());
+ }
+}
+
+;// ./src/shared/image_utils.js
+/* unused harmony import specifier */ var image_utils_ImageKind;
+/* unused harmony import specifier */ var image_utils_FeatureTest;
+
+function convertToRGBA(params) {
+ switch (params.kind) {
+ case image_utils_ImageKind.GRAYSCALE_1BPP:
+ return convertBlackAndWhiteToRGBA(params);
+ case image_utils_ImageKind.RGB_24BPP:
+ return convertRGBToRGBA(params);
+ }
+ return null;
+}
+function convertBlackAndWhiteToRGBA({
+ src,
+ srcPos = 0,
+ dest,
+ width,
+ height,
+ nonBlackColor = 0xffffffff,
+ inverseDecode = false
+}) {
+ const black = image_utils_FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;
+ const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];
+ const widthInSource = width >> 3;
+ const widthRemainder = width & 7;
+ const xorMask = zeroMapping ^ oneMapping;
+ const srcLength = src.length;
+ dest = new Uint32Array(dest.buffer);
+ let destPos = 0;
+ for (let i = 0; i < height; ++i) {
+ for (const max = srcPos + widthInSource; srcPos < max; ++srcPos, destPos += 8) {
+ const elem = src[srcPos];
+ dest[destPos] = zeroMapping ^ -(elem >> 7 & 1) & xorMask;
+ dest[destPos + 1] = zeroMapping ^ -(elem >> 6 & 1) & xorMask;
+ dest[destPos + 2] = zeroMapping ^ -(elem >> 5 & 1) & xorMask;
+ dest[destPos + 3] = zeroMapping ^ -(elem >> 4 & 1) & xorMask;
+ dest[destPos + 4] = zeroMapping ^ -(elem >> 3 & 1) & xorMask;
+ dest[destPos + 5] = zeroMapping ^ -(elem >> 2 & 1) & xorMask;
+ dest[destPos + 6] = zeroMapping ^ -(elem >> 1 & 1) & xorMask;
+ dest[destPos + 7] = zeroMapping ^ -(elem & 1) & xorMask;
+ }
+ if (widthRemainder === 0) {
+ continue;
+ }
+ const elem = srcPos < srcLength ? src[srcPos++] : 255;
+ for (let j = 0; j < widthRemainder; ++j, ++destPos) {
+ dest[destPos] = zeroMapping ^ -(elem >> 7 - j & 1) & xorMask;
+ }
+ }
+ return {
+ srcPos,
+ destPos
+ };
+}
+function convertRGBToRGBA({
+ src,
+ srcPos = 0,
+ dest,
+ destPos = 0,
+ width,
+ height
+}) {
+ let i = 0;
+ const len = width * height * 3;
+ const len32 = len >> 2;
+ const src32 = new Uint32Array(src.buffer, srcPos, len32);
+ const alphaMask = image_utils_FeatureTest.isLittleEndian ? 0xff000000 : 0xff;
+ if (image_utils_FeatureTest.isLittleEndian) {
+ for (; i < len32 - 2; i += 3, destPos += 4) {
+ const s1 = src32[i],
+ s2 = src32[i + 1],
+ s3 = src32[i + 2];
+ dest[destPos] = s1 | alphaMask;
+ dest[destPos + 1] = s1 >>> 24 | s2 << 8 | alphaMask;
+ dest[destPos + 2] = s2 >>> 16 | s3 << 16 | alphaMask;
+ dest[destPos + 3] = s3 >>> 8 | alphaMask;
+ }
+ for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {
+ dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | alphaMask;
+ }
+ } else {
+ for (; i < len32 - 2; i += 3, destPos += 4) {
+ const s1 = src32[i],
+ s2 = src32[i + 1],
+ s3 = src32[i + 2];
+ dest[destPos] = s1 | alphaMask;
+ dest[destPos + 1] = s1 << 24 | s2 >>> 8 | alphaMask;
+ dest[destPos + 2] = s2 << 16 | s3 >>> 16 | alphaMask;
+ dest[destPos + 3] = s3 << 8 | alphaMask;
+ }
+ for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {
+ dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | alphaMask;
+ }
+ }
+ return {
+ srcPos: srcPos + len,
+ destPos
+ };
+}
+function grayToRGBA(src, dest) {
+ if (FeatureTest.isLittleEndian) {
+ for (let i = 0, ii = src.length; i < ii; i++) {
+ dest[i] = src[i] * 0x10101 | 0xff000000;
+ }
+ } else {
+ for (let i = 0, ii = src.length; i < ii; i++) {
+ dest[i] = src[i] * 0x1010100 | 0x000000ff;
+ }
+ }
+}
+
+;// ./src/core/jpg.js
+
+
+
+
+class JpegError extends BaseException {
+ constructor(msg) {
+ super(msg, "JpegError");
+ }
+}
+class DNLMarkerError extends BaseException {
+ constructor(message, scanLines) {
+ super(message, "DNLMarkerError");
+ this.scanLines = scanLines;
+ }
+}
+class EOIMarkerError extends BaseException {
+ constructor(msg) {
+ super(msg, "EOIMarkerError");
+ }
+}
+const dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);
+const dctCos1 = 4017;
+const dctSin1 = 799;
+const dctCos3 = 3406;
+const dctSin3 = 2276;
+const dctCos6 = 1567;
+const dctSin6 = 3784;
+const dctSqrt2 = 5793;
+const dctSqrt1d2 = 2896;
+function buildHuffmanTable(codeLengths, values) {
+ let k = 0,
+ i,
+ j,
+ length = 16;
+ while (length > 0 && !codeLengths[length - 1]) {
+ length--;
+ }
+ const code = [{
+ children: [],
+ index: 0
+ }];
+ let p = code[0],
+ q;
+ for (i = 0; i < length; i++) {
+ for (j = 0; j < codeLengths[i]; j++) {
+ p = code.pop();
+ p.children[p.index] = values[k];
+ while (p.index > 0) {
+ p = code.pop();
+ }
+ p.index++;
+ code.push(p);
+ while (code.length <= i) {
+ code.push(q = {
+ children: [],
+ index: 0
+ });
+ p.children[p.index] = q.children;
+ p = q;
+ }
+ k++;
+ }
+ if (i + 1 < length) {
+ code.push(q = {
+ children: [],
+ index: 0
+ });
+ p.children[p.index] = q.children;
+ p = q;
+ }
+ }
+ return code[0].children;
+}
+function getBlockBufferOffset(component, row, col) {
+ return 64 * ((component.blocksPerLine + 1) * row + col);
+}
+function decodeScan(data, view, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) {
+ const mcusPerLine = frame.mcusPerLine;
+ const progressive = frame.progressive;
+ const startOffset = offset;
+ let bitsData = 0,
+ bitsCount = 0;
+ function readBit() {
+ if (bitsCount > 0) {
+ bitsCount--;
+ return bitsData >> bitsCount & 1;
+ }
+ bitsData = data[offset++];
+ if (bitsData === 0xff) {
+ const nextByte = data[offset++];
+ if (nextByte) {
+ if (nextByte === 0xdc && parseDNLMarker) {
+ offset += 2;
+ const scanLines = view.getUint16(offset);
+ offset += 2;
+ if (scanLines > 0 && scanLines !== frame.scanLines) {
+ throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data", scanLines);
+ }
+ } else if (nextByte === 0xd9) {
+ if (parseDNLMarker) {
+ const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);
+ if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 5) {
+ throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, " + "possibly caused by incorrect `scanLines` parameter", maybeScanLines);
+ }
+ }
+ throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data");
+ }
+ throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`);
+ }
+ }
+ bitsCount = 7;
+ return bitsData >>> 7;
+ }
+ function decodeHuffman(tree) {
+ let node = tree;
+ while (true) {
+ node = node[readBit()];
+ switch (typeof node) {
+ case "number":
+ return node;
+ case "object":
+ continue;
+ }
+ throw new JpegError("invalid huffman sequence");
+ }
+ }
+ function receive(length) {
+ let n = 0;
+ while (length > 0) {
+ n = n << 1 | readBit();
+ length--;
+ }
+ return n;
+ }
+ function receiveAndExtend(length) {
+ if (length === 1) {
+ return readBit() === 1 ? 1 : -1;
+ }
+ const n = receive(length);
+ if (n >= 1 << length - 1) {
+ return n;
+ }
+ return n + (-1 << length) + 1;
+ }
+ function decodeBaseline(component, blockOffset) {
+ const t = decodeHuffman(component.huffmanTableDC);
+ const diff = t === 0 ? 0 : receiveAndExtend(t);
+ component.blockData[blockOffset] = component.pred += diff;
+ let k = 1;
+ while (k < 64) {
+ const rs = decodeHuffman(component.huffmanTableAC);
+ const s = rs & 15,
+ r = rs >> 4;
+ if (s === 0) {
+ if (r < 15) {
+ break;
+ }
+ k += 16;
+ continue;
+ }
+ k += r;
+ const z = dctZigZag[k];
+ component.blockData[blockOffset + z] = receiveAndExtend(s);
+ k++;
+ }
+ }
+ function decodeDCFirst(component, blockOffset) {
+ const t = decodeHuffman(component.huffmanTableDC);
+ const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;
+ component.blockData[blockOffset] = component.pred += diff;
+ }
+ function decodeDCSuccessive(component, blockOffset) {
+ component.blockData[blockOffset] |= readBit() << successive;
+ }
+ let eobrun = 0;
+ function decodeACFirst(component, blockOffset) {
+ if (eobrun > 0) {
+ eobrun--;
+ return;
+ }
+ let k = spectralStart;
+ const e = spectralEnd;
+ while (k <= e) {
+ const rs = decodeHuffman(component.huffmanTableAC);
+ const s = rs & 15,
+ r = rs >> 4;
+ if (s === 0) {
+ if (r < 15) {
+ eobrun = receive(r) + (1 << r) - 1;
+ break;
+ }
+ k += 16;
+ continue;
+ }
+ k += r;
+ const z = dctZigZag[k];
+ component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive);
+ k++;
+ }
+ }
+ let successiveACState = 0,
+ successiveACNextValue;
+ function decodeACSuccessive(component, blockOffset) {
+ let k = spectralStart;
+ const e = spectralEnd;
+ let r = 0;
+ let s;
+ let rs;
+ while (k <= e) {
+ const offsetZ = blockOffset + dctZigZag[k];
+ const sign = component.blockData[offsetZ] < 0 ? -1 : 1;
+ switch (successiveACState) {
+ case 0:
+ rs = decodeHuffman(component.huffmanTableAC);
+ s = rs & 15;
+ r = rs >> 4;
+ if (s === 0) {
+ if (r < 15) {
+ eobrun = receive(r) + (1 << r);
+ successiveACState = 4;
+ } else {
+ r = 16;
+ successiveACState = 1;
+ }
+ } else {
+ if (s !== 1) {
+ throw new JpegError("invalid ACn encoding");
+ }
+ successiveACNextValue = receiveAndExtend(s);
+ successiveACState = r ? 2 : 3;
+ }
+ continue;
+ case 1:
+ case 2:
+ if (component.blockData[offsetZ]) {
+ component.blockData[offsetZ] += sign * (readBit() << successive);
+ } else {
+ r--;
+ if (r === 0) {
+ successiveACState = successiveACState === 2 ? 3 : 0;
+ }
+ }
+ break;
+ case 3:
+ if (component.blockData[offsetZ]) {
+ component.blockData[offsetZ] += sign * (readBit() << successive);
+ } else {
+ component.blockData[offsetZ] = successiveACNextValue << successive;
+ successiveACState = 0;
+ }
+ break;
+ case 4:
+ if (component.blockData[offsetZ]) {
+ component.blockData[offsetZ] += sign * (readBit() << successive);
+ }
+ break;
+ }
+ k++;
+ }
+ if (successiveACState === 4) {
+ eobrun--;
+ if (eobrun === 0) {
+ successiveACState = 0;
+ }
+ }
+ }
+ let blockRow = 0;
+ function decodeMcu(component, decode, mcu, row, col) {
+ const mcuRow = mcu / mcusPerLine | 0;
+ const mcuCol = mcu % mcusPerLine;
+ blockRow = mcuRow * component.v + row;
+ const blockCol = mcuCol * component.h + col;
+ const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);
+ decode(component, blockOffset);
+ }
+ function decodeBlock(component, decode, mcu) {
+ blockRow = mcu / component.blocksPerLine | 0;
+ const blockCol = mcu % component.blocksPerLine;
+ const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);
+ decode(component, blockOffset);
+ }
+ const componentsLength = components.length;
+ let component, i, j, k, n;
+ let decodeFn;
+ if (progressive) {
+ if (spectralStart === 0) {
+ decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;
+ } else {
+ decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;
+ }
+ } else {
+ decodeFn = decodeBaseline;
+ }
+ let mcu = 0,
+ fileMarker;
+ const mcuExpected = componentsLength === 1 ? components[0].blocksPerLine * components[0].blocksPerColumn : mcusPerLine * frame.mcusPerColumn;
+ let h, v;
+ while (mcu <= mcuExpected) {
+ const mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;
+ if (mcuToRead > 0) {
+ for (i = 0; i < componentsLength; i++) {
+ components[i].pred = 0;
+ }
+ eobrun = 0;
+ if (componentsLength === 1) {
+ component = components[0];
+ for (n = 0; n < mcuToRead; n++) {
+ decodeBlock(component, decodeFn, mcu);
+ mcu++;
+ }
+ } else {
+ for (n = 0; n < mcuToRead; n++) {
+ for (i = 0; i < componentsLength; i++) {
+ component = components[i];
+ h = component.h;
+ v = component.v;
+ for (j = 0; j < v; j++) {
+ for (k = 0; k < h; k++) {
+ decodeMcu(component, decodeFn, mcu, j, k);
+ }
+ }
+ }
+ mcu++;
+ }
+ }
+ }
+ bitsCount = 0;
+ fileMarker = findNextFileMarker(data, view, offset);
+ if (!fileMarker) {
+ break;
+ }
+ if (fileMarker.invalid) {
+ const partialMsg = mcuToRead > 0 ? "unexpected" : "excessive";
+ warn(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);
+ offset = fileMarker.offset;
+ }
+ if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {
+ offset += 2;
+ } else {
+ break;
+ }
+ }
+ return offset - startOffset;
+}
+function quantizeAndInverse(component, blockBufferOffset, p) {
+ const qt = component.quantizationTable,
+ blockData = component.blockData;
+ let v0, v1, v2, v3, v4, v5, v6, v7;
+ let p0, p1, p2, p3, p4, p5, p6, p7;
+ let t;
+ if (!qt) {
+ throw new JpegError("missing required Quantization Table.");
+ }
+ for (let row = 0; row < 64; row += 8) {
+ p0 = blockData[blockBufferOffset + row];
+ p1 = blockData[blockBufferOffset + row + 1];
+ p2 = blockData[blockBufferOffset + row + 2];
+ p3 = blockData[blockBufferOffset + row + 3];
+ p4 = blockData[blockBufferOffset + row + 4];
+ p5 = blockData[blockBufferOffset + row + 5];
+ p6 = blockData[blockBufferOffset + row + 6];
+ p7 = blockData[blockBufferOffset + row + 7];
+ p0 *= qt[row];
+ if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {
+ t = dctSqrt2 * p0 + 512 >> 10;
+ p[row] = t;
+ p[row + 1] = t;
+ p[row + 2] = t;
+ p[row + 3] = t;
+ p[row + 4] = t;
+ p[row + 5] = t;
+ p[row + 6] = t;
+ p[row + 7] = t;
+ continue;
+ }
+ p1 *= qt[row + 1];
+ p2 *= qt[row + 2];
+ p3 *= qt[row + 3];
+ p4 *= qt[row + 4];
+ p5 *= qt[row + 5];
+ p6 *= qt[row + 6];
+ p7 *= qt[row + 7];
+ v0 = dctSqrt2 * p0 + 128 >> 8;
+ v1 = dctSqrt2 * p4 + 128 >> 8;
+ v2 = p2;
+ v3 = p6;
+ v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;
+ v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;
+ v5 = p3 << 4;
+ v6 = p5 << 4;
+ v0 = v0 + v1 + 1 >> 1;
+ v1 = v0 - v1;
+ t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;
+ v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;
+ v3 = t;
+ v4 = v4 + v6 + 1 >> 1;
+ v6 = v4 - v6;
+ v7 = v7 + v5 + 1 >> 1;
+ v5 = v7 - v5;
+ v0 = v0 + v3 + 1 >> 1;
+ v3 = v0 - v3;
+ v1 = v1 + v2 + 1 >> 1;
+ v2 = v1 - v2;
+ t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;
+ v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;
+ v7 = t;
+ t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;
+ v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;
+ v6 = t;
+ p[row] = v0 + v7;
+ p[row + 7] = v0 - v7;
+ p[row + 1] = v1 + v6;
+ p[row + 6] = v1 - v6;
+ p[row + 2] = v2 + v5;
+ p[row + 5] = v2 - v5;
+ p[row + 3] = v3 + v4;
+ p[row + 4] = v3 - v4;
+ }
+ for (let col = 0; col < 8; ++col) {
+ p0 = p[col];
+ p1 = p[col + 8];
+ p2 = p[col + 16];
+ p3 = p[col + 24];
+ p4 = p[col + 32];
+ p5 = p[col + 40];
+ p6 = p[col + 48];
+ p7 = p[col + 56];
+ if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {
+ t = dctSqrt2 * p0 + 8192 >> 14;
+ if (t < -2040) {
+ t = 0;
+ } else if (t >= 2024) {
+ t = 255;
+ } else {
+ t = t + 2056 >> 4;
+ }
+ blockData[blockBufferOffset + col] = t;
+ blockData[blockBufferOffset + col + 8] = t;
+ blockData[blockBufferOffset + col + 16] = t;
+ blockData[blockBufferOffset + col + 24] = t;
+ blockData[blockBufferOffset + col + 32] = t;
+ blockData[blockBufferOffset + col + 40] = t;
+ blockData[blockBufferOffset + col + 48] = t;
+ blockData[blockBufferOffset + col + 56] = t;
+ continue;
+ }
+ v0 = dctSqrt2 * p0 + 2048 >> 12;
+ v1 = dctSqrt2 * p4 + 2048 >> 12;
+ v2 = p2;
+ v3 = p6;
+ v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;
+ v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;
+ v5 = p3;
+ v6 = p5;
+ v0 = (v0 + v1 + 1 >> 1) + 4112;
+ v1 = v0 - v1;
+ t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;
+ v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;
+ v3 = t;
+ v4 = v4 + v6 + 1 >> 1;
+ v6 = v4 - v6;
+ v7 = v7 + v5 + 1 >> 1;
+ v5 = v7 - v5;
+ v0 = v0 + v3 + 1 >> 1;
+ v3 = v0 - v3;
+ v1 = v1 + v2 + 1 >> 1;
+ v2 = v1 - v2;
+ t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;
+ v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;
+ v7 = t;
+ t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;
+ v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;
+ v6 = t;
+ p0 = v0 + v7;
+ p7 = v0 - v7;
+ p1 = v1 + v6;
+ p6 = v1 - v6;
+ p2 = v2 + v5;
+ p5 = v2 - v5;
+ p3 = v3 + v4;
+ p4 = v3 - v4;
+ if (p0 < 16) {
+ p0 = 0;
+ } else if (p0 >= 4080) {
+ p0 = 255;
+ } else {
+ p0 >>= 4;
+ }
+ if (p1 < 16) {
+ p1 = 0;
+ } else if (p1 >= 4080) {
+ p1 = 255;
+ } else {
+ p1 >>= 4;
+ }
+ if (p2 < 16) {
+ p2 = 0;
+ } else if (p2 >= 4080) {
+ p2 = 255;
+ } else {
+ p2 >>= 4;
+ }
+ if (p3 < 16) {
+ p3 = 0;
+ } else if (p3 >= 4080) {
+ p3 = 255;
+ } else {
+ p3 >>= 4;
+ }
+ if (p4 < 16) {
+ p4 = 0;
+ } else if (p4 >= 4080) {
+ p4 = 255;
+ } else {
+ p4 >>= 4;
+ }
+ if (p5 < 16) {
+ p5 = 0;
+ } else if (p5 >= 4080) {
+ p5 = 255;
+ } else {
+ p5 >>= 4;
+ }
+ if (p6 < 16) {
+ p6 = 0;
+ } else if (p6 >= 4080) {
+ p6 = 255;
+ } else {
+ p6 >>= 4;
+ }
+ if (p7 < 16) {
+ p7 = 0;
+ } else if (p7 >= 4080) {
+ p7 = 255;
+ } else {
+ p7 >>= 4;
+ }
+ blockData[blockBufferOffset + col] = p0;
+ blockData[blockBufferOffset + col + 8] = p1;
+ blockData[blockBufferOffset + col + 16] = p2;
+ blockData[blockBufferOffset + col + 24] = p3;
+ blockData[blockBufferOffset + col + 32] = p4;
+ blockData[blockBufferOffset + col + 40] = p5;
+ blockData[blockBufferOffset + col + 48] = p6;
+ blockData[blockBufferOffset + col + 56] = p7;
+ }
+}
+function buildComponentData(frame, component) {
+ const blocksPerLine = component.blocksPerLine;
+ const blocksPerColumn = component.blocksPerColumn;
+ const computationBuffer = new Int16Array(64);
+ for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {
+ for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {
+ const offset = getBlockBufferOffset(component, blockRow, blockCol);
+ quantizeAndInverse(component, offset, computationBuffer);
+ }
+ }
+ return component.blockData;
+}
+function findNextFileMarker(data, view, currentPos, startPos = currentPos) {
+ const maxPos = data.length - 1;
+ let newPos = startPos < currentPos ? startPos : currentPos;
+ if (currentPos >= maxPos) {
+ return null;
+ }
+ const currentMarker = view.getUint16(currentPos);
+ if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {
+ return {
+ invalid: null,
+ marker: currentMarker,
+ offset: currentPos
+ };
+ }
+ let newMarker = view.getUint16(newPos);
+ while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {
+ if (++newPos >= maxPos) {
+ return null;
+ }
+ newMarker = view.getUint16(newPos);
+ }
+ return {
+ invalid: currentMarker.toString(16),
+ marker: newMarker,
+ offset: newPos
+ };
+}
+function prepareComponents(frame) {
+ const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);
+ const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);
+ for (const component of frame.components) {
+ const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);
+ const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);
+ const blocksPerLineForMcu = mcusPerLine * component.h;
+ const blocksPerColumnForMcu = mcusPerColumn * component.v;
+ const blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);
+ component.blockData = new Int16Array(blocksBufferSize);
+ component.blocksPerLine = blocksPerLine;
+ component.blocksPerColumn = blocksPerColumn;
+ }
+ frame.mcusPerLine = mcusPerLine;
+ frame.mcusPerColumn = mcusPerColumn;
+}
+function readDataBlock(data, view, offset) {
+ const length = view.getUint16(offset);
+ offset += 2;
+ let endOffset = offset + length - 2;
+ const fileMarker = findNextFileMarker(data, view, endOffset, offset);
+ if (fileMarker?.invalid) {
+ warn("readDataBlock - incorrect length, current marker is: " + fileMarker.invalid);
+ endOffset = fileMarker.offset;
+ }
+ const array = data.subarray(offset, endOffset);
+ return {
+ appData: array,
+ oldOffset: offset,
+ newOffset: offset + array.length
+ };
+}
+function skipData(data, view, offset) {
+ const length = view.getUint16(offset);
+ offset += 2;
+ const endOffset = offset + length - 2;
+ const fileMarker = findNextFileMarker(data, view, endOffset, offset);
+ if (fileMarker?.invalid) {
+ return fileMarker.offset;
+ }
+ return endOffset;
+}
+class JpegImage {
+ constructor({
+ decodeTransform = null,
+ colorTransform = -1
+ } = {}) {
+ this._decodeTransform = decodeTransform;
+ this._colorTransform = colorTransform;
+ }
+ static canUseImageDecoder(data, colorTransform = -1) {
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
+ let exifOffsets = null;
+ let offset = 0;
+ let numComponents = null;
+ let fileMarker = view.getUint16(offset);
+ offset += 2;
+ if (fileMarker !== 0xffd8) {
+ throw new JpegError("SOI not found");
+ }
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ markerLoop: while (fileMarker !== 0xffd9) {
+ switch (fileMarker) {
+ case 0xffe1:
+ const {
+ appData,
+ oldOffset,
+ newOffset
+ } = readDataBlock(data, view, offset);
+ offset = newOffset;
+ if (appData[0] === 0x45 && appData[1] === 0x78 && appData[2] === 0x69 && appData[3] === 0x66 && appData[4] === 0 && appData[5] === 0) {
+ if (exifOffsets) {
+ throw new JpegError("Duplicate EXIF-blocks found.");
+ }
+ exifOffsets = {
+ exifStart: oldOffset + 6,
+ exifEnd: newOffset
+ };
+ }
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ continue;
+ case 0xffc0:
+ case 0xffc1:
+ case 0xffc2:
+ numComponents = data[offset + (2 + 1 + 2 + 2)];
+ break markerLoop;
+ case 0xffff:
+ if (data[offset] !== 0xff) {
+ offset--;
+ }
+ break;
+ }
+ offset = skipData(data, view, offset);
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ }
+ if (numComponents === 4) {
+ return null;
+ }
+ if (numComponents === 3 && colorTransform === 0) {
+ return null;
+ }
+ return exifOffsets || {};
+ }
+ parse(data, {
+ dnlScanLines = null
+ } = {}) {
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
+ const maxOffset = data.length - 1;
+ let offset = 0;
+ let jfif = null;
+ let adobe = null;
+ let frame, resetInterval;
+ let numSOSMarkers = 0;
+ const quantizationTables = [];
+ const huffmanTablesAC = [],
+ huffmanTablesDC = [];
+ let fileMarker = view.getUint16(offset);
+ offset += 2;
+ if (fileMarker !== 0xffd8) {
+ throw new JpegError("SOI not found");
+ }
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ markerLoop: while (fileMarker !== 0xffd9) {
+ let i, j, l;
+ switch (fileMarker) {
+ case 0xffe0:
+ case 0xffe1:
+ case 0xffe2:
+ case 0xffe3:
+ case 0xffe4:
+ case 0xffe5:
+ case 0xffe6:
+ case 0xffe7:
+ case 0xffe8:
+ case 0xffe9:
+ case 0xffea:
+ case 0xffeb:
+ case 0xffec:
+ case 0xffed:
+ case 0xffee:
+ case 0xffef:
+ case 0xfffe:
+ const {
+ appData,
+ newOffset
+ } = readDataBlock(data, view, offset);
+ offset = newOffset;
+ if (fileMarker === 0xffe0) {
+ if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {
+ jfif = {
+ version: {
+ major: appData[5],
+ minor: appData[6]
+ },
+ densityUnits: appData[7],
+ xDensity: appData[8] << 8 | appData[9],
+ yDensity: appData[10] << 8 | appData[11],
+ thumbWidth: appData[12],
+ thumbHeight: appData[13],
+ thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])
+ };
+ }
+ }
+ if (fileMarker === 0xffee) {
+ if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) {
+ adobe = {
+ version: appData[5] << 8 | appData[6],
+ flags0: appData[7] << 8 | appData[8],
+ flags1: appData[9] << 8 | appData[10],
+ transformCode: appData[11]
+ };
+ }
+ }
+ break;
+ case 0xffdb:
+ const quantizationTablesLength = view.getUint16(offset);
+ offset += 2;
+ const quantizationTablesEnd = quantizationTablesLength + offset - 2;
+ let z;
+ while (offset < quantizationTablesEnd) {
+ const quantizationTableSpec = data[offset++];
+ const tableData = new Uint16Array(64);
+ if (quantizationTableSpec >> 4 === 0) {
+ for (j = 0; j < 64; j++) {
+ z = dctZigZag[j];
+ tableData[z] = data[offset++];
+ }
+ } else if (quantizationTableSpec >> 4 === 1) {
+ for (j = 0; j < 64; j++) {
+ z = dctZigZag[j];
+ tableData[z] = view.getUint16(offset);
+ offset += 2;
+ }
+ } else {
+ throw new JpegError("DQT - invalid table spec");
+ }
+ quantizationTables[quantizationTableSpec & 15] = tableData;
+ }
+ break;
+ case 0xffc0:
+ case 0xffc1:
+ case 0xffc2:
+ if (frame) {
+ throw new JpegError("Only single frame JPEGs supported");
+ }
+ offset += 2;
+ frame = {};
+ frame.extended = fileMarker === 0xffc1;
+ frame.progressive = fileMarker === 0xffc2;
+ frame.precision = data[offset++];
+ const sofScanLines = view.getUint16(offset);
+ offset += 2;
+ frame.scanLines = dnlScanLines || sofScanLines;
+ frame.samplesPerLine = view.getUint16(offset);
+ offset += 2;
+ frame.components = [];
+ frame.componentIds = {};
+ const componentsCount = data[offset++];
+ let maxH = 0,
+ maxV = 0;
+ for (i = 0; i < componentsCount; i++) {
+ const componentId = data[offset];
+ const h = data[offset + 1] >> 4;
+ const v = data[offset + 1] & 15;
+ if (maxH < h) {
+ maxH = h;
+ }
+ if (maxV < v) {
+ maxV = v;
+ }
+ const qId = data[offset + 2];
+ l = frame.components.push({
+ h,
+ v,
+ quantizationId: qId,
+ quantizationTable: null
+ });
+ frame.componentIds[componentId] = l - 1;
+ offset += 3;
+ }
+ frame.maxH = maxH;
+ frame.maxV = maxV;
+ prepareComponents(frame);
+ break;
+ case 0xffc4:
+ const huffmanLength = view.getUint16(offset);
+ offset += 2;
+ for (i = 2; i < huffmanLength;) {
+ const huffmanTableSpec = data[offset++];
+ const codeLengths = new Uint8Array(16);
+ let codeLengthSum = 0;
+ for (j = 0; j < 16; j++, offset++) {
+ codeLengthSum += codeLengths[j] = data[offset];
+ }
+ const huffmanValues = new Uint8Array(codeLengthSum);
+ for (j = 0; j < codeLengthSum; j++, offset++) {
+ huffmanValues[j] = data[offset];
+ }
+ i += 17 + codeLengthSum;
+ (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);
+ }
+ break;
+ case 0xffdd:
+ offset += 2;
+ resetInterval = view.getUint16(offset);
+ offset += 2;
+ break;
+ case 0xffda:
+ const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;
+ offset += 2;
+ const selectorsCount = data[offset++],
+ components = [];
+ for (i = 0; i < selectorsCount; i++) {
+ const index = data[offset++];
+ const componentIndex = frame.componentIds[index];
+ const component = frame.components[componentIndex];
+ component.index = index;
+ const tableSpec = data[offset++];
+ component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];
+ component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];
+ components.push(component);
+ }
+ const spectralStart = data[offset++],
+ spectralEnd = data[offset++],
+ successiveApproximation = data[offset++];
+ try {
+ const processed = decodeScan(data, view, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);
+ offset += processed;
+ } catch (ex) {
+ if (ex instanceof DNLMarkerError) {
+ warn(`${ex.message} -- attempting to re-parse the JPEG image.`);
+ return this.parse(data, {
+ dnlScanLines: ex.scanLines
+ });
+ } else if (ex instanceof EOIMarkerError) {
+ warn(`${ex.message} -- ignoring the rest of the image data.`);
+ break markerLoop;
+ }
+ throw ex;
+ }
+ break;
+ case 0xffdc:
+ offset += 4;
+ break;
+ case 0xffff:
+ if (data[offset] !== 0xff) {
+ offset--;
+ }
+ break;
+ default:
+ const nextFileMarker = findNextFileMarker(data, view, offset - 2, offset - 3);
+ if (nextFileMarker?.invalid) {
+ warn("JpegImage.parse - unexpected data, current marker is: " + nextFileMarker.invalid);
+ offset = nextFileMarker.offset;
+ break;
+ }
+ if (!nextFileMarker || offset >= maxOffset) {
+ warn("JpegImage.parse - reached the end of the image data " + "without finding an EOI marker (0xFFD9).");
+ break markerLoop;
+ }
+ throw new JpegError("JpegImage.parse - unknown marker: " + fileMarker.toString(16));
+ }
+ if (offset < maxOffset) {
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ } else {
+ fileMarker = 0;
+ }
+ }
+ if (!frame) {
+ throw new JpegError("JpegImage.parse - no frame data found.");
+ }
+ this.width = frame.samplesPerLine;
+ this.height = frame.scanLines;
+ this.jfif = jfif;
+ this.adobe = adobe;
+ this.components = [];
+ for (const component of frame.components) {
+ const quantizationTable = quantizationTables[component.quantizationId];
+ if (quantizationTable) {
+ component.quantizationTable = quantizationTable;
+ }
+ this.components.push({
+ index: component.index,
+ output: buildComponentData(frame, component),
+ scaleX: component.h / frame.maxH,
+ scaleY: component.v / frame.maxV,
+ blocksPerLine: component.blocksPerLine,
+ blocksPerColumn: component.blocksPerColumn
+ });
+ }
+ this.numComponents = this.components.length;
+ return undefined;
+ }
+ _getLinearizedBlockData(width, height, isSourcePDF = false) {
+ const scaleX = this.width / width,
+ scaleY = this.height / height;
+ let component, componentScaleX, componentScaleY, blocksPerScanline;
+ let x, y, i, j, k;
+ let index;
+ let offset = 0;
+ let output;
+ const numComponents = this.components.length;
+ const dataLength = width * height * numComponents;
+ const data = new Uint8ClampedArray(dataLength);
+ const xScaleBlockOffset = new Uint32Array(width);
+ const mask3LSB = 0xfffffff8;
+ let lastComponentScaleX;
+ for (i = 0; i < numComponents; i++) {
+ component = this.components[i];
+ componentScaleX = component.scaleX * scaleX;
+ componentScaleY = component.scaleY * scaleY;
+ offset = i;
+ output = component.output;
+ blocksPerScanline = component.blocksPerLine + 1 << 3;
+ if (componentScaleX !== lastComponentScaleX) {
+ for (x = 0; x < width; x++) {
+ j = 0 | x * componentScaleX;
+ xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;
+ }
+ lastComponentScaleX = componentScaleX;
+ }
+ for (y = 0; y < height; y++) {
+ j = 0 | y * componentScaleY;
+ index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;
+ for (x = 0; x < width; x++) {
+ data[offset] = output[index + xScaleBlockOffset[x]];
+ offset += numComponents;
+ }
+ }
+ }
+ let transform = this._decodeTransform;
+ if (!isSourcePDF && numComponents === 4 && !transform) {
+ transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);
+ }
+ if (transform) {
+ for (i = 0; i < dataLength;) {
+ for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {
+ data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];
+ }
+ }
+ }
+ return data;
+ }
+ get _isColorConversionNeeded() {
+ if (this.adobe) {
+ return !!this.adobe.transformCode;
+ }
+ if (this.numComponents === 3) {
+ if (this._colorTransform === 0) {
+ return false;
+ } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) {
+ return false;
+ }
+ return true;
+ }
+ if (this._colorTransform === 1) {
+ return true;
+ }
+ return false;
+ }
+ _convertYccToRgb(data) {
+ let Y, Cb, Cr;
+ for (let i = 0, length = data.length; i < length; i += 3) {
+ Y = data[i];
+ Cb = data[i + 1];
+ Cr = data[i + 2];
+ data[i] = Y - 179.456 + 1.402 * Cr;
+ data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;
+ data[i + 2] = Y - 226.816 + 1.772 * Cb;
+ }
+ return data;
+ }
+ _convertYccToRgba(data, out) {
+ for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) {
+ const Y = data[i];
+ const Cb = data[i + 1];
+ const Cr = data[i + 2];
+ out[j] = Y - 179.456 + 1.402 * Cr;
+ out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;
+ out[j + 2] = Y - 226.816 + 1.772 * Cb;
+ out[j + 3] = 255;
+ }
+ return out;
+ }
+ _convertYcckToRgb(data) {
+ this._convertYcckToCmyk(data);
+ return this._convertCmykToRgb(data);
+ }
+ _convertYcckToRgba(data) {
+ this._convertYcckToCmyk(data);
+ return this._convertCmykToRgba(data);
+ }
+ _convertYcckToCmyk(data) {
+ let Y, Cb, Cr;
+ for (let i = 0, length = data.length; i < length; i += 4) {
+ Y = data[i];
+ Cb = data[i + 1];
+ Cr = data[i + 2];
+ data[i] = 434.456 - Y - 1.402 * Cr;
+ data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;
+ data[i + 2] = 481.816 - Y - 1.772 * Cb;
+ }
+ return data;
+ }
+ _convertCmykToRgb(data) {
+ const count = data.length / 4;
+ ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, count, data, 0, 8, 0);
+ return data.subarray(0, count * 3);
+ }
+ _convertCmykToRgba(data) {
+ ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, data.length / 4, data, 0, 8, 1);
+ if (ColorSpaceUtils.cmyk instanceof DeviceCmykCS) {
+ for (let i = 3, ii = data.length; i < ii; i += 4) {
+ data[i] = 255;
+ }
+ }
+ return data;
+ }
+ getData({
+ width,
+ height,
+ forceRGBA = false,
+ forceRGB = false,
+ isSourcePDF = false
+ }) {
+ if (this.numComponents > 4) {
+ throw new JpegError("Unsupported color mode");
+ }
+ const data = this._getLinearizedBlockData(width, height, isSourcePDF);
+ if (this.numComponents === 1 && (forceRGBA || forceRGB)) {
+ const len = data.length * (forceRGBA ? 4 : 3);
+ const rgbaData = new Uint8ClampedArray(len);
+ let offset = 0;
+ if (forceRGBA) {
+ grayToRGBA(data, new Uint32Array(rgbaData.buffer));
+ } else {
+ for (const grayColor of data) {
+ rgbaData[offset++] = grayColor;
+ rgbaData[offset++] = grayColor;
+ rgbaData[offset++] = grayColor;
+ }
+ }
+ return rgbaData;
+ } else if (this.numComponents === 3 && this._isColorConversionNeeded) {
+ if (forceRGBA) {
+ const rgbaData = new Uint8ClampedArray(data.length / 3 * 4);
+ return this._convertYccToRgba(data, rgbaData);
+ }
+ return this._convertYccToRgb(data);
+ } else if (this.numComponents === 4) {
+ if (this._isColorConversionNeeded) {
+ if (forceRGBA) {
+ return this._convertYcckToRgba(data);
+ }
+ if (forceRGB) {
+ return this._convertYcckToRgb(data);
+ }
+ return this._convertYcckToCmyk(data);
+ } else if (forceRGBA) {
+ return this._convertCmykToRgba(data);
+ } else if (forceRGB) {
+ return this._convertCmykToRgb(data);
+ }
+ }
+ return data;
+ }
+}
+
+;// ./external/openjpeg/openjpeg.js
+async function OpenJPEG(moduleArg = {}) {
+ var moduleRtn;
+ var Module = moduleArg;
+ var ENVIRONMENT_IS_WEB = true;
+ var ENVIRONMENT_IS_WORKER = false;
+ var arguments_ = [];
+ var thisProgram = "./this.program";
+ var quit_ = (status, toThrow) => {
+ throw toThrow;
+ };
+ var _scriptName = import.meta.url;
+ var scriptDirectory = "";
+ var readAsync, readBinary;
+ if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
+ try {
+ scriptDirectory = new URL(".", _scriptName).href;
+ } catch {}
+ readAsync = async url => {
+ var response = await fetch(url, {
+ credentials: "same-origin"
+ });
+ if (response.ok) {
+ return response.arrayBuffer();
+ }
+ throw new Error(response.status + " : " + response.url);
+ };
+ } else {}
+ var out = console.log.bind(console);
+ var err = console.error.bind(console);
+ var wasmBinary;
+ var ABORT = false;
+ var EXITSTATUS;
+ class EmscriptenEH {}
+ class EmscriptenSjLj extends EmscriptenEH {}
+ var readyPromiseResolve, readyPromiseReject;
+ var runtimeInitialized = false;
+ function updateMemoryViews() {
+ var b = wasmMemory.buffer;
+ HEAP8 = new Int8Array(b);
+ HEAP16 = new Int16Array(b);
+ HEAPU8 = new Uint8Array(b);
+ HEAPU16 = new Uint16Array(b);
+ HEAP32 = new Int32Array(b);
+ HEAPU32 = new Uint32Array(b);
+ HEAPF32 = new Float32Array(b);
+ HEAPF64 = new Float64Array(b);
+ HEAP64 = new BigInt64Array(b);
+ HEAPU64 = new BigUint64Array(b);
+ }
+ function preRun() {
+ if (Module["preRun"]) {
+ if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]];
+ while (Module["preRun"].length) {
+ addOnPreRun(Module["preRun"].shift());
+ }
+ }
+ callRuntimeCallbacks(onPreRuns);
+ }
+ function initRuntime() {
+ runtimeInitialized = true;
+ wasmExports["s"]();
+ }
+ function postRun() {
+ if (Module["postRun"]) {
+ if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]];
+ while (Module["postRun"].length) {
+ addOnPostRun(Module["postRun"].shift());
+ }
+ }
+ callRuntimeCallbacks(onPostRuns);
+ }
+ function abort(what) {
+ Module["onAbort"]?.(what);
+ what = `Aborted(${what})`;
+ err(what);
+ ABORT = true;
+ what += ". Build with -sASSERTIONS for more info.";
+ var e = new WebAssembly.RuntimeError(what);
+ readyPromiseReject?.(e);
+ throw e;
+ }
+ var wasmBinaryFile;
+ function getWasmImports() {
+ var imports = {
+ a: wasmImports
+ };
+ return imports;
+ }
+ async function createWasm() {
+ function receiveInstance(instance, module) {
+ wasmExports = instance.exports;
+ assignWasmExports(wasmExports);
+ updateMemoryViews();
+ return wasmExports;
+ }
+ var info = getWasmImports();
+ return new Promise((resolve, reject) => {
+ Module["instantiateWasm"](info, (inst, mod) => {
+ resolve(receiveInstance(inst, mod));
+ });
+ });
+ }
+ class ExitStatus {
+ name = "ExitStatus";
+ constructor(status) {
+ this.message = `Program terminated with exit(${status})`;
+ this.status = status;
+ }
+ }
+ var HEAP16;
+ var HEAP32;
+ var HEAP64;
+ var HEAP8;
+ var HEAPF32;
+ var HEAPF64;
+ var HEAPU16;
+ var HEAPU32;
+ var HEAPU64;
+ var HEAPU8;
+ var callRuntimeCallbacks = callbacks => {
+ while (callbacks.length > 0) {
+ callbacks.shift()(Module);
+ }
+ };
+ var onPostRuns = [];
+ var addOnPostRun = cb => onPostRuns.push(cb);
+ var onPreRuns = [];
+ var addOnPreRun = cb => onPreRuns.push(cb);
+ var noExitRuntime = true;
+ var __abort_js = () => abort("");
+ var runtimeKeepaliveCounter = 0;
+ var __emscripten_runtime_keepalive_clear = () => {
+ noExitRuntime = false;
+ runtimeKeepaliveCounter = 0;
+ };
+ var timers = {};
+ var handleException = e => {
+ if (e instanceof ExitStatus || e == "unwind") {
+ return EXITSTATUS;
+ }
+ quit_(1, e);
+ };
+ var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;
+ var _proc_exit = code => {
+ EXITSTATUS = code;
+ if (!keepRuntimeAlive()) {
+ Module["onExit"]?.(code);
+ ABORT = true;
+ }
+ quit_(code, new ExitStatus(code));
+ };
+ var exitJS = (status, implicit) => {
+ EXITSTATUS = status;
+ _proc_exit(status);
+ };
+ var _exit = exitJS;
+ var maybeExit = () => {
+ if (!keepRuntimeAlive()) {
+ try {
+ _exit(EXITSTATUS);
+ } catch (e) {
+ handleException(e);
+ }
+ }
+ };
+ var callUserCallback = func => {
+ if (ABORT) {
+ return;
+ }
+ try {
+ return func();
+ } catch (e) {
+ handleException(e);
+ } finally {
+ maybeExit();
+ }
+ };
+ var _emscripten_get_now = () => performance.now();
+ var __setitimer_js = (which, timeout_ms) => {
+ if (timers[which]) {
+ clearTimeout(timers[which].id);
+ delete timers[which];
+ }
+ if (!timeout_ms) return 0;
+ var id = setTimeout(() => {
+ delete timers[which];
+ callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()));
+ }, timeout_ms);
+ timers[which] = {
+ id,
+ timeout_ms
+ };
+ return 0;
+ };
+ function _copy_pixels_1(compG_ptr, nb_pixels) {
+ compG_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ imageData.set(compG);
+ }
+ function _copy_pixels_3(compR_ptr, compG_ptr, compB_ptr, nb_pixels) {
+ compR_ptr >>= 2;
+ compG_ptr >>= 2;
+ compB_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 3);
+ const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[3 * i] = compR[i];
+ imageData[3 * i + 1] = compG[i];
+ imageData[3 * i + 2] = compB[i];
+ }
+ }
+ function _copy_pixels_4(compR_ptr, compG_ptr, compB_ptr, compA_ptr, nb_pixels) {
+ compR_ptr >>= 2;
+ compG_ptr >>= 2;
+ compB_ptr >>= 2;
+ compA_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);
+ const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels);
+ const compA = HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[4 * i] = compR[i];
+ imageData[4 * i + 1] = compG[i];
+ imageData[4 * i + 2] = compB[i];
+ imageData[4 * i + 3] = compA[i];
+ }
+ }
+ var getHeapMax = () => 2147483648;
+ var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
+ var growMemory = size => {
+ var oldHeapSize = wasmMemory.buffer.byteLength;
+ var pages = (size - oldHeapSize + 65535) / 65536 | 0;
+ try {
+ wasmMemory.grow(pages);
+ updateMemoryViews();
+ return 1;
+ } catch (e) {}
+ };
+ var _emscripten_resize_heap = requestedSize => {
+ var oldSize = HEAPU8.length;
+ requestedSize >>>= 0;
+ var maxHeapSize = getHeapMax();
+ if (requestedSize > maxHeapSize) {
+ return false;
+ }
+ for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
+ var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
+ overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
+ var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
+ var replacement = growMemory(newSize);
+ if (replacement) {
+ return true;
+ }
+ }
+ return false;
+ };
+ var ENV = {};
+ var getExecutableName = () => thisProgram || "./this.program";
+ var getEnvStrings = () => {
+ if (!getEnvStrings.strings) {
+ var lang = (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8";
+ var env = {
+ USER: "web_user",
+ LOGNAME: "web_user",
+ PATH: "/",
+ PWD: "/",
+ HOME: "/home/web_user",
+ LANG: lang,
+ _: getExecutableName()
+ };
+ for (var x in ENV) {
+ if (ENV[x] === undefined) delete env[x];else env[x] = ENV[x];
+ }
+ var strings = [];
+ for (var x in env) {
+ strings.push(`${x}=${env[x]}`);
+ }
+ getEnvStrings.strings = strings;
+ }
+ return getEnvStrings.strings;
+ };
+ var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
+ if (!(maxBytesToWrite > 0)) return 0;
+ var startIdx = outIdx;
+ var endIdx = outIdx + maxBytesToWrite - 1;
+ for (var i = 0; i < str.length; ++i) {
+ var u = str.codePointAt(i);
+ if (u <= 127) {
+ if (outIdx >= endIdx) break;
+ heap[outIdx++] = u;
+ } else if (u <= 2047) {
+ if (outIdx + 1 >= endIdx) break;
+ heap[outIdx++] = 192 | u >> 6;
+ heap[outIdx++] = 128 | u & 63;
+ } else if (u <= 65535) {
+ if (outIdx + 2 >= endIdx) break;
+ heap[outIdx++] = 224 | u >> 12;
+ heap[outIdx++] = 128 | u >> 6 & 63;
+ heap[outIdx++] = 128 | u & 63;
+ } else {
+ if (outIdx + 3 >= endIdx) break;
+ heap[outIdx++] = 240 | u >> 18;
+ heap[outIdx++] = 128 | u >> 12 & 63;
+ heap[outIdx++] = 128 | u >> 6 & 63;
+ heap[outIdx++] = 128 | u & 63;
+ i++;
+ }
+ }
+ heap[outIdx] = 0;
+ return outIdx - startIdx;
+ };
+ var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
+ var _environ_get = (__environ, environ_buf) => {
+ var bufSize = 0;
+ var envp = 0;
+ for (var string of getEnvStrings()) {
+ var ptr = environ_buf + bufSize;
+ HEAPU32[__environ + envp >> 2] = ptr;
+ bufSize += stringToUTF8(string, ptr, Infinity) + 1;
+ envp += 4;
+ }
+ return 0;
+ };
+ var lengthBytesUTF8 = str => {
+ var len = 0;
+ for (var i = 0; i < str.length; ++i) {
+ var c = str.charCodeAt(i);
+ if (c <= 127) {
+ len++;
+ } else if (c <= 2047) {
+ len += 2;
+ } else if (c >= 55296 && c <= 57343) {
+ len += 4;
+ ++i;
+ } else {
+ len += 3;
+ }
+ }
+ return len;
+ };
+ var _environ_sizes_get = (penviron_count, penviron_buf_size) => {
+ var strings = getEnvStrings();
+ HEAPU32[penviron_count >> 2] = strings.length;
+ var bufSize = 0;
+ for (var string of strings) {
+ bufSize += lengthBytesUTF8(string) + 1;
+ }
+ HEAPU32[penviron_buf_size >> 2] = bufSize;
+ return 0;
+ };
+ var INT53_MAX = 9007199254740992;
+ var INT53_MIN = -9007199254740992;
+ var bigintToI53Checked = num => num < INT53_MIN || num > INT53_MAX ? NaN : Number(num);
+ function _fd_seek(fd, offset, whence, newOffset) {
+ offset = bigintToI53Checked(offset);
+ return 70;
+ }
+ var printCharBuffers = [null, [], []];
+ var UTF8Decoder = globalThis.TextDecoder && new TextDecoder();
+ var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
+ var maxIdx = idx + maxBytesToRead;
+ if (ignoreNul) return maxIdx;
+ while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx;
+ return idx;
+ };
+ var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => {
+ var endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul);
+ if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
+ return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
+ }
+ var str = "";
+ while (idx < endPtr) {
+ var u0 = heapOrArray[idx++];
+ if (!(u0 & 128)) {
+ str += String.fromCharCode(u0);
+ continue;
+ }
+ var u1 = heapOrArray[idx++] & 63;
+ if ((u0 & 224) == 192) {
+ str += String.fromCharCode((u0 & 31) << 6 | u1);
+ continue;
+ }
+ var u2 = heapOrArray[idx++] & 63;
+ if ((u0 & 240) == 224) {
+ u0 = (u0 & 15) << 12 | u1 << 6 | u2;
+ } else {
+ u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
+ }
+ if (u0 < 65536) {
+ str += String.fromCharCode(u0);
+ } else {
+ var ch = u0 - 65536;
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
+ }
+ }
+ return str;
+ };
+ var printChar = (stream, curr) => {
+ var buffer = printCharBuffers[stream];
+ if (curr === 0 || curr === 10) {
+ (stream === 1 ? out : err)(UTF8ArrayToString(buffer));
+ buffer.length = 0;
+ } else {
+ buffer.push(curr);
+ }
+ };
+ var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead, ignoreNul) : "";
+ var _fd_write = (fd, iov, iovcnt, pnum) => {
+ var num = 0;
+ for (var i = 0; i < iovcnt; i++) {
+ var ptr = HEAPU32[iov >> 2];
+ var len = HEAPU32[iov + 4 >> 2];
+ iov += 8;
+ for (var j = 0; j < len; j++) {
+ printChar(fd, HEAPU8[ptr + j]);
+ }
+ num += len;
+ }
+ HEAPU32[pnum >> 2] = num;
+ return 0;
+ };
+ function _gray_to_rgba(compG_ptr, nb_pixels) {
+ compG_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i];
+ imageData[4 * i + 3] = 255;
+ }
+ }
+ function _graya_to_rgba(compG_ptr, compA_ptr, nb_pixels) {
+ compG_ptr >>= 2;
+ compA_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ const compA = HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i];
+ imageData[4 * i + 3] = compA[i];
+ }
+ }
+ function _jsPrintWarning(message_ptr) {
+ const message = UTF8ToString(message_ptr);
+ (Module.warn || console.warn)(`OpenJPEG: ${message}`);
+ }
+ function _rgb_to_rgba(compR_ptr, compG_ptr, compB_ptr, nb_pixels) {
+ compR_ptr >>= 2;
+ compG_ptr >>= 2;
+ compB_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);
+ const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[4 * i] = compR[i];
+ imageData[4 * i + 1] = compG[i];
+ imageData[4 * i + 2] = compB[i];
+ imageData[4 * i + 3] = 255;
+ }
+ }
+ function _storeErrorMessage(message_ptr) {
+ const message = UTF8ToString(message_ptr);
+ if (!Module.errorMessages) {
+ Module.errorMessages = message;
+ } else {
+ Module.errorMessages += "\n" + message;
+ }
+ }
+ var writeArrayToMemory = (array, buffer) => {
+ HEAP8.set(array, buffer);
+ };
+ if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
+ if (Module["print"]) out = Module["print"];
+ if (Module["printErr"]) err = Module["printErr"];
+ if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
+ if (Module["arguments"]) arguments_ = Module["arguments"];
+ if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
+ if (Module["preInit"]) {
+ if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
+ while (Module["preInit"].length > 0) {
+ Module["preInit"].shift()();
+ }
+ }
+ Module["writeArrayToMemory"] = writeArrayToMemory;
+ var _malloc, _free, _jp2_decode, __emscripten_timeout, memory, __indirect_function_table, wasmMemory;
+ function assignWasmExports(wasmExports) {
+ _malloc = Module["_malloc"] = wasmExports["t"];
+ _free = Module["_free"] = wasmExports["u"];
+ _jp2_decode = Module["_jp2_decode"] = wasmExports["v"];
+ __emscripten_timeout = wasmExports["w"];
+ memory = wasmMemory = wasmExports["r"];
+ __indirect_function_table = wasmExports["__indirect_function_table"];
+ }
+ var wasmImports = {
+ m: __abort_js,
+ l: __emscripten_runtime_keepalive_clear,
+ i: __setitimer_js,
+ f: _copy_pixels_1,
+ e: _copy_pixels_3,
+ d: _copy_pixels_4,
+ j: _emscripten_resize_heap,
+ o: _environ_get,
+ p: _environ_sizes_get,
+ n: _fd_seek,
+ b: _fd_write,
+ q: _gray_to_rgba,
+ h: _graya_to_rgba,
+ c: _jsPrintWarning,
+ k: _proc_exit,
+ g: _rgb_to_rgba,
+ a: _storeErrorMessage
+ };
+ function run() {
+ preRun();
+ function doRun() {
+ Module["calledRun"] = true;
+ if (ABORT) return;
+ initRuntime();
+ readyPromiseResolve?.(Module);
+ Module["onRuntimeInitialized"]?.();
+ postRun();
+ }
+ if (Module["setStatus"]) {
+ Module["setStatus"]("Running...");
+ setTimeout(() => {
+ setTimeout(() => Module["setStatus"](""), 1);
+ doRun();
+ }, 1);
+ } else {
+ doRun();
+ }
+ }
+ var wasmExports;
+ wasmExports = await createWasm();
+ run();
+ if (runtimeInitialized) {
+ moduleRtn = Module;
+ } else {
+ moduleRtn = new Promise((resolve, reject) => {
+ readyPromiseResolve = resolve;
+ readyPromiseReject = reject;
+ });
+ }
+ return moduleRtn;
+}
+/* harmony default export */ const openjpeg = (OpenJPEG);
+;// ./src/core/stream.js
+
+
+class Stream extends BaseStream {
+ constructor(arrayBuffer, start, length, dict) {
+ super();
+ this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);
+ this.start = start || 0;
+ this.pos = this.start;
+ this.end = start + length || this.bytes.length;
+ this.dict = dict;
+ }
+ get length() {
+ return this.end - this.start;
+ }
+ get isEmpty() {
+ return this.length === 0;
+ }
+ getByte() {
+ if (this.pos >= this.end) {
+ return -1;
+ }
+ return this.bytes[this.pos++];
+ }
+ getBytes(length) {
+ const bytes = this.bytes;
+ const pos = this.pos;
+ const strEnd = this.end;
+ if (!length) {
+ this.pos = strEnd;
+ return bytes.subarray(pos, strEnd);
+ }
+ let end = pos + length;
+ if (end > strEnd) {
+ end = strEnd;
+ }
+ this.pos = end;
+ return bytes.subarray(pos, end);
+ }
+ getByteRange(begin, end) {
+ if (begin < 0) {
+ begin = 0;
+ }
+ if (end > this.end) {
+ end = this.end;
+ }
+ return this.bytes.subarray(begin, end);
+ }
+ reset() {
+ this.pos = this.start;
+ }
+ moveStart() {
+ this.start = this.pos;
+ }
+ makeSubStream(start, length, dict = null) {
+ return new Stream(this.bytes.buffer, start, length, dict);
+ }
+ clone() {
+ return new Stream(this.bytes.buffer, this.start, this.end - this.start, this.dict.clone());
+ }
+}
+class StringStream extends Stream {
+ constructor(str) {
+ super(stringToBytes(str));
+ }
+}
+class NullStream extends Stream {
+ constructor() {
+ super(new Uint8Array(0));
+ }
+}
+
+;// ./src/core/jpx.js
+
+
+
+
+class JpxError extends BaseException {
+ constructor(msg) {
+ super(msg, "JpxError");
+ }
+}
+class JpxImage {
+ static #buffer = null;
+ static #handler = null;
+ static #modulePromise = null;
+ static #useWasm = true;
+ static #useWorkerFetch = true;
+ static #wasmUrl = null;
+ static setOptions({
+ handler,
+ useWasm,
+ useWorkerFetch,
+ wasmUrl
+ }) {
+ this.#useWasm = useWasm;
+ this.#useWorkerFetch = useWorkerFetch;
+ this.#wasmUrl = wasmUrl;
+ if (!useWorkerFetch) {
+ this.#handler = handler;
+ }
+ }
+ static async #getJsModule(fallbackCallback) {
+ const path = `${this.#wasmUrl}openjpeg_nowasm_fallback.js`;
+ let instance = null;
+ try {
+ const mod = await import(
+ /*webpackIgnore: true*/
+ /*@vite-ignore*/
+ path);
+ instance = mod.default();
+ } catch (e) {
+ warn(`JpxImage#getJsModule: ${e}`);
+ }
+ fallbackCallback(instance);
+ }
+ static async #instantiateWasm(fallbackCallback, imports, successCallback) {
+ const filename = "openjpeg.wasm";
+ try {
+ if (!this.#buffer) {
+ if (this.#useWorkerFetch) {
+ this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);
+ } else {
+ this.#buffer = await this.#handler.sendWithPromise("FetchBinaryData", {
+ kind: "wasmUrl",
+ filename
+ });
+ }
+ }
+ const results = await WebAssembly.instantiate(this.#buffer, imports);
+ return successCallback(results.instance);
+ } catch (reason) {
+ warn(`JpxImage#instantiateWasm: ${reason}`);
+ this.#getJsModule(fallbackCallback);
+ return null;
+ } finally {
+ this.#handler = null;
+ }
+ }
+ static async decode(bytes, {
+ numComponents = 4,
+ isIndexedColormap = false,
+ smaskInData = false,
+ reducePower = 0
+ } = {}) {
+ if (!this.#modulePromise) {
+ const {
+ promise,
+ resolve
+ } = Promise.withResolvers();
+ const promises = [promise];
+ if (!this.#useWasm) {
+ this.#getJsModule(resolve);
+ } else {
+ promises.push(openjpeg({
+ warn: warn,
+ instantiateWasm: this.#instantiateWasm.bind(this, resolve)
+ }));
+ }
+ this.#modulePromise = Promise.race(promises);
+ }
+ const module = await this.#modulePromise;
+ if (!module) {
+ throw new JpxError("OpenJPEG failed to initialize");
+ }
+ let ptr;
+ try {
+ const size = bytes.length;
+ ptr = module._malloc(size);
+ module.writeArrayToMemory(bytes, ptr);
+ const ret = module._jp2_decode(ptr, size, numComponents > 0 ? numComponents : 0, !!isIndexedColormap, !!smaskInData, reducePower);
+ if (ret) {
+ const {
+ errorMessages
+ } = module;
+ if (errorMessages) {
+ delete module.errorMessages;
+ throw new JpxError(errorMessages);
+ }
+ throw new JpxError("Unknown error");
+ }
+ const {
+ imageData
+ } = module;
+ module.imageData = null;
+ return imageData;
+ } finally {
+ if (ptr) {
+ module._free(ptr);
+ }
+ }
+ }
+ static cleanup() {
+ this.#modulePromise = null;
+ }
+ static parseImageProperties(stream) {
+ if (stream instanceof ArrayBuffer || ArrayBuffer.isView(stream)) {
+ stream = new Stream(stream);
+ } else {
+ throw new JpxError("Invalid data format, must be a TypedArray.");
+ }
+ let newByte = stream.getByte();
+ while (newByte >= 0) {
+ const oldByte = newByte;
+ newByte = stream.getByte();
+ const code = oldByte << 8 | newByte;
+ if (code === 0xff51) {
+ stream.skip(4);
+ const Xsiz = stream.getInt32() >>> 0;
+ const Ysiz = stream.getInt32() >>> 0;
+ const XOsiz = stream.getInt32() >>> 0;
+ const YOsiz = stream.getInt32() >>> 0;
+ stream.skip(16);
+ const Csiz = stream.getUint16();
+ return {
+ width: Xsiz - XOsiz,
+ height: Ysiz - YOsiz,
+ bitsPerComponent: 8,
+ componentsCount: Csiz
+ };
+ }
+ }
+ throw new JpxError("No size marker found in JPX stream");
+ }
+}
+
+;// ./src/pdf.image_decoders.js
+
+
+
+
+globalThis.pdfjsImageDecoders = {
+ getVerbosityLevel: getVerbosityLevel,
+ Jbig2Error: Jbig2Error,
+ Jbig2Image: JBig2CCITTFaxImage,
+ JpegError: JpegError,
+ JpegImage: JpegImage,
+ JpxError: JpxError,
+ JpxImage: JpxImage,
+ setVerbosityLevel: setVerbosityLevel,
+ VerbosityLevel: VerbosityLevel
+};
+
+export { Jbig2Error, JBig2CCITTFaxImage as Jbig2Image, JpegError, JpegImage, JpxError, JpxImage, VerbosityLevel, getVerbosityLevel, setVerbosityLevel };
+
+//# sourceMappingURL=pdf.image_decoders.mjs.map
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/image_decoders/pdf.image_decoders.mjs.map b/frontend/node_modules/pdfjs-dist/image_decoders/pdf.image_decoders.mjs.map
new file mode 100644
index 0000000..d6e8cf4
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/image_decoders/pdf.image_decoders.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"pdf.image_decoders.mjs","mappings":"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E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAC7E,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAA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","sources":["webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/./src/shared/util.js","webpack://pdf.js/./src/core/primitives.js","webpack://pdf.js/./src/core/base_stream.js","webpack://pdf.js/./src/core/core_utils.js","webpack://pdf.js/./external/jbig2/jbig2.js","webpack://pdf.js/./src/core/jbig2_ccittFax.js","webpack://pdf.js/./src/shared/math_clamp.js","webpack://pdf.js/./src/core/colorspace.js","webpack://pdf.js/./external/qcms/qcms_utils.js","webpack://pdf.js/./external/qcms/qcms.js","webpack://pdf.js/./src/core/icc_colorspace.js","webpack://pdf.js/./src/core/colorspace_utils.js","webpack://pdf.js/./src/shared/image_utils.js","webpack://pdf.js/./src/core/jpg.js","webpack://pdf.js/./external/openjpeg/openjpeg.js","webpack://pdf.js/./src/core/stream.js","webpack://pdf.js/./src/core/jpx.js","webpack://pdf.js/./src/pdf.image_decoders.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nconst BBOX_INIT = [Infinity, Infinity, -Infinity, -Infinity];\nconst F32_BBOX_INIT = new Float32Array(BBOX_INIT);\n\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - SAVE is used, on the worker-thread, when saving modified annotations.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - IS_EDITING is used when editing is active in the viewer.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n IS_EDITING: 0x80,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n HIGHLIGHT: 9,\n STAMP: 13,\n INK: 15,\n POPUP: 16,\n SIGNATURE: 101,\n COMMENT: 102,\n};\n\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23,\n INK_COLOR_AND_OPACITY: 24,\n HIGHLIGHT_COLOR: 31,\n HIGHLIGHT_THICKNESS: 32,\n HIGHLIGHT_FREE: 33,\n HIGHLIGHT_SHOW_ALL: 34,\n DRAW_STEP: 41,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst MeshFigureType = {\n TRIANGLES: 1,\n LATTICE: 2,\n PATCH: 3,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n // PLEASE NOTE: We purposely keep any removed operators commented out, since\n // re-numbering the list would risk breaking third-party users.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n // beginAnnotations: 78,\n // endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n // paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n setStrokeTransparent: 92,\n setFillTransparent: 93,\n rawFillPath: 94,\n};\n\n// In order to have a switch statement that is fast (i.e. which use a jump\n// table), we need to have the OPS in a contiguous range.\nconst DrawOPS = {\n moveTo: 0,\n lineTo: 1,\n curveTo: 2,\n quadraticCurveTo: 3,\n closePath: 4,\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n // eslint-disable-next-line no-console\n console.info(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n // eslint-disable-next-line no-console\n console.warn(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n\n const absoluteUrl = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);\n return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;\n}\n\n/**\n * Remove, or replace, the hash property of the URL.\n *\n * @param {URL|string} url - The absolute, or relative, URL.\n * @param {string} hash - The hash property (use an empty string to remove it).\n * @param {boolean} [allowRel] - Allow relative URLs.\n * @returns {string} The resulting URL string.\n */\nfunction updateUrlHash(url, hash, allowRel = false) {\n const res = URL.parse(url);\n if (res) {\n res.hash = hash;\n return res.href;\n }\n // Support well-formed relative URLs, necessary for `web/app.js` in GENERIC\n // builds, by optionally falling back to string parsing.\n if (allowRel && createValidAbsoluteUrl(url, \"http://example.com\")) {\n return url.split(\"#\", 1)[0] + `${hash ? `#${hash}` : \"\"}`;\n }\n return \"\";\n}\n\n// Extract the final component from a path string.\nfunction stripPath(str) {\n return str.substring(str.lastIndexOf(\"/\") + 1);\n}\n\nfunction shadow(obj, prop, value, nonSerializable = false) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n this.constructor === BaseException\n ) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass ResponseException extends BaseException {\n constructor(msg, status, missing) {\n super(msg, \"ResponseException\");\n this.status = status;\n this.missing = missing;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n\n static get isImageDecoderSupported() {\n return shadow(\n this,\n \"isImageDecoderSupported\",\n typeof ImageDecoder !== \"undefined\"\n );\n }\n\n static get isFloat16ArraySupported() {\n return shadow(\n this,\n \"isFloat16ArraySupported\",\n typeof Float16Array !== \"undefined\"\n );\n }\n\n static get isSanitizerSupported() {\n return shadow(\n this,\n \"isSanitizerSupported\",\n typeof Sanitizer !== \"undefined\"\n );\n }\n\n static get platform() {\n const { platform, userAgent } = navigator;\n\n return shadow(this, \"platform\", {\n isAndroid: userAgent.includes(\"Android\"),\n isLinux: platform.includes(\"Linux\"),\n isMac: platform.includes(\"Mac\"),\n isWindows: platform.includes(\"Win\"),\n isFirefox:\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n userAgent.includes(\"Firefox\"),\n });\n }\n\n static get isCSSRoundSupported() {\n return shadow(\n this,\n \"isCSSRoundSupported\",\n globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\")\n );\n }\n\n static get isAlphaColorInputSupported() {\n return shadow(\n this,\n \"isAlphaColorInputSupported\",\n (() => {\n if (typeof document === \"undefined\") {\n return false;\n }\n const input = document.createElement(\"input\");\n input.type = \"color\";\n input.setAttribute(\"alpha\", \"\");\n input.value = \"#ff000080\";\n // If alpha is supported the color picker retains the alpha channel, so\n // the value won't be a plain opaque color (7-char #rrggbb).\n return input.value !== \"#ff0000\";\n })()\n );\n }\n}\n\nclass Util {\n static get hexNums() {\n return shadow(\n this,\n \"hexNums\",\n Array.from(Array(256).keys(), n => n.toString(16).padStart(2, \"0\"))\n );\n }\n\n static makeHexColor(r, g, b) {\n return `#${this.hexNums[r]}${this.hexNums[g]}${this.hexNums[b]}`;\n }\n\n static domMatrixToTransform(dm) {\n return [dm.a, dm.b, dm.c, dm.d, dm.e, dm.f];\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swapped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[0];\n minMax[2] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[2];\n minMax[2] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[5];\n minMax[2] += transform[4];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // Multiplies m (an array-based transform) by md (a DOMMatrix transform).\n static multiplyByDOMMatrix(m, md) {\n return [\n m[0] * md.a + m[2] * md.b,\n m[1] * md.a + m[3] * md.b,\n m[0] * md.c + m[2] * md.d,\n m[1] * md.c + m[3] * md.d,\n m[0] * md.e + m[2] * md.f + m[4],\n m[1] * md.e + m[3] * md.f + m[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m, pos = 0) {\n const p0 = p[pos];\n const p1 = p[pos + 1];\n p[pos] = p0 * m[0] + p1 * m[2] + m[4];\n p[pos + 1] = p0 * m[1] + p1 * m[3] + m[5];\n }\n\n static applyTransformToBezier(p, transform, pos = 0) {\n const m0 = transform[0];\n const m1 = transform[1];\n const m2 = transform[2];\n const m3 = transform[3];\n const m4 = transform[4];\n const m5 = transform[5];\n for (let i = 0; i < 6; i += 2) {\n const pI = p[pos + i];\n const pI1 = p[pos + i + 1];\n p[pos + i] = pI * m0 + pI1 * m2 + m4;\n p[pos + i + 1] = pI * m1 + pI1 * m3 + m5;\n }\n }\n\n static applyInverseTransform(p, m) {\n const p0 = p[0];\n const p1 = p[1];\n const d = m[0] * m[3] - m[1] * m[2];\n p[0] = (p0 * m[3] - p1 * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n p[1] = (-p0 * m[1] + p1 * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static axialAlignedBoundingBox(rect, transform, output) {\n const m0 = transform[0];\n const m1 = transform[1];\n const m2 = transform[2];\n const m3 = transform[3];\n const m4 = transform[4];\n const m5 = transform[5];\n const r0 = rect[0];\n const r1 = rect[1];\n const r2 = rect[2];\n const r3 = rect[3];\n\n let a0 = m0 * r0 + m4;\n let a2 = a0;\n let a1 = m0 * r2 + m4;\n let a3 = a1;\n let b0 = m3 * r1 + m5;\n let b2 = b0;\n let b1 = m3 * r3 + m5;\n let b3 = b1;\n\n if (m1 !== 0 || m2 !== 0) {\n // Non-scaling matrix: shouldn't be frequent.\n const m1r0 = m1 * r0;\n const m1r2 = m1 * r2;\n const m2r1 = m2 * r1;\n const m2r3 = m2 * r3;\n a0 += m2r1;\n a3 += m2r1;\n a1 += m2r3;\n a2 += m2r3;\n b0 += m1r0;\n b3 += m1r0;\n b1 += m1r2;\n b2 += m1r2;\n }\n\n output[0] = Math.min(output[0], a0, a1, a2, a3);\n output[1] = Math.min(output[1], b0, b1, b2, b3);\n output[2] = Math.max(output[2], a0, a1, a2, a3);\n output[3] = Math.max(output[3], b0, b1, b2, b3);\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(matrix, output) {\n const m0 = matrix[0];\n const m1 = matrix[1];\n const m2 = matrix[2];\n const m3 = matrix[3];\n // Multiply matrix m with its transpose.\n const a = m0 ** 2 + m1 ** 2;\n const b = m0 * m2 + m1 * m3;\n const c = m2 ** 2 + m3 ** 2;\n\n // Solve the second degree polynomial to get roots.\n const first = (a + c) / 2;\n const second = Math.sqrt(first ** 2 - (a * c - b ** 2));\n output[0] = Math.sqrt(first + second || 1);\n output[1] = Math.sqrt(first - second || 1);\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n static pointBoundingBox(x, y, minMax) {\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n\n static rectBoundingBox(x0, y0, x1, y1, minMax) {\n minMax[0] = Math.min(minMax[0], x0, x1);\n minMax[1] = Math.min(minMax[1], y0, y1);\n minMax[2] = Math.max(minMax[2], x0, x1);\n minMax[3] = Math.max(minMax[3], y0, y1);\n }\n\n static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {\n if (t <= 0 || t >= 1) {\n return;\n }\n const mt = 1 - t;\n const tt = t * t;\n const ttt = tt * t;\n const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;\n const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n\n static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) >= 1e-12) {\n this.#getExtremumOnCurve(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n -c / b,\n minMax\n );\n }\n return;\n }\n\n const delta = b ** 2 - 4 * c * a;\n if (delta < 0) {\n return;\n }\n const sqrtDelta = Math.sqrt(delta);\n const a2 = 2 * a;\n this.#getExtremumOnCurve(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n (-b + sqrtDelta) / a2,\n minMax\n );\n this.#getExtremumOnCurve(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n (-b - sqrtDelta) / a2,\n minMax\n );\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n minMax[0] = Math.min(minMax[0], x0, x3);\n minMax[1] = Math.min(minMax[1], y0, y3);\n minMax[2] = Math.max(minMax[2], x0, x3);\n minMax[3] = Math.max(minMax[3], y0, y3);\n\n this.#getExtremum(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n 3 * (-x0 + 3 * (x1 - x2) + x3),\n 6 * (x0 - 2 * x1 + x2),\n 3 * (x1 - x0),\n minMax\n );\n this.#getExtremum(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n 3 * (-y0 + 3 * (y1 - y2) + y3),\n 6 * (y0 - 2 * y1 + y2),\n 3 * (y1 - y0),\n minMax\n );\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str, keepEscapeSequence = false) {\n // See section 7.9.2.2 Text String Type.\n // The string can contain some language codes bracketed with 0x1b,\n // so we must remove them.\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n const decoded = decoder.decode(buffer);\n if (keepEscapeSequence || !decoded.includes(\"\\x1b\")) {\n return decoded;\n }\n return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const charCode = str.charCodeAt(i);\n if (!keepEscapeSequence && charCode === 0x1b) {\n // eslint-disable-next-line no-empty\n while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n continue;\n }\n const code = PDFStringTranslateTable[charCode];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n if (!(date instanceof Date)) {\n date = new Date(date);\n }\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n // In order to generate the following regex:\n // - create a PDF containing all the chars in the range 0000-FFFF with\n // a NFKC which is different of the char.\n // - copy and paste all those chars and get the ones where NFKC is\n // required.\n // It appears that most the chars here contain some ligatures.\n NormalizeRegex =\n /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ο¬
\", \"ΕΏt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) =>\n p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2)\n );\n}\n\nfunction getUuid() {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n typeof crypto.randomUUID === \"function\"\n ) {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n crypto.getRandomValues(buf);\n return bytesToString(buf);\n}\n\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\n\nfunction _isValidExplicitDest(validRef, validName, dest) {\n if (!Array.isArray(dest) || dest.length < 2) {\n return false;\n }\n const [page, zoom, ...args] = dest;\n if (!validRef(page) && !Number.isInteger(page)) {\n return false;\n }\n if (!validName(zoom)) {\n return false;\n }\n const argsLen = args.length;\n let allowNull = true;\n switch (zoom.name) {\n case \"XYZ\":\n if (argsLen < 2 || argsLen > 3) {\n return false;\n }\n break;\n case \"Fit\":\n case \"FitB\":\n return argsLen === 0;\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (argsLen > 1) {\n return false;\n }\n break;\n case \"FitR\":\n if (argsLen !== 4) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (const arg of args) {\n if (typeof arg === \"number\" || (allowNull && arg === null)) {\n continue;\n }\n return false;\n }\n return true;\n}\n\n// Helpers for simple `Map.prototype.getOrInsertComputed()` invocations,\n// to avoid duplicate function creation.\nconst makeArr = () => [];\nconst makeMap = () => new Map();\nconst makeObj = () => Object.create(null);\n\n// See https://developer.mozilla.org/en-US/docs/Web/API/Blob/bytes#browser_compatibility\nif (\n typeof PDFJSDev !== \"undefined\" &&\n !PDFJSDev.test(\"SKIP_BABEL\") &&\n typeof Blob.prototype.bytes !== \"function\"\n) {\n Blob.prototype.bytes = async function () {\n return new Uint8Array(await this.arrayBuffer());\n };\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/API/Response/bytes#browser_compatibility\nif (\n typeof PDFJSDev !== \"undefined\" &&\n !PDFJSDev.test(\"SKIP_BABEL\") &&\n typeof Response.prototype.bytes !== \"function\"\n) {\n Response.prototype.bytes = async function () {\n return new Uint8Array(await this.arrayBuffer());\n };\n}\n\n// TODO: Remove this once Safari 17.4 is the lowest supported version.\nif (\n typeof PDFJSDev !== \"undefined\" &&\n !PDFJSDev.test(\"SKIP_BABEL\") &&\n typeof AbortSignal.any !== \"function\"\n) {\n AbortSignal.any = function (iterable) {\n const ac = new AbortController();\n const { signal } = ac;\n\n // Return immediately if any of the signals are already aborted.\n for (const s of iterable) {\n if (s.aborted) {\n ac.abort(s.reason);\n return signal;\n }\n }\n // Register \"abort\" listeners for all signals.\n for (const s of iterable) {\n s.addEventListener(\n \"abort\",\n () => {\n ac.abort(s.reason);\n },\n { signal } // Automatically remove the listener.\n );\n }\n\n return signal;\n };\n}\n\nexport {\n _isValidExplicitDest,\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationEditorParamsType,\n AnnotationEditorPrefix,\n AnnotationEditorType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMode,\n AnnotationPrefix,\n AnnotationReplyType,\n AnnotationType,\n assert,\n BaseException,\n BASELINE_FACTOR,\n BBOX_INIT,\n bytesToString,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n DrawOPS,\n F32_BBOX_INIT,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FormatError,\n getModificationDate,\n getUuid,\n getVerbosityLevel,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayEqual,\n isNodeJS,\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n makeArr,\n makeMap,\n makeObj,\n MeshFigureType,\n normalizeUnicode,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n ResponseException,\n setVerbosityLevel,\n shadow,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n stripPath,\n TextRenderingMode,\n UnknownErrorException,\n unreachable,\n updateUrlHash,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nlet CmdCache = Object.create(null);\nlet NameCache = Object.create(null);\nlet RefCache = Object.create(null);\n\nfunction clearPrimitiveCaches() {\n CmdCache = Object.create(null);\n NameCache = Object.create(null);\n RefCache = Object.create(null);\n}\n\nclass Name {\n constructor(name) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n typeof name !== \"string\"\n ) {\n unreachable('Name: The \"name\" must be a string.');\n }\n this.name = name;\n }\n\n static get(name) {\n // eslint-disable-next-line no-restricted-syntax\n return (NameCache[name] ||= new Name(name));\n }\n}\n\nclass Cmd {\n constructor(cmd) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n typeof cmd !== \"string\"\n ) {\n unreachable('Cmd: The \"cmd\" must be a string.');\n }\n this.cmd = cmd;\n }\n\n static get(cmd) {\n // eslint-disable-next-line no-restricted-syntax\n return (CmdCache[cmd] ||= new Cmd(cmd));\n }\n}\n\nconst nonSerializable = function nonSerializableClosure() {\n return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n __nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n\n #map = new Map();\n\n objId = null;\n\n suppressEncryption = false;\n\n xref;\n\n constructor(xref = null) {\n this.xref = xref;\n }\n\n assignXref(newXref) {\n this.xref = newXref;\n }\n\n get size() {\n return this.#map.size;\n }\n\n #getValue(isAsync, key1, key2, key3) {\n let value = this.#map.get(key1);\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.#getValue: Expected keys to be ordered by length.\");\n }\n value = this.#map.get(key2);\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.#getValue: Expected keys to be ordered by length.\");\n }\n value = this.#map.get(key3);\n }\n }\n if (value instanceof Ref && this.xref) {\n return isAsync\n ? this.xref.fetchAsync(value, this.suppressEncryption)\n : this.xref.fetch(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Automatically dereferences Ref objects.\n get(key1, key2, key3) {\n return this.#getValue(/* isAsync = */ false, key1, key2, key3);\n }\n\n // Same as get(), but returns a promise and uses fetchIfRefAsync().\n async getAsync(key1, key2, key3) {\n return this.#getValue(/* isAsync = */ true, key1, key2, key3);\n }\n\n // Same as get(), but dereferences all elements if the result is an Array.\n getArray(key1, key2, key3) {\n let value = this.#getValue(/* isAsync = */ false, key1, key2, key3);\n\n if (Array.isArray(value)) {\n value = value.slice(); // Ensure that we don't modify the Dict data.\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (value[i] instanceof Ref && this.xref) {\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n }\n }\n return value;\n }\n\n // No dereferencing.\n getRaw(key) {\n return this.#map.get(key);\n }\n\n getKeys() {\n return this.#map.keys();\n }\n\n // No dereferencing.\n getRawValues() {\n return this.#map.values();\n }\n\n getRawEntries() {\n return this.#map.entries();\n }\n\n set(key, value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n if (typeof key !== \"string\") {\n unreachable('Dict.set: The \"key\" must be a string.');\n } else if (value === undefined) {\n unreachable('Dict.set: The \"value\" cannot be undefined.');\n }\n }\n this.#map.set(key, value);\n }\n\n setIfNotExists(key, value) {\n if (!this.has(key)) {\n this.set(key, value);\n }\n }\n\n setIfNumber(key, value) {\n if (typeof value === \"number\") {\n this.set(key, value);\n }\n }\n\n setIfArray(key, value) {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n this.set(key, value);\n }\n }\n\n setIfDefined(key, value) {\n if (value !== undefined && value !== null) {\n this.set(key, value);\n }\n }\n\n setIfName(key, value) {\n if (typeof value === \"string\") {\n this.set(key, Name.get(value));\n } else if (value instanceof Name) {\n this.set(key, value);\n }\n }\n\n setIfDict(key, value) {\n if (value instanceof Dict) {\n this.set(key, value);\n }\n }\n\n has(key) {\n return this.#map.has(key);\n }\n\n *[Symbol.iterator]() {\n for (const [key, value] of this.#map) {\n yield [\n key,\n value instanceof Ref && this.xref\n ? this.xref.fetch(value, this.suppressEncryption)\n : value,\n ];\n }\n }\n\n static get empty() {\n const emptyDict = new Dict(null);\n\n emptyDict.set = (key, value) => {\n unreachable(\"Should not call `set` on the empty dictionary.\");\n };\n return shadow(this, \"empty\", emptyDict);\n }\n\n static merge({ xref, dictArray, mergeSubDicts = false }) {\n const mergedDict = new Dict(xref),\n properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n for (const [key, value] of dict.getRawEntries()) {\n let property = properties.get(key);\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n } else if (!mergeSubDicts || !(value instanceof Dict)) {\n // Ignore additional entries, if either:\n // - This is a \"shallow\" merge, where only the first element matters.\n // - The value is *not* a `Dict`, since other types cannot be merged.\n continue;\n }\n property.push(value);\n }\n }\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict.set(name, values[0]);\n continue;\n }\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n for (const [key, value] of dict.getRawEntries()) {\n subDict.setIfNotExists(key, value);\n }\n }\n if (subDict.size > 0) {\n mergedDict.set(name, subDict);\n }\n }\n properties.clear();\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n\n clone() {\n const dict = new Dict(this.xref);\n for (const [key, value] of this.#map) {\n dict.set(key, value);\n }\n return dict;\n }\n\n delete(key) {\n this.#map.delete(key);\n }\n}\n\nclass Ref {\n constructor(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n toString() {\n // This function is hot, so we make the string as compact as possible.\n // |this.gen| is almost always zero, so we treat that case specially.\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n return `${this.num}R${this.gen}`;\n }\n\n static fromString(str) {\n const ref = RefCache[str];\n if (ref) {\n return ref;\n }\n const m = /^(\\d+)R(\\d*)$/.exec(str);\n if (!m || m[1] === \"0\") {\n return null;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n return (RefCache[str] = new Ref(\n parseInt(m[1], 10),\n !m[2] ? 0 : parseInt(m[2], 10)\n ));\n }\n\n static get(num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n // eslint-disable-next-line no-restricted-syntax\n return (RefCache[key] ||= new Ref(num, gen));\n }\n}\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n constructor(parent = null) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n parent &&\n !(parent instanceof RefSet)\n ) {\n unreachable('RefSet: Invalid \"parent\" value.');\n }\n this._set = new Set(parent?._set);\n }\n\n has(ref) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n !(ref instanceof Ref) &&\n typeof ref !== \"string\"\n ) {\n unreachable('RefSet: Invalid \"ref\" value in has.');\n }\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n !(ref instanceof Ref) &&\n typeof ref !== \"string\"\n ) {\n unreachable('RefSet: Invalid \"ref\" value in put.');\n }\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n [Symbol.iterator]() {\n return this._set.values();\n }\n\n clear() {\n this._set.clear();\n }\n}\n\nclass RefSetCache {\n _map = new Map();\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n [Symbol.iterator]() {\n return this._map.values();\n }\n\n clear() {\n this._map.clear();\n }\n\n *values() {\n yield* this._map.values();\n }\n\n *items() {\n for (const [ref, value] of this._map) {\n yield [Ref.fromString(ref), value];\n }\n }\n\n *keys() {\n for (const ref of this._map.keys()) {\n yield Ref.fromString(ref);\n }\n }\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return (\n v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n );\n}\n\nfunction isRefsEqual(v1, v2) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n v1 instanceof Ref && v2 instanceof Ref,\n \"isRefsEqual: Both parameters should be `Ref`s.\"\n );\n }\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nexport {\n CIRCULAR_REF,\n clearPrimitiveCaches,\n Cmd,\n Dict,\n EOF,\n isCmd,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n constructor() {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n this.constructor === BaseStream\n ) {\n unreachable(\"Cannot initialize BaseStream.\");\n }\n }\n\n // eslint-disable-next-line getter-return\n get length() {\n unreachable(\"Abstract getter `length` accessed\");\n }\n\n // eslint-disable-next-line getter-return\n get isEmpty() {\n unreachable(\"Abstract getter `isEmpty` accessed\");\n }\n\n get isDataLoaded() {\n return shadow(this, \"isDataLoaded\", true);\n }\n\n getByte() {\n unreachable(\"Abstract method `getByte` called\");\n }\n\n getBytes(length) {\n unreachable(\"Abstract method `getBytes` called\");\n }\n\n /**\n * NOTE: This method can only be used to get image-data that is guaranteed\n * to be fully loaded, since otherwise intermittent errors may occur;\n * note the `ObjectLoader` class.\n */\n async getImageData(length, decoderOptions) {\n return this.getBytes(length, decoderOptions);\n }\n\n async asyncGetBytes() {\n unreachable(\"Abstract method `asyncGetBytes` called\");\n }\n\n get isAsync() {\n return false;\n }\n\n get isAsyncDecoder() {\n return false;\n }\n\n get isImageStream() {\n return false;\n }\n\n get canAsyncDecodeImageFromBuffer() {\n return false;\n }\n\n async getTransferableImage() {\n return null;\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n if (peekedByte !== -1) {\n this.pos--;\n }\n return peekedByte;\n }\n\n peekBytes(length) {\n const bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getByteRange(begin, end) {\n unreachable(\"Abstract method `getByteRange` called\");\n }\n\n getString(length) {\n return bytesToString(this.getBytes(length));\n }\n\n skip(n) {\n this.pos += n || 1;\n }\n\n reset() {\n unreachable(\"Abstract method `reset` called\");\n }\n\n moveStart() {\n unreachable(\"Abstract method `moveStart` called\");\n }\n\n makeSubStream(start, length, dict = null) {\n unreachable(\"Abstract method `makeSubStream` called\");\n }\n\n /**\n * @returns {Array | null}\n */\n getBaseStreams() {\n return null;\n }\n\n getOriginalStream() {\n return this.stream?.getOriginalStream() || this;\n }\n}\n\nexport { BaseStream };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationEditorPrefix,\n assert,\n BaseException,\n makeArr,\n objectSize,\n stringToPDFString,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nconst PDF_VERSION_REGEXP = /^[1-9]\\.\\d$/;\nconst MAX_INT_32 = 2 ** 31 - 1;\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\n\nconst RESOURCES_KEYS_OPERATOR_LIST = [\n \"ColorSpace\",\n \"ExtGState\",\n \"Font\",\n \"Pattern\",\n \"Properties\",\n \"Shading\",\n \"XObject\",\n];\n\nconst RESOURCES_KEYS_TEXT_CONTENT = [\n \"ExtGState\",\n \"Font\",\n \"Properties\",\n \"XObject\",\n];\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nclass MissingDataException extends BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n this.begin = begin;\n this.end = end;\n }\n}\n\nclass ParserEOFException extends BaseException {\n constructor(msg) {\n super(msg, \"ParserEOFException\");\n }\n}\n\nclass XRefEntryException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefEntryException\");\n }\n}\n\nclass XRefParseException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefParseException\");\n }\n}\n\n/**\n * Combines multiple ArrayBuffers into a single Uint8Array.\n * @param {Array} arr - An array of ArrayBuffers.\n * @returns {Uint8Array}\n */\nfunction arrayBuffersToBytes(arr) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n for (const item of arr) {\n assert(\n item instanceof ArrayBuffer,\n \"arrayBuffersToBytes - expected an ArrayBuffer.\"\n );\n }\n }\n const length = arr.length;\n if (length === 0) {\n return new Uint8Array(0);\n }\n if (length === 1) {\n return new Uint8Array(arr[0]);\n }\n let dataLength = 0;\n for (let i = 0; i < length; i++) {\n dataLength += arr[i].byteLength;\n }\n const data = new Uint8Array(dataLength);\n let pos = 0;\n for (let i = 0; i < length; i++) {\n const item = new Uint8Array(arr[i]);\n data.set(item, pos);\n pos += item.byteLength;\n }\n return data;\n}\n\nasync function fetchBinaryData(url) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `Failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n }\n return response.bytes();\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true,\n}) {\n let values;\n const visited = new RefSet();\n\n while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n const value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n (values ||= []).push(value);\n }\n dict = dict.get(\"Parent\");\n }\n return values;\n}\n\n/**\n * Get the parent dictionary to update when a property is set.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {Ref} ref - The reference to the dictionary.\n * @param {XRef} xref - The `XRef` instance.\n */\nfunction getParentToUpdate(dict, ref, xref) {\n const visited = new RefSet();\n const firstDict = dict;\n const result = { dict: null, ref: null };\n\n while (dict instanceof Dict && !visited.has(ref)) {\n visited.put(ref);\n if (dict.has(\"T\")) {\n break;\n }\n ref = dict.getRaw(\"Parent\");\n if (!(ref instanceof Ref)) {\n return result;\n }\n dict = xref.fetch(ref);\n }\n if (dict instanceof Dict && dict !== firstDict) {\n result.dict = dict;\n result.ref = ref;\n }\n return result;\n}\n\nfunction deepCompare(a, b) {\n if (a === b) {\n return true;\n }\n if (a instanceof Dict && b instanceof Dict) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value1] of a.getRawEntries()) {\n const value2 = b.getRaw(key);\n if (value2 === undefined || !deepCompare(value1, value2)) {\n return false;\n }\n }\n return true;\n }\n\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0, ii = a.length; i < ii; i++) {\n if (!deepCompare(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n\n return false;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(\n Number.isInteger(number) && number > 0,\n \"The number should be a positive integer.\"\n );\n\n const roman =\n \"M\".repeat((number / 1000) | 0) +\n ROMAN_NUMBER_MAP[((number % 1000) / 100) | 0] +\n ROMAN_NUMBER_MAP[10 + (((number % 100) / 10) | 0)] +\n ROMAN_NUMBER_MAP[20 + (number % 10)];\n return lowerCase ? roman.toLowerCase() : roman;\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * Checks if something is an Array containing only boolean values,\n * and (optionally) checks its length.\n * @param {any} arr\n * @param {number | null} len\n * @returns {boolean}\n */\nfunction isBooleanArray(arr, len) {\n return (\n Array.isArray(arr) &&\n (len === null || arr.length === len) &&\n arr.every(x => typeof x === \"boolean\")\n );\n}\n\n/**\n * Checks if something is an Array containing only numbers,\n * and (optionally) checks its length.\n * @param {any} arr\n * @param {number | null} len\n * @returns {boolean}\n */\nfunction isNumberArray(arr, len) {\n if (Array.isArray(arr)) {\n return (\n (len === null || arr.length === len) &&\n arr.every(x => typeof x === \"number\")\n );\n }\n\n // This check allows us to have typed arrays but not the\n // BigInt64Array/BigUint64Array types (their elements aren't \"number\").\n return (\n ArrayBuffer.isView(arr) &&\n !(arr instanceof BigInt64Array || arr instanceof BigUint64Array) &&\n (len === null || arr.length === len)\n );\n}\n\n// Returns the matrix, or the fallback value if it's invalid.\nfunction lookupMatrix(arr, fallback) {\n return isNumberArray(arr, 6) ? arr : fallback;\n}\n\n// Returns the rectangle, or the fallback value if it's invalid.\nfunction lookupRect(arr, fallback) {\n return isNumberArray(arr, 4) ? arr : fallback;\n}\n\n// Returns the normalized rectangle, or the fallback value if it's invalid.\nfunction lookupNormalRect(arr, fallback) {\n return isNumberArray(arr, 4) ? Util.normalizeRect(arr) : fallback;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[(\\d+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n if (m) {\n return { name: m[1], pos: parseInt(m[2], 10) };\n }\n return { name: component, pos: 0 };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n // Whitespace or delimiters aren't regular chars, so escape them.\n if (\n char < 0x21 ||\n char > 0x7e ||\n char === 0x23 /* # */ ||\n char === 0x28 /* ( */ ||\n char === 0x29 /* ) */ ||\n char === 0x3c /* < */ ||\n char === 0x3e /* > */ ||\n char === 0x5b /* [ */ ||\n char === 0x5d /* ] */ ||\n char === 0x7b /* { */ ||\n char === 0x7d /* } */ ||\n char === 0x2f /* / */ ||\n char === 0x25 /* % */\n ) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`#${char.toString(16)}`);\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\n// Replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\" by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n// in order to write it in a PDF file.\nfunction escapeString(str) {\n return str.replaceAll(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n if (entry instanceof Ref) {\n if (parents.has(entry)) {\n // If we've already found entry then we've a cycle.\n return;\n }\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof Dict) {\n if (isName(entry.get(\"S\"), \"JavaScript\")) {\n const js = entry.get(\"JS\");\n let code;\n if (js instanceof BaseStream) {\n code = js.getString();\n } else if (typeof js === \"string\") {\n code = js;\n }\n code &&= stringToPDFString(\n code,\n /* keepEscapeSequence = */ true\n ).replaceAll(\"\\x00\", \"\");\n if (code) {\n list.push(code.trim());\n }\n }\n _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n }\n\n if (parent) {\n parents.remove(parent);\n }\n}\n\nfunction collectActions(xref, dict, eventType) {\n const actions = Object.create(null);\n const additionalActionsDicts = getInheritableProperty({\n dict,\n key: \"AA\",\n stopWhenFound: false,\n });\n if (additionalActionsDicts) {\n // additionalActionsDicts contains dicts from ancestors\n // as they're found in the tree from bottom to top.\n // So the dicts are visited in reverse order to guarantee\n // that actions from elder ancestors will be overwritten\n // by ones from younger ancestors.\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n if (!(additionalActions instanceof Dict)) {\n continue;\n }\n for (const [key, rawActionDict] of additionalActions.getRawEntries()) {\n const action = eventType[key];\n if (!action) {\n continue;\n }\n const parents = new RefSet();\n const list = [];\n _collectJS(rawActionDict, xref, list, parents);\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n // Collect the Action if any (we may have one on pushbutton).\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n /* < */ 0x3c: \"<\",\n /* > */ 0x3e: \">\",\n /* & */ 0x26: \"&\",\n /* \" */ 0x22: \""\",\n /* ' */ 0x27: \"'\",\n};\n\nfunction* codePointIter(str) {\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n yield char;\n }\n}\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n return buffer.join(\"\");\n}\n\nfunction validateFontName(fontFamily, mustWarn = false) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n const m = /^(\"|').*(\"|')$/.exec(fontFamily);\n if (m && m[1] === m[2]) {\n const re = new RegExp(`[^\\\\\\\\]${m[1]}`);\n if (re.test(fontFamily.slice(1, -1))) {\n if (mustWarn) {\n warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`);\n }\n return false;\n }\n } else {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n for (const ident of fontFamily.split(/[ \\t]+/)) {\n if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n if (mustWarn) {\n warn(`FontFamily contains invalid : ${fontFamily}.`);\n }\n return false;\n }\n }\n }\n return true;\n}\n\nfunction validateCSSFont(cssFontInfo) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n const CSS_FONT_WEIGHT_VALUES = new Set([\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\",\n \"1000\",\n \"normal\",\n \"bold\",\n \"bolder\",\n \"lighter\",\n ]);\n\n const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n if (!validateFontName(fontFamily, true)) {\n return false;\n }\n\n const weight = fontWeight ? fontWeight.toString() : \"\";\n cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n ? weight\n : DEFAULT_CSS_FONT_WEIGHT;\n\n const angle = parseFloat(italicAngle);\n cssFontInfo.italicAngle =\n isNaN(angle) || angle < -90 || angle > 90\n ? DEFAULT_CSS_FONT_OBLIQUE\n : italicAngle.toString();\n\n return true;\n}\n\nfunction recoverJsURL(str) {\n // Attempt to recover valid URLs from `JS` entries with certain\n // white-listed formats:\n // - window.open('http://example.com')\n // - app.launchURL('http://example.com', true)\n // - xfa.host.gotoURL('http://example.com')\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n const regex = new RegExp(\n \"^\\\\s*(\" +\n URL_OPEN_METHODS.join(\"|\").replaceAll(\".\", \"\\\\.\") +\n \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n \"i\"\n );\n\n const jsUrl = regex.exec(str);\n if (jsUrl?.[2]) {\n return {\n url: jsUrl[2],\n newWindow: jsUrl[1] === \"app.launchURL\" && jsUrl[3] === \"true\",\n };\n }\n\n return null;\n}\n\nfunction numberToString(value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n typeof value === \"number\",\n `numberToString - the value (${value}) should be a number.`\n );\n }\n\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const newAnnotationsByPage = new Map();\n // The concept of page in a XFA is very different, so\n // editing is just not implemented.\n for (const [key, value] of annotationStorage) {\n if (!key.startsWith(AnnotationEditorPrefix)) {\n continue;\n }\n newAnnotationsByPage\n .getOrInsertComputed(value.pageIndex, makeArr)\n .push(value);\n }\n return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\n// If the string is null or undefined then it is returned as is.\nfunction stringToAsciiOrUTF16BE(str) {\n if (str === null || str === undefined) {\n return str;\n }\n return isAscii(str) ? str : stringToUTF16String(str, /* bigEndian = */ true);\n}\n\nfunction isAscii(str) {\n if (typeof str !== \"string\") {\n return false;\n }\n return !str || /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16HexString(str) {\n const buf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(Util.hexNums[(char >> 8) & 0xff], Util.hexNums[char & 0xff]);\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF16String(str, bigEndian = false) {\n const buf = [];\n if (bigEndian) {\n buf.push(\"\\xFE\\xFF\");\n }\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction getRotationMatrix(rotation, width, height) {\n switch (rotation) {\n case 90:\n return [0, 1, -1, 0, width, 0];\n case 180:\n return [-1, 0, 0, -1, width, height];\n case 270:\n return [0, -1, 1, 0, 0, height];\n default:\n throw new Error(\"Invalid rotation\");\n }\n}\n\n/**\n * Get the number of bytes to use to represent the given positive integer.\n * If n is zero, the function returns 0 which means that we don't need to waste\n * a byte to represent it.\n * @param {number} x - a positive integer.\n * @returns {number}\n */\nfunction getSizeInBytes(x) {\n // n bits are required for numbers up to 2^n - 1.\n // So for a number x, we need ceil(log2(1 + x)) bits.\n return Math.ceil(Math.ceil(Math.log2(1 + x)) / 8);\n}\n\nexport {\n arrayBuffersToBytes,\n codePointIter,\n collectActions,\n deepCompare,\n encodeToXmlString,\n escapePDFName,\n escapeString,\n fetchBinaryData,\n getInheritableProperty,\n getLookupTableFactory,\n getNewAnnotationsMap,\n getParentToUpdate,\n getRotationMatrix,\n getSizeInBytes,\n IDENTITY_MATRIX,\n isAscii,\n isBooleanArray,\n isNumberArray,\n isWhiteSpace,\n lookupMatrix,\n lookupNormalRect,\n lookupRect,\n MAX_INT_32,\n MissingDataException,\n numberToString,\n ParserEOFException,\n parseXFAPath,\n PDF_VERSION_REGEXP,\n recoverJsURL,\n RESOURCES_KEYS_OPERATOR_LIST,\n RESOURCES_KEYS_TEXT_CONTENT,\n stringToAsciiOrUTF16BE,\n stringToUTF16HexString,\n stringToUTF16String,\n toRomanNumerals,\n validateCSSFont,\n validateFontName,\n XRefEntryException,\n XRefParseException,\n};\n","/* THIS FILE IS GENERATED - DO NOT EDIT */\nasync function JBig2(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports[\"j\"]()}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"jbig2.wasm\")}return new URL(\"jbig2.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;var __abort_js=()=>abort(\"\");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};function _createImageData(size){Module.imageData=new Uint8Array(size)}var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};function _setImageData(array_ptr,pitch8,pitch32,height){if(pitch32===pitch8){Module.imageData=new Uint8ClampedArray(HEAPU8.subarray(array_ptr,array_ptr+pitch32*height));return}const destSize=pitch8*height;const imageData=Module.imageData=new Uint8ClampedArray(destSize);for(let srcStart=array_ptr,destStart=0;destStart{HEAP8.set(array,buffer)};{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"writeArrayToMemory\"]=writeArrayToMemory;var _malloc,_free,_jbig2_decode,_ccitt_decode,__emscripten_timeout,memory,__indirect_function_table,wasmMemory;function assignWasmExports(wasmExports){_malloc=Module[\"_malloc\"]=wasmExports[\"k\"];_free=Module[\"_free\"]=wasmExports[\"l\"];_jbig2_decode=Module[\"_jbig2_decode\"]=wasmExports[\"m\"];_ccitt_decode=Module[\"_ccitt_decode\"]=wasmExports[\"n\"];__emscripten_timeout=wasmExports[\"o\"];memory=wasmMemory=wasmExports[\"i\"];__indirect_function_table=wasmExports[\"__indirect_function_table\"]}var wasmImports={e:__abort_js,b:__emscripten_runtime_keepalive_clear,c:__setitimer_js,g:_createImageData,d:_emscripten_resize_heap,a:_proc_exit,h:_setImageData,f:_setLineData};function run(){preRun();function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default JBig2;\n","/* Copyright 2026 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, warn } from \"../shared/util.js\";\nimport { fetchBinaryData } from \"./core_utils.js\";\nimport JBig2 from \"../../external/jbig2/jbig2.js\";\n\nclass Jbig2Error extends BaseException {\n constructor(msg) {\n super(msg, \"Jbig2Error\");\n }\n}\n\nclass JBig2CCITTFaxImage {\n static #buffer = null;\n\n static #handler = null;\n\n static #modulePromise = null;\n\n static #useWasm = true;\n\n static #useWorkerFetch = true;\n\n static #wasmUrl = null;\n\n static setOptions({ handler, useWasm, useWorkerFetch, wasmUrl }) {\n this.#useWasm = useWasm;\n this.#useWorkerFetch = useWorkerFetch;\n this.#wasmUrl = wasmUrl;\n\n if (!useWorkerFetch) {\n this.#handler = handler;\n }\n }\n\n static async #getJsModule(fallbackCallback) {\n const path =\n typeof PDFJSDev === \"undefined\"\n ? `../${this.#wasmUrl}jbig2_nowasm_fallback.js`\n : `${this.#wasmUrl}jbig2_nowasm_fallback.js`;\n\n let instance = null;\n try {\n const mod = await (typeof PDFJSDev === \"undefined\"\n ? import(path) // eslint-disable-line no-unsanitized/method\n : __raw_import__(path));\n instance = mod.default();\n } catch (e) {\n warn(`JBig2CCITTFaxImage#getJsModule: ${e}`);\n }\n fallbackCallback(instance);\n }\n\n static async #instantiateWasm(fallbackCallback, imports, successCallback) {\n const filename = \"jbig2.wasm\";\n try {\n if (!this.#buffer) {\n if (this.#useWorkerFetch) {\n this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);\n } else {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Only worker-thread fetching supported.\");\n }\n this.#buffer = await this.#handler.sendWithPromise(\n \"FetchBinaryData\",\n { kind: \"wasmUrl\", filename }\n );\n }\n }\n const results = await WebAssembly.instantiate(this.#buffer, imports);\n return successCallback(results.instance);\n } catch (reason) {\n warn(`JBig2CCITTFaxImage#instantiateWasm: ${reason}`);\n\n this.#getJsModule(fallbackCallback);\n return null;\n } finally {\n this.#handler = null;\n }\n }\n\n static async decode(bytes, width, height, globals, CCITTOptions) {\n if (!this.#modulePromise) {\n const { promise, resolve } = Promise.withResolvers();\n const promises = [promise];\n if (!this.#useWasm) {\n this.#getJsModule(resolve);\n } else {\n promises.push(\n JBig2({\n warn,\n instantiateWasm: this.#instantiateWasm.bind(this, resolve),\n })\n );\n }\n this.#modulePromise = Promise.race(promises);\n }\n const module = await this.#modulePromise;\n\n if (!module) {\n throw new Jbig2Error(\"JBig2 failed to initialize\");\n }\n let ptr, globalsPtr;\n\n try {\n const size = bytes.length;\n ptr = module._malloc(size);\n module.writeArrayToMemory(bytes, ptr);\n\n if (CCITTOptions) {\n module._ccitt_decode(\n ptr,\n size,\n width,\n height,\n CCITTOptions.K,\n CCITTOptions.EndOfLine ? 1 : 0,\n CCITTOptions.EncodedByteAlign ? 1 : 0,\n CCITTOptions.BlackIs1 ? 1 : 0,\n CCITTOptions.Columns,\n CCITTOptions.Rows\n );\n } else {\n const globalsSize = globals ? globals.length : 0;\n if (globalsSize > 0) {\n globalsPtr = module._malloc(globalsSize);\n module.writeArrayToMemory(globals, globalsPtr);\n }\n module._jbig2_decode(ptr, size, width, height, globalsPtr, globalsSize);\n }\n if (!module.imageData) {\n throw new Jbig2Error(\"Unknown error\");\n }\n const { imageData } = module;\n module.imageData = null;\n\n return imageData;\n } finally {\n if (ptr) {\n module._free(ptr);\n }\n if (globalsPtr) {\n module._free(globalsPtr);\n }\n }\n }\n\n static cleanup() {\n this.#modulePromise = null;\n }\n}\n\nexport { JBig2CCITTFaxImage, Jbig2Error };\n","/* Copyright 2026 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// TODO: Replace all occurrences of this function, and remove the file, once\n// https://github.com/tc39/proposal-math-clamp/ is generally available.\nfunction MathClamp(v, min, max) {\n // eslint-disable-next-line prefer-math-clamp/prefer-math-clamp\n return Math.min(Math.max(v, min), max);\n}\n\nexport { MathClamp };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FeatureTest,\n FormatError,\n info,\n shadow,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MathClamp } from \"../shared/math_clamp.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\n */\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n const COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1 * COMPONENTS;\n\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n for (let j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n}\n\nfunction resizeRgbaImage(src, dest, w1, h1, w2, h2, alpha01) {\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0;\n const xScaled = new Uint16Array(w2);\n\n if (alpha01 === 1) {\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n const src32 = new Uint32Array(src.buffer);\n const dest32 = new Uint32Array(dest.buffer);\n const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;\n for (let i = 0; i < h2; i++) {\n const buf = src32.subarray(Math.floor(i * yRatio) * w1);\n for (let j = 0; j < w2; j++) {\n dest32[newIndex++] |= buf[xScaled[j]] & rgbMask;\n }\n }\n } else {\n const COMPONENTS = 4;\n const w1Scanline = w1 * COMPONENTS;\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (let i = 0; i < h2; i++) {\n const buf = src.subarray(Math.floor(i * yRatio) * w1Scanline);\n for (let j = 0; j < w2; j++) {\n const oldIndex = xScaled[j];\n dest[newIndex++] = buf[oldIndex];\n dest[newIndex++] = buf[oldIndex + 1];\n dest[newIndex++] = buf[oldIndex + 2];\n }\n }\n }\n}\n\nfunction copyRgbaImage(src, dest, alpha01) {\n if (alpha01 === 1) {\n const src32 = new Uint32Array(src.buffer);\n const dest32 = new Uint32Array(dest.buffer);\n const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;\n for (let i = 0, ii = src32.length; i < ii; i++) {\n dest32[i] |= src32[i] & rgbMask;\n }\n } else {\n let j = 0;\n for (let i = 0, ii = src.length; i < ii; i += 4) {\n dest[j++] = src[i];\n dest[j++] = src[i + 1];\n dest[j++] = src[i + 2];\n }\n }\n}\n\nfunction isDefaultDecodeHelper(decode, expectedLen) {\n if (!Array.isArray(decode)) {\n return true;\n }\n const decodeLen = decode.length;\n\n if (decodeLen < expectedLen) {\n warn(\"Decode map length is too short.\");\n return true;\n }\n if (decodeLen > expectedLen) {\n info(\"Truncating too long decode map.\");\n decode.length = expectedLen;\n }\n return false;\n}\n\nclass ColorSpace {\n static #rgbBuf = new Uint8ClampedArray(3);\n\n constructor(name, numComps) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n this.constructor === ColorSpace\n ) {\n unreachable(\"Cannot initialize ColorSpace.\");\n }\n this.name = name;\n this.numComps = numComps;\n }\n\n /**\n * Converts the color value to the RGB color. The color components are\n * located in the src array starting from the srcOffset. Returns the array\n * of the rgb components, each value ranging from [0,255].\n */\n getRgb(src, srcOffset, output = new Uint8ClampedArray(3)) {\n this.getRgbItem(src, srcOffset, output, 0);\n return output;\n }\n\n getRgbHex(src, srcOffset) {\n const buffer = this.getRgb(src, srcOffset, ColorSpace.#rgbBuf);\n return Util.makeHexColor(buffer[0], buffer[1], buffer[2]);\n }\n\n /**\n * Converts the color value to the RGB color, similar to the getRgb method.\n * The result placed into the dest array starting from the destOffset.\n */\n getRgbItem(src, srcOffset, dest, destOffset) {\n unreachable(\"Should not call ColorSpace.getRgbItem\");\n }\n\n /**\n * Converts the specified number of the color values to the RGB colors.\n * The colors are located in the src array starting from the srcOffset.\n * The result is placed into the dest array starting from the destOffset.\n * The src array items shall be in [0,2^bits) range, the dest array items\n * will be in [0,255] range. alpha01 indicates how many alpha components\n * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n * array).\n */\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n /**\n * Determines the number of bytes required to store the result of the\n * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n */\n getOutputLength(inputLength, alpha01) {\n unreachable(\"Should not call ColorSpace.getOutputLength\");\n }\n\n /**\n * Returns true if source data will be equal the result/output data.\n */\n isPassthrough(bits) {\n return false;\n }\n\n /**\n * Refer to the static `ColorSpace.isDefaultDecode` method below.\n */\n isDefaultDecode(decode, bpc) {\n return ColorSpace.isDefaultDecode(decode, this.numComps);\n }\n\n /**\n * Fills in the RGB colors in the destination buffer. alpha01 indicates\n * how many alpha components there are in the dest array; it will be either\n * 0 (RGB array) or 1 (RGBA array).\n */\n fillRgb(\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n actualHeight,\n bpc,\n comps,\n alpha01\n ) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n );\n }\n const count = originalWidth * originalHeight;\n let rgbBuf = null;\n const numComponentColors = 1 << bpc;\n const needsResizing = originalHeight !== height || originalWidth !== width;\n\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (\n this.numComps === 1 &&\n count > numComponentColors &&\n this.name !== \"DeviceGray\" &&\n this.name !== \"DeviceRGB\"\n ) {\n // Optimization: create a color map when there is just one component and\n // we are converting more colors than the size of the color map. We\n // don't build the map if the colorspace is gray or rgb since those\n // methods are faster than building a map. This mainly offers big speed\n // ups for indexed and alternate colorspaces.\n //\n // TODO it may be worth while to cache the color map. While running\n // testing I never hit a cache so I will leave that out for now (perhaps\n // we are reparsing colorspaces too much?).\n const allColors =\n bpc <= 8\n ? new Uint8Array(numComponentColors)\n : new Uint16Array(numComponentColors);\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(\n allColors,\n 0,\n numComponentColors,\n colorMap,\n 0,\n bpc,\n /* alpha01 = */ 0\n );\n\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n let destPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n let rgbPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, /* alpha01 = */ 0);\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(\n rgbBuf,\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n alpha01\n );\n } else {\n let destPos = 0,\n rgbPos = 0;\n for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n }\n\n /**\n * True if the colorspace has components in the default range of [0, 1].\n * This should be true for all colorspaces except for lab color spaces\n * which are [0,100], [-128, 127], [-128, 127].\n */\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", true);\n }\n\n /**\n * Checks if a decode map matches the default decode map for a color space.\n * This handles the general decode maps where there are two values per\n * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n * This does not handle Lab, Indexed, or Pattern decode maps since they are\n * slightly different.\n * @param {Array} decode - Decode map (usually from an image).\n * @param {number} numComps - Number of components the color space has.\n */\n static isDefaultDecode(decode, numComps) {\n if (isDefaultDecodeHelper(decode, numComps * 2)) {\n return true;\n }\n for (let i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces. A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\n */\nclass AlternateCS extends ColorSpace {\n constructor(numComps, base, tintFn) {\n super(\"Alternate\", numComps);\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const tintFn = this.tintFn;\n const base = this.base;\n const scale = 1 / ((1 << bits) - 1);\n const baseNumComps = base.numComps;\n const usesZeroToOneRange = base.usesZeroToOneRange;\n const isPassthrough =\n (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough\n ? dest\n : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\n\n const scaled = new Float32Array(numComps);\n const tinted = new Float32Array(baseNumComps);\n let i, j;\n\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(\n (inputLength * this.base.numComps) / this.numComps,\n alpha01\n );\n }\n}\n\nclass PatternCS extends ColorSpace {\n constructor(baseCS) {\n super(\"Pattern\", null);\n this.base = baseCS;\n }\n\n isDefaultDecode(decode, bpc) {\n unreachable(\"Should not call PatternCS.isDefaultDecode\");\n }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n\n const length = base.numComps * (highVal + 1);\n this.lookup = new Uint8Array(length);\n\n if (lookup instanceof BaseStream) {\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if (typeof lookup === \"string\") {\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n }\n } else {\n throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const { base, highVal, lookup } = this;\n const start =\n MathClamp(Math.round(src[srcOffset]), 0, highVal) * base.numComps;\n base.getRgbBuffer(lookup, start, 1, dest, destOffset, 8, 0);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const { base, highVal, lookup } = this;\n const { numComps } = base;\n const outputDelta = base.getOutputLength(numComps, alpha01);\n\n for (let i = 0; i < count; ++i) {\n const lookupPos =\n MathClamp(Math.round(src[srcOffset++]), 0, highVal) * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n\n isDefaultDecode(decode, bpc) {\n if (isDefaultDecodeHelper(decode, 2)) {\n return true;\n }\n if (!Number.isInteger(bpc) || bpc < 1) {\n warn(\"Bits per component is not correct\");\n return true;\n }\n return decode[0] === 0 && decode[1] === (1 << bpc) - 1;\n }\n}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n const c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n dest[destOffset] = src[srcOffset] * 255;\n dest[destOffset + 1] = src[srcOffset + 1] * 255;\n dest[destOffset + 2] = src[srcOffset + 2] * 255;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nclass DeviceRgbaCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGBA\", 4);\n }\n\n getOutputLength(inputLength, _alpha01) {\n return inputLength * 4;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n\n fillRgb(\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n actualHeight,\n bpc,\n comps,\n alpha01\n ) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbaCS.fillRgb: Unsupported \"dest\" type.'\n );\n }\n if (originalHeight !== height || originalWidth !== width) {\n resizeRgbaImage(\n comps,\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n alpha01\n );\n } else {\n copyRgbaImage(comps, dest, alpha01);\n }\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nclass DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n // The coefficients below was found using numerical analysis: the method of\n // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n // where color_value is the tabular value from the table of sampled RGB colors\n // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n // CMYK color conversion using the estimation below:\n // f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n #toRgb(src, srcOffset, srcScale, dest, destOffset) {\n const c = src[srcOffset] * srcScale;\n const m = src[srcOffset + 1] * srcScale;\n const y = src[srcOffset + 2] * srcScale;\n const k = src[srcOffset + 3] * srcScale;\n\n dest[destOffset] =\n 255 +\n c *\n (-4.387332384609988 * c +\n 54.48615194189176 * m +\n 18.82290502165302 * y +\n 212.25662451639585 * k +\n -285.2331026137004) +\n m *\n (1.7149763477362134 * m -\n 5.6096736904047315 * y +\n -17.873870861415444 * k -\n 5.497006427196366) +\n y *\n (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n k * (-21.86122147463605 * k - 189.48180835922747);\n\n dest[destOffset + 1] =\n 255 +\n c *\n (8.841041422036149 * c +\n 60.118027045597366 * m +\n 6.871425592049007 * y +\n 31.159100130055922 * k +\n -79.2970844816548) +\n m *\n (-15.310361306967817 * m +\n 17.575251261109482 * y +\n 131.35250912493976 * k -\n 190.9453302588951) +\n y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n k * (-20.737325471181034 * k - 187.80453709719578);\n\n dest[destOffset + 2] =\n 255 +\n c *\n (0.8842522430003296 * c +\n 8.078677503112928 * m +\n 30.89978309703729 * y -\n 0.23883238689178934 * k +\n -14.183576799673286) +\n m *\n (10.49593273432072 * m +\n 63.02378494754052 * y +\n 50.606957656360734 * k -\n 112.23884253719248) +\n y *\n (0.03296041114873217 * y +\n 115.60384449646641 * k +\n -193.58209356861505) +\n k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n for (let i = 0; i < count; i++) {\n this.#toRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength / 4) * (3 + alpha01)) | 0;\n }\n}\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nclass CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalGray\"\n );\n }\n // Translate arguments to spec variables.\n [this.XW, this.YW, this.ZW] = whitePoint;\n [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n this.G = gamma || 1;\n\n // Validate variables as per spec.\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}, no fallback available`\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n warn(\n `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n `ZB: ${this.ZB}, only default values are supported.`\n );\n }\n\n if (this.G < 1) {\n info(\n `Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`\n );\n this.G = 1;\n }\n }\n\n #toRgb(src, srcOffset, dest, destOffset, scale) {\n // A represents a gray component of a calibrated gray space.\n // A <---> AG in the spec\n const A = src[srcOffset] * scale;\n const AG = A ** this.G;\n\n // Computes L as per spec. ( = this.YW * AG )\n // Except if other than default BlackPoint values are used.\n const L = this.YW * AG;\n // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n // Convert values to rgb range [0, 255].\n const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n this.#toRgb(src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass CalRGBCS extends ColorSpace {\n // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n // matrices.\n // prettier-ignore\n static #BRADFORD_SCALE_MATRIX = new Float32Array([\n 0.8951, 0.2664, -0.1614,\n -0.7502, 1.7135, 0.0367,\n 0.0389, -0.0685, 1.0296]);\n\n // prettier-ignore\n static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n 0.9869929, -0.1470543, 0.1599627,\n 0.4323053, 0.5183603, 0.0492912,\n -0.0085287, 0.0400428, 0.9684867]);\n\n // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n // prettier-ignore\n static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n 3.2404542, -1.5371385, -0.4985314,\n -0.9692660, 1.8760108, 0.0415560,\n 0.0556434, -0.2040259, 1.0572252]);\n\n static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n static #tempNormalizeMatrix = new Float32Array(3);\n\n static #tempConvertMatrix1 = new Float32Array(3);\n\n static #tempConvertMatrix2 = new Float32Array(3);\n\n static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalRGB\"\n );\n }\n // Translate arguments to spec variables.\n const [XW, YW, ZW] = (this.whitePoint = whitePoint);\n const [XB, YB, ZB] = (this.blackPoint = blackPoint || new Float32Array(3));\n\n [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]);\n [\n this.MXA,\n this.MYA,\n this.MZA,\n this.MXB,\n this.MYB,\n this.MZB,\n this.MXC,\n this.MYC,\n this.MZC,\n ] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n // Validate variables as per spec.\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}, no fallback available`\n );\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n info(\n `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n \"falling back to default.\"\n );\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n info(\n `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n `${this.name}, falling back to default.`\n );\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n #matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n\n #toFlat(sourceWhitePoint, LMS, result) {\n result[0] = (LMS[0] * 1) / sourceWhitePoint[0];\n result[1] = (LMS[1] * 1) / sourceWhitePoint[1];\n result[2] = (LMS[2] * 1) / sourceWhitePoint[2];\n }\n\n #toD65(sourceWhitePoint, LMS, result) {\n const D65X = 0.95047;\n const D65Y = 1;\n const D65Z = 1.08883;\n\n result[0] = (LMS[0] * D65X) / sourceWhitePoint[0];\n result[1] = (LMS[1] * D65Y) / sourceWhitePoint[1];\n result[2] = (LMS[2] * D65Z) / sourceWhitePoint[2];\n }\n\n #sRGBTransferFunction(color) {\n // See http://en.wikipedia.org/wiki/SRGB.\n if (color <= 0.0031308) {\n return MathClamp(12.92 * color, 0, 1);\n }\n // Optimization:\n // If color is close enough to 1, skip calling the following transform\n // since calling Math.pow is expensive. If color is larger than\n // the threshold, the final result is larger than 254.5 since\n // ((1 + 0.055) * 0.99554525 ** (1 / 2.4) - 0.055) * 255 ===\n // 254.50000003134699\n if (color >= 0.99554525) {\n return 1;\n }\n return MathClamp((1 + 0.055) * color ** (1 / 2.4) - 0.055, 0, 1);\n }\n\n #decodeL(L) {\n if (L < 0) {\n return -this.#decodeL(-L);\n }\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n return L * CalRGBCS.#DECODE_L_CONSTANT;\n }\n\n #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n // In case the blackPoint is already the default blackPoint then there is\n // no need to do compensation.\n if (\n sourceBlackPoint[0] === 0 &&\n sourceBlackPoint[1] === 0 &&\n sourceBlackPoint[2] === 0\n ) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n // For the blackPoint calculation details, please see\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n // The destination blackPoint is the default blackPoint [0, 0, 0].\n const zeroDecodeL = this.#decodeL(0);\n\n const X_DST = zeroDecodeL;\n const X_SRC = this.#decodeL(sourceBlackPoint[0]);\n\n const Y_DST = zeroDecodeL;\n const Y_SRC = this.#decodeL(sourceBlackPoint[1]);\n\n const Z_DST = zeroDecodeL;\n const Z_SRC = this.#decodeL(sourceBlackPoint[2]);\n\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\n\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n\n #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n // In case the whitePoint is already flat then there is no need to do\n // normalization.\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n\n const LMS = result;\n this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_Flat = CalRGBCS.#tempNormalizeMatrix;\n this.#toFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n this.#matrixProduct(\n CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n LMS_Flat,\n result\n );\n }\n\n #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n const LMS = result;\n this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_D65 = CalRGBCS.#tempNormalizeMatrix;\n this.#toD65(sourceWhitePoint, LMS, LMS_D65);\n\n this.#matrixProduct(\n CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n LMS_D65,\n result\n );\n }\n\n #toRgb(src, srcOffset, dest, destOffset, scale) {\n // A, B and C represent a red, green and blue components of a calibrated\n // rgb space.\n const A = MathClamp(src[srcOffset] * scale, 0, 1);\n const B = MathClamp(src[srcOffset + 1] * scale, 0, 1);\n const C = MathClamp(src[srcOffset + 2] * scale, 0, 1);\n\n // A <---> AGR in the spec\n // B <---> BGG in the spec\n // C <---> CGB in the spec\n const AGR = A === 1 ? 1 : A ** this.GR;\n const BGG = B === 1 ? 1 : B ** this.GG;\n const CGB = C === 1 ? 1 : C ** this.GB;\n\n // Computes intermediate variables L, M, N as per spec.\n // To decode X, Y, Z values map L, M, N directly to them.\n const X = this.MXA * AGR + this.MXB * BGG + this.MXC * CGB;\n const Y = this.MYA * AGR + this.MYB * BGG + this.MYC * CGB;\n const Z = this.MZA * AGR + this.MZB * BGG + this.MZC * CGB;\n\n // The following calculations are based on this document:\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n const XYZ = CalRGBCS.#tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = CalRGBCS.#tempConvertMatrix2;\n\n this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat);\n\n const XYZ_Black = CalRGBCS.#tempConvertMatrix1;\n this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black);\n\n const XYZ_D65 = CalRGBCS.#tempConvertMatrix2;\n this.#normalizeWhitePointToD65(\n CalRGBCS.#FLAT_WHITEPOINT_MATRIX,\n XYZ_Black,\n XYZ_D65\n );\n\n const SRGB = CalRGBCS.#tempConvertMatrix1;\n this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n // Convert the values to rgb range [0, 255].\n dest[destOffset] = this.#sRGBTransferFunction(SRGB[0]) * 255;\n dest[destOffset + 1] = this.#sRGBTransferFunction(SRGB[1]) * 255;\n dest[destOffset + 2] = this.#sRGBTransferFunction(SRGB[2]) * 255;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n this.#toRgb(src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n}\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space Lab\"\n );\n }\n // Translate args to spec variables\n [this.XW, this.YW, this.ZW] = whitePoint;\n [this.amin, this.amax, this.bmin, this.bmax] = range || [\n -100, 100, -100, 100,\n ];\n\n // These are here just for completeness - the spec doesn't offer any\n // formulas that use BlackPoint in Lab\n [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n\n // Validate vars as per spec\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n \"Invalid WhitePoint components, no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(\"Invalid BlackPoint, falling back to default\");\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.amin > this.amax || this.bmin > this.bmax) {\n info(\"Invalid Range, falling back to defaults\");\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n\n // Function g(x) from spec\n #fn_g(x) {\n return x >= 6 / 29 ? x ** 3 : (108 / 841) * (x - 4 / 29);\n }\n\n #decode(value, high1, low2, high2) {\n return low2 + (value * (high2 - low2)) / high1;\n }\n\n // If decoding is needed maxVal should be 2^bits per component - 1.\n #toRgb(src, srcOffset, maxVal, dest, destOffset) {\n // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n // not the usual [0, 1]. If a command like setFillColor is used the src\n // values will already be within the correct range. However, if we are\n // converting an image we have to map the values to the correct range given\n // above.\n // Ls,as,bs <---> L*,a*,b* in the spec\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = this.#decode(Ls, maxVal, 0, 100);\n as = this.#decode(as, maxVal, this.amin, this.amax);\n bs = this.#decode(bs, maxVal, this.bmin, this.bmax);\n }\n\n // Adjust limits of 'as' and 'bs'\n if (as > this.amax) {\n as = this.amax;\n } else if (as < this.amin) {\n as = this.amin;\n }\n if (bs > this.bmax) {\n bs = this.bmax;\n } else if (bs < this.bmin) {\n bs = this.bmin;\n }\n\n // Computes intermediate variables X,Y,Z as per spec\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\n\n const X = this.XW * this.#fn_g(L);\n const Y = this.YW * this.#fn_g(M);\n const Z = this.ZW * this.#fn_g(N);\n\n let r, g, b;\n // Using different conversions for D50 and D65 white points,\n // per http://www.color.org/srgb.pdf\n if (this.ZW < 1) {\n // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n } else {\n // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n }\n // Convert the color values to the [0,255] range (clamping is automatic).\n dest[destOffset] = Math.sqrt(r) * 255;\n dest[destOffset + 1] = Math.sqrt(g) * 255;\n dest[destOffset + 2] = Math.sqrt(b) * 255;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const maxVal = (1 << bits) - 1;\n for (let i = 0; i < count; i++) {\n this.#toRgb(src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isDefaultDecode(decode, bpc) {\n // XXX: Decoding is handled with the lab conversion because of the strange\n // ranges that are used.\n return true;\n }\n\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", false);\n }\n}\n\nexport {\n AlternateCS,\n CalGrayCS,\n CalRGBCS,\n ColorSpace,\n DeviceCmykCS,\n DeviceGrayCS,\n DeviceRgbaCS,\n DeviceRgbCS,\n IndexedCS,\n LabCS,\n PatternCS,\n};\n","/* Copyright 2025 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass QCMS {\n static #memoryArray = null;\n\n static _memory = null;\n\n static _mustAddAlpha = false;\n\n static _destBuffer = null;\n\n static _destOffset = 0;\n\n static _destLength = 0;\n\n static _cssColor = \"\";\n\n static _makeHexColor = null;\n\n static get _memoryArray() {\n const array = this.#memoryArray;\n if (array?.byteLength) {\n return array;\n }\n return (this.#memoryArray = new Uint8Array(this._memory.buffer));\n }\n}\n\nfunction copy_result(ptr, len) {\n // This function is called from the wasm module (it's an external\n // \"C\" function). Its goal is to copy the result from the wasm memory\n // to the destination buffer without any intermediate copies.\n const { _mustAddAlpha, _destBuffer, _destOffset, _destLength, _memoryArray } =\n QCMS;\n if (len === _destLength) {\n _destBuffer.set(_memoryArray.subarray(ptr, ptr + len), _destOffset);\n return;\n }\n if (_mustAddAlpha) {\n for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {\n _destBuffer[j] = _memoryArray[i];\n _destBuffer[j + 1] = _memoryArray[i + 1];\n _destBuffer[j + 2] = _memoryArray[i + 2];\n _destBuffer[j + 3] = 255;\n }\n } else {\n for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {\n _destBuffer[j] = _memoryArray[i];\n _destBuffer[j + 1] = _memoryArray[i + 1];\n _destBuffer[j + 2] = _memoryArray[i + 2];\n }\n }\n}\n\nfunction copy_rgb(ptr) {\n const { _destBuffer, _destOffset, _memoryArray } = QCMS;\n _destBuffer[_destOffset] = _memoryArray[ptr];\n _destBuffer[_destOffset + 1] = _memoryArray[ptr + 1];\n _destBuffer[_destOffset + 2] = _memoryArray[ptr + 2];\n}\n\nfunction make_cssRGB(ptr) {\n const { _memoryArray } = QCMS;\n QCMS._cssColor = QCMS._makeHexColor(\n _memoryArray[ptr],\n _memoryArray[ptr + 1],\n _memoryArray[ptr + 2]\n );\n}\n\nexport { copy_result, copy_rgb, make_cssRGB, QCMS };\n","/* THIS FILE IS GENERATED - DO NOT EDIT */\nimport { copy_result, copy_rgb, make_cssRGB } from './qcms_utils.js';\n\n\n/**\n * @enum {0 | 1 | 2 | 3 | 4 | 5}\n */\nexport const DataType = Object.freeze({\n RGB8: 0, \"0\": \"RGB8\",\n RGBA8: 1, \"1\": \"RGBA8\",\n BGRA8: 2, \"2\": \"BGRA8\",\n Gray8: 3, \"3\": \"Gray8\",\n GrayA8: 4, \"4\": \"GrayA8\",\n CMYK: 5, \"5\": \"CMYK\",\n});\n\n/**\n * @enum {0 | 1 | 2 | 3}\n */\nexport const Intent = Object.freeze({\n Perceptual: 0, \"0\": \"Perceptual\",\n RelativeColorimetric: 1, \"1\": \"RelativeColorimetric\",\n Saturation: 2, \"2\": \"Saturation\",\n AbsoluteColorimetric: 3, \"3\": \"AbsoluteColorimetric\",\n});\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {Uint8Array} src\n */\nexport function qcms_convert_array(transformer, src) {\n const ptr0 = passArray8ToWasm0(src, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.qcms_convert_array(transformer, ptr0, len0);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {number} src1\n * @param {number} src2\n * @param {number} src3\n * @param {number} src4\n * @param {boolean} css\n */\nexport function qcms_convert_four(transformer, src1, src2, src3, src4, css) {\n wasm.qcms_convert_four(transformer, src1, src2, src3, src4, css);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {number} src\n * @param {boolean} css\n */\nexport function qcms_convert_one(transformer, src, css) {\n wasm.qcms_convert_one(transformer, src, css);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {number} src1\n * @param {number} src2\n * @param {number} src3\n * @param {boolean} css\n */\nexport function qcms_convert_three(transformer, src1, src2, src3, css) {\n wasm.qcms_convert_three(transformer, src1, src2, src3, css);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n */\nexport function qcms_drop_transformer(transformer) {\n wasm.qcms_drop_transformer(transformer);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {Uint8Array} mem\n * @param {DataType} in_type\n * @param {Intent} intent\n * @returns {number}\n */\nexport function qcms_transformer_from_memory(mem, in_type, intent) {\n const ptr0 = passArray8ToWasm0(mem, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.qcms_transformer_from_memory(ptr0, len0, in_type, intent);\n return ret >>> 0;\n}\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg___wbindgen_throw_6b64449b9b9ed33c: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_copy_result_0d15f3bf9d9012ae: function(arg0, arg1) {\n copy_result(arg0 >>> 0, arg1 >>> 0);\n },\n __wbg_copy_rgb_0106d9d9464fce43: function(arg0) {\n copy_rgb(arg0 >>> 0);\n },\n __wbg_make_cssRGB_8e24b34f71f5363e: function(arg0) {\n make_cssRGB(arg0 >>> 0);\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./qcms_bg.js\": import0,\n };\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","/* Copyright 2025 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n DataType,\n initSync,\n Intent,\n qcms_convert_array,\n qcms_convert_four,\n qcms_convert_one,\n qcms_convert_three,\n qcms_drop_transformer,\n qcms_transformer_from_memory,\n} from \"../../external/qcms/qcms.js\";\nimport { shadow, Util, warn } from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { QCMS } from \"../../external/qcms/qcms_utils.js\";\n\nfunction fetchSync(url) {\n // Parsing and using color spaces is still synchronous,\n // so we must load the wasm module synchronously.\n // TODO: Make the color space stuff asynchronous and use fetch.\n const xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return xhr.response;\n}\n\nclass IccColorSpace extends ColorSpace {\n #transformer;\n\n #convertPixel;\n\n static #useWasm = true;\n\n static #wasmUrl = null;\n\n static #finalizer = null;\n\n constructor(iccProfile, name, numComps) {\n if (!IccColorSpace.isUsable) {\n throw new Error(\"No ICC color space support\");\n }\n\n super(name, numComps);\n\n let inType;\n switch (numComps) {\n case 1:\n inType = DataType.Gray8;\n this.#convertPixel = (src, srcOffset, css) =>\n qcms_convert_one(this.#transformer, src[srcOffset] * 255, css);\n break;\n case 3:\n inType = DataType.RGB8;\n this.#convertPixel = (src, srcOffset, css) =>\n qcms_convert_three(\n this.#transformer,\n src[srcOffset] * 255,\n src[srcOffset + 1] * 255,\n src[srcOffset + 2] * 255,\n css\n );\n break;\n case 4:\n inType = DataType.CMYK;\n this.#convertPixel = (src, srcOffset, css) =>\n qcms_convert_four(\n this.#transformer,\n src[srcOffset] * 255,\n src[srcOffset + 1] * 255,\n src[srcOffset + 2] * 255,\n src[srcOffset + 3] * 255,\n css\n );\n break;\n default:\n throw new Error(`Unsupported number of components: ${numComps}`);\n }\n this.#transformer = qcms_transformer_from_memory(\n iccProfile,\n inType,\n Intent.Perceptual\n );\n if (!this.#transformer) {\n throw new Error(\"Failed to create ICC color space\");\n }\n IccColorSpace.#finalizer ||= new FinalizationRegistry(transformer => {\n qcms_drop_transformer(transformer);\n });\n IccColorSpace.#finalizer.register(this, this.#transformer);\n }\n\n getRgbHex(src, srcOffset) {\n this.#convertPixel(src, srcOffset, /* css */ true);\n return QCMS._cssColor;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n QCMS._destBuffer = dest;\n QCMS._destOffset = destOffset;\n QCMS._destLength = 3;\n this.#convertPixel(src, srcOffset, /* css */ false);\n QCMS._destBuffer = null;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n src = src.subarray(srcOffset, srcOffset + count * this.numComps);\n if (bits !== 8) {\n const scale = 255 / ((1 << bits) - 1);\n for (let i = 0, ii = src.length; i < ii; i++) {\n src[i] *= scale;\n }\n }\n QCMS._mustAddAlpha = alpha01 && dest.buffer === src.buffer;\n QCMS._destBuffer = dest;\n QCMS._destOffset = destOffset;\n QCMS._destLength = count * (3 + alpha01);\n qcms_convert_array(this.#transformer, src);\n QCMS._mustAddAlpha = false;\n QCMS._destBuffer = null;\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength / this.numComps) * (3 + alpha01)) | 0;\n }\n\n static setOptions({ useWasm, useWorkerFetch, wasmUrl }) {\n if (!useWorkerFetch) {\n this.#useWasm = false;\n return;\n }\n this.#useWasm = useWasm;\n this.#wasmUrl = wasmUrl;\n }\n\n static get isUsable() {\n let isUsable = false;\n if (this.#useWasm) {\n if (this.#wasmUrl) {\n try {\n this._module = initSync({\n module: fetchSync(`${this.#wasmUrl}qcms_bg.wasm`),\n });\n isUsable = !!this._module;\n QCMS._memory = this._module.memory;\n QCMS._makeHexColor = Util.makeHexColor.bind(Util);\n } catch (e) {\n warn(`ICCBased color space: \"${e}\".`);\n }\n } else {\n warn(\"No ICC color space support due to missing `wasmUrl` API option\");\n }\n }\n\n return shadow(this, \"isUsable\", isUsable);\n }\n}\n\nclass CmykICCBasedCS extends IccColorSpace {\n static #iccUrl;\n\n constructor() {\n const iccProfile = new Uint8Array(\n fetchSync(`${CmykICCBasedCS.#iccUrl}CGATS001Compat-v2-micro.icc`)\n );\n super(iccProfile, \"DeviceCMYK\", 4);\n }\n\n static setOptions({ iccUrl }) {\n this.#iccUrl = iccUrl;\n }\n\n static get isUsable() {\n let isUsable = false;\n if (IccColorSpace.isUsable) {\n if (this.#iccUrl) {\n isUsable = true;\n } else {\n warn(\"No CMYK ICC profile support due to missing `iccUrl` API option\");\n }\n }\n\n return shadow(this, \"isUsable\", isUsable);\n }\n}\n\nexport { CmykICCBasedCS, IccColorSpace };\n","/* Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AlternateCS,\n CalGrayCS,\n CalRGBCS,\n DeviceCmykCS,\n DeviceGrayCS,\n DeviceRgbaCS,\n DeviceRgbCS,\n IndexedCS,\n LabCS,\n PatternCS,\n} from \"./colorspace.js\";\nimport { CmykICCBasedCS, IccColorSpace } from \"./icc_colorspace.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { shadow, unreachable, warn } from \"../shared/util.js\";\nimport { MathClamp } from \"../shared/math_clamp.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nclass ColorSpaceUtils {\n static parse({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n globalColorSpaceCache,\n localColorSpaceCache,\n asyncIfNotCached = false,\n }) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n (!globalColorSpaceCache || !localColorSpaceCache)\n ) {\n unreachable(\n 'ColorSpaceUtils.parse - expected \"globalColorSpaceCache\"/\"localColorSpaceCache\" argument.'\n );\n }\n const options = {\n xref,\n resources,\n pdfFunctionFactory,\n globalColorSpaceCache,\n localColorSpaceCache,\n };\n let csName, csRef, parsedCS;\n\n // Check if the ColorSpace is cached first, to avoid re-parsing it.\n if (cs instanceof Ref) {\n csRef = cs;\n\n const cachedCS =\n globalColorSpaceCache.getByRef(csRef) ||\n localColorSpaceCache.getByRef(csRef);\n if (cachedCS) {\n return cachedCS;\n }\n cs = xref.fetch(cs);\n }\n if (cs instanceof Name) {\n csName = cs.name;\n\n const cachedCS = localColorSpaceCache.getByName(csName);\n if (cachedCS) {\n return cachedCS;\n }\n }\n\n try {\n parsedCS = this.#parse(cs, options);\n } catch (ex) {\n if (asyncIfNotCached && !(ex instanceof MissingDataException)) {\n return Promise.reject(ex);\n }\n throw ex;\n }\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n if (csName || csRef) {\n localColorSpaceCache.set(csName, csRef, parsedCS);\n\n if (csRef) {\n globalColorSpaceCache.set(/* name = */ null, csRef, parsedCS);\n }\n }\n return asyncIfNotCached ? Promise.resolve(parsedCS) : parsedCS;\n }\n\n /**\n * NOTE: This method should *only* be invoked from `this.#parse`,\n * when parsing \"sub\" ColorSpaces.\n */\n static #subParse(cs, options) {\n const { globalColorSpaceCache } = options;\n let csRef;\n\n // Check if the ColorSpace is cached first, to avoid re-parsing it.\n if (cs instanceof Ref) {\n csRef = cs;\n\n const cachedCS = globalColorSpaceCache.getByRef(csRef);\n if (cachedCS) {\n return cachedCS;\n }\n }\n const parsedCS = this.#parse(cs, options);\n\n // Only cache the parsed ColorSpace globally, by reference.\n if (csRef) {\n globalColorSpaceCache.set(/* name = */ null, csRef, parsedCS);\n }\n return parsedCS;\n }\n\n static #parse(cs, options) {\n const { xref, resources, pdfFunctionFactory, globalColorSpaceCache } =\n options;\n\n cs = xref.fetchIfRef(cs);\n if (cs instanceof Name) {\n switch (cs.name) {\n case \"G\":\n case \"DeviceGray\":\n return this.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.rgb;\n case \"DeviceRGBA\":\n return this.rgba;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.cmyk;\n case \"Pattern\":\n return new PatternCS(/* baseCS = */ null);\n default:\n if (resources instanceof Dict) {\n const colorSpaces = resources.get(\"ColorSpace\");\n if (colorSpaces instanceof Dict) {\n const resourcesCS = colorSpaces.get(cs.name);\n if (resourcesCS) {\n if (resourcesCS instanceof Name) {\n return this.#parse(resourcesCS, options);\n }\n cs = resourcesCS;\n break;\n }\n }\n }\n // Fallback to the default gray color space.\n warn(`Unrecognized ColorSpace: ${cs.name}`);\n return this.gray;\n }\n }\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"G\":\n case \"DeviceGray\":\n return this.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.cmyk;\n case \"CalGray\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.get(\"Gamma\");\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case \"CalRGB\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.getArray(\"Gamma\");\n const matrix = params.getArray(\"Matrix\");\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case \"ICCBased\":\n const isRef = cs[1] instanceof Ref;\n if (isRef) {\n const cachedCS = globalColorSpaceCache.getByRef(cs[1]);\n if (cachedCS) {\n return cachedCS;\n }\n }\n\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n\n if (IccColorSpace.isUsable) {\n try {\n const iccCS = new IccColorSpace(\n stream.getBytes(),\n \"ICCBased\",\n numComps\n );\n if (isRef) {\n globalColorSpaceCache.set(/* name = */ null, cs[1], iccCS);\n }\n return iccCS;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`ICCBased color space (${cs[1]}): \"${ex}\".`);\n }\n }\n\n const altRaw = dict.getRaw(\"Alternate\");\n if (altRaw) {\n const altCS = this.#subParse(altRaw, options);\n // Ensure that the number of components are correct,\n // and also (indirectly) that it is not a PatternCS.\n if (altCS.numComps === numComps) {\n return altCS;\n }\n warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n if (numComps === 1) {\n return this.gray;\n } else if (numComps === 3) {\n return this.rgb;\n } else if (numComps === 4) {\n return this.cmyk;\n }\n break;\n case \"Pattern\":\n baseCS = cs[1] || null;\n if (baseCS) {\n baseCS = this.#subParse(baseCS, options);\n }\n return new PatternCS(baseCS);\n case \"I\":\n case \"Indexed\":\n baseCS = this.#subParse(cs[1], options);\n const hiVal = MathClamp(xref.fetchIfRef(cs[2]), 0, 255);\n const lookup = xref.fetchIfRef(cs[3]);\n return new IndexedCS(baseCS, hiVal, lookup);\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n baseCS = this.#subParse(cs[2], options);\n const tintFn = pdfFunctionFactory.create(cs[3]);\n return new AlternateCS(numComps, baseCS, tintFn);\n case \"Lab\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n const range = params.getArray(\"Range\");\n return new LabCS(whitePoint, blackPoint, range);\n default:\n // Fallback to the default gray color space.\n warn(`Unimplemented ColorSpace object: ${mode}`);\n return this.gray;\n }\n }\n // Fallback to the default gray color space.\n warn(`Unrecognized ColorSpace object: ${cs}`);\n return this.gray;\n }\n\n static get gray() {\n return shadow(this, \"gray\", new DeviceGrayCS());\n }\n\n static get rgb() {\n return shadow(this, \"rgb\", new DeviceRgbCS());\n }\n\n static get rgba() {\n return shadow(this, \"rgba\", new DeviceRgbaCS());\n }\n\n static get cmyk() {\n if (CmykICCBasedCS.isUsable) {\n try {\n return shadow(this, \"cmyk\", new CmykICCBasedCS());\n } catch {\n warn(\"CMYK fallback: DeviceCMYK\");\n }\n }\n return shadow(this, \"cmyk\", new DeviceCmykCS());\n }\n}\n\nexport { ColorSpaceUtils };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest, ImageKind } from \"./util.js\";\n\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n\n return null;\n}\n\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false,\n}) {\n const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode\n ? [nonBlackColor, black]\n : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const xorMask = zeroMapping ^ oneMapping;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n\n for (let i = 0; i < height; ++i) {\n for (\n const max = srcPos + widthInSource;\n srcPos < max;\n ++srcPos, destPos += 8\n ) {\n const elem = src[srcPos];\n dest[destPos] = zeroMapping ^ (-((elem >> 7) & 1) & xorMask);\n dest[destPos + 1] = zeroMapping ^ (-((elem >> 6) & 1) & xorMask);\n dest[destPos + 2] = zeroMapping ^ (-((elem >> 5) & 1) & xorMask);\n dest[destPos + 3] = zeroMapping ^ (-((elem >> 4) & 1) & xorMask);\n dest[destPos + 4] = zeroMapping ^ (-((elem >> 3) & 1) & xorMask);\n dest[destPos + 5] = zeroMapping ^ (-((elem >> 2) & 1) & xorMask);\n dest[destPos + 6] = zeroMapping ^ (-((elem >> 1) & 1) & xorMask);\n dest[destPos + 7] = zeroMapping ^ (-(elem & 1) & xorMask);\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; ++j, ++destPos) {\n dest[destPos] = zeroMapping ^ (-((elem >> (7 - j)) & 1) & xorMask);\n }\n }\n\n return { srcPos, destPos };\n}\n\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n}) {\n let i = 0;\n const len = width * height * 3;\n const len32 = len >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n const alphaMask = FeatureTest.isLittleEndian ? 0xff000000 : 0xff;\n\n if (FeatureTest.isLittleEndian) {\n // It's a way faster to do the shuffle manually instead of working\n // component by component with some Uint8 arrays.\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i], // R2B1G1R1\n s2 = src32[i + 1], // G3R3B2G2\n s3 = src32[i + 2]; // B4G4R4B3\n\n dest[destPos] = s1 | alphaMask;\n dest[destPos + 1] = (s1 >>> 24) | (s2 << 8) | alphaMask;\n dest[destPos + 2] = (s2 >>> 16) | (s3 << 16) | alphaMask;\n dest[destPos + 3] = (s3 >>> 8) | alphaMask;\n }\n\n for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n dest[destPos++] =\n src[j] | (src[j + 1] << 8) | (src[j + 2] << 16) | alphaMask;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i], // R1G1B1R2\n s2 = src32[i + 1], // G2B2R3G3\n s3 = src32[i + 2]; // B3R4G4B4\n\n dest[destPos] = s1 | alphaMask;\n dest[destPos + 1] = (s1 << 24) | (s2 >>> 8) | alphaMask;\n dest[destPos + 2] = (s2 << 16) | (s3 >>> 16) | alphaMask;\n dest[destPos + 3] = (s3 << 8) | alphaMask;\n }\n\n for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n dest[destPos++] =\n (src[j] << 24) | (src[j + 1] << 16) | (src[j + 2] << 8) | alphaMask;\n }\n }\n\n return { srcPos: srcPos + len, destPos };\n}\n\nfunction grayToRGBA(src, dest) {\n if (FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = (src[i] * 0x10101) | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = (src[i] * 0x1010100) | 0x000000ff;\n }\n }\n}\n\nexport { convertBlackAndWhiteToRGBA, convertToRGBA, grayToRGBA };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { ColorSpaceUtils } from \"./colorspace_utils.js\";\nimport { DeviceCmykCS } from \"./colorspace.js\";\nimport { grayToRGBA } from \"../shared/image_utils.js\";\n\nclass JpegError extends BaseException {\n constructor(msg) {\n super(msg, \"JpegError\");\n }\n}\n\nclass DNLMarkerError extends BaseException {\n constructor(message, scanLines) {\n super(message, \"DNLMarkerError\");\n this.scanLines = scanLines;\n }\n}\n\nclass EOIMarkerError extends BaseException {\n constructor(msg) {\n super(msg, \"EOIMarkerError\");\n }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0,\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n const code = [{ children: [], index: 0 }];\n let p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n data,\n view,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive,\n parseDNLMarker = false\n) {\n const mcusPerLine = frame.mcusPerLine;\n const progressive = frame.progressive;\n\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xff) {\n const nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n offset += 2; // Skip marker length.\n\n const scanLines = view.getUint16(offset);\n offset += 2;\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n \"Found DNL marker (0xFFDC) while parsing scan data\",\n scanLines\n );\n }\n } else if (nextByte === /* EOI = */ 0xd9) {\n if (parseDNLMarker) {\n // NOTE: only 8-bit JPEG images are supported in this decoder.\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n // Heuristic to attempt to handle corrupt JPEG images with too\n // large `scanLines` parameter, by falling back to the currently\n // parsed number of scanLines when it's at least (approximately)\n // one \"half\" order of magnitude smaller than expected (fixes\n // issue10880.pdf, issue10989.pdf, issue15492.pdf).\n if (\n maybeScanLines > 0 &&\n Math.round(frame.scanLines / maybeScanLines) >= 5\n ) {\n throw new DNLMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n \"possibly caused by incorrect `scanLines` parameter\",\n maybeScanLines\n );\n }\n }\n throw new EOIMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data\"\n );\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n let node = tree;\n while (true) {\n node = node[readBit()];\n switch (typeof node) {\n case \"number\":\n return node;\n case \"object\":\n continue;\n }\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n let n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n let eobrun = 0;\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n let successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, blockOffset) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n let s;\n let rs;\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n function decodeMcu(component, decode, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n const blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n const componentsLength = components.length;\n let component, i, j, k, n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0,\n fileMarker;\n const mcuExpected =\n componentsLength === 1\n ? components[0].blocksPerLine * components[0].blocksPerColumn\n : mcusPerLine * frame.mcusPerColumn;\n\n let h, v;\n while (mcu <= mcuExpected) {\n // reset interval stuff\n const mcuToRead = resetInterval\n ? Math.min(mcuExpected - mcu, resetInterval)\n : mcuExpected;\n\n // The `mcuToRead === 0` case should only occur when all of the expected\n // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n // some corrupt JPEG images contain more data than intended and we thus\n // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, view, offset);\n if (!fileMarker) {\n break; // Reached the end of the image data without finding any marker.\n }\n if (fileMarker.invalid) {\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n // past those to attempt to find a valid marker (fixes issue4090.pdf).\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n warn(\n `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n );\n offset = fileMarker.offset;\n }\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n// 988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n const qt = component.quantizationTable,\n blockData = component.blockData;\n let v0, v1, v2, v3, v4, v5, v6, v7;\n let p0, p1, p2, p3, p4, p5, p6, p7;\n let t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n // inverse DCT on rows\n for (let row = 0; row < 64; row += 8) {\n // gather block data\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 512) >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n // dequant p1 ... p7\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 128) >> 8;\n v1 = (dctSqrt2 * p4 + 128) >> 8;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n\n // stage 3\n v0 = (v0 + v1 + 1) >> 1;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (let col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // Convert to 8-bit.\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = (t + 2056) >> 4;\n }\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 2048) >> 12;\n v1 = (dctSqrt2 * p4 + 2048) >> 12;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n v5 = p3;\n v6 = p5;\n\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\n v0 = ((v0 + v1 + 1) >> 1) + 4112;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n // Convert to 8-bit integers.\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n // store block data\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n}\n\nfunction buildComponentData(frame, component) {\n const blocksPerLine = component.blocksPerLine;\n const blocksPerColumn = component.blocksPerColumn;\n const computationBuffer = new Int16Array(64);\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n const offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n}\n\nfunction findNextFileMarker(data, view, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n let newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n const currentMarker = view.getUint16(currentPos);\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n let newMarker = view.getUint16(newPos);\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = view.getUint16(newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n}\n\nfunction prepareComponents(frame) {\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (const component of frame.components) {\n const blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n const blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n const blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n}\n\nfunction readDataBlock(data, view, offset) {\n const length = view.getUint16(offset);\n offset += 2;\n let endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, view, endOffset, offset);\n if (fileMarker?.invalid) {\n warn(\n \"readDataBlock - incorrect length, current marker is: \" +\n fileMarker.invalid\n );\n endOffset = fileMarker.offset;\n }\n\n const array = data.subarray(offset, endOffset);\n return {\n appData: array,\n oldOffset: offset,\n newOffset: offset + array.length,\n };\n}\n\nfunction skipData(data, view, offset) {\n const length = view.getUint16(offset);\n offset += 2;\n const endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, view, endOffset, offset);\n if (fileMarker?.invalid) {\n return fileMarker.offset;\n }\n return endOffset;\n}\n\nclass JpegImage {\n constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n static canUseImageDecoder(data, colorTransform = -1) {\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n let exifOffsets = null;\n let offset = 0;\n let numComponents = null;\n let fileMarker = view.getUint16(offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = view.getUint16(offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n switch (fileMarker) {\n case 0xffe1: // APP1 - Exif\n // TODO: Remove this once https://github.com/w3c/webcodecs/issues/870\n // is fixed.\n const { appData, oldOffset, newOffset } = readDataBlock(\n data,\n view,\n offset\n );\n offset = newOffset;\n\n // 'Exif\\x00\\x00'\n if (\n appData[0] === 0x45 &&\n appData[1] === 0x78 &&\n appData[2] === 0x69 &&\n appData[3] === 0x66 &&\n appData[4] === 0 &&\n appData[5] === 0\n ) {\n if (exifOffsets) {\n throw new JpegError(\"Duplicate EXIF-blocks found.\");\n }\n // Don't do the EXIF-block replacement here, see `JpegStream`,\n // since that can modify the original PDF document.\n exifOffsets = { exifStart: oldOffset + 6, exifEnd: newOffset };\n }\n fileMarker = view.getUint16(offset);\n offset += 2;\n continue;\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n // Skip marker length.\n // Skip precision.\n // Skip scanLines.\n // Skip samplesPerLine.\n numComponents = data[offset + (2 + 1 + 2 + 2)];\n break markerLoop;\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n }\n offset = skipData(data, view, offset);\n fileMarker = view.getUint16(offset);\n offset += 2;\n }\n if (numComponents === 4) {\n return null;\n }\n if (numComponents === 3 && colorTransform === 0) {\n return null;\n }\n return exifOffsets || {};\n }\n\n parse(data, { dnlScanLines = null } = {}) {\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n const maxOffset = data.length - 1;\n let offset = 0;\n let jfif = null;\n let adobe = null;\n let frame, resetInterval;\n let numSOSMarkers = 0;\n const quantizationTables = [];\n const huffmanTablesAC = [],\n huffmanTablesDC = [];\n\n let fileMarker = view.getUint16(offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = view.getUint16(offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n let i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n const { appData, newOffset } = readDataBlock(data, view, offset);\n offset = newOffset;\n\n if (fileMarker === 0xffe0) {\n // 'JFIF\\x00'\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n // 'Adobe'\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65\n ) {\n adobe = {\n version: (appData[5] << 8) | appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n const quantizationTablesLength = view.getUint16(offset);\n offset += 2;\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n let z;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = view.getUint16(offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n offset += 2; // Skip marker length.\n\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = view.getUint16(offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = view.getUint16(offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n const componentsCount = data[offset++];\n let maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n const componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n const qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n const huffmanLength = view.getUint16(offset);\n offset += 2;\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n offset += 2; // Skip marker length.\n\n resetInterval = view.getUint16(offset);\n offset += 2;\n break;\n\n case 0xffda: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n offset += 2; // Skip marker length.\n\n const selectorsCount = data[offset++],\n components = [];\n for (i = 0; i < selectorsCount; i++) {\n const index = data[offset++];\n const componentIndex = frame.componentIds[index];\n const component = frame.components[componentIndex];\n component.index = index;\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++],\n spectralEnd = data[offset++],\n successiveApproximation = data[offset++];\n try {\n const processed = decodeScan(\n data,\n view,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15,\n parseDNLMarker\n );\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xffdc: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n // Could be incorrect encoding -- the last 0xFF byte of the previous\n // block could have been eaten by the encoder, hence we fallback to\n // `startPos = offset - 3` when looking for the next valid marker.\n const nextFileMarker = findNextFileMarker(\n data,\n view,\n /* currentPos = */ offset - 2,\n /* startPos = */ offset - 3\n );\n if (nextFileMarker?.invalid) {\n warn(\n \"JpegImage.parse - unexpected data, current marker is: \" +\n nextFileMarker.invalid\n );\n offset = nextFileMarker.offset;\n break;\n }\n if (!nextFileMarker || offset >= maxOffset) {\n warn(\n \"JpegImage.parse - reached the end of the image data \" +\n \"without finding an EOI marker (0xFFD9).\"\n );\n break markerLoop;\n }\n throw new JpegError(\n \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n );\n }\n\n if (offset < maxOffset) {\n fileMarker = view.getUint16(offset);\n offset += 2;\n } else {\n fileMarker = 0;\n }\n }\n\n if (!frame) {\n throw new JpegError(\"JpegImage.parse - no frame data found.\");\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (const component of frame.components) {\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n const quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n });\n }\n this.numComponents = this.components.length;\n return undefined;\n }\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n const scaleX = this.width / width,\n scaleY = this.height / height;\n\n let component, componentScaleX, componentScaleY, blocksPerScanline;\n let x, y, i, j, k;\n let index;\n let offset = 0;\n let output;\n const numComponents = this.components.length;\n const dataLength = width * height * numComponents;\n const data = new Uint8ClampedArray(dataLength);\n const xScaleBlockOffset = new Uint32Array(width);\n const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = (component.blocksPerLine + 1) << 3;\n // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n // component data, that's only necessary when `componentScaleX` changes.\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | (x * componentScaleX);\n xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n }\n lastComponentScaleX = componentScaleX;\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength; ) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n }\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n } else if (\n this.components[0].index === /* \"R\" = */ 0x52 &&\n this.components[1].index === /* \"G\" = */ 0x47 &&\n this.components[2].index === /* \"B\" = */ 0x42\n ) {\n // If the three components are indexed as RGB in ASCII\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n }\n\n _convertYccToRgb(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n }\n\n _convertYccToRgba(data, out) {\n for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) {\n const Y = data[i];\n const Cb = data[i + 1];\n const Cr = data[i + 2];\n out[j] = Y - 179.456 + 1.402 * Cr;\n out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n out[j + 2] = Y - 226.816 + 1.772 * Cb;\n out[j + 3] = 255;\n }\n return out;\n }\n\n _convertYcckToRgb(data) {\n this._convertYcckToCmyk(data);\n return this._convertCmykToRgb(data);\n }\n\n _convertYcckToRgba(data) {\n this._convertYcckToCmyk(data);\n return this._convertCmykToRgba(data);\n }\n\n _convertYcckToCmyk(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n // K in data[i + 3] is unchanged\n }\n return data;\n }\n\n _convertCmykToRgb(data) {\n const count = data.length / 4;\n ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, count, data, 0, 8, 0);\n return data.subarray(0, count * 3);\n }\n\n _convertCmykToRgba(data) {\n ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, data.length / 4, data, 0, 8, 1);\n\n if (ColorSpaceUtils.cmyk instanceof DeviceCmykCS) {\n // The alpha-component isn't updated by `DeviceCmykCS`, doing it manually.\n for (let i = 3, ii = data.length; i < ii; i += 4) {\n data[i] = 255;\n }\n }\n return data;\n }\n\n getData({\n width,\n height,\n forceRGBA = false,\n forceRGB = false,\n isSourcePDF = false,\n }) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n );\n }\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && (forceRGBA || forceRGB)) {\n const len = data.length * (forceRGBA ? 4 : 3);\n const rgbaData = new Uint8ClampedArray(len);\n let offset = 0;\n if (forceRGBA) {\n grayToRGBA(data, new Uint32Array(rgbaData.buffer));\n } else {\n for (const grayColor of data) {\n rgbaData[offset++] = grayColor;\n rgbaData[offset++] = grayColor;\n rgbaData[offset++] = grayColor;\n }\n }\n return rgbaData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n if (forceRGBA) {\n const rgbaData = new Uint8ClampedArray((data.length / 3) * 4);\n return this._convertYccToRgba(data, rgbaData);\n }\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGBA) {\n return this._convertYcckToRgba(data);\n }\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGBA) {\n return this._convertCmykToRgba(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n}\n\nexport { JpegError, JpegImage };\n","/* THIS FILE IS GENERATED - DO NOT EDIT */\nasync function OpenJPEG(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}var readyPromiseResolve,readyPromiseReject;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports[\"s\"]()}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"openjpeg.wasm\")}return new URL(\"openjpeg.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;var __abort_js=()=>abort(\"\");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};function _copy_pixels_1(compG_ptr,nb_pixels){compG_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);imageData.set(compG)}function _copy_pixels_3(compR_ptr,compG_ptr,compB_ptr,nb_pixels){compR_ptr>>=2;compG_ptr>>=2;compB_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*3);const compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels);for(let i=0;i>=2;compG_ptr>>=2;compB_ptr>>=2;compA_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels);const compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels);for(let i=0;i2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);return 70}var printCharBuffers=[null,[],[]];var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx>10,56320|ch&1023)}}return str};var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):\"\";var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};function _gray_to_rgba(compG_ptr,nb_pixels){compG_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);for(let i=0;i>=2;compA_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels);for(let i=0;i>=2;compG_ptr>>=2;compB_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels);for(let i=0;i{HEAP8.set(array,buffer)};{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"writeArrayToMemory\"]=writeArrayToMemory;var _malloc,_free,_jp2_decode,__emscripten_timeout,memory,__indirect_function_table,wasmMemory;function assignWasmExports(wasmExports){_malloc=Module[\"_malloc\"]=wasmExports[\"t\"];_free=Module[\"_free\"]=wasmExports[\"u\"];_jp2_decode=Module[\"_jp2_decode\"]=wasmExports[\"v\"];__emscripten_timeout=wasmExports[\"w\"];memory=wasmMemory=wasmExports[\"r\"];__indirect_function_table=wasmExports[\"__indirect_function_table\"]}var wasmImports={m:__abort_js,l:__emscripten_runtime_keepalive_clear,i:__setitimer_js,f:_copy_pixels_1,e:_copy_pixels_3,d:_copy_pixels_4,j:_emscripten_resize_heap,o:_environ_get,p:_environ_sizes_get,n:_fd_seek,b:_fd_write,q:_gray_to_rgba,h:_graya_to_rgba,c:_jsPrintWarning,k:_proc_exit,g:_rgb_to_rgba,a:_storeErrorMessage};function run(){preRun();function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default OpenJPEG;\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { stringToBytes } from \"../shared/util.js\";\n\nclass Stream extends BaseStream {\n constructor(arrayBuffer, start, length, dict) {\n super();\n\n this.bytes =\n arrayBuffer instanceof Uint8Array\n ? arrayBuffer\n : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n this.pos = strEnd;\n return bytes.subarray(pos, strEnd);\n }\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n return this.bytes.subarray(begin, end);\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start, length, dict = null) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n\n clone() {\n return new Stream(\n this.bytes.buffer,\n this.start,\n this.end - this.start,\n this.dict.clone()\n );\n }\n}\n\nclass StringStream extends Stream {\n constructor(str) {\n super(stringToBytes(str));\n }\n}\n\nclass NullStream extends Stream {\n constructor() {\n super(new Uint8Array(0));\n }\n}\n\nexport { NullStream, Stream, StringStream };\n","/* Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, warn } from \"../shared/util.js\";\nimport { fetchBinaryData } from \"./core_utils.js\";\nimport OpenJPEG from \"../../external/openjpeg/openjpeg.js\";\nimport { Stream } from \"./stream.js\";\n\nclass JpxError extends BaseException {\n constructor(msg) {\n super(msg, \"JpxError\");\n }\n}\n\nclass JpxImage {\n static #buffer = null;\n\n static #handler = null;\n\n static #modulePromise = null;\n\n static #useWasm = true;\n\n static #useWorkerFetch = true;\n\n static #wasmUrl = null;\n\n static setOptions({ handler, useWasm, useWorkerFetch, wasmUrl }) {\n this.#useWasm = useWasm;\n this.#useWorkerFetch = useWorkerFetch;\n this.#wasmUrl = wasmUrl;\n\n if (!useWorkerFetch) {\n this.#handler = handler;\n }\n }\n\n static async #getJsModule(fallbackCallback) {\n const path =\n typeof PDFJSDev === \"undefined\"\n ? `../${this.#wasmUrl}openjpeg_nowasm_fallback.js`\n : `${this.#wasmUrl}openjpeg_nowasm_fallback.js`;\n\n let instance = null;\n try {\n const mod = await (typeof PDFJSDev === \"undefined\"\n ? import(path) // eslint-disable-line no-unsanitized/method\n : __raw_import__(path));\n instance = mod.default();\n } catch (e) {\n warn(`JpxImage#getJsModule: ${e}`);\n }\n fallbackCallback(instance);\n }\n\n static async #instantiateWasm(fallbackCallback, imports, successCallback) {\n const filename = \"openjpeg.wasm\";\n try {\n if (!this.#buffer) {\n if (this.#useWorkerFetch) {\n this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);\n } else {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Only worker-thread fetching supported.\");\n }\n this.#buffer = await this.#handler.sendWithPromise(\n \"FetchBinaryData\",\n { kind: \"wasmUrl\", filename }\n );\n }\n }\n const results = await WebAssembly.instantiate(this.#buffer, imports);\n return successCallback(results.instance);\n } catch (reason) {\n warn(`JpxImage#instantiateWasm: ${reason}`);\n\n this.#getJsModule(fallbackCallback);\n return null;\n } finally {\n this.#handler = null;\n }\n }\n\n static async decode(\n bytes,\n {\n numComponents = 4,\n isIndexedColormap = false,\n smaskInData = false,\n reducePower = 0,\n } = {}\n ) {\n if (!this.#modulePromise) {\n const { promise, resolve } = Promise.withResolvers();\n const promises = [promise];\n if (!this.#useWasm) {\n this.#getJsModule(resolve);\n } else {\n promises.push(\n OpenJPEG({\n warn,\n instantiateWasm: this.#instantiateWasm.bind(this, resolve),\n })\n );\n }\n this.#modulePromise = Promise.race(promises);\n }\n const module = await this.#modulePromise;\n\n if (!module) {\n throw new JpxError(\"OpenJPEG failed to initialize\");\n }\n let ptr;\n\n try {\n const size = bytes.length;\n ptr = module._malloc(size);\n module.writeArrayToMemory(bytes, ptr);\n const ret = module._jp2_decode(\n ptr,\n size,\n numComponents > 0 ? numComponents : 0,\n !!isIndexedColormap,\n !!smaskInData,\n reducePower\n );\n if (ret) {\n const { errorMessages } = module;\n if (errorMessages) {\n delete module.errorMessages;\n throw new JpxError(errorMessages);\n }\n throw new JpxError(\"Unknown error\");\n }\n const { imageData } = module;\n module.imageData = null;\n\n return imageData;\n } finally {\n if (ptr) {\n module._free(ptr);\n }\n }\n }\n\n static cleanup() {\n this.#modulePromise = null;\n }\n\n static parseImageProperties(stream) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n if (stream instanceof ArrayBuffer || ArrayBuffer.isView(stream)) {\n stream = new Stream(stream);\n } else {\n throw new JpxError(\"Invalid data format, must be a TypedArray.\");\n }\n }\n // No need to use OpenJPEG here since we're only getting very basic\n // information which are located in the first bytes of the file.\n let newByte = stream.getByte();\n while (newByte >= 0) {\n const oldByte = newByte;\n newByte = stream.getByte();\n const code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xff51) {\n stream.skip(4);\n const Xsiz = stream.getInt32() >>> 0; // Byte 4\n const Ysiz = stream.getInt32() >>> 0; // Byte 8\n const XOsiz = stream.getInt32() >>> 0; // Byte 12\n const YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n const Csiz = stream.getUint16(); // Byte 36\n return {\n width: Xsiz - XOsiz,\n height: Ysiz - YOsiz,\n // Results are always returned as `Uint8ClampedArray`s.\n bitsPerComponent: 8,\n componentsCount: Csiz,\n };\n }\n }\n throw new JpxError(\"No size marker found in JPX stream\");\n }\n}\n\nexport { JpxError, JpxImage };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getVerbosityLevel,\n setVerbosityLevel,\n VerbosityLevel,\n} from \"./shared/util.js\";\nimport {\n Jbig2Error,\n JBig2CCITTFaxImage as Jbig2Image,\n} from \"./core/jbig2_ccittFax.js\";\nimport { JpegError, JpegImage } from \"./core/jpg.js\";\nimport { JpxError, JpxImage } from \"./core/jpx.js\";\n\nglobalThis.pdfjsImageDecoders = {\n getVerbosityLevel,\n Jbig2Error,\n Jbig2Image,\n JpegError,\n JpegImage,\n JpxError,\n JpxImage,\n setVerbosityLevel,\n VerbosityLevel,\n};\n\nexport {\n getVerbosityLevel,\n Jbig2Error,\n Jbig2Image,\n JpegError,\n JpegImage,\n JpxError,\n JpxImage,\n setVerbosityLevel,\n VerbosityLevel,\n};\n"],"names":["isNodeJS","process","versions","nw","electron","type","BBOX_INIT","Infinity","F32_BBOX_INIT","Float32Array","FONT_IDENTITY_MATRIX","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","IS_EDITING","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","HIGHLIGHT","STAMP","INK","POPUP","SIGNATURE","COMMENT","AnnotationEditorParamsType","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","INK_COLOR_AND_OPACITY","HIGHLIGHT_COLOR","HIGHLIGHT_THICKNESS","HIGHLIGHT_FREE","HIGHLIGHT_SHOW_ALL","DRAW_STEP","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","MeshFigureType","TRIANGLES","LATTICE","PATCH","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","VerbosityLevel","ERRORS","WARNINGS","INFOS","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","setStrokeTransparent","setFillTransparent","rawFillPath","DrawOPS","quadraticCurveTo","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","warn","unreachable","Error","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","length","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","parse","updateUrlHash","hash","allowRel","res","href","split","stripPath","str","substring","lastIndexOf","shadow","obj","prop","value","nonSerializable","Object","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","message","name","prototype","constructor","PasswordException","code","UnknownErrorException","details","InvalidPDFException","ResponseException","status","missing","FormatError","AbortException","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","i","chunkEnd","Math","min","chunk","subarray","push","join","stringToBytes","Uint8Array","charCodeAt","objectSize","keys","isLittleEndian","buffer8","view32","Uint32Array","buffer","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","isImageDecoderSupported","ImageDecoder","isFloat16ArraySupported","Float16Array","isSanitizerSupported","Sanitizer","platform","userAgent","navigator","isAndroid","includes","isLinux","isMac","isWindows","isFirefox","isCSSRoundSupported","globalThis","CSS","supports","isAlphaColorInputSupported","document","input","createElement","setAttribute","Util","hexNums","Array","from","n","toString","padStart","makeHexColor","r","g","b","domMatrixToTransform","dm","a","c","d","e","f","scaleMinMax","minMax","temp","m1","m2","multiplyByDOMMatrix","m","md","applyTransform","p","pos","p0","p1","applyTransformToBezier","m0","m3","m4","m5","pI","pI1","applyInverseTransform","axialAlignedBoundingBox","rect","output","r0","r1","r2","r3","a0","a2","a1","a3","b0","b2","b1","b3","m1r0","m1r2","m2r1","m2r3","max","inverseTransform","singularValueDecompose2dScale","matrix","first","second","sqrt","normalizeRect","slice","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","pointBoundingBox","x","y","rectBoundingBox","x0","y0","x1","y1","getExtremumOnCurve","#getExtremumOnCurve","x2","x3","y2","y3","t","mt","tt","ttt","getExtremum","#getExtremum","abs","delta","sqrtDelta","bezierBoundingBox","PDFStringTranslateTable","stringToPDFString","keepEscapeSequence","encoding","decoder","TextDecoder","fatal","decoded","decode","replaceAll","ex","ii","charCode","charAt","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","NormalizeRegex","NormalizationMap","normalizeUnicode","Map","_","p2","normalize","get","getUuid","crypto","randomUUID","buf","getRandomValues","AnnotationPrefix","_isValidExplicitDest","validRef","validName","dest","isArray","page","zoom","args","argsLen","allowNull","arg","makeArr","makeMap","makeObj","create","CIRCULAR_REF","Symbol","EOF","CmdCache","NameCache","RefCache","clearPrimitiveCaches","Name","Cmd","cmd","nonSerializableClosure","Dict","__nonSerializable__","map","objId","suppressEncryption","xref","assignXref","newXref","size","getValue","#getValue","isAsync","key1","key2","key3","Ref","fetchAsync","fetch","getAsync","getArray","getRaw","key","getKeys","getRawValues","values","getRawEntries","entries","set","setIfNotExists","has","setIfNumber","setIfArray","ArrayBuffer","isView","setIfDefined","setIfName","setIfDict","iterator","empty","emptyDict","merge","dictArray","mergeSubDicts","mergedDict","properties","dict","property","subDict","clear","clone","delete","num","gen","fromString","ref","exec","parseInt","RefSet","parent","_set","Set","put","add","remove","RefSetCache","_map","putAlias","aliasRef","items","isName","v","isCmd","isDict","isRefsEqual","v1","v2","BaseStream","isEmpty","isDataLoaded","getByte","getBytes","getImageData","decoderOptions","asyncGetBytes","isAsyncDecoder","isImageStream","canAsyncDecodeImageFromBuffer","getTransferableImage","peekByte","peekedByte","peekBytes","getUint16","getInt32","getByteRange","begin","end","getString","skip","reset","moveStart","makeSubStream","start","getBaseStreams","getOriginalStream","stream","PDF_VERSION_REGEXP","MAX_INT_32","IDENTITY_MATRIX","RESOURCES_KEYS_OPERATOR_LIST","RESOURCES_KEYS_TEXT_CONTENT","getLookupTableFactory","initializer","lookup","MissingDataException","ParserEOFException","XRefEntryException","XRefParseException","arrayBuffersToBytes","arr","dataLength","byteLength","data","item","fetchBinaryData","response","ok","statusText","getInheritableProperty","stopWhenFound","visited","getParentToUpdate","firstDict","result","deepCompare","value1","value2","ROMAN_NUMBER_MAP","toRomanNumerals","number","lowerCase","roman","repeat","toLowerCase","isWhiteSpace","ch","isBooleanArray","len","every","isNumberArray","BigInt64Array","BigUint64Array","lookupMatrix","fallback","lookupRect","lookupNormalRect","parseXFAPath","path","positionPattern","component","escapePDFName","char","escapeString","_collectJS","entry","list","parents","element","js","trim","collectActions","eventType","actions","additionalActionsDicts","additionalActions","rawActionDict","action","actionDict","Action","XMLEntities","codePointIter","codePointAt","encodeToXmlString","entity","toUpperCase","validateFontName","fontFamily","mustWarn","re","RegExp","test","ident","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontWeight","italicAngle","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","jsUrl","newWindow","numberToString","roundedValue","round","toFixed","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","getOrInsertComputed","pageIndex","stringToAsciiOrUTF16BE","isAscii","stringToUTF16String","stringToUTF16HexString","bigEndian","getRotationMatrix","rotation","width","height","getSizeInBytes","ceil","log2","JBig2","moduleArg","moduleRtn","Module","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","arguments_","thisProgram","quit_","toThrow","_scriptName","import","meta","scriptDirectory","readAsync","readBinary","credentials","arrayBuffer","out","log","bind","err","error","wasmBinary","ABORT","EXITSTATUS","readyPromiseResolve","readyPromiseReject","HEAP8","HEAPU8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAPF64","HEAP64","HEAPU64","runtimeInitialized","updateMemoryViews","wasmMemory","Int8Array","Int16Array","Uint16Array","Int32Array","Float64Array","preRun","addOnPreRun","shift","callRuntimeCallbacks","onPreRuns","initRuntime","wasmExports","postRun","addOnPostRun","onPostRuns","abort","what","WebAssembly","RuntimeError","wasmBinaryFile","getWasmImports","imports","wasmImports","createWasm","receiveInstance","instance","module","exports","assignWasmExports","Promise","resolve","reject","inst","mod","ExitStatus","callbacks","cb","noExitRuntime","__abort_js","runtimeKeepaliveCounter","__emscripten_runtime_keepalive_clear","timers","handleException","keepRuntimeAlive","_proc_exit","exitJS","implicit","_exit","maybeExit","callUserCallback","func","_emscripten_get_now","performance","now","__setitimer_js","which","timeout_ms","clearTimeout","id","setTimeout","__emscripten_timeout","_createImageData","imageData","getHeapMax","alignMemory","alignment","growMemory","oldHeapSize","pages","grow","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","newSize","replacement","_setImageData","array_ptr","pitch8","pitch32","Uint8ClampedArray","destSize","srcStart","destStart","_setLineData","line_ptr","offset","writeArrayToMemory","array","_malloc","_free","_jbig2_decode","_ccitt_decode","memory","__indirect_function_table","h","run","doRun","Jbig2Error","JBig2CCITTFaxImage","handler","modulePromise","useWasm","useWorkerFetch","wasmUrl","setOptions","getJsModule","#getJsModule","fallbackCallback","default","instantiateWasm","#instantiateWasm","successCallback","filename","sendWithPromise","kind","results","instantiate","reason","globals","CCITTOptions","promise","withResolvers","promises","race","ptr","globalsPtr","EndOfLine","EncodedByteAlign","BlackIs1","Columns","Rows","globalsSize","cleanup","MathClamp","resizeRgbImage","src","w1","h1","w2","h2","alpha01","COMPONENTS","xRatio","yRatio","newIndex","oldIndex","xScaled","w1Scanline","floor","py","j","resizeRgbaImage","src32","dest32","rgbMask","copyRgbaImage","isDefaultDecodeHelper","expectedLen","decodeLen","ColorSpace","rgbBuf","numComps","getRgb","srcOffset","getRgbItem","getRgbHex","destOffset","getRgbBuffer","count","bits","getOutputLength","inputLength","isPassthrough","isDefaultDecode","bpc","fillRgb","originalWidth","originalHeight","actualHeight","comps","numComponentColors","needsResizing","allColors","colorMap","destPos","rgbPos","usesZeroToOneRange","AlternateCS","base","tintFn","tmpBuf","scale","baseNumComps","baseBuf","scaled","tinted","PatternCS","baseCS","IndexedCS","highVal","outputDelta","lookupPos","DeviceGrayCS","q","DeviceRgbCS","DeviceRgbaCS","_alpha01","DeviceCmykCS","toRgb","#toRgb","srcScale","k","CalGrayCS","whitePoint","blackPoint","gamma","XW","YW","ZW","XB","YB","ZB","G","A","AG","L","val","CalRGBCS","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","GR","GG","GB","MXA","MYA","MZA","MXB","MYB","MZB","MXC","MYC","MZC","matrixProduct","#matrixProduct","toFlat","#toFlat","sourceWhitePoint","LMS","toD65","#toD65","D65X","D65Y","D65Z","sRGBTransferFunction","#sRGBTransferFunction","color","decodeL","#decodeL","compensateBlackPoint","#compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","#normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","#normalizeWhitePointToD65","LMS_D65","B","AGR","BGG","CGB","Y","Z","XYZ","XYZ_Black","XYZ_D65","SRGB","LabCS","range","amin","amax","bmin","bmax","fn_g","#fn_g","#decode","high1","low2","high2","maxVal","Ls","as","bs","M","N","QCMS","memoryArray","_memory","_mustAddAlpha","_destBuffer","_destOffset","_destLength","_cssColor","_makeHexColor","_memoryArray","copy_result","copy_rgb","make_cssRGB","DataType","freeze","RGB8","RGBA8","BGRA8","Gray8","GrayA8","CMYK","Intent","Perceptual","RelativeColorimetric","Saturation","AbsoluteColorimetric","qcms_convert_array","transformer","ptr0","passArray8ToWasm0","wasm","__wbindgen_malloc","len0","WASM_VECTOR_LEN","qcms_convert_four","src1","src2","src3","src4","css","qcms_convert_one","qcms_convert_three","qcms_drop_transformer","qcms_transformer_from_memory","mem","in_type","intent","ret","__wbg_get_imports","import0","__proto__","__wbg___wbindgen_throw_6b64449b9b9ed33c","arg0","arg1","getStringFromWasm0","__wbg_copy_result_0d15f3bf9d9012ae","__wbg_copy_rgb_0106d9d9464fce43","__wbg_make_cssRGB_8e24b34f71f5363e","__wbindgen_init_externref_table","table","__wbindgen_externrefs","decodeText","cachedUint8ArrayMemory0","getUint8ArrayMemory0","malloc","cachedTextDecoder","ignoreBOM","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","wasmModule","__wbg_finalize_init","__wbindgen_start","__wbg_load","Response","instantiateStreaming","validResponse","expectedResponseType","headers","Instance","initSync","getPrototypeOf","__wbg_init","module_or_path","Request","fetchSync","xhr","XMLHttpRequest","open","responseType","send","IccColorSpace","convertPixel","finalizer","iccProfile","isUsable","inType","FinalizationRegistry","register","_module","CmykICCBasedCS","iccUrl","ColorSpaceUtils","cs","resources","pdfFunctionFactory","globalColorSpaceCache","localColorSpaceCache","asyncIfNotCached","csName","csRef","parsedCS","cachedCS","getByRef","getByName","subParse","#subParse","#parse","fetchIfRef","gray","rgb","rgba","cmyk","colorSpaces","resourcesCS","mode","params","isRef","iccCS","altRaw","altCS","hiVal","convertToRGBA","convertBlackAndWhiteToRGBA","convertRGBToRGBA","srcPos","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","xorMask","srcLength","elem","len32","alphaMask","s1","s2","s3","jj","grayToRGBA","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","children","index","pop","getBlockBufferOffset","row","col","blocksPerLine","decodeScan","view","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","readBit","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","node","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","s","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","sign","decodeMcu","mcu","mcuRow","mcuCol","blockCol","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p3","p4","p5","p6","p7","buildComponentData","computationBuffer","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","readDataBlock","endOffset","appData","oldOffset","newOffset","skipData","JpegImage","decodeTransform","colorTransform","_decodeTransform","_colorTransform","canUseImageDecoder","DataView","byteOffset","exifOffsets","numComponents","markerLoop","exifStart","exifEnd","dnlScanLines","maxOffset","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","l","version","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","scaleX","scaleY","_getLinearizedBlockData","isSourcePDF","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Cb","Cr","_convertYccToRgba","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","_convertYcckToRgba","_convertCmykToRgba","getData","forceRGBA","forceRGB","rgbaData","grayColor","OpenJPEG","EmscriptenEH","EmscriptenSjLj","_copy_pixels_1","compG_ptr","nb_pixels","compG","_copy_pixels_3","compR_ptr","compB_ptr","compR","compB","_copy_pixels_4","compA_ptr","compA","ENV","getExecutableName","getEnvStrings","strings","lang","language","replace","env","USER","LOGNAME","PATH","PWD","HOME","LANG","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","endIdx","u","stringToUTF8","outPtr","_environ_get","__environ","environ_buf","bufSize","envp","string","lengthBytesUTF8","_environ_sizes_get","penviron_count","penviron_buf_size","INT53_MAX","INT53_MIN","bigintToI53Checked","NaN","_fd_seek","fd","whence","printCharBuffers","UTF8Decoder","findStringEnd","heapOrArray","idx","maxBytesToRead","ignoreNul","maxIdx","UTF8ArrayToString","endPtr","u0","u1","u2","printChar","curr","UTF8ToString","_fd_write","iov","iovcnt","pnum","_gray_to_rgba","_graya_to_rgba","_jsPrintWarning","message_ptr","_rgb_to_rgba","_storeErrorMessage","errorMessages","_jp2_decode","o","Stream","strEnd","StringStream","NullStream","JpxError","JpxImage","isIndexedColormap","smaskInData","reducePower","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","bitsPerComponent","Jbig2Image","pdfjsImageDecoders"],"sourceRoot":""}
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/image_decoders/pdf.image_decoders.min.mjs b/frontend/node_modules/pdfjs-dist/legacy/image_decoders/pdf.image_decoders.min.mjs
new file mode 100644
index 0000000..ca4f21d
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/image_decoders/pdf.image_decoders.min.mjs
@@ -0,0 +1,31 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * JavaScript code in this page
+ *
+ * Copyright 2024 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @licend The above is the entire license notice for the
+ * JavaScript code in this page
+ */
+/**
+ * pdfjsVersion = 5.7.284
+ * pdfjsBuild = 7e5b36c2d
+ */var t={9306(t,e,r){var n=r(4901),o=r(6823),a=TypeError;t.exports=function(t){if(n(t))return t;throw new a(o(t)+" is not a function")}},3506(t,e,r){var n=r(3925),o=String,a=TypeError;t.exports=function(t){if(n(t))return t;throw new a("Can't set "+o(t)+" as a prototype")}},7080(t,e,r){var n=r(4402).has;t.exports=function(t){n(t);return t}},3463(t){var e=TypeError;t.exports=function(t){if("string"==typeof t)return t;throw new e("Argument is not a string")}},6469(t,e,r){var n=r(8227),o=r(2360),a=r(4913).f,i=n("unscopables"),s=Array.prototype;void 0===s[i]&&a(s,i,{configurable:!0,value:o(null)});t.exports=function(t){s[i][t]=!0}},679(t,e,r){var n=r(1625),o=TypeError;t.exports=function(t,e){if(n(e,t))return t;throw new o("Incorrect invocation")}},3972(t,e,r){var n=r(34),o=String,a=TypeError;t.exports=function(t){if(void 0===t||n(t))return t;throw new a(o(t)+" is not an object or undefined")}},8551(t,e,r){var n=r(34),o=String,a=TypeError;t.exports=function(t){if(n(t))return t;throw new a(o(t)+" is not an object")}},4154(t,e,r){var n=r(6955),o=TypeError;t.exports=function(t){if("Uint8Array"===n(t))return t;throw new o("Argument is not an Uint8Array")}},7811(t){t.exports="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView},7394(t,e,r){var n=r(4576),o=r(6706),a=r(2195),i=n.ArrayBuffer,s=n.TypeError;t.exports=i&&o(i.prototype,"byteLength","get")||function(t){if("ArrayBuffer"!==a(t))throw new s("ArrayBuffer expected");return t.byteLength}},3238(t,e,r){var n=r(4576),o=r(7811),a=r(7394),i=n.DataView;t.exports=function(t){if(!o||0!==a(t))return!1;try{new i(t);return!1}catch(t){return!0}}},5169(t,e,r){var n=r(3238),o=TypeError;t.exports=function(t){if(n(t))throw new o("ArrayBuffer is detached");return t}},5636(t,e,r){var n=r(4576),o=r(9504),a=r(6706),i=r(7696),s=r(5169),c=r(7394),u=r(4483),f=r(1548),l=n.structuredClone,h=n.ArrayBuffer,p=n.DataView,m=Math.max,g=Math.min,d=h.prototype,y=p.prototype,b=o(d.slice),w=a(d,"resizable","get"),v=a(d,"maxByteLength","get"),_=o(y.getInt8),x=o(y.setInt8);t.exports=(f||u)&&function(t,e,r){var n,o=c(t),a=void 0===e?o:i(e),d=!w||!w(t);s(t);if(f){t=l(t,{transfer:[t]});if(o===a&&(r||d))return t}if(o>=a&&(!r||d))n=b(t,0,a);else{var y=r&&!d&&v?{maxByteLength:m(a,v(t))}:void 0;n=new h(a,y);for(var C=new p(t),A=new p(n),S=g(a,o),R=0;Rf;)if((u=s[f++])!=u)return!0}else for(;c>f;f++)if((t||f in s)&&s[f]===r)return t||f||0;return!t&&-1}};t.exports={includes:createMethod(!0),indexOf:createMethod(!1)}},4527(t,e,r){var n=r(3724),o=r(4376),a=TypeError,i=Object.getOwnPropertyDescriptor,s=n&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=s?function(t,e){if(o(t)&&!i(t,"length").writable)throw new a("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},2804(t){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=e+"+/",n=e+"-_",inverse=function(t){for(var e={},r=0;r<64;r++)e[t.charAt(r)]=r;return e};t.exports={i2c:r,c2i:inverse(r),i2cUrl:n,c2iUrl:inverse(n)}},6319(t,e,r){var n=r(8551),o=r(9539);t.exports=function(t,e,r,a){try{return a?e(n(r)[0],r[1]):e(r)}catch(e){o(t,"throw",e)}}},2195(t,e,r){var n=r(9504),o=n({}.toString),a=n("".slice);t.exports=function(t){return a(o(t),8,-1)}},6955(t,e,r){var n=r(2140),o=r(4901),a=r(2195),i=r(8227)("toStringTag"),s=Object,c="Arguments"===a(function(){return arguments}());t.exports=n?a:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=s(t),i))?r:c?a(e):"Object"===(n=a(e))&&o(e.callee)?"Arguments":n}},7740(t,e,r){var n=r(9297),o=r(5031),a=r(7347),i=r(4913);t.exports=function(t,e,r){for(var s=o(e),c=i.f,u=a.f,f=0;f9007199254740991)throw new e("Maximum allowed index exceeded");return t}},8727(t){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},6193(t,e,r){var n=r(4215);t.exports="NODE"===n},2839(t,e,r){var n=r(4576).navigator,o=n&&n.userAgent;t.exports=o?String(o):""},9519(t,e,r){var n,o,a=r(4576),i=r(2839),s=a.process,c=a.Deno,u=s&&s.versions||c&&c.version,f=u&&u.v8;f&&(o=(n=f.split("."))[0]>0&&n[0]<4?1:+(n[0]+n[1]));!o&&i&&(!(n=i.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=i.match(/Chrome\/(\d+)/))&&(o=+n[1]);t.exports=o},4215(t,e,r){var n=r(4576),o=r(2839),a=r(2195),userAgentStartsWith=function(t){return o.slice(0,t.length)===t};t.exports=userAgentStartsWith("Bun/")?"BUN":userAgentStartsWith("Cloudflare-Workers")?"CLOUDFLARE":userAgentStartsWith("Deno/")?"DENO":userAgentStartsWith("Node.js/")?"NODE":n.Bun&&"string"==typeof Bun.version?"BUN":n.Deno&&"object"==typeof Deno.version?"DENO":"process"===a(n.process)?"NODE":n.window&&n.document?"BROWSER":"REST"},6518(t,e,r){var n=r(4576),o=r(7347).f,a=r(6699),i=r(6840),s=r(9433),c=r(7740),u=r(2796);t.exports=function(t,e){var r,f,l,h,p,m=t.target,g=t.global,d=t.stat;if(r=g?n:d?n[m]||s(m,{}):n[m]&&n[m].prototype)for(f in e){h=e[f];l=t.dontCallGetSet?(p=o(r,f))&&p.value:r[f];if(!u(g?f:m+(d?".":"#")+f,t.forced)&&void 0!==l){if(typeof h==typeof l)continue;c(h,l)}(t.sham||l&&l.sham)&&a(h,"sham",!0);i(r,f,h,t)}}},9039(t){t.exports=function(t){try{return!!t()}catch(t){return!0}}},6080(t,e,r){var n=r(7476),o=r(9306),a=r(616),i=n(n.bind);t.exports=function(t,e){o(t);return void 0===e?t:a?i(t,e):function(){return t.apply(e,arguments)}}},616(t,e,r){var n=r(9039);t.exports=!n(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})},9565(t,e,r){var n=r(616),o=Function.prototype.call;t.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},350(t,e,r){var n=r(3724),o=r(9297),a=Function.prototype,i=n&&Object.getOwnPropertyDescriptor,s=o(a,"name"),c=s&&"something"===function something(){}.name,u=s&&(!n||n&&i(a,"name").configurable);t.exports={EXISTS:s,PROPER:c,CONFIGURABLE:u}},6706(t,e,r){var n=r(9504),o=r(9306);t.exports=function(t,e,r){try{return n(o(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}}},7476(t,e,r){var n=r(2195),o=r(9504);t.exports=function(t){if("Function"===n(t))return o(t)}},9504(t,e,r){var n=r(616),o=Function.prototype,a=o.call,i=n&&o.bind.bind(a,a);t.exports=n?i:function(t){return function(){return a.apply(t,arguments)}}},944(t){var e=TypeError;t.exports=function(t){var r=t&&t.alphabet;if(void 0===r||"base64"===r||"base64url"===r)return r||"base64";throw new e("Incorrect `alphabet` option")}},9429(t,e,r){var n=r(4576),o=r(6193);t.exports=function(t){if(o){try{return n.process.getBuiltinModule(t)}catch(t){}try{return Function('return require("'+t+'")')()}catch(t){}}}},7751(t,e,r){var n=r(4576),o=r(4901);t.exports=function(t,e){return arguments.length<2?(r=n[t],o(r)?r:void 0):n[t]&&n[t][e];var r}},1767(t){t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},851(t,e,r){var n=r(6955),o=r(5966),a=r(4117),i=r(6269),s=r(8227)("iterator");t.exports=function(t){if(!a(t))return o(t,s)||o(t,"@@iterator")||i[n(t)]}},81(t,e,r){var n=r(9565),o=r(9306),a=r(8551),i=r(6823),s=r(851),c=TypeError;t.exports=function(t,e){var r=arguments.length<2?s(t):e;if(o(r))return a(n(r,t));throw new c(i(t)+" is not iterable")}},5966(t,e,r){var n=r(9306),o=r(4117);t.exports=function(t,e){var r=t[e];return o(r)?void 0:n(r)}},3789(t,e,r){var n=r(9306),o=r(8551),a=r(9565),i=r(1291),s=r(1767),c="Invalid size",u=RangeError,f=TypeError,l=Math.max,SetRecord=function(t,e){this.set=t;this.size=l(e,0);this.has=n(t.has);this.keys=n(t.keys)};SetRecord.prototype={getIterator:function(){return s(o(a(this.keys,this.set)))},includes:function(t){return a(this.has,this.set,t)}};t.exports=function(t){o(t);var e=+t.size;if(e!=e)throw new f(c);var r=i(e);if(r<0)throw new u(c);return new SetRecord(t,r)}},4576(t){var check=function(t){return t&&t.Math===Math&&t};t.exports=check("object"==typeof globalThis&&globalThis)||check("object"==typeof window&&window)||check("object"==typeof self&&self)||check("object"==typeof global&&global)||check("object"==typeof this&&this)||function(){return this}()||Function("return this")()},9297(t,e,r){var n=r(9504),o=r(8981),a=n({}.hasOwnProperty);t.exports=Object.hasOwn||function hasOwn(t,e){return a(o(t),e)}},421(t){t.exports={}},397(t,e,r){var n=r(7751);t.exports=n("document","documentElement")},5917(t,e,r){var n=r(3724),o=r(9039),a=r(4055);t.exports=!n&&!o(function(){return 7!==Object.defineProperty(a("div"),"a",{get:function(){return 7}}).a})},7055(t,e,r){var n=r(9504),o=r(9039),a=r(2195),i=Object,s=n("".split);t.exports=o(function(){return!i("z").propertyIsEnumerable(0)})?function(t){return"String"===a(t)?s(t,""):i(t)}:i},3706(t,e,r){var n=r(9504),o=r(4901),a=r(7629),i=n(Function.toString);o(a.inspectSource)||(a.inspectSource=function(t){return i(t)});t.exports=a.inspectSource},1181(t,e,r){var n,o,a,i=r(8622),s=r(4576),c=r(34),u=r(6699),f=r(9297),l=r(7629),h=r(6119),p=r(421),m="Object already initialized",g=s.TypeError,d=s.WeakMap;if(i||l.state){var y=l.state||(l.state=new d);y.get=y.get;y.has=y.has;y.set=y.set;n=function(t,e){if(y.has(t))throw new g(m);e.facade=t;y.set(t,e);return e};o=function(t){return y.get(t)||{}};a=function(t){return y.has(t)}}else{var b=h("state");p[b]=!0;n=function(t,e){if(f(t,b))throw new g(m);e.facade=t;u(t,b,e);return e};o=function(t){return f(t,b)?t[b]:{}};a=function(t){return f(t,b)}}t.exports={set:n,get:o,has:a,enforce:function(t){return a(t)?o(t):n(t,{})},getterFor:function(t){return function(e){var r;if(!c(e)||(r=o(e)).type!==t)throw new g("Incompatible receiver, "+t+" required");return r}}}},4209(t,e,r){var n=r(8227),o=r(6269),a=n("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||i[a]===t)}},4376(t,e,r){var n=r(2195);t.exports=Array.isArray||function isArray(t){return"Array"===n(t)}},1108(t,e,r){var n=r(6955);t.exports=function(t){var e=n(t);return"BigInt64Array"===e||"BigUint64Array"===e}},4901(t){var e="object"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},2796(t,e,r){var n=r(9039),o=r(4901),a=/#|\.prototype\./,isForced=function(t,e){var r=s[i(t)];return r===u||r!==c&&(o(e)?n(e):!!e)},i=isForced.normalize=function(t){return String(t).replace(a,".").toLowerCase()},s=isForced.data={},c=isForced.NATIVE="N",u=isForced.POLYFILL="P";t.exports=isForced},4117(t){t.exports=function(t){return null==t}},34(t,e,r){var n=r(4901);t.exports=function(t){return"object"==typeof t?null!==t:n(t)}},3925(t,e,r){var n=r(34);t.exports=function(t){return n(t)||null===t}},6395(t){t.exports=!1},757(t,e,r){var n=r(7751),o=r(4901),a=r(1625),i=r(7040),s=Object;t.exports=i?function(t){return"symbol"==typeof t}:function(t){var e=n("Symbol");return o(e)&&a(e.prototype,s(t))}},507(t,e,r){var n=r(9565);t.exports=function(t,e,r){for(var o,a,i=r?t:t.iterator,s=t.next;!(o=n(s,i)).done;)if(void 0!==(a=e(o.value)))return a}},2652(t,e,r){var n=r(6080),o=r(9565),a=r(8551),i=r(6823),s=r(4209),c=r(6198),u=r(1625),f=r(81),l=r(851),h=r(9539),p=TypeError,Result=function(t,e){this.stopped=t;this.result=e},m=Result.prototype;t.exports=function(t,e,r){var g,d,y,b,w,v,_,x=r&&r.that,C=!(!r||!r.AS_ENTRIES),A=!(!r||!r.IS_RECORD),S=!(!r||!r.IS_ITERATOR),R=!(!r||!r.INTERRUPTED),B=n(e,x),stop=function(t){var e=g;g=void 0;e&&h(e,"normal");return new Result(!0,t)},callFn=function(t){if(C){a(t);return R?B(t[0],t[1],stop):B(t[0],t[1])}return R?B(t,stop):B(t)};if(A)g=t.iterator;else if(S)g=t;else{if(!(d=l(t)))throw new p(i(t)+" is not iterable");if(s(d)){for(y=0,b=c(t);b>y;y++)if((w=callFn(t[y]))&&u(m,w))return w;return new Result(!1)}g=f(t,d)}v=A?t.next:g.next;for(;!(_=o(v,g)).done;){var I=_.value;try{w=callFn(I)}catch(t){if(!g)throw t;h(g,"throw",t)}if("object"==typeof w&&w&&u(m,w))return w}return new Result(!1)}},1385(t,e,r){var n=r(9539);t.exports=function(t,e,r){for(var o=t.length-1;o>=0;o--)if(void 0!==t[o])try{r=n(t[o].iterator,e,r)}catch(t){e="throw";r=t}if("throw"===e)throw r;return r}},9539(t,e,r){var n=r(9565),o=r(8551),a=r(5966);t.exports=function(t,e,r){var i,s;o(t);try{if(!(i=a(t,"return"))){if("throw"===e)throw r;return r}i=n(i,t)}catch(t){s=!0;i=t}if("throw"===e)throw r;if(s)throw i;o(i);return r}},9462(t,e,r){var n=r(9565),o=r(2360),a=r(6699),i=r(6279),s=r(8227),c=r(1181),u=r(5966),f=r(7657).IteratorPrototype,l=r(2529),h=r(9539),p=r(1385),m=s("toStringTag"),g="IteratorHelper",d="WrapForValidIterator",y="normal",b="throw",w=c.set,createIteratorProxyPrototype=function(t){var e=c.getterFor(t?d:g);return i(o(f),{next:function next(){var r=e(this);if(t)return r.nextHandler();if(r.done)return l(void 0,!0);try{var n=r.nextHandler();return r.returnHandlerResult?n:l(n,r.done)}catch(t){r.done=!0;throw t}},return:function(){var r=e(this),o=r.iterator,a=r.done;r.done=!0;if(t){var i=u(o,"return");return i?n(i,o):l(void 0,!0)}if(a)return l(void 0,!0);if(r.inner)try{h(r.inner.iterator,y)}catch(t){return h(o,b,t)}if(r.openIters)try{p(r.openIters,y)}catch(t){if(o)return h(o,b,t);throw t}o&&h(o,y);return l(void 0,!0)}})},v=createIteratorProxyPrototype(!0),_=createIteratorProxyPrototype(!1);a(_,m,"Iterator Helper");t.exports=function(t,e,r){var n=function Iterator(n,o){if(o){o.iterator=n.iterator;o.next=n.next}else o=n;o.type=e?d:g;o.returnHandlerResult=!!r;o.nextHandler=t;o.counter=0;o.done=!1;w(this,o)};n.prototype=e?v:_;return n}},684(t){t.exports=function(t,e){var r="function"==typeof Iterator&&Iterator.prototype[t];if(r)try{r.call({next:null},e).next()}catch(t){return!0}}},4549(t,e,r){var n=r(4576);t.exports=function(t,e){var r=n.Iterator,o=r&&r.prototype,a=o&&o[t],i=!1;if(a)try{a.call({next:function(){return{done:!0}},return:function(){i=!0}},-1)}catch(t){t instanceof e||(i=!1)}if(!i)return a}},7657(t,e,r){var n,o,a,i=r(9039),s=r(4901),c=r(34),u=r(2360),f=r(2787),l=r(6840),h=r(8227),p=r(6395),m=h("iterator"),g=!1;[].keys&&("next"in(a=[].keys())?(o=f(f(a)))!==Object.prototype&&(n=o):g=!0);!c(n)||i(function(){var t={};return n[m].call(t)!==t})?n={}:p&&(n=u(n));s(n[m])||l(n,m,function(){return this});t.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:g}},6269(t){t.exports={}},6198(t,e,r){var n=r(8014);t.exports=function(t){return n(t.length)}},283(t,e,r){var n=r(9504),o=r(9039),a=r(4901),i=r(9297),s=r(3724),c=r(350).CONFIGURABLE,u=r(3706),f=r(1181),l=f.enforce,h=f.get,p=String,m=Object.defineProperty,g=n("".slice),d=n("".replace),y=n([].join),b=s&&!o(function(){return 8!==m(function(){},"length",{value:8}).length}),w=String(String).split("String"),v=t.exports=function(t,e,r){"Symbol("===g(p(e),0,7)&&(e="["+d(p(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]");r&&r.getter&&(e="get "+e);r&&r.setter&&(e="set "+e);(!i(t,"name")||c&&t.name!==e)&&(s?m(t,"name",{value:e,configurable:!0}):t.name=e);b&&r&&i(r,"arity")&&t.length!==r.arity&&m(t,"length",{value:r.arity});try{r&&i(r,"constructor")&&r.constructor?s&&m(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var n=l(t);i(n,"source")||(n.source=y(w,"string"==typeof e?e:""));return t};Function.prototype.toString=v(function toString(){return a(this)&&h(this).source||u(this)},"toString")},2248(t,e,r){var n=r(9504),o=Map.prototype;t.exports={Map,set:n(o.set),get:n(o.get),has:n(o.has),remove:n(o.delete),proto:o}},741(t){var e=Math.ceil,r=Math.floor;t.exports=Math.trunc||function trunc(t){var n=+t;return(n>0?r:e)(n)}},6043(t,e,r){var n=r(9306),o=TypeError,PromiseCapability=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw new o("Bad Promise constructor");e=t;r=n});this.resolve=n(e);this.reject=n(r)};t.exports.f=function(t){return new PromiseCapability(t)}},2360(t,e,r){var n,o=r(8551),a=r(6801),i=r(8727),s=r(421),c=r(397),u=r(4055),f=r(6119),l="prototype",h="script",p=f("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(t){return"<"+h+">"+t+""+h+">"},NullProtoObjectViaActiveX=function(t){t.write(scriptTag(""));t.close();var e=t.parentWindow.Object;t=null;return e},NullProtoObject=function(){try{n=new ActiveXObject("htmlfile")}catch(t){}NullProtoObject="undefined"!=typeof document?document.domain&&n?NullProtoObjectViaActiveX(n):function(){var t,e=u("iframe"),r="java"+h+":";e.style.display="none";c.appendChild(e);e.src=String(r);(t=e.contentWindow.document).open();t.write(scriptTag("document.F=Object"));t.close();return t.F}():NullProtoObjectViaActiveX(n);for(var t=i.length;t--;)delete NullProtoObject[l][i[t]];return NullProtoObject()};s[p]=!0;t.exports=Object.create||function create(t,e){var r;if(null!==t){EmptyConstructor[l]=o(t);r=new EmptyConstructor;EmptyConstructor[l]=null;r[p]=t}else r=NullProtoObject();return void 0===e?r:a.f(r,e)}},6801(t,e,r){var n=r(3724),o=r(8686),a=r(4913),i=r(8551),s=r(5397),c=r(1072);e.f=n&&!o?Object.defineProperties:function defineProperties(t,e){i(t);for(var r,n=s(e),o=c(e),u=o.length,f=0;u>f;)a.f(t,r=o[f++],n[r]);return t}},4913(t,e,r){var n=r(3724),o=r(5917),a=r(8686),i=r(8551),s=r(6969),c=TypeError,u=Object.defineProperty,f=Object.getOwnPropertyDescriptor,l="enumerable",h="configurable",p="writable";e.f=n?a?function defineProperty(t,e,r){i(t);e=s(e);i(r);if("function"==typeof t&&"prototype"===e&&"value"in r&&p in r&&!r[p]){var n=f(t,e);if(n&&n[p]){t[e]=r.value;r={configurable:h in r?r[h]:n[h],enumerable:l in r?r[l]:n[l],writable:!1}}}return u(t,e,r)}:u:function defineProperty(t,e,r){i(t);e=s(e);i(r);if(o)try{return u(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new c("Accessors not supported");"value"in r&&(t[e]=r.value);return t}},7347(t,e,r){var n=r(3724),o=r(9565),a=r(8773),i=r(6980),s=r(5397),c=r(6969),u=r(9297),f=r(5917),l=Object.getOwnPropertyDescriptor;e.f=n?l:function getOwnPropertyDescriptor(t,e){t=s(t);e=c(e);if(f)try{return l(t,e)}catch(t){}if(u(t,e))return i(!o(a.f,t,e),t[e])}},8480(t,e,r){var n=r(1828),o=r(8727).concat("length","prototype");e.f=Object.getOwnPropertyNames||function getOwnPropertyNames(t){return n(t,o)}},3717(t,e){e.f=Object.getOwnPropertySymbols},2787(t,e,r){var n=r(9297),o=r(4901),a=r(8981),i=r(6119),s=r(2211),c=i("IE_PROTO"),u=Object,f=u.prototype;t.exports=s?u.getPrototypeOf:function(t){var e=a(t);if(n(e,c))return e[c];var r=e.constructor;return o(r)&&e instanceof r?r.prototype:e instanceof u?f:null}},1625(t,e,r){var n=r(9504);t.exports=n({}.isPrototypeOf)},1828(t,e,r){var n=r(9504),o=r(9297),a=r(5397),i=r(9617).indexOf,s=r(421),c=n([].push);t.exports=function(t,e){var r,n=a(t),u=0,f=[];for(r in n)!o(s,r)&&o(n,r)&&c(f,r);for(;e.length>u;)o(n,r=e[u++])&&(~i(f,r)||c(f,r));return f}},1072(t,e,r){var n=r(1828),o=r(8727);t.exports=Object.keys||function keys(t){return n(t,o)}},8773(t,e){var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!r.call({1:2},1);e.f=o?function propertyIsEnumerable(t){var e=n(this,t);return!!e&&e.enumerable}:r},2967(t,e,r){var n=r(6706),o=r(34),a=r(7750),i=r(3506);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=n(Object.prototype,"__proto__","set"))(r,[]);e=r instanceof Array}catch(t){}return function setPrototypeOf(r,n){a(r);i(n);if(!o(r))return r;e?t(r,n):r.__proto__=n;return r}}():void 0)},4270(t,e,r){var n=r(9565),o=r(4901),a=r(34),i=TypeError;t.exports=function(t,e){var r,s;if("string"===e&&o(r=t.toString)&&!a(s=n(r,t)))return s;if(o(r=t.valueOf)&&!a(s=n(r,t)))return s;if("string"!==e&&o(r=t.toString)&&!a(s=n(r,t)))return s;throw new i("Can't convert object to primitive value")}},5031(t,e,r){var n=r(7751),o=r(9504),a=r(8480),i=r(3717),s=r(8551),c=o([].concat);t.exports=n("Reflect","ownKeys")||function ownKeys(t){var e=a.f(s(t)),r=i.f;return r?c(e,r(t)):e}},7750(t,e,r){var n=r(4117),o=TypeError;t.exports=function(t){if(n(t))throw new o("Can't call method on "+t);return t}},9286(t,e,r){var n=r(4402),o=r(8469),a=n.Set,i=n.add;t.exports=function(t){var e=new a;o(t,function(t){i(e,t)});return e}},3440(t,e,r){var n=r(7080),o=r(4402),a=r(9286),i=r(5170),s=r(3789),c=r(8469),u=r(507),f=o.has,l=o.remove;t.exports=function difference(t){var e=n(this),r=s(t),o=a(e);i(o)<=r.size?c(o,function(t){r.includes(t)&&l(o,t)}):u(r.getIterator(),function(t){f(o,t)&&l(o,t)});return o}},4402(t,e,r){var n=r(9504),o=Set.prototype;t.exports={Set,add:n(o.add),has:n(o.has),remove:n(o.delete),proto:o}},8750(t,e,r){var n=r(7080),o=r(4402),a=r(5170),i=r(3789),s=r(8469),c=r(507),u=o.Set,f=o.add,l=o.has;t.exports=function intersection(t){var e=n(this),r=i(t),o=new u;a(e)>r.size?c(r.getIterator(),function(t){l(e,t)&&f(o,t)}):s(e,function(t){r.includes(t)&&f(o,t)});return o}},4449(t,e,r){var n=r(7080),o=r(4402).has,a=r(5170),i=r(3789),s=r(8469),c=r(507),u=r(9539);t.exports=function isDisjointFrom(t){var e=n(this),r=i(t);if(a(e)<=r.size)return!1!==s(e,function(t){if(r.includes(t))return!1},!0);var f=r.getIterator();return!1!==c(f,function(t){if(o(e,t))return u(f.iterator,"normal",!1)})}},3838(t,e,r){var n=r(7080),o=r(5170),a=r(8469),i=r(3789);t.exports=function isSubsetOf(t){var e=n(this),r=i(t);return!(o(e)>r.size)&&!1!==a(e,function(t){if(!r.includes(t))return!1},!0)}},8527(t,e,r){var n=r(7080),o=r(4402).has,a=r(5170),i=r(3789),s=r(507),c=r(9539);t.exports=function isSupersetOf(t){var e=n(this),r=i(t);if(a(e)92||"NODE"===i&&a>94||"BROWSER"===i&&a>97)return!1;var t=new ArrayBuffer(8),e=s(t,{transfer:[t]});return 0!==t.byteLength||8!==e.byteLength})},4495(t,e,r){var n=r(9519),o=r(9039),a=r(4576).String;t.exports=!!Object.getOwnPropertySymbols&&!o(function(){var t=Symbol("symbol detection");return!a(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&n&&n<41})},5610(t,e,r){var n=r(1291),o=Math.max,a=Math.min;t.exports=function(t,e){var r=n(t);return r<0?o(r+e,0):a(r,e)}},5854(t,e,r){var n=r(2777),o=TypeError;t.exports=function(t){var e=n(t,"number");if("number"==typeof e)throw new o("Can't convert number to bigint");return BigInt(e)}},7696(t,e,r){var n=r(1291),o=r(8014),a=RangeError;t.exports=function(t){if(void 0===t)return 0;var e=n(t),r=o(e);if(e!==r)throw new a("Wrong length or index");return r}},5397(t,e,r){var n=r(7055),o=r(7750);t.exports=function(t){return n(o(t))}},1291(t,e,r){var n=r(741);t.exports=function(t){var e=+t;return e!=e||0===e?0:n(e)}},8014(t,e,r){var n=r(1291),o=Math.min;t.exports=function(t){var e=n(t);return e>0?o(e,9007199254740991):0}},8981(t,e,r){var n=r(7750),o=Object;t.exports=function(t){return o(n(t))}},2777(t,e,r){var n=r(9565),o=r(34),a=r(757),i=r(5966),s=r(4270),c=r(8227),u=TypeError,f=c("toPrimitive");t.exports=function(t,e){if(!o(t)||a(t))return t;var r,c=i(t,f);if(c){void 0===e&&(e="default");r=n(c,t,e);if(!o(r)||a(r))return r;throw new u("Can't convert object to primitive value")}void 0===e&&(e="number");return s(t,e)}},6969(t,e,r){var n=r(2777),o=r(757);t.exports=function(t){var e=n(t,"string");return o(e)?e:e+""}},2140(t,e,r){var n={};n[r(8227)("toStringTag")]="z";t.exports="[object z]"===String(n)},655(t,e,r){var n=r(6955),o=String;t.exports=function(t){if("Symbol"===n(t))throw new TypeError("Cannot convert a Symbol value to a string");return o(t)}},6823(t){var e=String;t.exports=function(t){try{return e(t)}catch(t){return"Object"}}},3392(t,e,r){var n=r(9504),o=0,a=Math.random(),i=n(1.1.toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+i(++o+a,36)}},9143(t,e,r){var n=r(4576),o=r(9504),a=r(3972),i=r(3463),s=r(9297),c=r(2804),u=r(944),f=r(5169),l=c.c2i,h=c.c2iUrl,p=n.SyntaxError,m=n.TypeError,g=o("".charAt),skipAsciiWhitespace=function(t,e){for(var r=t.length;e>16&255,o>>8&255,255&o];if(2===n){if(r&&0!==a[1])throw new p("Extra bits");return[a[0]]}if(3===n){if(r&&0!==a[2])throw new p("Extra bits");return[a[0],a[1]]}return a},writeBytes=function(t,e,r){for(var n=e.length,o=0;o0){if("stop-before-partial"===c)break;if("loose"!==c)throw new p("Missing padding");if(1===v.length)throw new p("Malformed padding: exactly one additional character");b=writeBytes(y,decodeBase64Chunk(v,o,!1),b)}w=d;break}var x=g(t,_);++_;if("="===x){if(v.length<2)throw new p("Padding is too early");_=skipAsciiWhitespace(t,_);if(2===v.length){if(_===d){if("stop-before-partial"===c)break;throw new p("Malformed padding: only one =")}if("="===g(t,_)){++_;_=skipAsciiWhitespace(t,_)}}if(_>4}return{bytes:o,read:f<<1}}},7416(t,e,r){var n=r(9039),o=r(8227),a=r(3724),i=r(6395),s=o("iterator");t.exports=!n(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),e=t.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),n="";t.pathname="c%20d";e.forEach(function(t,r){e.delete("b");n+=r+t});r.delete("a",2);r.delete("b",void 0);return i&&(!t.toJSON||!r.has("a",1)||r.has("a",2)||!r.has("a",void 0)||r.has("b"))||!e.size&&(i||!a)||!e.sort||"https://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[s]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://ΡΠ΅ΡΡ").host||"#%D0%B1"!==new URL("https://a#Π±").hash||"a1c3"!==n||"x"!==new URL("https://x",void 0).host})},7040(t,e,r){var n=r(4495);t.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},8686(t,e,r){var n=r(3724),o=r(9039);t.exports=n&&o(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},2812(t){var e=TypeError;t.exports=function(t,r){if(t1?arguments[1]:void 0)}});i("includes")},4114(t,e,r){var n=r(6518),o=r(8981),a=r(6198),i=r(4527),s=r(6837);n({target:"Array",proto:!0,arity:1,forced:r(9039)(function(){return 4294967297!==[].push.call({length:4294967296},1)})||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function push(t){var e=o(this),r=a(e),n=arguments.length;s(r+n);for(var c=0;c1;e.has(1)&&e.clear();return{done:r,value:2}}}}},e=new Set([1,2,3,4]);return 3!==e.difference(t).size})},{difference:o})},8004(t,e,r){var n=r(6518),o=r(9039),a=r(8750);n({target:"Set",proto:!0,real:!0,forced:!r(4916)("intersection",function(t){return 2===t.size&&t.has(1)&&t.has(2)})||o(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))})},{intersection:a})},3853(t,e,r){var n=r(6518),o=r(4449);n({target:"Set",proto:!0,real:!0,forced:!r(4916)("isDisjointFrom",function(t){return!t})},{isDisjointFrom:o})},5876(t,e,r){var n=r(6518),o=r(3838);n({target:"Set",proto:!0,real:!0,forced:!r(4916)("isSubsetOf",function(t){return t})},{isSubsetOf:o})},2475(t,e,r){var n=r(6518),o=r(8527);n({target:"Set",proto:!0,real:!0,forced:!r(4916)("isSupersetOf",function(t){return!t})},{isSupersetOf:o})},5024(t,e,r){var n=r(6518),o=r(3650),a=r(9835);n({target:"Set",proto:!0,real:!0,forced:!r(4916)("symmetricDifference")||!a("symmetricDifference")},{symmetricDifference:o})},1698(t,e,r){var n=r(6518),o=r(4204),a=r(9835);n({target:"Set",proto:!0,real:!0,forced:!r(4916)("union")||!a("union")},{union:o})},9577(t,e,r){var n=r(4644),o=r(1108),a=r(6198),i=r(1291),s=r(5854),c=n.aTypedArray,u=n.getTypedArrayConstructor,f=n.exportTypedArrayMethod,l=RangeError,h=function(){try{new Int8Array(1).with(2,{valueOf:function(){throw 8}})}catch(t){return 8===t}}(),p=h&&function(){try{new Int8Array(1).with(-.5,1)}catch(t){return!0}}();f("with",{with:function(t,e){var r=c(this),n=a(r),f=i(t),h=f<0?n+f:f,p=o(r)?s(e):+e;if(h>=n||h<0)throw new l("Incorrect index");for(var m=new(u(r))(n),g=0;g1?arguments[1]:void 0,this,this.length);return{read:e.read,written:e.written}}})},4226(t,e,r){var n=r(6518),o=r(4576),a=r(3463),i=r(4154),s=r(5169),c=r(2303);o.Uint8Array&&n({target:"Uint8Array",proto:!0,forced:function throwsOnLengthTrackingView(){try{var t=new ArrayBuffer(16,{maxByteLength:1024});new Uint8Array(t).setFromHex("cafed00d")}catch(t){return!0}}()},{setFromHex:function setFromHex(t){i(this);a(t);s(this.buffer);var e=c(t,this).read;return{read:e,written:e/2}}})},9486(t,e,r){var n=r(6518),o=r(4576),a=r(9504),i=r(3972),s=r(4154),c=r(5169),u=r(2804),f=r(944),l=u.i2c,h=u.i2cUrl,p=a("".charAt),m=o.Uint8Array,g=!m||!m.prototype.toBase64||!function(){try{(new m).toBase64(null)}catch(t){return!0}}();m&&n({target:"Uint8Array",proto:!0,forced:g},{toBase64:function toBase64(){var t=s(this),e=arguments.length?i(arguments[0]):void 0,r="base64"===f(e)?l:h,n=!!e&&!!e.omitPadding;c(this.buffer);for(var o,a="",u=0,m=t.length,at=function(t){return p(r,o>>6*t&63)};u+2{for(var r in e)__webpack_require__.o(e,r)&&!__webpack_require__.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})};__webpack_require__.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);__webpack_require__(4423),__webpack_require__(4114),__webpack_require__(6573),__webpack_require__(8100),__webpack_require__(7936),__webpack_require__(5367),__webpack_require__(2731),__webpack_require__(9577),__webpack_require__(6632),__webpack_require__(4226),__webpack_require__(9486),__webpack_require__(456),__webpack_require__(5781);"object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&process.type;const r=[1/0,1/0,-1/0,-1/0],n=(new Float32Array(r),{ERRORS:0,WARNINGS:1,INFOS:5});let o=n.WARNINGS;function setVerbosityLevel(t){Number.isInteger(t)&&(o=t)}function getVerbosityLevel(){return o}function info(t){o>=n.INFOS&&console.info(`Info: ${t}`)}function warn(t){o>=n.WARNINGS&&console.warn(`Warning: ${t}`)}function unreachable(t){throw new Error(t)}function shadow(t,e,r,n=!1){Object.defineProperty(t,e,{value:r,enumerable:!n,configurable:!0,writable:!1});return r}const a=function BaseExceptionClosure(){function BaseException(t,e){this.message=t;this.name=e}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();class FormatError extends a{constructor(t){super(t,"FormatError")}}function bytesToString(t){"object"==typeof t&&void 0!==t?.length||unreachable("Invalid argument for bytesToString");const e=t.length,r=8192;if(e{if("undefined"==typeof document)return!1;const t=document.createElement("input");t.type="color";t.setAttribute("alpha","");t.value="#ff000080";return"#ff0000"!==t.value})())}}class Util{static get hexNums(){return shadow(this,"hexNums",Array.from(Array(256).keys(),t=>t.toString(16).padStart(2,"0")))}static makeHexColor(t,e,r){return`#${this.hexNums[t]}${this.hexNums[e]}${this.hexNums[r]}`}static domMatrixToTransform(t){return[t.a,t.b,t.c,t.d,t.e,t.f]}static scaleMinMax(t,e){let r;if(t[0]){if(t[0]<0){r=e[0];e[0]=e[2];e[2]=r}e[0]*=t[0];e[2]*=t[0];if(t[3]<0){r=e[1];e[1]=e[3];e[3]=r}e[1]*=t[3];e[3]*=t[3]}else{r=e[0];e[0]=e[1];e[1]=r;r=e[2];e[2]=e[3];e[3]=r;if(t[1]<0){r=e[1];e[1]=e[3];e[3]=r}e[1]*=t[1];e[3]*=t[1];if(t[2]<0){r=e[0];e[0]=e[2];e[2]=r}e[0]*=t[2];e[2]*=t[2]}e[0]+=t[4];e[1]+=t[5];e[2]+=t[4];e[3]+=t[5]}static transform(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}static multiplyByDOMMatrix(t,e){return[t[0]*e.a+t[2]*e.b,t[1]*e.a+t[3]*e.b,t[0]*e.c+t[2]*e.d,t[1]*e.c+t[3]*e.d,t[0]*e.e+t[2]*e.f+t[4],t[1]*e.e+t[3]*e.f+t[5]]}static applyTransform(t,e,r=0){const n=t[r],o=t[r+1];t[r]=n*e[0]+o*e[2]+e[4];t[r+1]=n*e[1]+o*e[3]+e[5]}static applyTransformToBezier(t,e,r=0){const n=e[0],o=e[1],a=e[2],i=e[3],s=e[4],c=e[5];for(let e=0;e<6;e+=2){const u=t[r+e],f=t[r+e+1];t[r+e]=u*n+f*a+s;t[r+e+1]=u*o+f*i+c}}static applyInverseTransform(t,e){const r=t[0],n=t[1],o=e[0]*e[3]-e[1]*e[2];t[0]=(r*e[3]-n*e[2]+e[2]*e[5]-e[4]*e[3])/o;t[1]=(-r*e[1]+n*e[0]+e[4]*e[1]-e[5]*e[0])/o}static axialAlignedBoundingBox(t,e,r){const n=e[0],o=e[1],a=e[2],i=e[3],s=e[4],c=e[5],u=t[0],f=t[1],l=t[2],h=t[3];let p=n*u+s,m=p,g=n*l+s,d=g,y=i*f+c,b=y,w=i*h+c,v=w;if(0!==o||0!==a){const t=o*u,e=o*l,r=a*f,n=a*h;p+=r;d+=r;g+=n;m+=n;y+=t;v+=t;w+=e;b+=e}r[0]=Math.min(r[0],p,g,m,d);r[1]=Math.min(r[1],y,w,b,v);r[2]=Math.max(r[2],p,g,m,d);r[3]=Math.max(r[3],y,w,b,v)}static inverseTransform(t){const e=t[0]*t[3]-t[1]*t[2];return[t[3]/e,-t[1]/e,-t[2]/e,t[0]/e,(t[2]*t[5]-t[4]*t[3])/e,(t[4]*t[1]-t[5]*t[0])/e]}static singularValueDecompose2dScale(t,e){const r=t[0],n=t[1],o=t[2],a=t[3],i=r**2+n**2,s=r*o+n*a,c=o**2+a**2,u=(i+c)/2,f=Math.sqrt(u**2-(i*c-s**2));e[0]=Math.sqrt(u+f||1);e[1]=Math.sqrt(u-f||1)}static normalizeRect(t){const e=t.slice(0);if(t[0]>t[2]){e[0]=t[2];e[2]=t[0]}if(t[1]>t[3]){e[1]=t[3];e[3]=t[1]}return e}static intersect(t,e){const r=Math.max(Math.min(t[0],t[2]),Math.min(e[0],e[2])),n=Math.min(Math.max(t[0],t[2]),Math.max(e[0],e[2]));if(r>n)return null;const o=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),a=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return o>a?null:[r,o,n,a]}static pointBoundingBox(t,e,r){r[0]=Math.min(r[0],t);r[1]=Math.min(r[1],e);r[2]=Math.max(r[2],t);r[3]=Math.max(r[3],e)}static rectBoundingBox(t,e,r,n,o){o[0]=Math.min(o[0],t,r);o[1]=Math.min(o[1],e,n);o[2]=Math.max(o[2],t,r);o[3]=Math.max(o[3],e,n)}static#t(t,e,r,n,o,a,i,s,c,u){if(c<=0||c>=1)return;const f=1-c,l=c*c,h=l*c,p=f*(f*(f*t+3*c*e)+3*l*r)+h*n,m=f*(f*(f*o+3*c*a)+3*l*i)+h*s;u[0]=Math.min(u[0],p);u[1]=Math.min(u[1],m);u[2]=Math.max(u[2],p);u[3]=Math.max(u[3],m)}static#e(t,e,r,n,o,a,i,s,c,u,f,l){if(Math.abs(c)<1e-12){Math.abs(u)>=1e-12&&this.#t(t,e,r,n,o,a,i,s,-f/u,l);return}const h=u**2-4*f*c;if(h<0)return;const p=Math.sqrt(h),m=2*c;this.#t(t,e,r,n,o,a,i,s,(-u+p)/m,l);this.#t(t,e,r,n,o,a,i,s,(-u-p)/m,l)}static bezierBoundingBox(t,e,r,n,o,a,i,s,c){c[0]=Math.min(c[0],t,i);c[1]=Math.min(c[1],e,s);c[2]=Math.max(c[2],t,i);c[3]=Math.max(c[3],e,s);this.#e(t,r,o,i,e,n,a,s,3*(3*(r-o)-t+i),6*(t-2*r+o),3*(r-t),c);this.#e(t,r,o,i,e,n,a,s,3*(3*(n-a)-e+s),6*(e-2*n+a),3*(n-e),c)}}"function"!=typeof Blob.prototype.bytes&&(Blob.prototype.bytes=async function(){return new Uint8Array(await this.arrayBuffer())});"function"!=typeof Response.prototype.bytes&&(Response.prototype.bytes=async function(){return new Uint8Array(await this.arrayBuffer())});"function"!=typeof AbortSignal.any&&(AbortSignal.any=function(t){const e=new AbortController,{signal:r}=e;for(const n of t)if(n.aborted){e.abort(n.reason);return r}for(const n of t)n.addEventListener("abort",()=>{e.abort(n.reason)},{signal:r});return r});__webpack_require__(4628),__webpack_require__(8111),__webpack_require__(1148),__webpack_require__(1701),__webpack_require__(7642),__webpack_require__(8004),__webpack_require__(3853),__webpack_require__(5876),__webpack_require__(2475),__webpack_require__(5024),__webpack_require__(1698);Symbol("CIRCULAR_REF"),Symbol("EOF");Object.create(null);let i=Object.create(null),s=Object.create(null);class Name{constructor(t){this.name=t}static get(t){return i[t]||=new Name(t)}}const c=function nonSerializableClosure(){return c};class Dict{__nonSerializable__=c;#r=new Map;objId=null;suppressEncryption=!1;xref;constructor(t=null){this.xref=t}assignXref(t){this.xref=t}get size(){return this.#r.size}#n(t,e,r,n){let o=this.#r.get(e);if(void 0===o&&void 0!==r){o=this.#r.get(r);void 0===o&&void 0!==n&&(o=this.#r.get(n))}return o instanceof Ref&&this.xref?t?this.xref.fetchAsync(o,this.suppressEncryption):this.xref.fetch(o,this.suppressEncryption):o}get(t,e,r){return this.#n(!1,t,e,r)}async getAsync(t,e,r){return this.#n(!0,t,e,r)}getArray(t,e,r){let n=this.#n(!1,t,e,r);if(Array.isArray(n)){n=n.slice();for(let t=0,e=n.length;t{unreachable("Should not call `set` on the empty dictionary.")};return shadow(this,"empty",t)}static merge({xref:t,dictArray:e,mergeSubDicts:r=!1}){const n=new Dict(t),o=new Map;for(const t of e)if(t instanceof Dict)for(const[e,n]of t.getRawEntries()){let t=o.get(e);if(void 0===t){t=[];o.set(e,t)}else if(!(r&&n instanceof Dict))continue;t.push(n)}for(const[e,r]of o){if(1===r.length||!(r[0]instanceof Dict)){n.set(e,r[0]);continue}const o=new Dict(t);for(const t of r)for(const[e,r]of t.getRawEntries())o.setIfNotExists(e,r);o.size>0&&n.set(e,o)}o.clear();return n.size>0?n:Dict.empty}clone(){const t=new Dict(this.xref);for(const[e,r]of this.#r)t.set(e,r);return t}delete(t){this.#r.delete(t)}}class Ref{constructor(t,e){this.num=t;this.gen=e}toString(){return 0===this.gen?`${this.num}R`:`${this.num}R${this.gen}`}static fromString(t){const e=s[t];if(e)return e;const r=/^(\d+)R(\d*)$/.exec(t);return r&&"0"!==r[1]?s[t]=new Ref(parseInt(r[1],10),r[2]?parseInt(r[2],10):0):null}static get(t,e){const r=0===e?`${t}R`:`${t}R${e}`;return s[r]||=new Ref(t,e)}}Symbol.iterator;Symbol.iterator;class BaseStream{get length(){unreachable("Abstract getter `length` accessed")}get isEmpty(){unreachable("Abstract getter `isEmpty` accessed")}get isDataLoaded(){return shadow(this,"isDataLoaded",!0)}getByte(){unreachable("Abstract method `getByte` called")}getBytes(t){unreachable("Abstract method `getBytes` called")}async getImageData(t,e){return this.getBytes(t,e)}async asyncGetBytes(){unreachable("Abstract method `asyncGetBytes` called")}get isAsync(){return!1}get isAsyncDecoder(){return!1}get isImageStream(){return!1}get canAsyncDecodeImageFromBuffer(){return!1}async getTransferableImage(){return null}peekByte(){const t=this.getByte();-1!==t&&this.pos--;return t}peekBytes(t){const e=this.getBytes(t);this.pos-=e.length;return e}getUint16(){const t=this.getByte(),e=this.getByte();return-1===t||-1===e?-1:(t<<8)+e}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getByteRange(t,e){unreachable("Abstract method `getByteRange` called")}getString(t){return bytesToString(this.getBytes(t))}skip(t){this.pos+=t||1}reset(){unreachable("Abstract method `reset` called")}moveStart(){unreachable("Abstract method `moveStart` called")}makeSubStream(t,e,r=null){unreachable("Abstract method `makeSubStream` called")}getBaseStreams(){return null}getOriginalStream(){return this.stream?.getOriginalStream()||this}}class MissingDataException extends a{constructor(t,e){super(`Missing data [${t}, ${e})`,"MissingDataException");this.begin=t;this.end=e}}async function fetchBinaryData(t){const e=await fetch(t);if(!e.ok)throw new Error(`Failed to fetch file "${t}" with "${e.statusText}".`);return e.bytes()}__webpack_require__(4603),__webpack_require__(7566),__webpack_require__(8721);const u=async function JBig2(t={}){var e=t,quit_=(t,e)=>{throw e},r=import.meta.url;try{new URL(".",r).href}catch{}0;console.log.bind(console);var n,o,a,i,s,c=console.error.bind(console),u=!1,f=!1;function updateMemoryViews(){var t=h.buffer;i=new Int8Array(t);new Int16Array(t);s=new Uint8Array(t);new Uint16Array(t);new Int32Array(t);new Uint32Array(t);new Float32Array(t);new Float64Array(t);new BigInt64Array(t);new BigUint64Array(t)}class ExitStatus{name="ExitStatus";constructor(t){this.message=`Program terminated with exit(${t})`;this.status=t}}var l,h,callRuntimeCallbacks=t=>{for(;t.length>0;)t.shift()(e)},p=[],addOnPostRun=t=>p.push(t),m=[],addOnPreRun=t=>m.push(t),g=!0,d=0,y={},handleException=t=>{if(t instanceof ExitStatus||"unwind"==t)return n;quit_(0,t)},keepRuntimeAlive=()=>g||d>0,_proc_exit=t=>{n=t;if(!keepRuntimeAlive()){e.onExit?.(t);u=!0}quit_(0,new ExitStatus(t))},_exit=(t,e)=>{n=t;_proc_exit(t)},callUserCallback=t=>{if(!u)try{return t()}catch(t){handleException(t)}finally{(()=>{if(!keepRuntimeAlive())try{_exit(n)}catch(t){handleException(t)}})()}},alignMemory=(t,e)=>Math.ceil(t/e)*e,growMemory=t=>{var e=(t-h.buffer.byteLength+65535)/65536|0;try{h.grow(e);updateMemoryViews();return 1}catch(t){}};e.noExitRuntime&&(g=e.noExitRuntime);e.print&&e.print;e.printErr&&(c=e.printErr);e.wasmBinary&&e.wasmBinary;e.arguments&&e.arguments;e.thisProgram&&e.thisProgram;if(e.preInit){"function"==typeof e.preInit&&(e.preInit=[e.preInit]);for(;e.preInit.length>0;)e.preInit.shift()()}e.writeArrayToMemory=(t,e)=>{i.set(t,e)};var b,w={e:()=>function abort(t){e.onAbort?.(t);c(t="Aborted("+t+")");u=!0;t+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(t);a?.(r);throw r}(""),b:()=>{g=!1;d=0},c:(t,e)=>{if(y[t]){clearTimeout(y[t].id);delete y[t]}if(!e)return 0;var r=setTimeout(()=>{delete y[t];callUserCallback(()=>l(t,performance.now()))},e);y[t]={id:r,timeout_ms:e};return 0},g:function _createImageData(t){e.imageData=new Uint8Array(t)},d:t=>{var e=s.length,r=2147483648;if((t>>>=0)>r)return!1;for(var n=1;n<=4;n*=2){var o=e*(1+.2/n);o=Math.min(o,t+100663296);var a=Math.min(r,alignMemory(Math.max(t,o),65536));if(growMemory(a))return!0}return!1},a:_proc_exit,h:function _setImageData(t,r,n,o){if(n===r){e.imageData=new Uint8ClampedArray(s.subarray(t,t+n*o));return}const a=r*o,i=e.imageData=new Uint8ClampedArray(a);for(let e=t,o=0;o{e.instantiateWasm(t,(t,e)=>{r(receiveInstance(t))})})}();!function run(){!function preRun(){if(e.preRun){"function"==typeof e.preRun&&(e.preRun=[e.preRun]);for(;e.preRun.length;)addOnPreRun(e.preRun.shift())}callRuntimeCallbacks(m)}();function doRun(){e.calledRun=!0;if(!u){!function initRuntime(){f=!0;b.j()}();o?.(e);e.onRuntimeInitialized?.();!function postRun(){if(e.postRun){"function"==typeof e.postRun&&(e.postRun=[e.postRun]);for(;e.postRun.length;)addOnPostRun(e.postRun.shift())}callRuntimeCallbacks(p)}()}}if(e.setStatus){e.setStatus("Running...");setTimeout(()=>{setTimeout(()=>e.setStatus(""),1);doRun()},1)}else doRun()}();return f?e:new Promise((t,e)=>{o=t;a=e})};class Jbig2Error extends a{constructor(t){super(t,"Jbig2Error")}}class JBig2CCITTFaxImage{static#o=null;static#a=null;static#i=null;static#s=!0;static#c=!0;static#u=null;static setOptions({handler:t,useWasm:e,useWorkerFetch:r,wasmUrl:n}){this.#s=e;this.#c=r;this.#u=n;r||(this.#a=t)}static async#f(t){const e=`${this.#u}jbig2_nowasm_fallback.js`;let r=null;try{r=(await import(
+/*webpackIgnore: true*/
+/*@vite-ignore*/
+e)).default()}catch(t){warn(`JBig2CCITTFaxImage#getJsModule: ${t}`)}t(r)}static async#l(t,e,r){const n="jbig2.wasm";try{this.#o||(this.#c?this.#o=await fetchBinaryData(`${this.#u}${n}`):this.#o=await this.#a.sendWithPromise("FetchBinaryData",{kind:"wasmUrl",filename:n}));return r((await WebAssembly.instantiate(this.#o,e)).instance)}catch(e){warn(`JBig2CCITTFaxImage#instantiateWasm: ${e}`);this.#f(t);return null}finally{this.#a=null}}static async decode(t,e,r,n,o){if(!this.#i){const{promise:t,resolve:e}=Promise.withResolvers(),r=[t];this.#s?r.push(u({warn,instantiateWasm:this.#l.bind(this,e)})):this.#f(e);this.#i=Promise.race(r)}const a=await this.#i;if(!a)throw new Jbig2Error("JBig2 failed to initialize");let i,s;try{const c=t.length;i=a._malloc(c);a.writeArrayToMemory(t,i);if(o)a._ccitt_decode(i,c,e,r,o.K,o.EndOfLine?1:0,o.EncodedByteAlign?1:0,o.BlackIs1?1:0,o.Columns,o.Rows);else{const t=n?n.length:0;if(t>0){s=a._malloc(t);a.writeArrayToMemory(n,s)}a._jbig2_decode(i,c,e,r,s,t)}if(!a.imageData)throw new Jbig2Error("Unknown error");const{imageData:u}=a;a.imageData=null;return u}finally{i&&a._free(i);s&&a._free(s)}}static cleanup(){this.#i=null}}function MathClamp(t,e,r){return Math.min(Math.max(t,e),r)}function isDefaultDecodeHelper(t,e){if(!Array.isArray(t))return!0;const r=t.length;if(re){info("Truncating too long decode map.");t.length=e}return!1}class ColorSpace{static#h=new Uint8ClampedArray(3);constructor(t,e){this.name=t;this.numComps=e}getRgb(t,e,r=new Uint8ClampedArray(3)){this.getRgbItem(t,e,r,0);return r}getRgbHex(t,e){const r=this.getRgb(t,e,ColorSpace.#h);return Util.makeHexColor(r[0],r[1],r[2])}getRgbItem(t,e,r,n){unreachable("Should not call ColorSpace.getRgbItem")}getRgbBuffer(t,e,r,n,o,a,i){unreachable("Should not call ColorSpace.getRgbBuffer")}getOutputLength(t,e){unreachable("Should not call ColorSpace.getOutputLength")}isPassthrough(t){return!1}isDefaultDecode(t,e){return ColorSpace.isDefaultDecode(t,this.numComps)}fillRgb(t,e,r,n,o,a,i,s,c){const u=e*r;let f=null;const l=1<l&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const e=i<=8?new Uint8Array(l):new Uint16Array(l);for(let t=0;t=.99554525?1:MathClamp(1.055*t**(1/2.4)-.055,0,1)}#R(t){return t<0?-this.#R(-t):t>8?((t+16)/116)**3:t*CalRGBCS.#_}#B(t,e,r){if(0===t[0]&&0===t[1]&&0===t[2]){r[0]=e[0];r[1]=e[1];r[2]=e[2];return}const n=this.#R(0),o=(1-n)/(1-this.#R(t[0])),a=1-o,i=(1-n)/(1-this.#R(t[1])),s=1-i,c=(1-n)/(1-this.#R(t[2])),u=1-c;r[0]=e[0]*o+a;r[1]=e[1]*i+s;r[2]=e[2]*c+u}#I(t,e,r){if(1===t[0]&&1===t[2]){r[0]=e[0];r[1]=e[1];r[2]=e[2];return}const n=r;this.#x(CalRGBCS.#m,e,n);const o=CalRGBCS.#b;this.#C(t,n,o);this.#x(CalRGBCS.#g,o,r)}#k(t,e,r){const n=r;this.#x(CalRGBCS.#m,e,n);const o=CalRGBCS.#b;this.#A(t,n,o);this.#x(CalRGBCS.#g,o,r)}#p(t,e,r,n,o){const a=MathClamp(t[e]*o,0,1),i=MathClamp(t[e+1]*o,0,1),s=MathClamp(t[e+2]*o,0,1),c=1===a?1:a**this.GR,u=1===i?1:i**this.GG,f=1===s?1:s**this.GB,l=this.MXA*c+this.MXB*u+this.MXC*f,h=this.MYA*c+this.MYB*u+this.MYC*f,p=this.MZA*c+this.MZB*u+this.MZC*f,m=CalRGBCS.#w;m[0]=l;m[1]=h;m[2]=p;const g=CalRGBCS.#v;this.#I(this.whitePoint,m,g);const d=CalRGBCS.#w;this.#B(this.blackPoint,g,d);const y=CalRGBCS.#v;this.#k(CalRGBCS.#y,d,y);const b=CalRGBCS.#w;this.#x(CalRGBCS.#d,y,b);r[n]=255*this.#S(b[0]);r[n+1]=255*this.#S(b[1]);r[n+2]=255*this.#S(b[2])}getRgbItem(t,e,r,n){this.#p(t,e,r,n,1)}getRgbBuffer(t,e,r,n,o,a,i){const s=1/((1<this.amax||this.bmin>this.bmax){info("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}#E(t){return t>=6/29?t**3:108/841*(t-4/29)}#M(t,e,r,n){return r+t*(n-r)/e}#p(t,e,r,n,o){let a=t[e],i=t[e+1],s=t[e+2];if(!1!==r){a=this.#M(a,r,0,100);i=this.#M(i,r,this.amin,this.amax);s=this.#M(s,r,this.bmin,this.bmax)}i>this.amax?i=this.amax:ithis.bmax?s=this.bmax:s=m){p=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});p.decode();g=e}return p.decode(getUint8ArrayMemory0().subarray(t,t+e))}(t>>>=0,e)}(t,e))},__wbg_copy_result_0d15f3bf9d9012ae:function(t,e){!function copy_result(t,e){const{_mustAddAlpha:r,_destBuffer:n,_destOffset:o,_destLength:a,_memoryArray:i}=QCMS;if(e!==a)if(r)for(let r=t,a=t+e,s=o;r>>0,e>>>0)},__wbg_copy_rgb_0106d9d9464fce43:function(t){!function copy_rgb(t){const{_destBuffer:e,_destOffset:r,_memoryArray:n}=QCMS;e[r]=n[t];e[r+1]=n[t+1];e[r+2]=n[t+2]}(t>>>0)},__wbg_make_cssRGB_8e24b34f71f5363e:function(t){!function make_cssRGB(t){const{_memoryArray:e}=QCMS;QCMS._cssColor=QCMS._makeHexColor(e[t],e[t+1],e[t+2])}(t>>>0)},__wbindgen_init_externref_table:function(){const t=y.__wbindgen_externrefs,e=t.grow(4);t.set(0,void 0);t.set(e+0,void 0);t.set(e+1,null);t.set(e+2,!0);t.set(e+3,!1)}}}}let h=null;function getUint8ArrayMemory0(){null!==h&&0!==h.byteLength||(h=new Uint8Array(y.memory.buffer));return h}function passArray8ToWasm0(t,e){const r=e(1*t.length,1)>>>0;getUint8ArrayMemory0().set(t,r/1);b=t.length;return r}let p=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});p.decode();const m=2146435072;let g=0;let d,y,b=0;function __wbg_finalize_init(t,e){y=t.exports;d=e;h=null;y.__wbindgen_start();return y}function fetchSync(t){const e=new XMLHttpRequest;e.open("GET",t,!1);e.responseType="arraybuffer";e.send(null);return e.response}class IccColorSpace extends ColorSpace{#T;#O;static#s=!0;static#u=null;static#P=null;constructor(t,e,r){if(!IccColorSpace.isUsable)throw new Error("No ICC color space support");super(e,r);let n;switch(r){case 1:n=f.Gray8;this.#O=(t,e,r)=>function qcms_convert_one(t,e,r){y.qcms_convert_one(t,e,r)}(this.#T,255*t[e],r);break;case 3:n=f.RGB8;this.#O=(t,e,r)=>function qcms_convert_three(t,e,r,n,o){y.qcms_convert_three(t,e,r,n,o)}(this.#T,255*t[e],255*t[e+1],255*t[e+2],r);break;case 4:n=f.CMYK;this.#O=(t,e,r)=>function qcms_convert_four(t,e,r,n,o,a){y.qcms_convert_four(t,e,r,n,o,a)}(this.#T,255*t[e],255*t[e+1],255*t[e+2],255*t[e+3],r);break;default:throw new Error(`Unsupported number of components: ${r}`)}this.#T=function qcms_transformer_from_memory(t,e,r){const n=passArray8ToWasm0(t,y.__wbindgen_malloc),o=b;return y.qcms_transformer_from_memory(n,o,e,r)>>>0}(t,n,l.Perceptual);if(!this.#T)throw new Error("Failed to create ICC color space");IccColorSpace.#P||=new FinalizationRegistry(t=>{!function qcms_drop_transformer(t){y.qcms_drop_transformer(t)}(t)});IccColorSpace.#P.register(this,this.#T)}getRgbHex(t,e){this.#O(t,e,!0);return QCMS._cssColor}getRgbItem(t,e,r,n){QCMS._destBuffer=r;QCMS._destOffset=n;QCMS._destLength=3;this.#O(t,e,!1);QCMS._destBuffer=null}getRgbBuffer(t,e,r,n,o,a,i){t=t.subarray(e,e+r*this.numComps);if(8!==a){const e=255/((1<0&&!t[a-1];)a--;const i=[{children:[],index:0}];let s,c=i[0];for(r=0;r0;)c=i.pop();c.index++;i.push(c);for(;i.length<=r;){i.push(s={children:[],index:0});c.children[c.index]=s.children;c=s}o++}if(r+10){g--;return m>>g&1}m=t[r++];if(255===m){const o=t[r++];if(o){if(220===o&&f){r+=2;const t=e.getUint16(r);r+=2;if(t>0&&t!==n.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",t)}else if(217===o){if(f){const t=v*(8===n.precision?8:0);if(t>0&&Math.round(n.scanLines/t)>=5)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",t)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError(`unexpected marker ${(m<<8|o).toString(16)}`)}}g=7;return m>>>7}function decodeHuffman(t){let e=t;for(;;){e=e[readBit()];switch(typeof e){case"number":return e;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(t){let e=0;for(;t>0;){e=e<<1|readBit();t--}return e}function receiveAndExtend(t){if(1===t)return 1===readBit()?1:-1;const e=receive(t);return e>=1<0){d--;return}let r=i;const n=s;for(;r<=n;){const n=decodeHuffman(t.huffmanTableAC),o=15&n,a=n>>4;if(0===o){if(a<15){d=receive(a)+(1<>4;if(0===o)if(c<15){d=receive(c)+(1<>4;if(0===n){if(a<15)break;o+=16;continue}o+=a;const i=w[o];t.blockData[e+i]=receiveAndExtend(n);o++}};let I,k=0;const E=1===_?o[0].blocksPerLine*o[0].blocksPerColumn:l*n.mcusPerColumn;let M,D;for(;k<=E;){const n=a?Math.min(E-k,a):E;if(n>0){for(C=0;C<_;C++)o[C].pred=0;d=0;if(1===_){x=o[0];for(R=0;R0?"unexpected":"excessive"} MCU data, current marker is: ${I.invalid}`);r=I.offset}if(!(I.marker>=65488&&I.marker<=65495))break;r+=2}return r-p}function quantizeAndInverse(t,e,r){const n=t.quantizationTable,o=t.blockData;let a,i,s,c,u,f,l,h,p,m,g,d,y,b,w,I,k;if(!n)throw new JpegError("missing required Quantization Table.");for(let t=0;t<64;t+=8){p=o[e+t];m=o[e+t+1];g=o[e+t+2];d=o[e+t+3];y=o[e+t+4];b=o[e+t+5];w=o[e+t+6];I=o[e+t+7];p*=n[t];if(0!==(m|g|d|y|b|w|I)){m*=n[t+1];g*=n[t+2];d*=n[t+3];y*=n[t+4];b*=n[t+5];w*=n[t+6];I*=n[t+7];a=R*p+128>>8;i=R*y+128>>8;s=g;c=w;u=B*(m-I)+128>>8;h=B*(m+I)+128>>8;f=d<<4;l=b<<4;a=a+i+1>>1;i=a-i;k=s*S+c*A+128>>8;s=s*A-c*S+128>>8;c=k;u=u+l+1>>1;l=u-l;h=h+f+1>>1;f=h-f;a=a+c+1>>1;c=a-c;i=i+s+1>>1;s=i-s;k=u*C+h*x+2048>>12;u=u*x-h*C+2048>>12;h=k;k=f*_+l*v+2048>>12;f=f*v-l*_+2048>>12;l=k;r[t]=a+h;r[t+7]=a-h;r[t+1]=i+l;r[t+6]=i-l;r[t+2]=s+f;r[t+5]=s-f;r[t+3]=c+u;r[t+4]=c-u}else{k=R*p+512>>10;r[t]=k;r[t+1]=k;r[t+2]=k;r[t+3]=k;r[t+4]=k;r[t+5]=k;r[t+6]=k;r[t+7]=k}}for(let t=0;t<8;++t){p=r[t];m=r[t+8];g=r[t+16];d=r[t+24];y=r[t+32];b=r[t+40];w=r[t+48];I=r[t+56];if(0!==(m|g|d|y|b|w|I)){a=R*p+2048>>12;i=R*y+2048>>12;s=g;c=w;u=B*(m-I)+2048>>12;h=B*(m+I)+2048>>12;f=d;l=b;a=4112+(a+i+1>>1);i=a-i;k=s*S+c*A+2048>>12;s=s*A-c*S+2048>>12;c=k;u=u+l+1>>1;l=u-l;h=h+f+1>>1;f=h-f;a=a+c+1>>1;c=a-c;i=i+s+1>>1;s=i-s;k=u*C+h*x+2048>>12;u=u*x-h*C+2048>>12;h=k;k=f*_+l*v+2048>>12;f=f*v-l*_+2048>>12;l=k;p=a+h;I=a-h;m=i+l;w=i-l;g=s+f;b=s-f;d=c+u;y=c-u;p<16?p=0:p>=4080?p=255:p>>=4;m<16?m=0:m>=4080?m=255:m>>=4;g<16?g=0:g>=4080?g=255:g>>=4;d<16?d=0:d>=4080?d=255:d>>=4;y<16?y=0:y>=4080?y=255:y>>=4;b<16?b=0:b>=4080?b=255:b>>=4;w<16?w=0:w>=4080?w=255:w>>=4;I<16?I=0:I>=4080?I=255:I>>=4;o[e+t]=p;o[e+t+8]=m;o[e+t+16]=g;o[e+t+24]=d;o[e+t+32]=y;o[e+t+40]=b;o[e+t+48]=w;o[e+t+56]=I}else{k=R*p+8192>>14;k=k<-2040?0:k>=2024?255:k+2056>>4;o[e+t]=k;o[e+t+8]=k;o[e+t+16]=k;o[e+t+24]=k;o[e+t+32]=k;o[e+t+40]=k;o[e+t+48]=k;o[e+t+56]=k}}}function buildComponentData(t,e){const r=e.blocksPerLine,n=e.blocksPerColumn,o=new Int16Array(64);for(let t=0;t=o)return null;const i=e.getUint16(r);if(i>=65472&&i<=65534)return{invalid:null,marker:i,offset:r};let s=e.getUint16(a);for(;!(s>=65472&&s<=65534);){if(++a>=o)return null;s=e.getUint16(a)}return{invalid:i.toString(16),marker:s,offset:a}}function prepareComponents(t){const e=Math.ceil(t.samplesPerLine/8/t.maxH),r=Math.ceil(t.scanLines/8/t.maxV);for(const n of t.components){const o=Math.ceil(Math.ceil(t.samplesPerLine/8)*n.h/t.maxH),a=Math.ceil(Math.ceil(t.scanLines/8)*n.v/t.maxV),i=e*n.h,s=64*(r*n.v)*(i+1);n.blockData=new Int16Array(s);n.blocksPerLine=o;n.blocksPerColumn=a}t.mcusPerLine=e;t.mcusPerColumn=r}function readDataBlock(t,e,r){const n=e.getUint16(r);let o=(r+=2)+n-2;const a=findNextFileMarker(t,e,o,r);if(a?.invalid){warn("readDataBlock - incorrect length, current marker is: "+a.invalid);o=a.offset}const i=t.subarray(r,o);return{appData:i,oldOffset:r,newOffset:r+i.length}}function skipData(t,e,r){const n=e.getUint16(r),o=(r+=2)+n-2,a=findNextFileMarker(t,e,o,r);return a?.invalid?a.offset:o}class JpegImage{constructor({decodeTransform:t=null,colorTransform:e=-1}={}){this._decodeTransform=t;this._colorTransform=e}static canUseImageDecoder(t,e=-1){const r=new DataView(t.buffer,t.byteOffset,t.byteLength);let n=null,o=0,a=null,i=r.getUint16(o);o+=2;if(65496!==i)throw new JpegError("SOI not found");i=r.getUint16(o);o+=2;t:for(;65497!==i;){switch(i){case 65505:const{appData:e,oldOffset:s,newOffset:c}=readDataBlock(t,r,o);o=c;if(69===e[0]&&120===e[1]&&105===e[2]&&102===e[3]&&0===e[4]&&0===e[5]){if(n)throw new JpegError("Duplicate EXIF-blocks found.");n={exifStart:s+6,exifEnd:c}}i=r.getUint16(o);o+=2;continue;case 65472:case 65473:case 65474:a=t[o+7];break t;case 65535:255!==t[o]&&o--}o=skipData(t,r,o);i=r.getUint16(o);o+=2}return 4===a||3===a&&0===e?null:n||{}}parse(t,{dnlScanLines:e=null}={}){const r=new DataView(t.buffer,t.byteOffset,t.byteLength),n=t.length-1;let o,a,i=0,s=null,c=null,u=0;const f=[],l=[],h=[];let p=r.getUint16(i);i+=2;if(65496!==p)throw new JpegError("SOI not found");p=r.getUint16(i);i+=2;t:for(;65497!==p;){let m,g,d;switch(p){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:const{appData:y,newOffset:b}=readDataBlock(t,r,i);i=b;65504===p&&74===y[0]&&70===y[1]&&73===y[2]&&70===y[3]&&0===y[4]&&(s={version:{major:y[5],minor:y[6]},densityUnits:y[7],xDensity:y[8]<<8|y[9],yDensity:y[10]<<8|y[11],thumbWidth:y[12],thumbHeight:y[13],thumbData:y.subarray(14,14+3*y[12]*y[13])});65518===p&&65===y[0]&&100===y[1]&&111===y[2]&&98===y[3]&&101===y[4]&&(c={version:y[5]<<8|y[6],flags0:y[7]<<8|y[8],flags1:y[9]<<8|y[10],transformCode:y[11]});break;case 65499:const v=r.getUint16(i);i+=2;const _=v+i-2;let x;for(;i<_;){const e=t[i++],n=new Uint16Array(64);if(e>>4){if(e>>4!=1)throw new JpegError("DQT - invalid table spec");for(g=0;g<64;g++){x=w[g];n[x]=r.getUint16(i);i+=2}}else for(g=0;g<64;g++){x=w[g];n[x]=t[i++]}f[15&e]=n}break;case 65472:case 65473:case 65474:if(o)throw new JpegError("Only single frame JPEGs supported");i+=2;o={};o.extended=65473===p;o.progressive=65474===p;o.precision=t[i++];const C=r.getUint16(i);i+=2;o.scanLines=e||C;o.samplesPerLine=r.getUint16(i);i+=2;o.components=[];o.componentIds={};const A=t[i++];let S=0,R=0;for(m=0;m>4,n=15&t[i+1];S>4?l:h)[15&e]=buildHuffmanTable(r,o)}break;case 65501:i+=2;a=r.getUint16(i);i+=2;break;case 65498:const I=1===++u&&!e;i+=2;const k=t[i++],E=[];for(m=0;m>4];n.huffmanTableAC=l[15&a];E.push(n)}const M=t[i++],D=t[i++],T=t[i++];try{i+=decodeScan(t,r,i,o,E,a,M,D,T>>4,15&T,I)}catch(e){if(e instanceof DNLMarkerError){warn(`${e.message} -- attempting to re-parse the JPEG image.`);return this.parse(t,{dnlScanLines:e.scanLines})}if(e instanceof EOIMarkerError){warn(`${e.message} -- ignoring the rest of the image data.`);break t}throw e}break;case 65500:i+=4;break;case 65535:255!==t[i]&&i--;break;default:const O=findNextFileMarker(t,r,i-2,i-3);if(O?.invalid){warn("JpegImage.parse - unexpected data, current marker is: "+O.invalid);i=O.offset;break}if(!O||i>=n){warn("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break t}throw new JpegError("JpegImage.parse - unknown marker: "+p.toString(16))}if(i>8)+C[p+1];return w}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(t){let e,r,n;for(let o=0,a=t.length;o4)throw new JpegError("Unsupported color mode");const a=this._getLinearizedBlockData(t,e,o);if(1===this.numComponents&&(r||n)){const t=a.length*(r?4:3),e=new Uint8ClampedArray(t);let n=0;if(r)!function grayToRGBA(t,e){if(FeatureTest.isLittleEndian)for(let r=0,n=t.length;r{throw e},n=import.meta.url;try{new URL(".",n).href}catch{}0;var o,a,i,s,c,u,f,l=console.log.bind(console),h=console.error.bind(console),p=!1,m=!1;function updateMemoryViews(){var t=d.buffer;c=new Int8Array(t);new Int16Array(t);f=new Uint8Array(t);new Uint16Array(t);s=new Int32Array(t);u=new Uint32Array(t);new Float32Array(t);new Float64Array(t);new BigInt64Array(t);new BigUint64Array(t)}class ExitStatus{name="ExitStatus";constructor(t){this.message=`Program terminated with exit(${t})`;this.status=t}}var g,d,callRuntimeCallbacks=t=>{for(;t.length>0;)t.shift()(e)},y=[],addOnPostRun=t=>y.push(t),b=[],addOnPreRun=t=>b.push(t),w=!0,v=0,_={},handleException=t=>{if(t instanceof ExitStatus||"unwind"==t)return o;quit_(0,t)},keepRuntimeAlive=()=>w||v>0,_proc_exit=t=>{o=t;if(!keepRuntimeAlive()){e.onExit?.(t);p=!0}quit_(0,new ExitStatus(t))},_exit=(t,e)=>{o=t;_proc_exit(t)},callUserCallback=t=>{if(!p)try{return t()}catch(t){handleException(t)}finally{(()=>{if(!keepRuntimeAlive())try{_exit(o)}catch(t){handleException(t)}})()}},alignMemory=(t,e)=>Math.ceil(t/e)*e,growMemory=t=>{var e=(t-d.buffer.byteLength+65535)/65536|0;try{d.grow(e);updateMemoryViews();return 1}catch(t){}},x={},getEnvStrings=()=>{if(!getEnvStrings.strings){var t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:r||"./this.program"};for(var e in x)void 0===x[e]?delete t[e]:t[e]=x[e];var n=[];for(var e in t)n.push(`${e}=${t[e]}`);getEnvStrings.strings=n}return getEnvStrings.strings},stringToUTF8=(t,e,r)=>((t,e,r,n)=>{if(!(n>0))return 0;for(var o=r,a=r+n-1,i=0;i=a)break;e[r++]=s}else if(s<=2047){if(r+1>=a)break;e[r++]=192|s>>6;e[r++]=128|63&s}else if(s<=65535){if(r+2>=a)break;e[r++]=224|s>>12;e[r++]=128|s>>6&63;e[r++]=128|63&s}else{if(r+3>=a)break;e[r++]=240|s>>18;e[r++]=128|s>>12&63;e[r++]=128|s>>6&63;e[r++]=128|63&s;i++}}e[r]=0;return r-o})(t,f,e,r),lengthBytesUTF8=t=>{for(var e=0,r=0;r=55296&&n<=57343){e+=4;++r}else e+=3}return e},C=[null,[],[]],A=globalThis.TextDecoder&&new TextDecoder,UTF8ArrayToString=(t,e=0,r,n)=>{var o=((t,e,r,n)=>{var o=e+r;if(n)return o;for(;t[e]&&!(e>=o);)++e;return e})(t,e,r,n);if(o-e>16&&t.buffer&&A)return A.decode(t.subarray(e,o));for(var a="";e>10,56320|1023&u)}}else a+=String.fromCharCode((31&i)<<6|s)}else a+=String.fromCharCode(i)}return a},printChar=(t,e)=>{var r=C[t];if(0===e||10===e){(1===t?l:h)(UTF8ArrayToString(r));r.length=0}else r.push(e)},UTF8ToString=(t,e,r)=>t?UTF8ArrayToString(f,t,e,r):"";e.noExitRuntime&&(w=e.noExitRuntime);e.print&&(l=e.print);e.printErr&&(h=e.printErr);e.wasmBinary&&e.wasmBinary;e.arguments&&e.arguments;e.thisProgram&&(r=e.thisProgram);if(e.preInit){"function"==typeof e.preInit&&(e.preInit=[e.preInit]);for(;e.preInit.length>0;)e.preInit.shift()()}e.writeArrayToMemory=(t,e)=>{c.set(t,e)};var S,R={m:()=>function abort(t){e.onAbort?.(t);h(t=`Aborted(${t})`);p=!0;t+=". Build with -sASSERTIONS for more info.";var r=new WebAssembly.RuntimeError(t);i?.(r);throw r}(""),l:()=>{w=!1;v=0},i:(t,e)=>{if(_[t]){clearTimeout(_[t].id);delete _[t]}if(!e)return 0;var r=setTimeout(()=>{delete _[t];callUserCallback(()=>g(t,performance.now()))},e);_[t]={id:r,timeout_ms:e};return 0},f:function _copy_pixels_1(t,r){t>>=2;const n=e.imageData=new Uint8ClampedArray(r),o=s.subarray(t,t+r);n.set(o)},e:function _copy_pixels_3(t,r,n,o){t>>=2;r>>=2;n>>=2;const a=e.imageData=new Uint8ClampedArray(3*o),i=s.subarray(t,t+o),c=s.subarray(r,r+o),u=s.subarray(n,n+o);for(let t=0;t>=2;r>>=2;n>>=2;o>>=2;const i=e.imageData=new Uint8ClampedArray(4*a),c=s.subarray(t,t+a),u=s.subarray(r,r+a),f=s.subarray(n,n+a),l=s.subarray(o,o+a);for(let t=0;t{var e=f.length,r=2147483648;if((t>>>=0)>r)return!1;for(var n=1;n<=4;n*=2){var o=e*(1+.2/n);o=Math.min(o,t+100663296);var a=Math.min(r,alignMemory(Math.max(t,o),65536));if(growMemory(a))return!0}return!1},o:(t,e)=>{var r=0,n=0;for(var o of getEnvStrings()){var a=e+r;u[t+n>>2]=a;r+=stringToUTF8(o,a,1/0)+1;n+=4}return 0},p:(t,e)=>{var r=getEnvStrings();u[t>>2]=r.length;var n=0;for(var o of r)n+=lengthBytesUTF8(o)+1;u[e>>2]=n;return 0},n:function _fd_seek(t,e,r,n){e=(o=e)<-9007199254740992||o>9007199254740992?NaN:Number(o);var o;return 70},b:(t,e,r,n)=>{for(var o=0,a=0;a>2],s=u[e+4>>2];e+=8;for(var c=0;c>2]=o;return 0},q:function _gray_to_rgba(t,r){t>>=2;const n=e.imageData=new Uint8ClampedArray(4*r),o=s.subarray(t,t+r);for(let t=0;t>=2;r>>=2;const o=e.imageData=new Uint8ClampedArray(4*n),a=s.subarray(t,t+n),i=s.subarray(r,r+n);for(let t=0;t>=2;r>>=2;n>>=2;const a=e.imageData=new Uint8ClampedArray(4*o),i=s.subarray(t,t+o),c=s.subarray(r,r+o),u=s.subarray(n,n+o);for(let t=0;t{e.instantiateWasm(t,(t,e)=>{r(receiveInstance(t))})})}();!function run(){!function preRun(){if(e.preRun){"function"==typeof e.preRun&&(e.preRun=[e.preRun]);for(;e.preRun.length;)addOnPreRun(e.preRun.shift())}callRuntimeCallbacks(b)}();function doRun(){e.calledRun=!0;if(!p){!function initRuntime(){m=!0;S.s()}();a?.(e);e.onRuntimeInitialized?.();!function postRun(){if(e.postRun){"function"==typeof e.postRun&&(e.postRun=[e.postRun]);for(;e.postRun.length;)addOnPostRun(e.postRun.shift())}callRuntimeCallbacks(y)}()}}if(e.setStatus){e.setStatus("Running...");setTimeout(()=>{setTimeout(()=>e.setStatus(""),1);doRun()},1)}else doRun()}();return m?e:new Promise((t,e)=>{a=t;i=e})};class Stream extends BaseStream{constructor(t,e,r,n){super();this.bytes=t instanceof Uint8Array?t:new Uint8Array(t);this.start=e||0;this.pos=this.start;this.end=e+r||this.bytes.length;this.dict=n}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(t){const e=this.bytes,r=this.pos,n=this.end;if(!t){this.pos=n;return e.subarray(r,n)}let o=r+t;o>n&&(o=n);this.pos=o;return e.subarray(r,o)}getByteRange(t,e){t<0&&(t=0);e>this.end&&(e=this.end);return this.bytes.subarray(t,e)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(t,e,r=null){return new Stream(this.bytes.buffer,t,e,r)}clone(){return new Stream(this.bytes.buffer,this.start,this.end-this.start,this.dict.clone())}}class JpxError extends a{constructor(t){super(t,"JpxError")}}class JpxImage{static#o=null;static#a=null;static#i=null;static#s=!0;static#c=!0;static#u=null;static setOptions({handler:t,useWasm:e,useWorkerFetch:r,wasmUrl:n}){this.#s=e;this.#c=r;this.#u=n;r||(this.#a=t)}static async#f(t){const e=`${this.#u}openjpeg_nowasm_fallback.js`;let r=null;try{r=(await import(
+/*webpackIgnore: true*/
+/*@vite-ignore*/
+e)).default()}catch(t){warn(`JpxImage#getJsModule: ${t}`)}t(r)}static async#l(t,e,r){const n="openjpeg.wasm";try{this.#o||(this.#c?this.#o=await fetchBinaryData(`${this.#u}${n}`):this.#o=await this.#a.sendWithPromise("FetchBinaryData",{kind:"wasmUrl",filename:n}));return r((await WebAssembly.instantiate(this.#o,e)).instance)}catch(e){warn(`JpxImage#instantiateWasm: ${e}`);this.#f(t);return null}finally{this.#a=null}}static async decode(t,{numComponents:e=4,isIndexedColormap:r=!1,smaskInData:n=!1,reducePower:o=0}={}){if(!this.#i){const{promise:t,resolve:e}=Promise.withResolvers(),r=[t];this.#s?r.push(I({warn,instantiateWasm:this.#l.bind(this,e)})):this.#f(e);this.#i=Promise.race(r)}const a=await this.#i;if(!a)throw new JpxError("OpenJPEG failed to initialize");let i;try{const s=t.length;i=a._malloc(s);a.writeArrayToMemory(t,i);if(a._jp2_decode(i,s,e>0?e:0,!!r,!!n,o)){const{errorMessages:t}=a;if(t){delete a.errorMessages;throw new JpxError(t)}throw new JpxError("Unknown error")}const{imageData:c}=a;a.imageData=null;return c}finally{i&&a._free(i)}}static cleanup(){this.#i=null}static parseImageProperties(t){if(!(t instanceof ArrayBuffer||ArrayBuffer.isView(t)))throw new JpxError("Invalid data format, must be a TypedArray.");let e=(t=new Stream(t)).getByte();for(;e>=0;){const r=e;e=t.getByte();if(65361===(r<<8|e)){t.skip(4);const e=t.getInt32()>>>0,r=t.getInt32()>>>0,n=t.getInt32()>>>0,o=t.getInt32()>>>0;t.skip(16);return{width:e-n,height:r-o,bitsPerComponent:8,componentsCount:t.getUint16()}}}throw new JpxError("No size marker found in JPX stream")}}globalThis.pdfjsImageDecoders={getVerbosityLevel,Jbig2Error,Jbig2Image:JBig2CCITTFaxImage,JpegError,JpegImage,JpxError,JpxImage,setVerbosityLevel,VerbosityLevel:n};export{Jbig2Error,JBig2CCITTFaxImage as Jbig2Image,JpegError,JpegImage,JpxError,JpxImage,n as VerbosityLevel,getVerbosityLevel,setVerbosityLevel};
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/image_decoders/pdf.image_decoders.mjs b/frontend/node_modules/pdfjs-dist/legacy/image_decoders/pdf.image_decoders.mjs
new file mode 100644
index 0000000..2cf54a6
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/image_decoders/pdf.image_decoders.mjs
@@ -0,0 +1,10557 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * JavaScript code in this page
+ *
+ * Copyright 2024 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @licend The above is the entire license notice for the
+ * JavaScript code in this page
+ */
+
+/**
+ * pdfjsVersion = 5.7.284
+ * pdfjsBuild = 7e5b36c2d
+ */
+/******/ var __webpack_modules__ = ({
+
+/***/ 9306
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isCallable = __webpack_require__(4901);
+var tryToString = __webpack_require__(6823);
+
+var $TypeError = TypeError;
+
+// `Assert: IsCallable(argument) is true`
+module.exports = function (argument) {
+ if (isCallable(argument)) return argument;
+ throw new $TypeError(tryToString(argument) + ' is not a function');
+};
+
+
+/***/ },
+
+/***/ 3506
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isPossiblePrototype = __webpack_require__(3925);
+
+var $String = String;
+var $TypeError = TypeError;
+
+module.exports = function (argument) {
+ if (isPossiblePrototype(argument)) return argument;
+ throw new $TypeError("Can't set " + $String(argument) + ' as a prototype');
+};
+
+
+/***/ },
+
+/***/ 7080
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var has = (__webpack_require__(4402).has);
+
+// Perform ? RequireInternalSlot(M, [[SetData]])
+module.exports = function (it) {
+ has(it);
+ return it;
+};
+
+
+/***/ },
+
+/***/ 3463
+(module) {
+
+
+var $TypeError = TypeError;
+
+module.exports = function (argument) {
+ if (typeof argument == 'string') return argument;
+ throw new $TypeError('Argument is not a string');
+};
+
+
+/***/ },
+
+/***/ 6469
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var wellKnownSymbol = __webpack_require__(8227);
+var create = __webpack_require__(2360);
+var defineProperty = (__webpack_require__(4913).f);
+
+var UNSCOPABLES = wellKnownSymbol('unscopables');
+var ArrayPrototype = Array.prototype;
+
+// Array.prototype[@@unscopables]
+// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
+if (ArrayPrototype[UNSCOPABLES] === undefined) {
+ defineProperty(ArrayPrototype, UNSCOPABLES, {
+ configurable: true,
+ value: create(null)
+ });
+}
+
+// add a key to Array.prototype[@@unscopables]
+module.exports = function (key) {
+ ArrayPrototype[UNSCOPABLES][key] = true;
+};
+
+
+/***/ },
+
+/***/ 679
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isPrototypeOf = __webpack_require__(1625);
+
+var $TypeError = TypeError;
+
+module.exports = function (it, Prototype) {
+ if (isPrototypeOf(Prototype, it)) return it;
+ throw new $TypeError('Incorrect invocation');
+};
+
+
+/***/ },
+
+/***/ 3972
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isObject = __webpack_require__(34);
+
+var $String = String;
+var $TypeError = TypeError;
+
+module.exports = function (argument) {
+ if (argument === undefined || isObject(argument)) return argument;
+ throw new $TypeError($String(argument) + ' is not an object or undefined');
+};
+
+
+/***/ },
+
+/***/ 8551
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isObject = __webpack_require__(34);
+
+var $String = String;
+var $TypeError = TypeError;
+
+// `Assert: Type(argument) is Object`
+module.exports = function (argument) {
+ if (isObject(argument)) return argument;
+ throw new $TypeError($String(argument) + ' is not an object');
+};
+
+
+/***/ },
+
+/***/ 4154
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classof = __webpack_require__(6955);
+
+var $TypeError = TypeError;
+
+// Perform ? RequireInternalSlot(argument, [[TypedArrayName]])
+// If argument.[[TypedArrayName]] is not "Uint8Array", throw a TypeError exception
+module.exports = function (argument) {
+ if (classof(argument) === 'Uint8Array') return argument;
+ throw new $TypeError('Argument is not an Uint8Array');
+};
+
+
+/***/ },
+
+/***/ 7811
+(module) {
+
+
+// eslint-disable-next-line es/no-typed-arrays -- safe
+module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';
+
+
+/***/ },
+
+/***/ 7394
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var uncurryThisAccessor = __webpack_require__(6706);
+var classof = __webpack_require__(2195);
+
+var ArrayBuffer = globalThis.ArrayBuffer;
+var TypeError = globalThis.TypeError;
+
+// Includes
+// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
+// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.
+module.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {
+ if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');
+ return O.byteLength;
+};
+
+
+/***/ },
+
+/***/ 3238
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var NATIVE_ARRAY_BUFFER = __webpack_require__(7811);
+var arrayBufferByteLength = __webpack_require__(7394);
+
+var DataView = globalThis.DataView;
+
+module.exports = function (O) {
+ if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;
+ try {
+ // eslint-disable-next-line no-new -- thrower
+ new DataView(O);
+ return false;
+ } catch (error) {
+ return true;
+ }
+};
+
+
+/***/ },
+
+/***/ 5169
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isDetached = __webpack_require__(3238);
+
+var $TypeError = TypeError;
+
+module.exports = function (it) {
+ if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');
+ return it;
+};
+
+
+/***/ },
+
+/***/ 5636
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var uncurryThis = __webpack_require__(9504);
+var uncurryThisAccessor = __webpack_require__(6706);
+var toIndex = __webpack_require__(7696);
+var notDetached = __webpack_require__(5169);
+var arrayBufferByteLength = __webpack_require__(7394);
+var detachTransferable = __webpack_require__(4483);
+var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548);
+
+var structuredClone = globalThis.structuredClone;
+var ArrayBuffer = globalThis.ArrayBuffer;
+var DataView = globalThis.DataView;
+var max = Math.max;
+var min = Math.min;
+var ArrayBufferPrototype = ArrayBuffer.prototype;
+var DataViewPrototype = DataView.prototype;
+var slice = uncurryThis(ArrayBufferPrototype.slice);
+var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');
+var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');
+var getInt8 = uncurryThis(DataViewPrototype.getInt8);
+var setInt8 = uncurryThis(DataViewPrototype.setInt8);
+
+module.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {
+ var byteLength = arrayBufferByteLength(arrayBuffer);
+ var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);
+ var fixedLength = !isResizable || !isResizable(arrayBuffer);
+ var newBuffer;
+ notDetached(arrayBuffer);
+ if (PROPER_STRUCTURED_CLONE_TRANSFER) {
+ arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });
+ if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;
+ }
+ if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {
+ newBuffer = slice(arrayBuffer, 0, newByteLength);
+ } else {
+ var options = preserveResizability && !fixedLength && maxByteLength
+ ? { maxByteLength: max(newByteLength, maxByteLength(arrayBuffer)) }
+ : undefined;
+ newBuffer = new ArrayBuffer(newByteLength, options);
+ var a = new DataView(arrayBuffer);
+ var b = new DataView(newBuffer);
+ var copyLength = min(newByteLength, byteLength);
+ for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));
+ }
+ if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);
+ return newBuffer;
+};
+
+
+/***/ },
+
+/***/ 4644
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var NATIVE_ARRAY_BUFFER = __webpack_require__(7811);
+var DESCRIPTORS = __webpack_require__(3724);
+var globalThis = __webpack_require__(4576);
+var isCallable = __webpack_require__(4901);
+var isObject = __webpack_require__(34);
+var hasOwn = __webpack_require__(9297);
+var classof = __webpack_require__(6955);
+var tryToString = __webpack_require__(6823);
+var createNonEnumerableProperty = __webpack_require__(6699);
+var defineBuiltIn = __webpack_require__(6840);
+var defineBuiltInAccessor = __webpack_require__(2106);
+var isPrototypeOf = __webpack_require__(1625);
+var getPrototypeOf = __webpack_require__(2787);
+var setPrototypeOf = __webpack_require__(2967);
+var wellKnownSymbol = __webpack_require__(8227);
+var uid = __webpack_require__(3392);
+var InternalStateModule = __webpack_require__(1181);
+
+var enforceInternalState = InternalStateModule.enforce;
+var getInternalState = InternalStateModule.get;
+var Int8Array = globalThis.Int8Array;
+var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
+var Uint8ClampedArray = globalThis.Uint8ClampedArray;
+var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;
+var TypedArray = Int8Array && getPrototypeOf(Int8Array);
+var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);
+var ObjectPrototype = Object.prototype;
+var TypeError = globalThis.TypeError;
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
+var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';
+// Fixing native typed arrays in Opera Presto crashes the browser, see #595
+var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';
+var TYPED_ARRAY_TAG_REQUIRED = false;
+var NAME, Constructor, Prototype;
+
+var TypedArrayConstructorsList = {
+ Int8Array: 1,
+ Uint8Array: 1,
+ Uint8ClampedArray: 1,
+ Int16Array: 2,
+ Uint16Array: 2,
+ Int32Array: 4,
+ Uint32Array: 4,
+ Float32Array: 4,
+ Float64Array: 8
+};
+
+var BigIntArrayConstructorsList = {
+ BigInt64Array: 8,
+ BigUint64Array: 8
+};
+
+var isView = function isView(it) {
+ if (!isObject(it)) return false;
+ var klass = classof(it);
+ return klass === 'DataView'
+ || hasOwn(TypedArrayConstructorsList, klass)
+ || hasOwn(BigIntArrayConstructorsList, klass);
+};
+
+var getTypedArrayConstructor = function (it) {
+ var proto = getPrototypeOf(it);
+ if (!isObject(proto)) return;
+ var state = getInternalState(proto);
+ return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);
+};
+
+var isTypedArray = function (it) {
+ if (!isObject(it)) return false;
+ var klass = classof(it);
+ return hasOwn(TypedArrayConstructorsList, klass)
+ || hasOwn(BigIntArrayConstructorsList, klass);
+};
+
+var aTypedArray = function (it) {
+ if (isTypedArray(it)) return it;
+ throw new TypeError('Target is not a typed array');
+};
+
+var aTypedArrayConstructor = function (C) {
+ if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;
+ throw new TypeError(tryToString(C) + ' is not a typed array constructor');
+};
+
+var exportTypedArrayMethod = function (KEY, property, forced, options) {
+ if (!DESCRIPTORS) return;
+ if (forced) for (var ARRAY in TypedArrayConstructorsList) {
+ var TypedArrayConstructor = globalThis[ARRAY];
+ if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {
+ delete TypedArrayConstructor.prototype[KEY];
+ } catch (error) {
+ // old WebKit bug - some methods are non-configurable
+ try {
+ TypedArrayConstructor.prototype[KEY] = property;
+ } catch (error2) { /* empty */ }
+ }
+ }
+ if (!TypedArrayPrototype[KEY] || forced) {
+ defineBuiltIn(TypedArrayPrototype, KEY, forced ? property
+ : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);
+ }
+};
+
+var exportTypedArrayStaticMethod = function (KEY, property, forced) {
+ var ARRAY, TypedArrayConstructor;
+ if (!DESCRIPTORS) return;
+ if (setPrototypeOf) {
+ if (forced) for (ARRAY in TypedArrayConstructorsList) {
+ TypedArrayConstructor = globalThis[ARRAY];
+ if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {
+ delete TypedArrayConstructor[KEY];
+ } catch (error) { /* empty */ }
+ }
+ if (!TypedArray[KEY] || forced) {
+ // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable
+ try {
+ return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);
+ } catch (error) { /* empty */ }
+ } else return;
+ }
+ for (ARRAY in TypedArrayConstructorsList) {
+ TypedArrayConstructor = globalThis[ARRAY];
+ if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {
+ defineBuiltIn(TypedArrayConstructor, KEY, property);
+ }
+ }
+};
+
+for (NAME in TypedArrayConstructorsList) {
+ Constructor = globalThis[NAME];
+ Prototype = Constructor && Constructor.prototype;
+ if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;
+ else NATIVE_ARRAY_BUFFER_VIEWS = false;
+}
+
+for (NAME in BigIntArrayConstructorsList) {
+ Constructor = globalThis[NAME];
+ Prototype = Constructor && Constructor.prototype;
+ if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;
+}
+
+// WebKit bug - typed arrays constructors prototype is Object.prototype
+if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {
+ // eslint-disable-next-line no-shadow -- safe
+ TypedArray = function TypedArray() {
+ throw new TypeError('Incorrect invocation');
+ };
+ if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
+ if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);
+ }
+}
+
+if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {
+ TypedArrayPrototype = TypedArray.prototype;
+ if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
+ if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);
+ }
+}
+
+// WebKit bug - one more object in Uint8ClampedArray prototype chain
+if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {
+ setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);
+}
+
+if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
+ TYPED_ARRAY_TAG_REQUIRED = true;
+ defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {
+ configurable: true,
+ get: function () {
+ return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
+ }
+ });
+ for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {
+ createNonEnumerableProperty(globalThis[NAME].prototype, TYPED_ARRAY_TAG, NAME);
+ }
+}
+
+module.exports = {
+ NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
+ TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,
+ aTypedArray: aTypedArray,
+ aTypedArrayConstructor: aTypedArrayConstructor,
+ exportTypedArrayMethod: exportTypedArrayMethod,
+ exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,
+ getTypedArrayConstructor: getTypedArrayConstructor,
+ isView: isView,
+ isTypedArray: isTypedArray,
+ TypedArray: TypedArray,
+ TypedArrayPrototype: TypedArrayPrototype
+};
+
+
+/***/ },
+
+/***/ 9617
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toIndexedObject = __webpack_require__(5397);
+var toAbsoluteIndex = __webpack_require__(5610);
+var lengthOfArrayLike = __webpack_require__(6198);
+
+// `Array.prototype.{ indexOf, includes }` methods implementation
+var createMethod = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = toIndexedObject($this);
+ var length = lengthOfArrayLike(O);
+ if (length === 0) return !IS_INCLUDES && -1;
+ var index = toAbsoluteIndex(fromIndex, length);
+ var value;
+ // Array#includes uses SameValueZero equality algorithm
+ // eslint-disable-next-line no-self-compare -- NaN check
+ if (IS_INCLUDES && el !== el) while (length > index) {
+ value = O[index++];
+ // eslint-disable-next-line no-self-compare -- NaN check
+ if (value !== value) return true;
+ // Array#indexOf ignores holes, Array#includes - not
+ } else for (;length > index; index++) {
+ if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
+};
+
+module.exports = {
+ // `Array.prototype.includes` method
+ // https://tc39.es/ecma262/#sec-array.prototype.includes
+ includes: createMethod(true),
+ // `Array.prototype.indexOf` method
+ // https://tc39.es/ecma262/#sec-array.prototype.indexof
+ indexOf: createMethod(false)
+};
+
+
+/***/ },
+
+/***/ 4527
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var isArray = __webpack_require__(4376);
+
+var $TypeError = TypeError;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+// Safari < 13 does not throw an error in this case
+var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {
+ // makes no sense without proper strict mode support
+ if (this !== undefined) return true;
+ try {
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
+ Object.defineProperty([], 'length', { writable: false }).length = 1;
+ } catch (error) {
+ return error instanceof TypeError;
+ }
+}();
+
+module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {
+ if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {
+ throw new $TypeError('Cannot set read only .length');
+ } return O.length = length;
+} : function (O, length) {
+ return O.length = length;
+};
+
+
+/***/ },
+
+/***/ 2804
+(module) {
+
+
+var commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
+var base64Alphabet = commonAlphabet + '+/';
+var base64UrlAlphabet = commonAlphabet + '-_';
+
+var inverse = function (characters) {
+ // TODO: use `Object.create(null)` in `core-js@4`
+ var result = {};
+ var index = 0;
+ for (; index < 64; index++) result[characters.charAt(index)] = index;
+ return result;
+};
+
+module.exports = {
+ i2c: base64Alphabet,
+ c2i: inverse(base64Alphabet),
+ i2cUrl: base64UrlAlphabet,
+ c2iUrl: inverse(base64UrlAlphabet)
+};
+
+
+/***/ },
+
+/***/ 6319
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var anObject = __webpack_require__(8551);
+var iteratorClose = __webpack_require__(9539);
+
+// call something on iterator step with safe closing on error
+module.exports = function (iterator, fn, value, ENTRIES) {
+ try {
+ return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
+ } catch (error) {
+ iteratorClose(iterator, 'throw', error);
+ }
+};
+
+
+/***/ },
+
+/***/ 2195
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+var toString = uncurryThis({}.toString);
+var stringSlice = uncurryThis(''.slice);
+
+module.exports = function (it) {
+ return stringSlice(toString(it), 8, -1);
+};
+
+
+/***/ },
+
+/***/ 6955
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var TO_STRING_TAG_SUPPORT = __webpack_require__(2140);
+var isCallable = __webpack_require__(4901);
+var classofRaw = __webpack_require__(2195);
+var wellKnownSymbol = __webpack_require__(8227);
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var $Object = Object;
+
+// ES3 wrong here
+var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';
+
+// fallback for IE11 Script Access Denied error
+var tryGet = function (it, key) {
+ try {
+ return it[key];
+ } catch (error) { /* empty */ }
+};
+
+// getting tag from ES6+ `Object.prototype.toString`
+module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
+ var O, tag, result;
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
+ // @@toStringTag case
+ : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag
+ // builtinTag case
+ : CORRECT_ARGUMENTS ? classofRaw(O)
+ // ES3 arguments fallback
+ : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;
+};
+
+
+/***/ },
+
+/***/ 7740
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var hasOwn = __webpack_require__(9297);
+var ownKeys = __webpack_require__(5031);
+var getOwnPropertyDescriptorModule = __webpack_require__(7347);
+var definePropertyModule = __webpack_require__(4913);
+
+module.exports = function (target, source, exceptions) {
+ var keys = ownKeys(source);
+ var defineProperty = definePropertyModule.f;
+ var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
+ defineProperty(target, key, getOwnPropertyDescriptor(source, key));
+ }
+ }
+};
+
+
+/***/ },
+
+/***/ 2211
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+
+module.exports = !fails(function () {
+ function F() { /* empty */ }
+ F.prototype.constructor = null;
+ // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
+ return Object.getPrototypeOf(new F()) !== F.prototype;
+});
+
+
+/***/ },
+
+/***/ 2529
+(module) {
+
+
+// `CreateIterResultObject` abstract operation
+// https://tc39.es/ecma262/#sec-createiterresultobject
+module.exports = function (value, done) {
+ return { value: value, done: done };
+};
+
+
+/***/ },
+
+/***/ 6699
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var definePropertyModule = __webpack_require__(4913);
+var createPropertyDescriptor = __webpack_require__(6980);
+
+module.exports = DESCRIPTORS ? function (object, key, value) {
+ return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
+} : function (object, key, value) {
+ object[key] = value;
+ return object;
+};
+
+
+/***/ },
+
+/***/ 6980
+(module) {
+
+
+module.exports = function (bitmap, value) {
+ return {
+ enumerable: !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable: !(bitmap & 4),
+ value: value
+ };
+};
+
+
+/***/ },
+
+/***/ 4659
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var definePropertyModule = __webpack_require__(4913);
+var createPropertyDescriptor = __webpack_require__(6980);
+
+module.exports = function (object, key, value) {
+ if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));
+ else object[key] = value;
+};
+
+
+/***/ },
+
+/***/ 2106
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var makeBuiltIn = __webpack_require__(283);
+var defineProperty = __webpack_require__(4913);
+
+module.exports = function (target, name, descriptor) {
+ if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });
+ if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });
+ return defineProperty.f(target, name, descriptor);
+};
+
+
+/***/ },
+
+/***/ 6840
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isCallable = __webpack_require__(4901);
+var definePropertyModule = __webpack_require__(4913);
+var makeBuiltIn = __webpack_require__(283);
+var defineGlobalProperty = __webpack_require__(9433);
+
+module.exports = function (O, key, value, options) {
+ if (!options) options = {};
+ var simple = options.enumerable;
+ var name = options.name !== undefined ? options.name : key;
+ if (isCallable(value)) makeBuiltIn(value, name, options);
+ if (options.global) {
+ if (simple) O[key] = value;
+ else defineGlobalProperty(key, value);
+ } else {
+ try {
+ if (!options.unsafe) delete O[key];
+ else if (O[key]) simple = true;
+ } catch (error) { /* empty */ }
+ if (simple) O[key] = value;
+ else definePropertyModule.f(O, key, {
+ value: value,
+ enumerable: false,
+ configurable: !options.nonConfigurable,
+ writable: !options.nonWritable
+ });
+ } return O;
+};
+
+
+/***/ },
+
+/***/ 6279
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var defineBuiltIn = __webpack_require__(6840);
+
+module.exports = function (target, src, options) {
+ for (var key in src) defineBuiltIn(target, key, src[key], options);
+ return target;
+};
+
+
+/***/ },
+
+/***/ 9433
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+
+// eslint-disable-next-line es/no-object-defineproperty -- safe
+var defineProperty = Object.defineProperty;
+
+module.exports = function (key, value) {
+ try {
+ defineProperty(globalThis, key, { value: value, configurable: true, writable: true });
+ } catch (error) {
+ globalThis[key] = value;
+ } return value;
+};
+
+
+/***/ },
+
+/***/ 3724
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+
+// Detect IE8's incomplete defineProperty implementation
+module.exports = !fails(function () {
+ // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+ return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;
+});
+
+
+/***/ },
+
+/***/ 4483
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var getBuiltInNodeModule = __webpack_require__(9429);
+var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548);
+
+var structuredClone = globalThis.structuredClone;
+var $ArrayBuffer = globalThis.ArrayBuffer;
+var $MessageChannel = globalThis.MessageChannel;
+var detach = false;
+var WorkerThreads, channel, buffer, $detach;
+
+if (PROPER_STRUCTURED_CLONE_TRANSFER) {
+ detach = function (transferable) {
+ structuredClone(transferable, { transfer: [transferable] });
+ };
+} else if ($ArrayBuffer) try {
+ if (!$MessageChannel) {
+ WorkerThreads = getBuiltInNodeModule('worker_threads');
+ if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;
+ }
+
+ if ($MessageChannel) {
+ channel = new $MessageChannel();
+ buffer = new $ArrayBuffer(2);
+
+ $detach = function (transferable) {
+ channel.port1.postMessage(null, [transferable]);
+ };
+
+ if (buffer.byteLength === 2) {
+ $detach(buffer);
+ if (buffer.byteLength === 0) detach = $detach;
+ }
+ }
+} catch (error) { /* empty */ }
+
+module.exports = detach;
+
+
+/***/ },
+
+/***/ 4055
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var isObject = __webpack_require__(34);
+
+var document = globalThis.document;
+// typeof document.createElement is 'object' in old IE
+var EXISTS = isObject(document) && isObject(document.createElement);
+
+module.exports = function (it) {
+ return EXISTS ? document.createElement(it) : {};
+};
+
+
+/***/ },
+
+/***/ 6837
+(module) {
+
+
+var $TypeError = TypeError;
+var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
+
+module.exports = function (it) {
+ if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');
+ return it;
+};
+
+
+/***/ },
+
+/***/ 8727
+(module) {
+
+
+// IE8- don't enum bug keys
+module.exports = [
+ 'constructor',
+ 'hasOwnProperty',
+ 'isPrototypeOf',
+ 'propertyIsEnumerable',
+ 'toLocaleString',
+ 'toString',
+ 'valueOf'
+];
+
+
+/***/ },
+
+/***/ 6193
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var ENVIRONMENT = __webpack_require__(4215);
+
+module.exports = ENVIRONMENT === 'NODE';
+
+
+/***/ },
+
+/***/ 2839
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+
+var navigator = globalThis.navigator;
+var userAgent = navigator && navigator.userAgent;
+
+module.exports = userAgent ? String(userAgent) : '';
+
+
+/***/ },
+
+/***/ 9519
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var userAgent = __webpack_require__(2839);
+
+var process = globalThis.process;
+var Deno = globalThis.Deno;
+var versions = process && process.versions || Deno && Deno.version;
+var v8 = versions && versions.v8;
+var match, version;
+
+if (v8) {
+ match = v8.split('.');
+ // in old Chrome, versions of V8 isn't V8 = Chrome / 10
+ // but their correct versions are not interesting for us
+ version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
+}
+
+// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
+// so check `userAgent` even if `.v8` exists, but 0
+if (!version && userAgent) {
+ match = userAgent.match(/Edge\/(\d+)/);
+ if (!match || match[1] >= 74) {
+ match = userAgent.match(/Chrome\/(\d+)/);
+ if (match) version = +match[1];
+ }
+}
+
+module.exports = version;
+
+
+/***/ },
+
+/***/ 4215
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* global Bun, Deno -- detection */
+var globalThis = __webpack_require__(4576);
+var userAgent = __webpack_require__(2839);
+var classof = __webpack_require__(2195);
+
+var userAgentStartsWith = function (string) {
+ return userAgent.slice(0, string.length) === string;
+};
+
+module.exports = (function () {
+ if (userAgentStartsWith('Bun/')) return 'BUN';
+ if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';
+ if (userAgentStartsWith('Deno/')) return 'DENO';
+ if (userAgentStartsWith('Node.js/')) return 'NODE';
+ if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';
+ if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';
+ if (classof(globalThis.process) === 'process') return 'NODE';
+ if (globalThis.window && globalThis.document) return 'BROWSER';
+ return 'REST';
+})();
+
+
+/***/ },
+
+/***/ 6518
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var getOwnPropertyDescriptor = (__webpack_require__(7347).f);
+var createNonEnumerableProperty = __webpack_require__(6699);
+var defineBuiltIn = __webpack_require__(6840);
+var defineGlobalProperty = __webpack_require__(9433);
+var copyConstructorProperties = __webpack_require__(7740);
+var isForced = __webpack_require__(2796);
+
+/*
+ options.target - name of the target object
+ options.global - target is the global object
+ options.stat - export as static methods of target
+ options.proto - export as prototype methods of target
+ options.real - real prototype method for the `pure` version
+ options.forced - export even if the native feature is available
+ options.bind - bind methods to the target, required for the `pure` version
+ options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
+ options.unsafe - use the simple assignment of property instead of delete + defineProperty
+ options.sham - add a flag to not completely full polyfills
+ options.enumerable - export as enumerable property
+ options.dontCallGetSet - prevent calling a getter on target
+ options.name - the .name of the function if it does not match the key
+*/
+module.exports = function (options, source) {
+ var TARGET = options.target;
+ var GLOBAL = options.global;
+ var STATIC = options.stat;
+ var FORCED, target, key, targetProperty, sourceProperty, descriptor;
+ if (GLOBAL) {
+ target = globalThis;
+ } else if (STATIC) {
+ target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});
+ } else {
+ target = globalThis[TARGET] && globalThis[TARGET].prototype;
+ }
+ if (target) for (key in source) {
+ sourceProperty = source[key];
+ if (options.dontCallGetSet) {
+ descriptor = getOwnPropertyDescriptor(target, key);
+ targetProperty = descriptor && descriptor.value;
+ } else targetProperty = target[key];
+ FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
+ // contained in target
+ if (!FORCED && targetProperty !== undefined) {
+ if (typeof sourceProperty == typeof targetProperty) continue;
+ copyConstructorProperties(sourceProperty, targetProperty);
+ }
+ // add a flag to not completely full polyfills
+ if (options.sham || (targetProperty && targetProperty.sham)) {
+ createNonEnumerableProperty(sourceProperty, 'sham', true);
+ }
+ defineBuiltIn(target, key, sourceProperty, options);
+ }
+};
+
+
+/***/ },
+
+/***/ 9039
+(module) {
+
+
+module.exports = function (exec) {
+ try {
+ return !!exec();
+ } catch (error) {
+ return true;
+ }
+};
+
+
+/***/ },
+
+/***/ 6080
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(7476);
+var aCallable = __webpack_require__(9306);
+var NATIVE_BIND = __webpack_require__(616);
+
+var bind = uncurryThis(uncurryThis.bind);
+
+// optional / simple context binding
+module.exports = function (fn, that) {
+ aCallable(fn);
+ return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {
+ return fn.apply(that, arguments);
+ };
+};
+
+
+/***/ },
+
+/***/ 616
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+
+module.exports = !fails(function () {
+ // eslint-disable-next-line es/no-function-prototype-bind -- safe
+ var test = function () { /* empty */ }.bind();
+ // eslint-disable-next-line no-prototype-builtins -- safe
+ return typeof test != 'function' || test.hasOwnProperty('prototype');
+});
+
+
+/***/ },
+
+/***/ 9565
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var NATIVE_BIND = __webpack_require__(616);
+
+var call = Function.prototype.call;
+// eslint-disable-next-line es/no-function-prototype-bind -- safe
+module.exports = NATIVE_BIND ? call.bind(call) : function () {
+ return call.apply(call, arguments);
+};
+
+
+/***/ },
+
+/***/ 350
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var hasOwn = __webpack_require__(9297);
+
+var FunctionPrototype = Function.prototype;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
+
+var EXISTS = hasOwn(FunctionPrototype, 'name');
+// additional protection from minified / mangled / dropped function names
+var PROPER = EXISTS && function something() { /* empty */ }.name === 'something';
+var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
+
+module.exports = {
+ EXISTS: EXISTS,
+ PROPER: PROPER,
+ CONFIGURABLE: CONFIGURABLE
+};
+
+
+/***/ },
+
+/***/ 6706
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var aCallable = __webpack_require__(9306);
+
+module.exports = function (object, key, method) {
+ try {
+ // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+ return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
+ } catch (error) { /* empty */ }
+};
+
+
+/***/ },
+
+/***/ 7476
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classofRaw = __webpack_require__(2195);
+var uncurryThis = __webpack_require__(9504);
+
+module.exports = function (fn) {
+ // Nashorn bug:
+ // https://github.com/zloirock/core-js/issues/1128
+ // https://github.com/zloirock/core-js/issues/1130
+ if (classofRaw(fn) === 'Function') return uncurryThis(fn);
+};
+
+
+/***/ },
+
+/***/ 9504
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var NATIVE_BIND = __webpack_require__(616);
+
+var FunctionPrototype = Function.prototype;
+var call = FunctionPrototype.call;
+// eslint-disable-next-line es/no-function-prototype-bind -- safe
+var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);
+
+module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
+ return function () {
+ return call.apply(fn, arguments);
+ };
+};
+
+
+/***/ },
+
+/***/ 944
+(module) {
+
+
+var $TypeError = TypeError;
+
+module.exports = function (options) {
+ var alphabet = options && options.alphabet;
+ if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';
+ throw new $TypeError('Incorrect `alphabet` option');
+};
+
+
+/***/ },
+
+/***/ 9429
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var IS_NODE = __webpack_require__(6193);
+
+module.exports = function (name) {
+ if (IS_NODE) {
+ try {
+ return globalThis.process.getBuiltinModule(name);
+ } catch (error) { /* empty */ }
+ try {
+ // eslint-disable-next-line no-new-func -- safe
+ return Function('return require("' + name + '")')();
+ } catch (error) { /* empty */ }
+ }
+};
+
+
+/***/ },
+
+/***/ 7751
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var isCallable = __webpack_require__(4901);
+
+var aFunction = function (argument) {
+ return isCallable(argument) ? argument : undefined;
+};
+
+module.exports = function (namespace, method) {
+ return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];
+};
+
+
+/***/ },
+
+/***/ 1767
+(module) {
+
+
+// `GetIteratorDirect(obj)` abstract operation
+// https://tc39.es/ecma262/#sec-getiteratordirect
+module.exports = function (obj) {
+ return {
+ iterator: obj,
+ next: obj.next,
+ done: false
+ };
+};
+
+
+/***/ },
+
+/***/ 851
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classof = __webpack_require__(6955);
+var getMethod = __webpack_require__(5966);
+var isNullOrUndefined = __webpack_require__(4117);
+var Iterators = __webpack_require__(6269);
+var wellKnownSymbol = __webpack_require__(8227);
+
+var ITERATOR = wellKnownSymbol('iterator');
+
+module.exports = function (it) {
+ if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)
+ || getMethod(it, '@@iterator')
+ || Iterators[classof(it)];
+};
+
+
+/***/ },
+
+/***/ 81
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var tryToString = __webpack_require__(6823);
+var getIteratorMethod = __webpack_require__(851);
+
+var $TypeError = TypeError;
+
+module.exports = function (argument, usingIterator) {
+ var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
+ if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
+ throw new $TypeError(tryToString(argument) + ' is not iterable');
+};
+
+
+/***/ },
+
+/***/ 5966
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aCallable = __webpack_require__(9306);
+var isNullOrUndefined = __webpack_require__(4117);
+
+// `GetMethod` abstract operation
+// https://tc39.es/ecma262/#sec-getmethod
+module.exports = function (V, P) {
+ var func = V[P];
+ return isNullOrUndefined(func) ? undefined : aCallable(func);
+};
+
+
+/***/ },
+
+/***/ 3789
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var call = __webpack_require__(9565);
+var toIntegerOrInfinity = __webpack_require__(1291);
+var getIteratorDirect = __webpack_require__(1767);
+
+var INVALID_SIZE = 'Invalid size';
+var $RangeError = RangeError;
+var $TypeError = TypeError;
+var max = Math.max;
+
+var SetRecord = function (set, intSize) {
+ this.set = set;
+ this.size = max(intSize, 0);
+ this.has = aCallable(set.has);
+ this.keys = aCallable(set.keys);
+};
+
+SetRecord.prototype = {
+ getIterator: function () {
+ return getIteratorDirect(anObject(call(this.keys, this.set)));
+ },
+ includes: function (it) {
+ return call(this.has, this.set, it);
+ }
+};
+
+// `GetSetRecord` abstract operation
+// https://tc39.es/proposal-set-methods/#sec-getsetrecord
+module.exports = function (obj) {
+ anObject(obj);
+ var numSize = +obj.size;
+ // NOTE: If size is undefined, then numSize will be NaN
+ // eslint-disable-next-line no-self-compare -- NaN check
+ if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);
+ var intSize = toIntegerOrInfinity(numSize);
+ if (intSize < 0) throw new $RangeError(INVALID_SIZE);
+ return new SetRecord(obj, intSize);
+};
+
+
+/***/ },
+
+/***/ 4576
+(module) {
+
+
+var check = function (it) {
+ return it && it.Math === Math && it;
+};
+
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+module.exports =
+ // eslint-disable-next-line es/no-global-this -- safe
+ check(typeof globalThis == 'object' && globalThis) ||
+ check(typeof window == 'object' && window) ||
+ // eslint-disable-next-line no-restricted-globals -- safe
+ check(typeof self == 'object' && self) ||
+ check(typeof global == 'object' && global) ||
+ check(typeof this == 'object' && this) ||
+ // eslint-disable-next-line no-new-func -- fallback
+ (function () { return this; })() || Function('return this')();
+
+
+/***/ },
+
+/***/ 9297
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var toObject = __webpack_require__(8981);
+
+var hasOwnProperty = uncurryThis({}.hasOwnProperty);
+
+// `HasOwnProperty` abstract operation
+// https://tc39.es/ecma262/#sec-hasownproperty
+// eslint-disable-next-line es/no-object-hasown -- safe
+module.exports = Object.hasOwn || function hasOwn(it, key) {
+ return hasOwnProperty(toObject(it), key);
+};
+
+
+/***/ },
+
+/***/ 421
+(module) {
+
+
+module.exports = {};
+
+
+/***/ },
+
+/***/ 397
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var getBuiltIn = __webpack_require__(7751);
+
+module.exports = getBuiltIn('document', 'documentElement');
+
+
+/***/ },
+
+/***/ 5917
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var fails = __webpack_require__(9039);
+var createElement = __webpack_require__(4055);
+
+// Thanks to IE8 for its funny defineProperty
+module.exports = !DESCRIPTORS && !fails(function () {
+ // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+ return Object.defineProperty(createElement('div'), 'a', {
+ get: function () { return 7; }
+ }).a !== 7;
+});
+
+
+/***/ },
+
+/***/ 7055
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var fails = __webpack_require__(9039);
+var classof = __webpack_require__(2195);
+
+var $Object = Object;
+var split = uncurryThis(''.split);
+
+// fallback for non-array-like ES3 and non-enumerable old V8 strings
+module.exports = fails(function () {
+ // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
+ // eslint-disable-next-line no-prototype-builtins -- safe
+ return !$Object('z').propertyIsEnumerable(0);
+}) ? function (it) {
+ return classof(it) === 'String' ? split(it, '') : $Object(it);
+} : $Object;
+
+
+/***/ },
+
+/***/ 3706
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var isCallable = __webpack_require__(4901);
+var store = __webpack_require__(7629);
+
+var functionToString = uncurryThis(Function.toString);
+
+// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
+if (!isCallable(store.inspectSource)) {
+ store.inspectSource = function (it) {
+ return functionToString(it);
+ };
+}
+
+module.exports = store.inspectSource;
+
+
+/***/ },
+
+/***/ 1181
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var NATIVE_WEAK_MAP = __webpack_require__(8622);
+var globalThis = __webpack_require__(4576);
+var isObject = __webpack_require__(34);
+var createNonEnumerableProperty = __webpack_require__(6699);
+var hasOwn = __webpack_require__(9297);
+var shared = __webpack_require__(7629);
+var sharedKey = __webpack_require__(6119);
+var hiddenKeys = __webpack_require__(421);
+
+var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
+var TypeError = globalThis.TypeError;
+var WeakMap = globalThis.WeakMap;
+var set, get, has;
+
+var enforce = function (it) {
+ return has(it) ? get(it) : set(it, {});
+};
+
+var getterFor = function (TYPE) {
+ return function (it) {
+ var state;
+ if (!isObject(it) || (state = get(it)).type !== TYPE) {
+ throw new TypeError('Incompatible receiver, ' + TYPE + ' required');
+ } return state;
+ };
+};
+
+if (NATIVE_WEAK_MAP || shared.state) {
+ var store = shared.state || (shared.state = new WeakMap());
+ /* eslint-disable no-self-assign -- prototype methods protection */
+ store.get = store.get;
+ store.has = store.has;
+ store.set = store.set;
+ /* eslint-enable no-self-assign -- prototype methods protection */
+ set = function (it, metadata) {
+ if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
+ metadata.facade = it;
+ store.set(it, metadata);
+ return metadata;
+ };
+ get = function (it) {
+ return store.get(it) || {};
+ };
+ has = function (it) {
+ return store.has(it);
+ };
+} else {
+ var STATE = sharedKey('state');
+ hiddenKeys[STATE] = true;
+ set = function (it, metadata) {
+ if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
+ metadata.facade = it;
+ createNonEnumerableProperty(it, STATE, metadata);
+ return metadata;
+ };
+ get = function (it) {
+ return hasOwn(it, STATE) ? it[STATE] : {};
+ };
+ has = function (it) {
+ return hasOwn(it, STATE);
+ };
+}
+
+module.exports = {
+ set: set,
+ get: get,
+ has: has,
+ enforce: enforce,
+ getterFor: getterFor
+};
+
+
+/***/ },
+
+/***/ 4209
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var wellKnownSymbol = __webpack_require__(8227);
+var Iterators = __webpack_require__(6269);
+
+var ITERATOR = wellKnownSymbol('iterator');
+var ArrayPrototype = Array.prototype;
+
+// check on default Array iterator
+module.exports = function (it) {
+ return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
+};
+
+
+/***/ },
+
+/***/ 4376
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classof = __webpack_require__(2195);
+
+// `IsArray` abstract operation
+// https://tc39.es/ecma262/#sec-isarray
+// eslint-disable-next-line es/no-array-isarray -- safe
+module.exports = Array.isArray || function isArray(argument) {
+ return classof(argument) === 'Array';
+};
+
+
+/***/ },
+
+/***/ 1108
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classof = __webpack_require__(6955);
+
+module.exports = function (it) {
+ var klass = classof(it);
+ return klass === 'BigInt64Array' || klass === 'BigUint64Array';
+};
+
+
+/***/ },
+
+/***/ 4901
+(module) {
+
+
+// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot
+var documentAll = typeof document == 'object' && document.all;
+
+// `IsCallable` abstract operation
+// https://tc39.es/ecma262/#sec-iscallable
+// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing
+module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {
+ return typeof argument == 'function' || argument === documentAll;
+} : function (argument) {
+ return typeof argument == 'function';
+};
+
+
+/***/ },
+
+/***/ 2796
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+var isCallable = __webpack_require__(4901);
+
+var replacement = /#|\.prototype\./;
+
+var isForced = function (feature, detection) {
+ var value = data[normalize(feature)];
+ return value === POLYFILL ? true
+ : value === NATIVE ? false
+ : isCallable(detection) ? fails(detection)
+ : !!detection;
+};
+
+var normalize = isForced.normalize = function (string) {
+ return String(string).replace(replacement, '.').toLowerCase();
+};
+
+var data = isForced.data = {};
+var NATIVE = isForced.NATIVE = 'N';
+var POLYFILL = isForced.POLYFILL = 'P';
+
+module.exports = isForced;
+
+
+/***/ },
+
+/***/ 4117
+(module) {
+
+
+// we can't use just `it == null` since of `document.all` special case
+// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec
+module.exports = function (it) {
+ return it === null || it === undefined;
+};
+
+
+/***/ },
+
+/***/ 34
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isCallable = __webpack_require__(4901);
+
+module.exports = function (it) {
+ return typeof it == 'object' ? it !== null : isCallable(it);
+};
+
+
+/***/ },
+
+/***/ 3925
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isObject = __webpack_require__(34);
+
+module.exports = function (argument) {
+ return isObject(argument) || argument === null;
+};
+
+
+/***/ },
+
+/***/ 6395
+(module) {
+
+
+module.exports = false;
+
+
+/***/ },
+
+/***/ 757
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var getBuiltIn = __webpack_require__(7751);
+var isCallable = __webpack_require__(4901);
+var isPrototypeOf = __webpack_require__(1625);
+var USE_SYMBOL_AS_UID = __webpack_require__(7040);
+
+var $Object = Object;
+
+module.exports = USE_SYMBOL_AS_UID ? function (it) {
+ return typeof it == 'symbol';
+} : function (it) {
+ var $Symbol = getBuiltIn('Symbol');
+ return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));
+};
+
+
+/***/ },
+
+/***/ 507
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+
+module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {
+ var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;
+ var next = record.next;
+ var step, result;
+ while (!(step = call(next, iterator)).done) {
+ result = fn(step.value);
+ if (result !== undefined) return result;
+ }
+};
+
+
+/***/ },
+
+/***/ 2652
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var bind = __webpack_require__(6080);
+var call = __webpack_require__(9565);
+var anObject = __webpack_require__(8551);
+var tryToString = __webpack_require__(6823);
+var isArrayIteratorMethod = __webpack_require__(4209);
+var lengthOfArrayLike = __webpack_require__(6198);
+var isPrototypeOf = __webpack_require__(1625);
+var getIterator = __webpack_require__(81);
+var getIteratorMethod = __webpack_require__(851);
+var iteratorClose = __webpack_require__(9539);
+
+var $TypeError = TypeError;
+
+var Result = function (stopped, result) {
+ this.stopped = stopped;
+ this.result = result;
+};
+
+var ResultPrototype = Result.prototype;
+
+module.exports = function (iterable, unboundFunction, options) {
+ var that = options && options.that;
+ var AS_ENTRIES = !!(options && options.AS_ENTRIES);
+ var IS_RECORD = !!(options && options.IS_RECORD);
+ var IS_ITERATOR = !!(options && options.IS_ITERATOR);
+ var INTERRUPTED = !!(options && options.INTERRUPTED);
+ var fn = bind(unboundFunction, that);
+ var iterator, iterFn, index, length, result, next, step;
+
+ var stop = function (condition) {
+ var $iterator = iterator;
+ iterator = undefined;
+ if ($iterator) iteratorClose($iterator, 'normal');
+ return new Result(true, condition);
+ };
+
+ var callFn = function (value) {
+ if (AS_ENTRIES) {
+ anObject(value);
+ return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
+ } return INTERRUPTED ? fn(value, stop) : fn(value);
+ };
+
+ if (IS_RECORD) {
+ iterator = iterable.iterator;
+ } else if (IS_ITERATOR) {
+ iterator = iterable;
+ } else {
+ iterFn = getIteratorMethod(iterable);
+ if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');
+ // optimisation for array iterators
+ if (isArrayIteratorMethod(iterFn)) {
+ for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
+ result = callFn(iterable[index]);
+ if (result && isPrototypeOf(ResultPrototype, result)) return result;
+ } return new Result(false);
+ }
+ iterator = getIterator(iterable, iterFn);
+ }
+
+ next = IS_RECORD ? iterable.next : iterator.next;
+ while (!(step = call(next, iterator)).done) {
+ // `IteratorValue` errors should propagate without closing the iterator
+ var value = step.value;
+ try {
+ result = callFn(value);
+ } catch (error) {
+ if (iterator) iteratorClose(iterator, 'throw', error);
+ else throw error;
+ }
+ if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;
+ } return new Result(false);
+};
+
+
+/***/ },
+
+/***/ 1385
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var iteratorClose = __webpack_require__(9539);
+
+module.exports = function (iters, kind, value) {
+ for (var i = iters.length - 1; i >= 0; i--) {
+ if (iters[i] === undefined) continue;
+ try {
+ value = iteratorClose(iters[i].iterator, kind, value);
+ } catch (error) {
+ kind = 'throw';
+ value = error;
+ }
+ }
+ if (kind === 'throw') throw value;
+ return value;
+};
+
+
+/***/ },
+
+/***/ 9539
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var anObject = __webpack_require__(8551);
+var getMethod = __webpack_require__(5966);
+
+module.exports = function (iterator, kind, value) {
+ var innerResult, innerError;
+ anObject(iterator);
+ try {
+ innerResult = getMethod(iterator, 'return');
+ if (!innerResult) {
+ if (kind === 'throw') throw value;
+ return value;
+ }
+ innerResult = call(innerResult, iterator);
+ } catch (error) {
+ innerError = true;
+ innerResult = error;
+ }
+ if (kind === 'throw') throw value;
+ if (innerError) throw innerResult;
+ anObject(innerResult);
+ return value;
+};
+
+
+/***/ },
+
+/***/ 9462
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var create = __webpack_require__(2360);
+var createNonEnumerableProperty = __webpack_require__(6699);
+var defineBuiltIns = __webpack_require__(6279);
+var wellKnownSymbol = __webpack_require__(8227);
+var InternalStateModule = __webpack_require__(1181);
+var getMethod = __webpack_require__(5966);
+var IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);
+var createIterResultObject = __webpack_require__(2529);
+var iteratorClose = __webpack_require__(9539);
+var iteratorCloseAll = __webpack_require__(1385);
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var ITERATOR_HELPER = 'IteratorHelper';
+var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';
+var NORMAL = 'normal';
+var THROW = 'throw';
+var setInternalState = InternalStateModule.set;
+
+var createIteratorProxyPrototype = function (IS_ITERATOR) {
+ var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);
+
+ return defineBuiltIns(create(IteratorPrototype), {
+ next: function next() {
+ var state = getInternalState(this);
+ // for simplification:
+ // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`
+ // for `%IteratorHelperPrototype%.next` - just a value
+ if (IS_ITERATOR) return state.nextHandler();
+ if (state.done) return createIterResultObject(undefined, true);
+ try {
+ var result = state.nextHandler();
+ return state.returnHandlerResult ? result : createIterResultObject(result, state.done);
+ } catch (error) {
+ state.done = true;
+ throw error;
+ }
+ },
+ 'return': function () {
+ var state = getInternalState(this);
+ var iterator = state.iterator;
+ var done = state.done;
+ state.done = true;
+ if (IS_ITERATOR) {
+ var returnMethod = getMethod(iterator, 'return');
+ return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);
+ }
+ if (done) return createIterResultObject(undefined, true);
+ if (state.inner) try {
+ iteratorClose(state.inner.iterator, NORMAL);
+ } catch (error) {
+ return iteratorClose(iterator, THROW, error);
+ }
+ if (state.openIters) try {
+ iteratorCloseAll(state.openIters, NORMAL);
+ } catch (error) {
+ if (iterator) return iteratorClose(iterator, THROW, error);
+ throw error;
+ }
+ if (iterator) iteratorClose(iterator, NORMAL);
+ return createIterResultObject(undefined, true);
+ }
+ });
+};
+
+var WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);
+var IteratorHelperPrototype = createIteratorProxyPrototype(false);
+
+createNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');
+
+module.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {
+ var IteratorProxy = function Iterator(record, state) {
+ if (state) {
+ state.iterator = record.iterator;
+ state.next = record.next;
+ } else state = record;
+ state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;
+ state.returnHandlerResult = !!RETURN_HANDLER_RESULT;
+ state.nextHandler = nextHandler;
+ state.counter = 0;
+ state.done = false;
+ setInternalState(this, state);
+ };
+
+ IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;
+
+ return IteratorProxy;
+};
+
+
+/***/ },
+
+/***/ 684
+(module) {
+
+
+// Should throw an error on invalid iterator
+// https://issues.chromium.org/issues/336839115
+module.exports = function (methodName, argument) {
+ // eslint-disable-next-line es/no-iterator -- required for testing
+ var method = typeof Iterator == 'function' && Iterator.prototype[methodName];
+ if (method) try {
+ method.call({ next: null }, argument).next();
+ } catch (error) {
+ return true;
+ }
+};
+
+
+/***/ },
+
+/***/ 4549
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+
+// https://github.com/tc39/ecma262/pull/3467
+module.exports = function (METHOD_NAME, ExpectedError) {
+ var Iterator = globalThis.Iterator;
+ var IteratorPrototype = Iterator && Iterator.prototype;
+ var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];
+
+ var CLOSED = false;
+
+ if (method) try {
+ method.call({
+ next: function () { return { done: true }; },
+ 'return': function () { CLOSED = true; }
+ }, -1);
+ } catch (error) {
+ // https://bugs.webkit.org/show_bug.cgi?id=291195
+ if (!(error instanceof ExpectedError)) CLOSED = false;
+ }
+
+ if (!CLOSED) return method;
+};
+
+
+/***/ },
+
+/***/ 7657
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+var isCallable = __webpack_require__(4901);
+var isObject = __webpack_require__(34);
+var create = __webpack_require__(2360);
+var getPrototypeOf = __webpack_require__(2787);
+var defineBuiltIn = __webpack_require__(6840);
+var wellKnownSymbol = __webpack_require__(8227);
+var IS_PURE = __webpack_require__(6395);
+
+var ITERATOR = wellKnownSymbol('iterator');
+var BUGGY_SAFARI_ITERATORS = false;
+
+// `%IteratorPrototype%` object
+// https://tc39.es/ecma262/#sec-%iteratorprototype%-object
+var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
+
+/* eslint-disable es/no-array-prototype-keys -- safe */
+if ([].keys) {
+ arrayIterator = [].keys();
+ // Safari 8 has buggy iterators w/o `next`
+ if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
+ else {
+ PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
+ if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
+ }
+}
+
+var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {
+ var test = {};
+ // FF44- legacy iterators case
+ return IteratorPrototype[ITERATOR].call(test) !== test;
+});
+
+if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
+else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);
+
+// `%IteratorPrototype%[@@iterator]()` method
+// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
+if (!isCallable(IteratorPrototype[ITERATOR])) {
+ defineBuiltIn(IteratorPrototype, ITERATOR, function () {
+ return this;
+ });
+}
+
+module.exports = {
+ IteratorPrototype: IteratorPrototype,
+ BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
+};
+
+
+/***/ },
+
+/***/ 6269
+(module) {
+
+
+module.exports = {};
+
+
+/***/ },
+
+/***/ 6198
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toLength = __webpack_require__(8014);
+
+// `LengthOfArrayLike` abstract operation
+// https://tc39.es/ecma262/#sec-lengthofarraylike
+module.exports = function (obj) {
+ return toLength(obj.length);
+};
+
+
+/***/ },
+
+/***/ 283
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var fails = __webpack_require__(9039);
+var isCallable = __webpack_require__(4901);
+var hasOwn = __webpack_require__(9297);
+var DESCRIPTORS = __webpack_require__(3724);
+var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(350).CONFIGURABLE);
+var inspectSource = __webpack_require__(3706);
+var InternalStateModule = __webpack_require__(1181);
+
+var enforceInternalState = InternalStateModule.enforce;
+var getInternalState = InternalStateModule.get;
+var $String = String;
+// eslint-disable-next-line es/no-object-defineproperty -- safe
+var defineProperty = Object.defineProperty;
+var stringSlice = uncurryThis(''.slice);
+var replace = uncurryThis(''.replace);
+var join = uncurryThis([].join);
+
+var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {
+ return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
+});
+
+var TEMPLATE = String(String).split('String');
+
+var makeBuiltIn = module.exports = function (value, name, options) {
+ if (stringSlice($String(name), 0, 7) === 'Symbol(') {
+ name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']';
+ }
+ if (options && options.getter) name = 'get ' + name;
+ if (options && options.setter) name = 'set ' + name;
+ if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
+ if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });
+ else value.name = name;
+ }
+ if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {
+ defineProperty(value, 'length', { value: options.arity });
+ }
+ try {
+ if (options && hasOwn(options, 'constructor') && options.constructor) {
+ if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });
+ // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable
+ } else if (value.prototype) value.prototype = undefined;
+ } catch (error) { /* empty */ }
+ var state = enforceInternalState(value);
+ if (!hasOwn(state, 'source')) {
+ state.source = join(TEMPLATE, typeof name == 'string' ? name : '');
+ } return value;
+};
+
+// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+// eslint-disable-next-line no-extend-native -- required
+Function.prototype.toString = makeBuiltIn(function toString() {
+ return isCallable(this) && getInternalState(this).source || inspectSource(this);
+}, 'toString');
+
+
+/***/ },
+
+/***/ 2248
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+// eslint-disable-next-line es/no-map -- safe
+var MapPrototype = Map.prototype;
+
+module.exports = {
+ // eslint-disable-next-line es/no-map -- safe
+ Map: Map,
+ set: uncurryThis(MapPrototype.set),
+ get: uncurryThis(MapPrototype.get),
+ has: uncurryThis(MapPrototype.has),
+ remove: uncurryThis(MapPrototype['delete']),
+ proto: MapPrototype
+};
+
+
+/***/ },
+
+/***/ 741
+(module) {
+
+
+var ceil = Math.ceil;
+var floor = Math.floor;
+
+// `Math.trunc` method
+// https://tc39.es/ecma262/#sec-math.trunc
+// eslint-disable-next-line es/no-math-trunc -- safe
+module.exports = Math.trunc || function trunc(x) {
+ var n = +x;
+ return (n > 0 ? floor : ceil)(n);
+};
+
+
+/***/ },
+
+/***/ 6043
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aCallable = __webpack_require__(9306);
+
+var $TypeError = TypeError;
+
+var PromiseCapability = function (C) {
+ var resolve, reject;
+ this.promise = new C(function ($$resolve, $$reject) {
+ if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');
+ resolve = $$resolve;
+ reject = $$reject;
+ });
+ this.resolve = aCallable(resolve);
+ this.reject = aCallable(reject);
+};
+
+// `NewPromiseCapability` abstract operation
+// https://tc39.es/ecma262/#sec-newpromisecapability
+module.exports.f = function (C) {
+ return new PromiseCapability(C);
+};
+
+
+/***/ },
+
+/***/ 2360
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* global ActiveXObject -- old IE, WSH */
+var anObject = __webpack_require__(8551);
+var definePropertiesModule = __webpack_require__(6801);
+var enumBugKeys = __webpack_require__(8727);
+var hiddenKeys = __webpack_require__(421);
+var html = __webpack_require__(397);
+var documentCreateElement = __webpack_require__(4055);
+var sharedKey = __webpack_require__(6119);
+
+var GT = '>';
+var LT = '<';
+var PROTOTYPE = 'prototype';
+var SCRIPT = 'script';
+var IE_PROTO = sharedKey('IE_PROTO');
+
+var EmptyConstructor = function () { /* empty */ };
+
+var scriptTag = function (content) {
+ return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
+};
+
+// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
+var NullProtoObjectViaActiveX = function (activeXDocument) {
+ activeXDocument.write(scriptTag(''));
+ activeXDocument.close();
+ var temp = activeXDocument.parentWindow.Object;
+ // eslint-disable-next-line no-useless-assignment -- avoid memory leak
+ activeXDocument = null;
+ return temp;
+};
+
+// Create object with fake `null` prototype: use iframe Object with cleared prototype
+var NullProtoObjectViaIFrame = function () {
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = documentCreateElement('iframe');
+ var JS = 'java' + SCRIPT + ':';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ html.appendChild(iframe);
+ // https://github.com/zloirock/core-js/issues/475
+ iframe.src = String(JS);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(scriptTag('document.F=Object'));
+ iframeDocument.close();
+ return iframeDocument.F;
+};
+
+// Check for document.domain and active x support
+// No need to use active x approach when document.domain is not set
+// see https://github.com/es-shims/es5-shim/issues/150
+// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
+// avoid IE GC bug
+var activeXDocument;
+var NullProtoObject = function () {
+ try {
+ activeXDocument = new ActiveXObject('htmlfile');
+ } catch (error) { /* ignore */ }
+ NullProtoObject = typeof document != 'undefined'
+ ? document.domain && activeXDocument
+ ? NullProtoObjectViaActiveX(activeXDocument) // old IE
+ : NullProtoObjectViaIFrame()
+ : NullProtoObjectViaActiveX(activeXDocument); // WSH
+ var length = enumBugKeys.length;
+ while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
+ return NullProtoObject();
+};
+
+hiddenKeys[IE_PROTO] = true;
+
+// `Object.create` method
+// https://tc39.es/ecma262/#sec-object.create
+// eslint-disable-next-line es/no-object-create -- safe
+module.exports = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ EmptyConstructor[PROTOTYPE] = anObject(O);
+ result = new EmptyConstructor();
+ EmptyConstructor[PROTOTYPE] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO] = O;
+ } else result = NullProtoObject();
+ return Properties === undefined ? result : definePropertiesModule.f(result, Properties);
+};
+
+
+/***/ },
+
+/***/ 6801
+(__unused_webpack_module, exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686);
+var definePropertyModule = __webpack_require__(4913);
+var anObject = __webpack_require__(8551);
+var toIndexedObject = __webpack_require__(5397);
+var objectKeys = __webpack_require__(1072);
+
+// `Object.defineProperties` method
+// https://tc39.es/ecma262/#sec-object.defineproperties
+// eslint-disable-next-line es/no-object-defineproperties -- safe
+exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
+ anObject(O);
+ var props = toIndexedObject(Properties);
+ var keys = objectKeys(Properties);
+ var length = keys.length;
+ var index = 0;
+ var key;
+ while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);
+ return O;
+};
+
+
+/***/ },
+
+/***/ 4913
+(__unused_webpack_module, exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var IE8_DOM_DEFINE = __webpack_require__(5917);
+var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686);
+var anObject = __webpack_require__(8551);
+var toPropertyKey = __webpack_require__(6969);
+
+var $TypeError = TypeError;
+// eslint-disable-next-line es/no-object-defineproperty -- safe
+var $defineProperty = Object.defineProperty;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+var ENUMERABLE = 'enumerable';
+var CONFIGURABLE = 'configurable';
+var WRITABLE = 'writable';
+
+// `Object.defineProperty` method
+// https://tc39.es/ecma262/#sec-object.defineproperty
+exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
+ anObject(O);
+ P = toPropertyKey(P);
+ anObject(Attributes);
+ if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
+ var current = $getOwnPropertyDescriptor(O, P);
+ if (current && current[WRITABLE]) {
+ O[P] = Attributes.value;
+ Attributes = {
+ configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
+ enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
+ writable: false
+ };
+ }
+ } return $defineProperty(O, P, Attributes);
+} : $defineProperty : function defineProperty(O, P, Attributes) {
+ anObject(O);
+ P = toPropertyKey(P);
+ anObject(Attributes);
+ if (IE8_DOM_DEFINE) try {
+ return $defineProperty(O, P, Attributes);
+ } catch (error) { /* empty */ }
+ if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');
+ if ('value' in Attributes) O[P] = Attributes.value;
+ return O;
+};
+
+
+/***/ },
+
+/***/ 7347
+(__unused_webpack_module, exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var call = __webpack_require__(9565);
+var propertyIsEnumerableModule = __webpack_require__(8773);
+var createPropertyDescriptor = __webpack_require__(6980);
+var toIndexedObject = __webpack_require__(5397);
+var toPropertyKey = __webpack_require__(6969);
+var hasOwn = __webpack_require__(9297);
+var IE8_DOM_DEFINE = __webpack_require__(5917);
+
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+// `Object.getOwnPropertyDescriptor` method
+// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
+exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
+ O = toIndexedObject(O);
+ P = toPropertyKey(P);
+ if (IE8_DOM_DEFINE) try {
+ return $getOwnPropertyDescriptor(O, P);
+ } catch (error) { /* empty */ }
+ if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
+};
+
+
+/***/ },
+
+/***/ 8480
+(__unused_webpack_module, exports, __webpack_require__) {
+
+
+var internalObjectKeys = __webpack_require__(1828);
+var enumBugKeys = __webpack_require__(8727);
+
+var hiddenKeys = enumBugKeys.concat('length', 'prototype');
+
+// `Object.getOwnPropertyNames` method
+// https://tc39.es/ecma262/#sec-object.getownpropertynames
+// eslint-disable-next-line es/no-object-getownpropertynames -- safe
+exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+ return internalObjectKeys(O, hiddenKeys);
+};
+
+
+/***/ },
+
+/***/ 3717
+(__unused_webpack_module, exports) {
+
+
+// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
+exports.f = Object.getOwnPropertySymbols;
+
+
+/***/ },
+
+/***/ 2787
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var hasOwn = __webpack_require__(9297);
+var isCallable = __webpack_require__(4901);
+var toObject = __webpack_require__(8981);
+var sharedKey = __webpack_require__(6119);
+var CORRECT_PROTOTYPE_GETTER = __webpack_require__(2211);
+
+var IE_PROTO = sharedKey('IE_PROTO');
+var $Object = Object;
+var ObjectPrototype = $Object.prototype;
+
+// `Object.getPrototypeOf` method
+// https://tc39.es/ecma262/#sec-object.getprototypeof
+// eslint-disable-next-line es/no-object-getprototypeof -- safe
+module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
+ var object = toObject(O);
+ if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
+ var constructor = object.constructor;
+ if (isCallable(constructor) && object instanceof constructor) {
+ return constructor.prototype;
+ } return object instanceof $Object ? ObjectPrototype : null;
+};
+
+
+/***/ },
+
+/***/ 1625
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+module.exports = uncurryThis({}.isPrototypeOf);
+
+
+/***/ },
+
+/***/ 1828
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var hasOwn = __webpack_require__(9297);
+var toIndexedObject = __webpack_require__(5397);
+var indexOf = (__webpack_require__(9617).indexOf);
+var hiddenKeys = __webpack_require__(421);
+
+var push = uncurryThis([].push);
+
+module.exports = function (object, names) {
+ var O = toIndexedObject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
+ // Don't enum bug & hidden keys
+ while (names.length > i) if (hasOwn(O, key = names[i++])) {
+ ~indexOf(result, key) || push(result, key);
+ }
+ return result;
+};
+
+
+/***/ },
+
+/***/ 1072
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var internalObjectKeys = __webpack_require__(1828);
+var enumBugKeys = __webpack_require__(8727);
+
+// `Object.keys` method
+// https://tc39.es/ecma262/#sec-object.keys
+// eslint-disable-next-line es/no-object-keys -- safe
+module.exports = Object.keys || function keys(O) {
+ return internalObjectKeys(O, enumBugKeys);
+};
+
+
+/***/ },
+
+/***/ 8773
+(__unused_webpack_module, exports) {
+
+
+var $propertyIsEnumerable = {}.propertyIsEnumerable;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+// Nashorn ~ JDK8 bug
+var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
+
+// `Object.prototype.propertyIsEnumerable` method implementation
+// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
+exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
+ var descriptor = getOwnPropertyDescriptor(this, V);
+ return !!descriptor && descriptor.enumerable;
+} : $propertyIsEnumerable;
+
+
+/***/ },
+
+/***/ 2967
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* eslint-disable no-proto -- safe */
+var uncurryThisAccessor = __webpack_require__(6706);
+var isObject = __webpack_require__(34);
+var requireObjectCoercible = __webpack_require__(7750);
+var aPossiblePrototype = __webpack_require__(3506);
+
+// `Object.setPrototypeOf` method
+// https://tc39.es/ecma262/#sec-object.setprototypeof
+// Works with __proto__ only. Old v8 can't work with null proto objects.
+// eslint-disable-next-line es/no-object-setprototypeof -- safe
+module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
+ var CORRECT_SETTER = false;
+ var test = {};
+ var setter;
+ try {
+ setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');
+ setter(test, []);
+ CORRECT_SETTER = test instanceof Array;
+ } catch (error) { /* empty */ }
+ return function setPrototypeOf(O, proto) {
+ requireObjectCoercible(O);
+ aPossiblePrototype(proto);
+ if (!isObject(O)) return O;
+ if (CORRECT_SETTER) setter(O, proto);
+ else O.__proto__ = proto;
+ return O;
+ };
+}() : undefined);
+
+
+/***/ },
+
+/***/ 4270
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var isCallable = __webpack_require__(4901);
+var isObject = __webpack_require__(34);
+
+var $TypeError = TypeError;
+
+// `OrdinaryToPrimitive` abstract operation
+// https://tc39.es/ecma262/#sec-ordinarytoprimitive
+module.exports = function (input, pref) {
+ var fn, val;
+ if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
+ if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
+ if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
+ throw new $TypeError("Can't convert object to primitive value");
+};
+
+
+/***/ },
+
+/***/ 5031
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var getBuiltIn = __webpack_require__(7751);
+var uncurryThis = __webpack_require__(9504);
+var getOwnPropertyNamesModule = __webpack_require__(8480);
+var getOwnPropertySymbolsModule = __webpack_require__(3717);
+var anObject = __webpack_require__(8551);
+
+var concat = uncurryThis([].concat);
+
+// all object keys, includes non-enumerable and symbols
+module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
+ var keys = getOwnPropertyNamesModule.f(anObject(it));
+ var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
+ return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
+};
+
+
+/***/ },
+
+/***/ 7750
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isNullOrUndefined = __webpack_require__(4117);
+
+var $TypeError = TypeError;
+
+// `RequireObjectCoercible` abstract operation
+// https://tc39.es/ecma262/#sec-requireobjectcoercible
+module.exports = function (it) {
+ if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it);
+ return it;
+};
+
+
+/***/ },
+
+/***/ 9286
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var SetHelpers = __webpack_require__(4402);
+var iterate = __webpack_require__(8469);
+
+var Set = SetHelpers.Set;
+var add = SetHelpers.add;
+
+module.exports = function (set) {
+ var result = new Set();
+ iterate(set, function (it) {
+ add(result, it);
+ });
+ return result;
+};
+
+
+/***/ },
+
+/***/ 3440
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var SetHelpers = __webpack_require__(4402);
+var clone = __webpack_require__(9286);
+var size = __webpack_require__(5170);
+var getSetRecord = __webpack_require__(3789);
+var iterateSet = __webpack_require__(8469);
+var iterateSimple = __webpack_require__(507);
+
+var has = SetHelpers.has;
+var remove = SetHelpers.remove;
+
+// `Set.prototype.difference` method
+// https://tc39.es/ecma262/#sec-set.prototype.difference
+module.exports = function difference(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ var result = clone(O);
+ if (size(result) <= otherRec.size) iterateSet(result, function (e) {
+ if (otherRec.includes(e)) remove(result, e);
+ });
+ else iterateSimple(otherRec.getIterator(), function (e) {
+ if (has(result, e)) remove(result, e);
+ });
+ return result;
+};
+
+
+/***/ },
+
+/***/ 4402
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+// eslint-disable-next-line es/no-set -- safe
+var SetPrototype = Set.prototype;
+
+module.exports = {
+ // eslint-disable-next-line es/no-set -- safe
+ Set: Set,
+ add: uncurryThis(SetPrototype.add),
+ has: uncurryThis(SetPrototype.has),
+ remove: uncurryThis(SetPrototype['delete']),
+ proto: SetPrototype
+};
+
+
+/***/ },
+
+/***/ 8750
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var SetHelpers = __webpack_require__(4402);
+var size = __webpack_require__(5170);
+var getSetRecord = __webpack_require__(3789);
+var iterateSet = __webpack_require__(8469);
+var iterateSimple = __webpack_require__(507);
+
+var Set = SetHelpers.Set;
+var add = SetHelpers.add;
+var has = SetHelpers.has;
+
+// `Set.prototype.intersection` method
+// https://tc39.es/ecma262/#sec-set.prototype.intersection
+module.exports = function intersection(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ var result = new Set();
+
+ if (size(O) > otherRec.size) {
+ iterateSimple(otherRec.getIterator(), function (e) {
+ if (has(O, e)) add(result, e);
+ });
+ } else {
+ iterateSet(O, function (e) {
+ if (otherRec.includes(e)) add(result, e);
+ });
+ }
+
+ return result;
+};
+
+
+/***/ },
+
+/***/ 4449
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var has = (__webpack_require__(4402).has);
+var size = __webpack_require__(5170);
+var getSetRecord = __webpack_require__(3789);
+var iterateSet = __webpack_require__(8469);
+var iterateSimple = __webpack_require__(507);
+var iteratorClose = __webpack_require__(9539);
+
+// `Set.prototype.isDisjointFrom` method
+// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom
+module.exports = function isDisjointFrom(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ if (size(O) <= otherRec.size) return iterateSet(O, function (e) {
+ if (otherRec.includes(e)) return false;
+ }, true) !== false;
+ var iterator = otherRec.getIterator();
+ return iterateSimple(iterator, function (e) {
+ if (has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);
+ }) !== false;
+};
+
+
+/***/ },
+
+/***/ 3838
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var size = __webpack_require__(5170);
+var iterate = __webpack_require__(8469);
+var getSetRecord = __webpack_require__(3789);
+
+// `Set.prototype.isSubsetOf` method
+// https://tc39.es/ecma262/#sec-set.prototype.issubsetof
+module.exports = function isSubsetOf(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ if (size(O) > otherRec.size) return false;
+ return iterate(O, function (e) {
+ if (!otherRec.includes(e)) return false;
+ }, true) !== false;
+};
+
+
+/***/ },
+
+/***/ 8527
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var has = (__webpack_require__(4402).has);
+var size = __webpack_require__(5170);
+var getSetRecord = __webpack_require__(3789);
+var iterateSimple = __webpack_require__(507);
+var iteratorClose = __webpack_require__(9539);
+
+// `Set.prototype.isSupersetOf` method
+// https://tc39.es/ecma262/#sec-set.prototype.issupersetof
+module.exports = function isSupersetOf(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ if (size(O) < otherRec.size) return false;
+ var iterator = otherRec.getIterator();
+ return iterateSimple(iterator, function (e) {
+ if (!has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);
+ }) !== false;
+};
+
+
+/***/ },
+
+/***/ 8469
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var iterateSimple = __webpack_require__(507);
+var SetHelpers = __webpack_require__(4402);
+
+var Set = SetHelpers.Set;
+var SetPrototype = SetHelpers.proto;
+var forEach = uncurryThis(SetPrototype.forEach);
+var keys = uncurryThis(SetPrototype.keys);
+var next = keys(new Set()).next;
+
+module.exports = function (set, fn, interruptible) {
+ return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);
+};
+
+
+/***/ },
+
+/***/ 4916
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var getBuiltIn = __webpack_require__(7751);
+
+var createSetLike = function (size) {
+ return {
+ size: size,
+ has: function () {
+ return false;
+ },
+ keys: function () {
+ return {
+ next: function () {
+ return { done: true };
+ }
+ };
+ }
+ };
+};
+
+var createSetLikeWithInfinitySize = function (size) {
+ return {
+ size: size,
+ has: function () {
+ return true;
+ },
+ keys: function () {
+ throw new Error('e');
+ }
+ };
+};
+
+module.exports = function (name, callback) {
+ var Set = getBuiltIn('Set');
+ try {
+ new Set()[name](createSetLike(0));
+ try {
+ // late spec change, early WebKit ~ Safari 17 implementation does not pass it
+ // https://github.com/tc39/proposal-set-methods/pull/88
+ // also covered engines with
+ // https://bugs.webkit.org/show_bug.cgi?id=272679
+ new Set()[name](createSetLike(-1));
+ return false;
+ } catch (error2) {
+ if (!callback) return true;
+ // early V8 implementation bug
+ // https://issues.chromium.org/issues/351332634
+ try {
+ new Set()[name](createSetLikeWithInfinitySize(-Infinity));
+ return false;
+ } catch (error) {
+ var set = new Set([1, 2]);
+ return callback(set[name](createSetLikeWithInfinitySize(Infinity)));
+ }
+ }
+ } catch (error) {
+ return false;
+ }
+};
+
+
+/***/ },
+
+/***/ 9835
+(module) {
+
+
+// Should get iterator record of a set-like object before cloning this
+// https://bugs.webkit.org/show_bug.cgi?id=289430
+module.exports = function (METHOD_NAME) {
+ try {
+ // eslint-disable-next-line es/no-set -- needed for test
+ var baseSet = new Set();
+ var setLike = {
+ size: 0,
+ has: function () { return true; },
+ keys: function () {
+ // eslint-disable-next-line es/no-object-defineproperty -- needed for test
+ return Object.defineProperty({}, 'next', {
+ get: function () {
+ baseSet.clear();
+ baseSet.add(4);
+ return function () {
+ return { done: true };
+ };
+ }
+ });
+ }
+ };
+ var result = baseSet[METHOD_NAME](setLike);
+
+ return result.size === 1 && result.values().next().value === 4;
+ } catch (error) {
+ return false;
+ }
+};
+
+
+/***/ },
+
+/***/ 5170
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThisAccessor = __webpack_require__(6706);
+var SetHelpers = __webpack_require__(4402);
+
+module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {
+ return set.size;
+};
+
+
+/***/ },
+
+/***/ 3650
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var SetHelpers = __webpack_require__(4402);
+var clone = __webpack_require__(9286);
+var getSetRecord = __webpack_require__(3789);
+var iterateSimple = __webpack_require__(507);
+
+var add = SetHelpers.add;
+var has = SetHelpers.has;
+var remove = SetHelpers.remove;
+
+// `Set.prototype.symmetricDifference` method
+// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
+module.exports = function symmetricDifference(other) {
+ var O = aSet(this);
+ var keysIter = getSetRecord(other).getIterator();
+ var result = clone(O);
+ iterateSimple(keysIter, function (e) {
+ if (has(O, e)) remove(result, e);
+ else add(result, e);
+ });
+ return result;
+};
+
+
+/***/ },
+
+/***/ 4204
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var add = (__webpack_require__(4402).add);
+var clone = __webpack_require__(9286);
+var getSetRecord = __webpack_require__(3789);
+var iterateSimple = __webpack_require__(507);
+
+// `Set.prototype.union` method
+// https://tc39.es/ecma262/#sec-set.prototype.union
+module.exports = function union(other) {
+ var O = aSet(this);
+ var keysIter = getSetRecord(other).getIterator();
+ var result = clone(O);
+ iterateSimple(keysIter, function (it) {
+ add(result, it);
+ });
+ return result;
+};
+
+
+/***/ },
+
+/***/ 6119
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var shared = __webpack_require__(5745);
+var uid = __webpack_require__(3392);
+
+var keys = shared('keys');
+
+module.exports = function (key) {
+ return keys[key] || (keys[key] = uid(key));
+};
+
+
+/***/ },
+
+/***/ 7629
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var IS_PURE = __webpack_require__(6395);
+var globalThis = __webpack_require__(4576);
+var defineGlobalProperty = __webpack_require__(9433);
+
+var SHARED = '__core-js_shared__';
+var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
+
+(store.versions || (store.versions = [])).push({
+ version: '3.49.0',
+ mode: IS_PURE ? 'pure' : 'global',
+ copyright: 'Β© 2013β2025 Denis Pushkarev (zloirock.ru), 2025β2026 CoreJS Company (core-js.io). All rights reserved.',
+ license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',
+ source: 'https://github.com/zloirock/core-js'
+});
+
+
+/***/ },
+
+/***/ 5745
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var store = __webpack_require__(7629);
+
+module.exports = function (key, value) {
+ return store[key] || (store[key] = value || {});
+};
+
+
+/***/ },
+
+/***/ 1548
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var fails = __webpack_require__(9039);
+var V8 = __webpack_require__(9519);
+var ENVIRONMENT = __webpack_require__(4215);
+
+var structuredClone = globalThis.structuredClone;
+
+module.exports = !!structuredClone && !fails(function () {
+ // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation
+ // https://github.com/zloirock/core-js/issues/679
+ if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;
+ var buffer = new ArrayBuffer(8);
+ var clone = structuredClone(buffer, { transfer: [buffer] });
+ return buffer.byteLength !== 0 || clone.byteLength !== 8;
+});
+
+
+/***/ },
+
+/***/ 4495
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* eslint-disable es/no-symbol -- required for testing */
+var V8_VERSION = __webpack_require__(9519);
+var fails = __webpack_require__(9039);
+var globalThis = __webpack_require__(4576);
+
+var $String = globalThis.String;
+
+// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
+module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
+ var symbol = Symbol('symbol detection');
+ // Chrome 38 Symbol has incorrect toString conversion
+ // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
+ // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,
+ // of course, fail.
+ return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||
+ // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
+ !Symbol.sham && V8_VERSION && V8_VERSION < 41;
+});
+
+
+/***/ },
+
+/***/ 5610
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toIntegerOrInfinity = __webpack_require__(1291);
+
+var max = Math.max;
+var min = Math.min;
+
+// Helper for a popular repeating case of the spec:
+// Let integer be ? ToInteger(index).
+// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
+module.exports = function (index, length) {
+ var integer = toIntegerOrInfinity(index);
+ return integer < 0 ? max(integer + length, 0) : min(integer, length);
+};
+
+
+/***/ },
+
+/***/ 5854
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toPrimitive = __webpack_require__(2777);
+
+var $TypeError = TypeError;
+
+// `ToBigInt` abstract operation
+// https://tc39.es/ecma262/#sec-tobigint
+module.exports = function (argument) {
+ var prim = toPrimitive(argument, 'number');
+ if (typeof prim == 'number') throw new $TypeError("Can't convert number to bigint");
+ // eslint-disable-next-line es/no-bigint -- safe
+ return BigInt(prim);
+};
+
+
+/***/ },
+
+/***/ 7696
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toIntegerOrInfinity = __webpack_require__(1291);
+var toLength = __webpack_require__(8014);
+
+var $RangeError = RangeError;
+
+// `ToIndex` abstract operation
+// https://tc39.es/ecma262/#sec-toindex
+module.exports = function (it) {
+ if (it === undefined) return 0;
+ var number = toIntegerOrInfinity(it);
+ var length = toLength(number);
+ if (number !== length) throw new $RangeError('Wrong length or index');
+ return length;
+};
+
+
+/***/ },
+
+/***/ 5397
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+// toObject with fallback for non-array-like ES3 strings
+var IndexedObject = __webpack_require__(7055);
+var requireObjectCoercible = __webpack_require__(7750);
+
+module.exports = function (it) {
+ return IndexedObject(requireObjectCoercible(it));
+};
+
+
+/***/ },
+
+/***/ 1291
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var trunc = __webpack_require__(741);
+
+// `ToIntegerOrInfinity` abstract operation
+// https://tc39.es/ecma262/#sec-tointegerorinfinity
+module.exports = function (argument) {
+ var number = +argument;
+ // eslint-disable-next-line no-self-compare -- NaN check
+ return number !== number || number === 0 ? 0 : trunc(number);
+};
+
+
+/***/ },
+
+/***/ 8014
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toIntegerOrInfinity = __webpack_require__(1291);
+
+var min = Math.min;
+
+// `ToLength` abstract operation
+// https://tc39.es/ecma262/#sec-tolength
+module.exports = function (argument) {
+ var len = toIntegerOrInfinity(argument);
+ return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
+};
+
+
+/***/ },
+
+/***/ 8981
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var requireObjectCoercible = __webpack_require__(7750);
+
+var $Object = Object;
+
+// `ToObject` abstract operation
+// https://tc39.es/ecma262/#sec-toobject
+module.exports = function (argument) {
+ return $Object(requireObjectCoercible(argument));
+};
+
+
+/***/ },
+
+/***/ 2777
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var isObject = __webpack_require__(34);
+var isSymbol = __webpack_require__(757);
+var getMethod = __webpack_require__(5966);
+var ordinaryToPrimitive = __webpack_require__(4270);
+var wellKnownSymbol = __webpack_require__(8227);
+
+var $TypeError = TypeError;
+var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
+
+// `ToPrimitive` abstract operation
+// https://tc39.es/ecma262/#sec-toprimitive
+module.exports = function (input, pref) {
+ if (!isObject(input) || isSymbol(input)) return input;
+ var exoticToPrim = getMethod(input, TO_PRIMITIVE);
+ var result;
+ if (exoticToPrim) {
+ if (pref === undefined) pref = 'default';
+ result = call(exoticToPrim, input, pref);
+ if (!isObject(result) || isSymbol(result)) return result;
+ throw new $TypeError("Can't convert object to primitive value");
+ }
+ if (pref === undefined) pref = 'number';
+ return ordinaryToPrimitive(input, pref);
+};
+
+
+/***/ },
+
+/***/ 6969
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toPrimitive = __webpack_require__(2777);
+var isSymbol = __webpack_require__(757);
+
+// `ToPropertyKey` abstract operation
+// https://tc39.es/ecma262/#sec-topropertykey
+module.exports = function (argument) {
+ var key = toPrimitive(argument, 'string');
+ return isSymbol(key) ? key : key + '';
+};
+
+
+/***/ },
+
+/***/ 2140
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var wellKnownSymbol = __webpack_require__(8227);
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var test = {};
+// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
+test[TO_STRING_TAG] = 'z';
+
+module.exports = String(test) === '[object z]';
+
+
+/***/ },
+
+/***/ 655
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classof = __webpack_require__(6955);
+
+var $String = String;
+
+module.exports = function (argument) {
+ if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');
+ return $String(argument);
+};
+
+
+/***/ },
+
+/***/ 6823
+(module) {
+
+
+var $String = String;
+
+module.exports = function (argument) {
+ try {
+ return $String(argument);
+ } catch (error) {
+ return 'Object';
+ }
+};
+
+
+/***/ },
+
+/***/ 3392
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+var id = 0;
+var postfix = Math.random();
+var toString = uncurryThis(1.1.toString);
+
+module.exports = function (key) {
+ return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
+};
+
+
+/***/ },
+
+/***/ 9143
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var uncurryThis = __webpack_require__(9504);
+var anObjectOrUndefined = __webpack_require__(3972);
+var aString = __webpack_require__(3463);
+var hasOwn = __webpack_require__(9297);
+var base64Map = __webpack_require__(2804);
+var getAlphabetOption = __webpack_require__(944);
+var notDetached = __webpack_require__(5169);
+
+var base64Alphabet = base64Map.c2i;
+var base64UrlAlphabet = base64Map.c2iUrl;
+
+var SyntaxError = globalThis.SyntaxError;
+var TypeError = globalThis.TypeError;
+var at = uncurryThis(''.charAt);
+
+var skipAsciiWhitespace = function (string, index) {
+ var length = string.length;
+ for (;index < length; index++) {
+ var chr = at(string, index);
+ if (chr !== ' ' && chr !== '\t' && chr !== '\n' && chr !== '\f' && chr !== '\r') break;
+ } return index;
+};
+
+var decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) {
+ var chunkLength = chunk.length;
+
+ if (chunkLength < 4) {
+ chunk += chunkLength === 2 ? 'AA' : 'A';
+ }
+
+ var triplet = (alphabet[at(chunk, 0)] << 18)
+ + (alphabet[at(chunk, 1)] << 12)
+ + (alphabet[at(chunk, 2)] << 6)
+ + alphabet[at(chunk, 3)];
+
+ var chunkBytes = [
+ (triplet >> 16) & 255,
+ (triplet >> 8) & 255,
+ triplet & 255
+ ];
+
+ if (chunkLength === 2) {
+ if (throwOnExtraBits && chunkBytes[1] !== 0) {
+ throw new SyntaxError('Extra bits');
+ }
+ return [chunkBytes[0]];
+ }
+
+ if (chunkLength === 3) {
+ if (throwOnExtraBits && chunkBytes[2] !== 0) {
+ throw new SyntaxError('Extra bits');
+ }
+ return [chunkBytes[0], chunkBytes[1]];
+ }
+
+ return chunkBytes;
+};
+
+var writeBytes = function (bytes, elements, written) {
+ var elementsLength = elements.length;
+ for (var index = 0; index < elementsLength; index++) {
+ bytes[written + index] = elements[index];
+ }
+ return written + elementsLength;
+};
+
+/* eslint-disable max-statements, max-depth -- TODO */
+module.exports = function (string, options, into, maxLength) {
+ aString(string);
+ anObjectOrUndefined(options);
+ var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;
+ var lastChunkHandling = options ? options.lastChunkHandling : undefined;
+
+ if (lastChunkHandling === undefined) lastChunkHandling = 'loose';
+
+ if (lastChunkHandling !== 'loose' && lastChunkHandling !== 'strict' && lastChunkHandling !== 'stop-before-partial') {
+ throw new TypeError('Incorrect `lastChunkHandling` option');
+ }
+
+ if (into) notDetached(into.buffer);
+
+ var stringLength = string.length;
+ var bytes = into || [];
+ var written = 0;
+ var read = 0;
+ var chunk = '';
+ var index = 0;
+
+ if (maxLength) while (true) {
+ index = skipAsciiWhitespace(string, index);
+ if (index === stringLength) {
+ if (chunk.length > 0) {
+ if (lastChunkHandling === 'stop-before-partial') {
+ break;
+ }
+ if (lastChunkHandling === 'loose') {
+ if (chunk.length === 1) {
+ throw new SyntaxError('Malformed padding: exactly one additional character');
+ }
+ written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);
+ } else {
+ throw new SyntaxError('Missing padding');
+ }
+ }
+ read = stringLength;
+ break;
+ }
+ var chr = at(string, index);
+ ++index;
+ if (chr === '=') {
+ if (chunk.length < 2) {
+ throw new SyntaxError('Padding is too early');
+ }
+ index = skipAsciiWhitespace(string, index);
+ if (chunk.length === 2) {
+ if (index === stringLength) {
+ if (lastChunkHandling === 'stop-before-partial') {
+ break;
+ }
+ throw new SyntaxError('Malformed padding: only one =');
+ }
+ if (at(string, index) === '=') {
+ ++index;
+ index = skipAsciiWhitespace(string, index);
+ }
+ }
+ if (index < stringLength) {
+ throw new SyntaxError('Unexpected character after padding');
+ }
+ written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, lastChunkHandling === 'strict'), written);
+ read = stringLength;
+ break;
+ }
+ if (!hasOwn(alphabet, chr)) {
+ throw new SyntaxError('Unexpected character');
+ }
+ var remainingBytes = maxLength - written;
+ if (remainingBytes === 1 && chunk.length === 2 || remainingBytes === 2 && chunk.length === 3) {
+ // special case: we can fit exactly the number of bytes currently represented by chunk, so we were just checking for `=`
+ break;
+ }
+
+ chunk += chr;
+ if (chunk.length === 4) {
+ written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);
+ chunk = '';
+ read = index;
+ if (written === maxLength) {
+ break;
+ }
+ }
+ }
+
+ return { bytes: bytes, read: read, written: written };
+};
+
+
+/***/ },
+
+/***/ 2303
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var uncurryThis = __webpack_require__(9504);
+
+var Uint8Array = globalThis.Uint8Array;
+var SyntaxError = globalThis.SyntaxError;
+var min = Math.min;
+var stringMatch = uncurryThis(''.match);
+
+module.exports = function (string, into) {
+ var stringLength = string.length;
+ if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');
+ var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;
+ var bytes = into || new Uint8Array(maxLength);
+ var segments = stringMatch(string, /.{2}/g);
+ var written = 0;
+ for (; written < maxLength; written++) {
+ var result = +('0x' + segments[written] + '0');
+ // eslint-disable-next-line no-self-compare -- NaN check
+ if (result !== result) {
+ throw new SyntaxError('String should only contain hex characters');
+ }
+ bytes[written] = result >> 4;
+ }
+ return { bytes: bytes, read: written << 1 };
+};
+
+
+/***/ },
+
+/***/ 7416
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+var wellKnownSymbol = __webpack_require__(8227);
+var DESCRIPTORS = __webpack_require__(3724);
+var IS_PURE = __webpack_require__(6395);
+
+var ITERATOR = wellKnownSymbol('iterator');
+
+module.exports = !fails(function () {
+ // eslint-disable-next-line unicorn/relative-url-style -- required for testing
+ var url = new URL('b?a=1&b=2&c=3', 'https://a');
+ var params = url.searchParams;
+ var params2 = new URLSearchParams('a=1&a=2&b=3');
+ var result = '';
+ url.pathname = 'c%20d';
+ params.forEach(function (value, key) {
+ params['delete']('b');
+ result += key + value;
+ });
+ params2['delete']('a', 2);
+ // `undefined` case is a Chromium 117 bug
+ // https://bugs.chromium.org/p/v8/issues/detail?id=14222
+ params2['delete']('b', undefined);
+ return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))
+ || (!params.size && (IS_PURE || !DESCRIPTORS))
+ || !params.sort
+ || url.href !== 'https://a/c%20d?a=1&c=3'
+ || params.get('c') !== '3'
+ || String(new URLSearchParams('?a=1')) !== 'a=1'
+ || !params[ITERATOR]
+ // throws in Edge
+ || new URL('https://a@b').username !== 'a'
+ || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'
+ // not punycoded in Edge
+ || new URL('https://ΡΠ΅ΡΡ').host !== 'xn--e1aybc'
+ // not escaped in Chrome 62-
+ || new URL('https://a#Π±').hash !== '#%D0%B1'
+ // fails in Chrome 66-
+ || result !== 'a1c3'
+ // throws in Safari
+ || new URL('https://x', undefined).host !== 'x';
+});
+
+
+/***/ },
+
+/***/ 7040
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* eslint-disable es/no-symbol -- required for testing */
+var NATIVE_SYMBOL = __webpack_require__(4495);
+
+module.exports = NATIVE_SYMBOL &&
+ !Symbol.sham &&
+ typeof Symbol.iterator == 'symbol';
+
+
+/***/ },
+
+/***/ 8686
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var fails = __webpack_require__(9039);
+
+// V8 ~ Chrome 36-
+// https://bugs.chromium.org/p/v8/issues/detail?id=3334
+module.exports = DESCRIPTORS && fails(function () {
+ // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+ return Object.defineProperty(function () { /* empty */ }, 'prototype', {
+ value: 42,
+ writable: false
+ }).prototype !== 42;
+});
+
+
+/***/ },
+
+/***/ 2812
+(module) {
+
+
+var $TypeError = TypeError;
+
+module.exports = function (passed, required) {
+ if (passed < required) throw new $TypeError('Not enough arguments');
+ return passed;
+};
+
+
+/***/ },
+
+/***/ 8622
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var isCallable = __webpack_require__(4901);
+
+var WeakMap = globalThis.WeakMap;
+
+module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
+
+
+/***/ },
+
+/***/ 8227
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var shared = __webpack_require__(5745);
+var hasOwn = __webpack_require__(9297);
+var uid = __webpack_require__(3392);
+var NATIVE_SYMBOL = __webpack_require__(4495);
+var USE_SYMBOL_AS_UID = __webpack_require__(7040);
+
+var Symbol = globalThis.Symbol;
+var WellKnownSymbolsStore = shared('wks');
+var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;
+
+module.exports = function (name) {
+ if (!hasOwn(WellKnownSymbolsStore, name)) {
+ WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)
+ ? Symbol[name]
+ : createWellKnownSymbol('Symbol.' + name);
+ } return WellKnownSymbolsStore[name];
+};
+
+
+/***/ },
+
+/***/ 6573
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var defineBuiltInAccessor = __webpack_require__(2106);
+var isDetached = __webpack_require__(3238);
+
+var ArrayBufferPrototype = ArrayBuffer.prototype;
+
+// `ArrayBuffer.prototype.detached` getter
+// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached
+if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {
+ defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {
+ configurable: true,
+ get: function detached() {
+ return isDetached(this);
+ }
+ });
+}
+
+
+/***/ },
+
+/***/ 7936
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var $transfer = __webpack_require__(5636);
+
+// `ArrayBuffer.prototype.transferToFixedLength` method
+// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfertofixedlength
+if ($transfer) $({ target: 'ArrayBuffer', proto: true }, {
+ transferToFixedLength: function transferToFixedLength() {
+ return $transfer(this, arguments.length ? arguments[0] : undefined, false);
+ }
+});
+
+
+/***/ },
+
+/***/ 8100
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var $transfer = __webpack_require__(5636);
+
+// `ArrayBuffer.prototype.transfer` method
+// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfer
+if ($transfer) $({ target: 'ArrayBuffer', proto: true }, {
+ transfer: function transfer() {
+ return $transfer(this, arguments.length ? arguments[0] : undefined, true);
+ }
+});
+
+
+/***/ },
+
+/***/ 4423
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var $includes = (__webpack_require__(9617).includes);
+var fails = __webpack_require__(9039);
+var addToUnscopables = __webpack_require__(6469);
+
+// FF99+ bug
+var BROKEN_ON_SPARSE = fails(function () {
+ // eslint-disable-next-line es/no-array-prototype-includes -- detection
+ return !Array(1).includes();
+});
+
+// Safari 26.4- bug
+var BROKEN_ON_SPARSE_WITH_FROM_INDEX = fails(function () {
+ // eslint-disable-next-line no-sparse-arrays, es/no-array-prototype-includes -- detection
+ return [, 1].includes(undefined, 1);
+});
+
+// `Array.prototype.includes` method
+// https://tc39.es/ecma262/#sec-array.prototype.includes
+$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE || BROKEN_ON_SPARSE_WITH_FROM_INDEX }, {
+ includes: function includes(el /* , fromIndex = 0 */) {
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
+ }
+});
+
+// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
+addToUnscopables('includes');
+
+
+/***/ },
+
+/***/ 4114
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var toObject = __webpack_require__(8981);
+var lengthOfArrayLike = __webpack_require__(6198);
+var setArrayLength = __webpack_require__(4527);
+var doesNotExceedSafeInteger = __webpack_require__(6837);
+var fails = __webpack_require__(9039);
+
+var INCORRECT_TO_LENGTH = fails(function () {
+ return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;
+});
+
+// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError
+// https://bugs.chromium.org/p/v8/issues/detail?id=12681
+var properErrorOnNonWritableLength = function () {
+ try {
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
+ Object.defineProperty([], 'length', { writable: false }).push();
+ } catch (error) {
+ return error instanceof TypeError;
+ }
+};
+
+var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();
+
+// `Array.prototype.push` method
+// https://tc39.es/ecma262/#sec-array.prototype.push
+$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
+ push: function push(item) {
+ var O = toObject(this);
+ var len = lengthOfArrayLike(O);
+ var argCount = arguments.length;
+ doesNotExceedSafeInteger(len + argCount);
+ for (var i = 0; i < argCount; i++) {
+ O[len] = arguments[i];
+ len++;
+ }
+ setArrayLength(O, len);
+ return len;
+ }
+});
+
+
+/***/ },
+
+/***/ 8111
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var globalThis = __webpack_require__(4576);
+var anInstance = __webpack_require__(679);
+var anObject = __webpack_require__(8551);
+var isCallable = __webpack_require__(4901);
+var getPrototypeOf = __webpack_require__(2787);
+var defineBuiltInAccessor = __webpack_require__(2106);
+var createProperty = __webpack_require__(4659);
+var fails = __webpack_require__(9039);
+var hasOwn = __webpack_require__(9297);
+var wellKnownSymbol = __webpack_require__(8227);
+var IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);
+var DESCRIPTORS = __webpack_require__(3724);
+var IS_PURE = __webpack_require__(6395);
+
+var CONSTRUCTOR = 'constructor';
+var ITERATOR = 'Iterator';
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+
+var $TypeError = TypeError;
+var NativeIterator = globalThis[ITERATOR];
+
+// FF56- have non-standard global helper `Iterator`
+var FORCED = IS_PURE
+ || !isCallable(NativeIterator)
+ || NativeIterator.prototype !== IteratorPrototype
+ // FF44- non-standard `Iterator` passes previous tests
+ || !fails(function () { NativeIterator({}); });
+
+var IteratorConstructor = function Iterator() {
+ anInstance(this, IteratorPrototype);
+ if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');
+};
+
+var defineIteratorPrototypeAccessor = function (key, value) {
+ if (DESCRIPTORS) {
+ defineBuiltInAccessor(IteratorPrototype, key, {
+ configurable: true,
+ get: function () {
+ return value;
+ },
+ set: function (replacement) {
+ anObject(this);
+ if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property");
+ if (hasOwn(this, key)) this[key] = replacement;
+ else createProperty(this, key, replacement);
+ }
+ });
+ } else IteratorPrototype[key] = value;
+};
+
+if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);
+
+if (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {
+ defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);
+}
+
+IteratorConstructor.prototype = IteratorPrototype;
+
+// `Iterator` constructor
+// https://tc39.es/ecma262/#sec-iterator
+$({ global: true, constructor: true, forced: FORCED }, {
+ Iterator: IteratorConstructor
+});
+
+
+/***/ },
+
+/***/ 1148
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var call = __webpack_require__(9565);
+var iterate = __webpack_require__(2652);
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var getIteratorDirect = __webpack_require__(1767);
+var iteratorClose = __webpack_require__(9539);
+var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
+
+var everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);
+
+// `Iterator.prototype.every` method
+// https://tc39.es/ecma262/#sec-iterator.prototype.every
+$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {
+ every: function every(predicate) {
+ anObject(this);
+ try {
+ aCallable(predicate);
+ } catch (error) {
+ iteratorClose(this, 'throw', error);
+ }
+
+ if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);
+
+ var record = getIteratorDirect(this);
+ var counter = 0;
+ return !iterate(record, function (value, stop) {
+ if (!predicate(value, counter++)) return stop();
+ }, { IS_RECORD: true, INTERRUPTED: true }).stopped;
+ }
+});
+
+
+/***/ },
+
+/***/ 1701
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var call = __webpack_require__(9565);
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var getIteratorDirect = __webpack_require__(1767);
+var createIteratorProxy = __webpack_require__(9462);
+var callWithSafeIterationClosing = __webpack_require__(6319);
+var iteratorClose = __webpack_require__(9539);
+var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
+var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
+var IS_PURE = __webpack_require__(6395);
+
+var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });
+var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
+ && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);
+
+var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;
+
+var IteratorProxy = createIteratorProxy(function () {
+ var iterator = this.iterator;
+ var result = anObject(call(this.next, iterator));
+ var done = this.done = !!result.done;
+ if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
+});
+
+// `Iterator.prototype.map` method
+// https://tc39.es/ecma262/#sec-iterator.prototype.map
+$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
+ map: function map(mapper) {
+ anObject(this);
+ try {
+ aCallable(mapper);
+ } catch (error) {
+ iteratorClose(this, 'throw', error);
+ }
+
+ if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);
+
+ return new IteratorProxy(getIteratorDirect(this), {
+ mapper: mapper
+ });
+ }
+});
+
+
+/***/ },
+
+/***/ 2731
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var aCallable = __webpack_require__(9306);
+var MapHelpers = __webpack_require__(2248);
+var IS_PURE = __webpack_require__(6395);
+
+var get = MapHelpers.get;
+var has = MapHelpers.has;
+var set = MapHelpers.set;
+
+// `Map.prototype.getOrInsertComputed` method
+// https://tc39.es/ecma262/#sec-map.prototype.getorinsertcomputed
+$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
+ getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {
+ var hasKey = has(this, key);
+ aCallable(callbackfn);
+ if (hasKey) return get(this, key);
+ // CanonicalizeKeyedCollectionKey
+ if (key === 0 && 1 / key === -Infinity) key = 0;
+ var value = callbackfn(key);
+ set(this, key, value);
+ return value;
+ }
+});
+
+
+/***/ },
+
+/***/ 5367
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var MapHelpers = __webpack_require__(2248);
+var IS_PURE = __webpack_require__(6395);
+
+var get = MapHelpers.get;
+var has = MapHelpers.has;
+var set = MapHelpers.set;
+
+// `Map.prototype.getOrInsert` method
+// https://tc39.es/ecma262/#sec-map.prototype.getorinsert
+$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
+ getOrInsert: function getOrInsert(key, value) {
+ if (has(this, key)) return get(this, key);
+ set(this, key, value);
+ return value;
+ }
+});
+
+
+/***/ },
+
+/***/ 4628
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var newPromiseCapabilityModule = __webpack_require__(6043);
+
+// `Promise.withResolvers` method
+// https://tc39.es/ecma262/#sec-promise.withResolvers
+$({ target: 'Promise', stat: true }, {
+ withResolvers: function withResolvers() {
+ var promiseCapability = newPromiseCapabilityModule.f(this);
+ return {
+ promise: promiseCapability.promise,
+ resolve: promiseCapability.resolve,
+ reject: promiseCapability.reject
+ };
+ }
+});
+
+
+/***/ },
+
+/***/ 7642
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var difference = __webpack_require__(3440);
+var fails = __webpack_require__(9039);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {
+ return result.size === 0;
+});
+
+var FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {
+ // https://bugs.webkit.org/show_bug.cgi?id=288595
+ var setLike = {
+ size: 1,
+ has: function () { return true; },
+ keys: function () {
+ var index = 0;
+ return {
+ next: function () {
+ var done = index++ > 1;
+ if (baseSet.has(1)) baseSet.clear();
+ return { done: done, value: 2 };
+ }
+ };
+ }
+ };
+ // eslint-disable-next-line es/no-set -- testing
+ var baseSet = new Set([1, 2, 3, 4]);
+ // eslint-disable-next-line es/no-set-prototype-difference -- testing
+ return baseSet.difference(setLike).size !== 3;
+});
+
+// `Set.prototype.difference` method
+// https://tc39.es/ecma262/#sec-set.prototype.difference
+$({ target: 'Set', proto: true, real: true, forced: FORCED }, {
+ difference: difference
+});
+
+
+/***/ },
+
+/***/ 8004
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var fails = __webpack_require__(9039);
+var intersection = __webpack_require__(8750);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {
+ return result.size === 2 && result.has(1) && result.has(2);
+}) || fails(function () {
+ // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing
+ return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';
+});
+
+// `Set.prototype.intersection` method
+// https://tc39.es/ecma262/#sec-set.prototype.intersection
+$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
+ intersection: intersection
+});
+
+
+/***/ },
+
+/***/ 3853
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var isDisjointFrom = __webpack_require__(4449);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {
+ return !result;
+});
+
+// `Set.prototype.isDisjointFrom` method
+// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom
+$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
+ isDisjointFrom: isDisjointFrom
+});
+
+
+/***/ },
+
+/***/ 5876
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var isSubsetOf = __webpack_require__(3838);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {
+ return result;
+});
+
+// `Set.prototype.isSubsetOf` method
+// https://tc39.es/ecma262/#sec-set.prototype.issubsetof
+$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
+ isSubsetOf: isSubsetOf
+});
+
+
+/***/ },
+
+/***/ 2475
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var isSupersetOf = __webpack_require__(8527);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {
+ return !result;
+});
+
+// `Set.prototype.isSupersetOf` method
+// https://tc39.es/ecma262/#sec-set.prototype.issupersetof
+$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
+ isSupersetOf: isSupersetOf
+});
+
+
+/***/ },
+
+/***/ 5024
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var symmetricDifference = __webpack_require__(3650);
+var setMethodGetKeysBeforeCloning = __webpack_require__(9835);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');
+
+// `Set.prototype.symmetricDifference` method
+// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
+$({ target: 'Set', proto: true, real: true, forced: FORCED }, {
+ symmetricDifference: symmetricDifference
+});
+
+
+/***/ },
+
+/***/ 1698
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var union = __webpack_require__(4204);
+var setMethodGetKeysBeforeCloning = __webpack_require__(9835);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');
+
+// `Set.prototype.union` method
+// https://tc39.es/ecma262/#sec-set.prototype.union
+$({ target: 'Set', proto: true, real: true, forced: FORCED }, {
+ union: union
+});
+
+
+/***/ },
+
+/***/ 9577
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var ArrayBufferViewCore = __webpack_require__(4644);
+var isBigIntArray = __webpack_require__(1108);
+var lengthOfArrayLike = __webpack_require__(6198);
+var toIntegerOrInfinity = __webpack_require__(1291);
+var toBigInt = __webpack_require__(5854);
+
+var aTypedArray = ArrayBufferViewCore.aTypedArray;
+var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
+var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
+
+var $RangeError = RangeError;
+
+var PROPER_ORDER = function () {
+ try {
+ // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing
+ new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });
+ } catch (error) {
+ // some early implementations, like WebKit, does not follow the final semantic
+ // https://github.com/tc39/proposal-change-array-by-copy/pull/86
+ return error === 8;
+ }
+}();
+
+// Bug in WebKit. It should truncate a negative fractional index to zero, but instead throws an error
+var THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () {
+ try {
+ // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing
+ new Int8Array(1)['with'](-0.5, 1);
+ } catch (error) {
+ return true;
+ }
+}();
+
+// `%TypedArray%.prototype.with` method
+// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with
+exportTypedArrayMethod('with', { 'with': function (index, value) {
+ var O = aTypedArray(this);
+ var len = lengthOfArrayLike(O);
+ var relativeIndex = toIntegerOrInfinity(index);
+ var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;
+ var numericValue = isBigIntArray(O) ? toBigInt(value) : +value;
+ if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');
+ var A = new (getTypedArrayConstructor(O))(len);
+ var k = 0;
+ for (; k < len; k++) A[k] = k === actualIndex ? numericValue : O[k];
+ return A;
+} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX);
+
+
+/***/ },
+
+/***/ 6632
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var globalThis = __webpack_require__(4576);
+var $fromBase64 = __webpack_require__(9143);
+var anUint8Array = __webpack_require__(4154);
+
+var Uint8Array = globalThis.Uint8Array;
+
+var INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.setFromBase64 || !function () {
+ var target = new Uint8Array([255, 255, 255, 255, 255]);
+ try {
+ target.setFromBase64('', null);
+ return;
+ } catch (error) { /* empty */ }
+ // Webkit not throw an error on odd length string
+ try {
+ target.setFromBase64('a');
+ return;
+ } catch (error) { /* empty */ }
+ try {
+ target.setFromBase64('MjYyZg===');
+ } catch (error) {
+ return target[0] === 50 && target[1] === 54 && target[2] === 50 && target[3] === 255 && target[4] === 255;
+ }
+}();
+
+// `Uint8Array.prototype.setFromBase64` method
+// https://tc39.es/ecma262/#sec-uint8array.prototype.setfrombase64
+if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {
+ setFromBase64: function setFromBase64(string /* , options */) {
+ anUint8Array(this);
+
+ var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length);
+
+ return { read: result.read, written: result.written };
+ }
+});
+
+
+/***/ },
+
+/***/ 4226
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var globalThis = __webpack_require__(4576);
+var aString = __webpack_require__(3463);
+var anUint8Array = __webpack_require__(4154);
+var notDetached = __webpack_require__(5169);
+var $fromHex = __webpack_require__(2303);
+
+// Should not throw an error on length-tracking views over ResizableArrayBuffer
+// https://issues.chromium.org/issues/454630441
+function throwsOnLengthTrackingView() {
+ try {
+ // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- required for testing
+ var rab = new ArrayBuffer(16, { maxByteLength: 1024 });
+ // eslint-disable-next-line es/no-uint8array-prototype-setfromhex, es/no-typed-arrays -- required for testing
+ new Uint8Array(rab).setFromHex('cafed00d');
+ } catch (error) {
+ return true;
+ }
+}
+
+// `Uint8Array.prototype.setFromHex` method
+// https://tc39.es/ecma262/#sec-uint8array.prototype.setfromhex
+if (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true, forced: throwsOnLengthTrackingView() }, {
+ setFromHex: function setFromHex(string) {
+ anUint8Array(this);
+ aString(string);
+ notDetached(this.buffer);
+ var read = $fromHex(string, this).read;
+ return { read: read, written: read / 2 };
+ }
+});
+
+
+/***/ },
+
+/***/ 9486
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var globalThis = __webpack_require__(4576);
+var uncurryThis = __webpack_require__(9504);
+var anObjectOrUndefined = __webpack_require__(3972);
+var anUint8Array = __webpack_require__(4154);
+var notDetached = __webpack_require__(5169);
+var base64Map = __webpack_require__(2804);
+var getAlphabetOption = __webpack_require__(944);
+
+var base64Alphabet = base64Map.i2c;
+var base64UrlAlphabet = base64Map.i2cUrl;
+
+var charAt = uncurryThis(''.charAt);
+
+var Uint8Array = globalThis.Uint8Array;
+
+var INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toBase64 || !function () {
+ try {
+ var target = new Uint8Array();
+ target.toBase64(null);
+ } catch (error) {
+ return true;
+ }
+}();
+
+// `Uint8Array.prototype.toBase64` method
+// https://tc39.es/ecma262/#sec-uint8array.prototype.tobase64
+if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {
+ toBase64: function toBase64(/* options */) {
+ var array = anUint8Array(this);
+ var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;
+ var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;
+ var omitPadding = !!options && !!options.omitPadding;
+ notDetached(this.buffer);
+
+ var result = '';
+ var i = 0;
+ var length = array.length;
+ var triplet;
+
+ var at = function (shift) {
+ return charAt(alphabet, (triplet >> (6 * shift)) & 63);
+ };
+
+ for (; i + 2 < length; i += 3) {
+ triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];
+ result += at(3) + at(2) + at(1) + at(0);
+ }
+ if (i + 2 === length) {
+ triplet = (array[i] << 16) + (array[i + 1] << 8);
+ result += at(3) + at(2) + at(1) + (omitPadding ? '' : '=');
+ } else if (i + 1 === length) {
+ triplet = array[i] << 16;
+ result += at(3) + at(2) + (omitPadding ? '' : '==');
+ }
+
+ return result;
+ }
+});
+
+
+/***/ },
+
+/***/ 456
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var globalThis = __webpack_require__(4576);
+var uncurryThis = __webpack_require__(9504);
+var anUint8Array = __webpack_require__(4154);
+var notDetached = __webpack_require__(5169);
+
+var numberToString = uncurryThis(1.1.toString);
+var join = uncurryThis([].join);
+var $Array = Array;
+
+var Uint8Array = globalThis.Uint8Array;
+
+var INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toHex || !(function () {
+ try {
+ var target = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);
+ return target.toHex() === 'ffffffffffffffff';
+ } catch (error) {
+ return false;
+ }
+})();
+
+// `Uint8Array.prototype.toHex` method
+// https://tc39.es/ecma262/#sec-uint8array.prototype.tohex
+if (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {
+ toHex: function toHex() {
+ anUint8Array(this);
+ notDetached(this.buffer);
+ var result = $Array(this.length);
+ for (var i = 0, length = this.length; i < length; i++) {
+ var hex = numberToString(this[i], 16);
+ result[i] = hex.length === 1 ? '0' + hex : hex;
+ }
+ return join(result, '');
+ }
+});
+
+
+/***/ },
+
+/***/ 4603
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var defineBuiltIn = __webpack_require__(6840);
+var uncurryThis = __webpack_require__(9504);
+var toString = __webpack_require__(655);
+var validateArgumentsLength = __webpack_require__(2812);
+
+var $URLSearchParams = URLSearchParams;
+var URLSearchParamsPrototype = $URLSearchParams.prototype;
+var append = uncurryThis(URLSearchParamsPrototype.append);
+var $delete = uncurryThis(URLSearchParamsPrototype['delete']);
+var forEach = uncurryThis(URLSearchParamsPrototype.forEach);
+var push = uncurryThis([].push);
+var params = new $URLSearchParams('a=1&a=2&b=3');
+
+params['delete']('a', 1);
+// `undefined` case is a Chromium 117 bug
+// https://bugs.chromium.org/p/v8/issues/detail?id=14222
+params['delete']('b', undefined);
+
+if (params + '' !== 'a=2') {
+ defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {
+ var length = arguments.length;
+ var $value = length < 2 ? undefined : arguments[1];
+ if (length && $value === undefined) return $delete(this, name);
+ var entries = [];
+ forEach(this, function (v, k) { // also validates `this`
+ push(entries, { key: k, value: v });
+ });
+ validateArgumentsLength(length, 1);
+ var key = toString(name);
+ var value = toString($value);
+ var index = 0;
+ var entriesLength = entries.length;
+ var entry;
+ while (index < entriesLength) {
+ entry = entries[index];
+ $delete(this, entry.key);
+ index++;
+ }
+ index = 0;
+ while (index < entriesLength) {
+ entry = entries[index++];
+ if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);
+ }
+ }, { enumerable: true, unsafe: true });
+}
+
+
+/***/ },
+
+/***/ 7566
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var defineBuiltIn = __webpack_require__(6840);
+var uncurryThis = __webpack_require__(9504);
+var toString = __webpack_require__(655);
+var validateArgumentsLength = __webpack_require__(2812);
+
+var $URLSearchParams = URLSearchParams;
+var URLSearchParamsPrototype = $URLSearchParams.prototype;
+var getAll = uncurryThis(URLSearchParamsPrototype.getAll);
+var $has = uncurryThis(URLSearchParamsPrototype.has);
+var params = new $URLSearchParams('a=1');
+
+// `undefined` case is a Chromium 117 bug
+// https://bugs.chromium.org/p/v8/issues/detail?id=14222
+if (params.has('a', 2) || !params.has('a', undefined)) {
+ defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {
+ var length = arguments.length;
+ var $value = length < 2 ? undefined : arguments[1];
+ if (length && $value === undefined) return $has(this, name);
+ var values = getAll(this, name); // also validates `this`
+ validateArgumentsLength(length, 1);
+ var value = toString($value);
+ var index = 0;
+ while (index < values.length) {
+ if (values[index++] === value) return true;
+ } return false;
+ }, { enumerable: true, unsafe: true });
+}
+
+
+/***/ },
+
+/***/ 8721
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var uncurryThis = __webpack_require__(9504);
+var defineBuiltInAccessor = __webpack_require__(2106);
+
+var URLSearchParamsPrototype = URLSearchParams.prototype;
+var forEach = uncurryThis(URLSearchParamsPrototype.forEach);
+
+// `URLSearchParams.prototype.size` getter
+// https://github.com/whatwg/url/pull/734
+if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {
+ defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {
+ get: function size() {
+ var count = 0;
+ forEach(this, function () { count++; });
+ return count;
+ },
+ configurable: true,
+ enumerable: true
+ });
+}
+
+
+/***/ },
+
+/***/ 5781
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var getBuiltIn = __webpack_require__(7751);
+var validateArgumentsLength = __webpack_require__(2812);
+var toString = __webpack_require__(655);
+var USE_NATIVE_URL = __webpack_require__(7416);
+
+var URL = getBuiltIn('URL');
+
+// `URL.parse` method
+// https://url.spec.whatwg.org/#dom-url-parse
+$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {
+ parse: function parse(url) {
+ var length = validateArgumentsLength(arguments.length, 1);
+ var urlString = toString(url);
+ var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);
+ try {
+ return new URL(urlString, base);
+ } catch (error) {
+ return null;
+ }
+ }
+});
+
+
+/***/ }
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/************************************************************************/
+
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js
+var es_array_includes = __webpack_require__(4423);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
+var es_array_push = __webpack_require__(4114);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.detached.js
+var es_array_buffer_detached = __webpack_require__(6573);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer.js
+var es_array_buffer_transfer = __webpack_require__(8100);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js
+var es_array_buffer_transfer_to_fixed_length = __webpack_require__(7936);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.get-or-insert.js
+var es_map_get_or_insert = __webpack_require__(5367);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.get-or-insert-computed.js
+var es_map_get_or_insert_computed = __webpack_require__(2731);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.with.js
+var es_typed_array_with = __webpack_require__(9577);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.set-from-base64.js
+var es_uint8_array_set_from_base64 = __webpack_require__(6632);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.set-from-hex.js
+var es_uint8_array_set_from_hex = __webpack_require__(4226);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.to-base64.js
+var es_uint8_array_to_base64 = __webpack_require__(9486);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.uint8-array.to-hex.js
+var es_uint8_array_to_hex = __webpack_require__(456);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.parse.js
+var web_url_parse = __webpack_require__(5781);
+;// ./src/shared/util.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser");
+const BBOX_INIT = [Infinity, Infinity, -Infinity, -Infinity];
+const F32_BBOX_INIT = new Float32Array(BBOX_INIT);
+const FONT_IDENTITY_MATRIX = (/* unused pure expression or super */ null && ([0.001, 0, 0, 0.001, 0, 0]));
+const LINE_FACTOR = 1.35;
+const LINE_DESCENT_FACTOR = 0.35;
+const BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;
+const RenderingIntentFlag = {
+ ANY: 0x01,
+ DISPLAY: 0x02,
+ PRINT: 0x04,
+ SAVE: 0x08,
+ ANNOTATIONS_FORMS: 0x10,
+ ANNOTATIONS_STORAGE: 0x20,
+ ANNOTATIONS_DISABLE: 0x40,
+ IS_EDITING: 0x80,
+ OPLIST: 0x100
+};
+const AnnotationMode = {
+ DISABLE: 0,
+ ENABLE: 1,
+ ENABLE_FORMS: 2,
+ ENABLE_STORAGE: 3
+};
+const AnnotationEditorPrefix = "pdfjs_internal_editor_";
+const AnnotationEditorType = {
+ DISABLE: -1,
+ NONE: 0,
+ FREETEXT: 3,
+ HIGHLIGHT: 9,
+ STAMP: 13,
+ INK: 15,
+ POPUP: 16,
+ SIGNATURE: 101,
+ COMMENT: 102
+};
+const AnnotationEditorParamsType = {
+ RESIZE: 1,
+ CREATE: 2,
+ FREETEXT_SIZE: 11,
+ FREETEXT_COLOR: 12,
+ FREETEXT_OPACITY: 13,
+ INK_COLOR: 21,
+ INK_THICKNESS: 22,
+ INK_OPACITY: 23,
+ INK_COLOR_AND_OPACITY: 24,
+ HIGHLIGHT_COLOR: 31,
+ HIGHLIGHT_THICKNESS: 32,
+ HIGHLIGHT_FREE: 33,
+ HIGHLIGHT_SHOW_ALL: 34,
+ DRAW_STEP: 41
+};
+const PermissionFlag = {
+ PRINT: 0x04,
+ MODIFY_CONTENTS: 0x08,
+ COPY: 0x10,
+ MODIFY_ANNOTATIONS: 0x20,
+ FILL_INTERACTIVE_FORMS: 0x100,
+ COPY_FOR_ACCESSIBILITY: 0x200,
+ ASSEMBLE: 0x400,
+ PRINT_HIGH_QUALITY: 0x800
+};
+const MeshFigureType = {
+ TRIANGLES: 1,
+ LATTICE: 2,
+ PATCH: 3
+};
+const TextRenderingMode = {
+ FILL: 0,
+ STROKE: 1,
+ FILL_STROKE: 2,
+ INVISIBLE: 3,
+ FILL_ADD_TO_PATH: 4,
+ STROKE_ADD_TO_PATH: 5,
+ FILL_STROKE_ADD_TO_PATH: 6,
+ ADD_TO_PATH: 7,
+ FILL_STROKE_MASK: 3,
+ ADD_TO_PATH_FLAG: 4
+};
+const ImageKind = {
+ GRAYSCALE_1BPP: 1,
+ RGB_24BPP: 2,
+ RGBA_32BPP: 3
+};
+const AnnotationType = {
+ TEXT: 1,
+ LINK: 2,
+ FREETEXT: 3,
+ LINE: 4,
+ SQUARE: 5,
+ CIRCLE: 6,
+ POLYGON: 7,
+ POLYLINE: 8,
+ HIGHLIGHT: 9,
+ UNDERLINE: 10,
+ SQUIGGLY: 11,
+ STRIKEOUT: 12,
+ STAMP: 13,
+ CARET: 14,
+ INK: 15,
+ POPUP: 16,
+ FILEATTACHMENT: 17,
+ SOUND: 18,
+ MOVIE: 19,
+ WIDGET: 20,
+ SCREEN: 21,
+ PRINTERMARK: 22,
+ TRAPNET: 23,
+ WATERMARK: 24,
+ THREED: 25,
+ REDACT: 26
+};
+const AnnotationReplyType = {
+ GROUP: "Group",
+ REPLY: "R"
+};
+const AnnotationFlag = {
+ INVISIBLE: 0x01,
+ HIDDEN: 0x02,
+ PRINT: 0x04,
+ NOZOOM: 0x08,
+ NOROTATE: 0x10,
+ NOVIEW: 0x20,
+ READONLY: 0x40,
+ LOCKED: 0x80,
+ TOGGLENOVIEW: 0x100,
+ LOCKEDCONTENTS: 0x200
+};
+const AnnotationFieldFlag = {
+ READONLY: 0x0000001,
+ REQUIRED: 0x0000002,
+ NOEXPORT: 0x0000004,
+ MULTILINE: 0x0001000,
+ PASSWORD: 0x0002000,
+ NOTOGGLETOOFF: 0x0004000,
+ RADIO: 0x0008000,
+ PUSHBUTTON: 0x0010000,
+ COMBO: 0x0020000,
+ EDIT: 0x0040000,
+ SORT: 0x0080000,
+ FILESELECT: 0x0100000,
+ MULTISELECT: 0x0200000,
+ DONOTSPELLCHECK: 0x0400000,
+ DONOTSCROLL: 0x0800000,
+ COMB: 0x1000000,
+ RICHTEXT: 0x2000000,
+ RADIOSINUNISON: 0x2000000,
+ COMMITONSELCHANGE: 0x4000000
+};
+const AnnotationBorderStyleType = {
+ SOLID: 1,
+ DASHED: 2,
+ BEVELED: 3,
+ INSET: 4,
+ UNDERLINE: 5
+};
+const AnnotationActionEventType = {
+ E: "Mouse Enter",
+ X: "Mouse Exit",
+ D: "Mouse Down",
+ U: "Mouse Up",
+ Fo: "Focus",
+ Bl: "Blur",
+ PO: "PageOpen",
+ PC: "PageClose",
+ PV: "PageVisible",
+ PI: "PageInvisible",
+ K: "Keystroke",
+ F: "Format",
+ V: "Validate",
+ C: "Calculate"
+};
+const DocumentActionEventType = {
+ WC: "WillClose",
+ WS: "WillSave",
+ DS: "DidSave",
+ WP: "WillPrint",
+ DP: "DidPrint"
+};
+const PageActionEventType = {
+ O: "PageOpen",
+ C: "PageClose"
+};
+const VerbosityLevel = {
+ ERRORS: 0,
+ WARNINGS: 1,
+ INFOS: 5
+};
+const OPS = {
+ dependency: 1,
+ setLineWidth: 2,
+ setLineCap: 3,
+ setLineJoin: 4,
+ setMiterLimit: 5,
+ setDash: 6,
+ setRenderingIntent: 7,
+ setFlatness: 8,
+ setGState: 9,
+ save: 10,
+ restore: 11,
+ transform: 12,
+ moveTo: 13,
+ lineTo: 14,
+ curveTo: 15,
+ curveTo2: 16,
+ curveTo3: 17,
+ closePath: 18,
+ rectangle: 19,
+ stroke: 20,
+ closeStroke: 21,
+ fill: 22,
+ eoFill: 23,
+ fillStroke: 24,
+ eoFillStroke: 25,
+ closeFillStroke: 26,
+ closeEOFillStroke: 27,
+ endPath: 28,
+ clip: 29,
+ eoClip: 30,
+ beginText: 31,
+ endText: 32,
+ setCharSpacing: 33,
+ setWordSpacing: 34,
+ setHScale: 35,
+ setLeading: 36,
+ setFont: 37,
+ setTextRenderingMode: 38,
+ setTextRise: 39,
+ moveText: 40,
+ setLeadingMoveText: 41,
+ setTextMatrix: 42,
+ nextLine: 43,
+ showText: 44,
+ showSpacedText: 45,
+ nextLineShowText: 46,
+ nextLineSetSpacingShowText: 47,
+ setCharWidth: 48,
+ setCharWidthAndBounds: 49,
+ setStrokeColorSpace: 50,
+ setFillColorSpace: 51,
+ setStrokeColor: 52,
+ setStrokeColorN: 53,
+ setFillColor: 54,
+ setFillColorN: 55,
+ setStrokeGray: 56,
+ setFillGray: 57,
+ setStrokeRGBColor: 58,
+ setFillRGBColor: 59,
+ setStrokeCMYKColor: 60,
+ setFillCMYKColor: 61,
+ shadingFill: 62,
+ beginInlineImage: 63,
+ beginImageData: 64,
+ endInlineImage: 65,
+ paintXObject: 66,
+ markPoint: 67,
+ markPointProps: 68,
+ beginMarkedContent: 69,
+ beginMarkedContentProps: 70,
+ endMarkedContent: 71,
+ beginCompat: 72,
+ endCompat: 73,
+ paintFormXObjectBegin: 74,
+ paintFormXObjectEnd: 75,
+ beginGroup: 76,
+ endGroup: 77,
+ beginAnnotation: 80,
+ endAnnotation: 81,
+ paintImageMaskXObject: 83,
+ paintImageMaskXObjectGroup: 84,
+ paintImageXObject: 85,
+ paintInlineImageXObject: 86,
+ paintInlineImageXObjectGroup: 87,
+ paintImageXObjectRepeat: 88,
+ paintImageMaskXObjectRepeat: 89,
+ paintSolidColorImageMask: 90,
+ constructPath: 91,
+ setStrokeTransparent: 92,
+ setFillTransparent: 93,
+ rawFillPath: 94
+};
+const DrawOPS = {
+ moveTo: 0,
+ lineTo: 1,
+ curveTo: 2,
+ quadraticCurveTo: 3,
+ closePath: 4
+};
+const PasswordResponses = {
+ NEED_PASSWORD: 1,
+ INCORRECT_PASSWORD: 2
+};
+let verbosity = VerbosityLevel.WARNINGS;
+function setVerbosityLevel(level) {
+ if (Number.isInteger(level)) {
+ verbosity = level;
+ }
+}
+function getVerbosityLevel() {
+ return verbosity;
+}
+function info(msg) {
+ if (verbosity >= VerbosityLevel.INFOS) {
+ console.info(`Info: ${msg}`);
+ }
+}
+function warn(msg) {
+ if (verbosity >= VerbosityLevel.WARNINGS) {
+ console.warn(`Warning: ${msg}`);
+ }
+}
+function unreachable(msg) {
+ throw new Error(msg);
+}
+function assert(cond, msg) {
+ if (!cond) {
+ unreachable(msg);
+ }
+}
+function _isValidProtocol(url) {
+ switch (url?.protocol) {
+ case "http:":
+ case "https:":
+ case "ftp:":
+ case "mailto:":
+ case "tel:":
+ return true;
+ default:
+ return false;
+ }
+}
+function createValidAbsoluteUrl(url, baseUrl = null, options = null) {
+ if (!url) {
+ return null;
+ }
+ if (options && typeof url === "string") {
+ if (options.addDefaultProtocol && url.startsWith("www.")) {
+ const dots = url.match(/\./g);
+ if (dots?.length >= 2) {
+ url = `http://${url}`;
+ }
+ }
+ if (options.tryConvertEncoding) {
+ try {
+ url = stringToUTF8String(url);
+ } catch {}
+ }
+ }
+ const absoluteUrl = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);
+ return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;
+}
+function updateUrlHash(url, hash, allowRel = false) {
+ const res = URL.parse(url);
+ if (res) {
+ res.hash = hash;
+ return res.href;
+ }
+ if (allowRel && createValidAbsoluteUrl(url, "http://example.com")) {
+ return url.split("#", 1)[0] + `${hash ? `#${hash}` : ""}`;
+ }
+ return "";
+}
+function stripPath(str) {
+ return str.substring(str.lastIndexOf("/") + 1);
+}
+function shadow(obj, prop, value, nonSerializable = false) {
+ Object.defineProperty(obj, prop, {
+ value,
+ enumerable: !nonSerializable,
+ configurable: true,
+ writable: false
+ });
+ return value;
+}
+const BaseException = function BaseExceptionClosure() {
+ function BaseException(message, name) {
+ this.message = message;
+ this.name = name;
+ }
+ BaseException.prototype = new Error();
+ BaseException.constructor = BaseException;
+ return BaseException;
+}();
+class PasswordException extends BaseException {
+ constructor(msg, code) {
+ super(msg, "PasswordException");
+ this.code = code;
+ }
+}
+class UnknownErrorException extends BaseException {
+ constructor(msg, details) {
+ super(msg, "UnknownErrorException");
+ this.details = details;
+ }
+}
+class InvalidPDFException extends BaseException {
+ constructor(msg) {
+ super(msg, "InvalidPDFException");
+ }
+}
+class ResponseException extends BaseException {
+ constructor(msg, status, missing) {
+ super(msg, "ResponseException");
+ this.status = status;
+ this.missing = missing;
+ }
+}
+class FormatError extends BaseException {
+ constructor(msg) {
+ super(msg, "FormatError");
+ }
+}
+class AbortException extends BaseException {
+ constructor(msg) {
+ super(msg, "AbortException");
+ }
+}
+function bytesToString(bytes) {
+ if (typeof bytes !== "object" || bytes?.length === undefined) {
+ unreachable("Invalid argument for bytesToString");
+ }
+ const length = bytes.length;
+ const MAX_ARGUMENT_COUNT = 8192;
+ if (length < MAX_ARGUMENT_COUNT) {
+ return String.fromCharCode.apply(null, bytes);
+ }
+ const strBuf = [];
+ for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
+ const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
+ const chunk = bytes.subarray(i, chunkEnd);
+ strBuf.push(String.fromCharCode.apply(null, chunk));
+ }
+ return strBuf.join("");
+}
+function stringToBytes(str) {
+ if (typeof str !== "string") {
+ unreachable("Invalid argument for stringToBytes");
+ }
+ const length = str.length;
+ const bytes = new Uint8Array(length);
+ for (let i = 0; i < length; ++i) {
+ bytes[i] = str.charCodeAt(i) & 0xff;
+ }
+ return bytes;
+}
+function objectSize(obj) {
+ return Object.keys(obj).length;
+}
+function isLittleEndian() {
+ const buffer8 = new Uint8Array(4);
+ buffer8[0] = 1;
+ const view32 = new Uint32Array(buffer8.buffer, 0, 1);
+ return view32[0] === 1;
+}
+class FeatureTest {
+ static get isLittleEndian() {
+ return shadow(this, "isLittleEndian", isLittleEndian());
+ }
+ static get isOffscreenCanvasSupported() {
+ return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined");
+ }
+ static get isImageDecoderSupported() {
+ return shadow(this, "isImageDecoderSupported", typeof ImageDecoder !== "undefined");
+ }
+ static get isFloat16ArraySupported() {
+ return shadow(this, "isFloat16ArraySupported", typeof Float16Array !== "undefined");
+ }
+ static get isSanitizerSupported() {
+ return shadow(this, "isSanitizerSupported", typeof Sanitizer !== "undefined");
+ }
+ static get platform() {
+ const {
+ platform,
+ userAgent
+ } = navigator;
+ return shadow(this, "platform", {
+ isAndroid: userAgent.includes("Android"),
+ isLinux: platform.includes("Linux"),
+ isMac: platform.includes("Mac"),
+ isWindows: platform.includes("Win"),
+ isFirefox: userAgent.includes("Firefox")
+ });
+ }
+ static get isCSSRoundSupported() {
+ return shadow(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)"));
+ }
+ static get isAlphaColorInputSupported() {
+ return shadow(this, "isAlphaColorInputSupported", (() => {
+ if (typeof document === "undefined") {
+ return false;
+ }
+ const input = document.createElement("input");
+ input.type = "color";
+ input.setAttribute("alpha", "");
+ input.value = "#ff000080";
+ return input.value !== "#ff0000";
+ })());
+ }
+}
+class Util {
+ static get hexNums() {
+ return shadow(this, "hexNums", Array.from(Array(256).keys(), n => n.toString(16).padStart(2, "0")));
+ }
+ static makeHexColor(r, g, b) {
+ return `#${this.hexNums[r]}${this.hexNums[g]}${this.hexNums[b]}`;
+ }
+ static domMatrixToTransform(dm) {
+ return [dm.a, dm.b, dm.c, dm.d, dm.e, dm.f];
+ }
+ static scaleMinMax(transform, minMax) {
+ let temp;
+ if (transform[0]) {
+ if (transform[0] < 0) {
+ temp = minMax[0];
+ minMax[0] = minMax[2];
+ minMax[2] = temp;
+ }
+ minMax[0] *= transform[0];
+ minMax[2] *= transform[0];
+ if (transform[3] < 0) {
+ temp = minMax[1];
+ minMax[1] = minMax[3];
+ minMax[3] = temp;
+ }
+ minMax[1] *= transform[3];
+ minMax[3] *= transform[3];
+ } else {
+ temp = minMax[0];
+ minMax[0] = minMax[1];
+ minMax[1] = temp;
+ temp = minMax[2];
+ minMax[2] = minMax[3];
+ minMax[3] = temp;
+ if (transform[1] < 0) {
+ temp = minMax[1];
+ minMax[1] = minMax[3];
+ minMax[3] = temp;
+ }
+ minMax[1] *= transform[1];
+ minMax[3] *= transform[1];
+ if (transform[2] < 0) {
+ temp = minMax[0];
+ minMax[0] = minMax[2];
+ minMax[2] = temp;
+ }
+ minMax[0] *= transform[2];
+ minMax[2] *= transform[2];
+ }
+ minMax[0] += transform[4];
+ minMax[1] += transform[5];
+ minMax[2] += transform[4];
+ minMax[3] += transform[5];
+ }
+ static transform(m1, m2) {
+ return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];
+ }
+ static multiplyByDOMMatrix(m, md) {
+ return [m[0] * md.a + m[2] * md.b, m[1] * md.a + m[3] * md.b, m[0] * md.c + m[2] * md.d, m[1] * md.c + m[3] * md.d, m[0] * md.e + m[2] * md.f + m[4], m[1] * md.e + m[3] * md.f + m[5]];
+ }
+ static applyTransform(p, m, pos = 0) {
+ const p0 = p[pos];
+ const p1 = p[pos + 1];
+ p[pos] = p0 * m[0] + p1 * m[2] + m[4];
+ p[pos + 1] = p0 * m[1] + p1 * m[3] + m[5];
+ }
+ static applyTransformToBezier(p, transform, pos = 0) {
+ const m0 = transform[0];
+ const m1 = transform[1];
+ const m2 = transform[2];
+ const m3 = transform[3];
+ const m4 = transform[4];
+ const m5 = transform[5];
+ for (let i = 0; i < 6; i += 2) {
+ const pI = p[pos + i];
+ const pI1 = p[pos + i + 1];
+ p[pos + i] = pI * m0 + pI1 * m2 + m4;
+ p[pos + i + 1] = pI * m1 + pI1 * m3 + m5;
+ }
+ }
+ static applyInverseTransform(p, m) {
+ const p0 = p[0];
+ const p1 = p[1];
+ const d = m[0] * m[3] - m[1] * m[2];
+ p[0] = (p0 * m[3] - p1 * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
+ p[1] = (-p0 * m[1] + p1 * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
+ }
+ static axialAlignedBoundingBox(rect, transform, output) {
+ const m0 = transform[0];
+ const m1 = transform[1];
+ const m2 = transform[2];
+ const m3 = transform[3];
+ const m4 = transform[4];
+ const m5 = transform[5];
+ const r0 = rect[0];
+ const r1 = rect[1];
+ const r2 = rect[2];
+ const r3 = rect[3];
+ let a0 = m0 * r0 + m4;
+ let a2 = a0;
+ let a1 = m0 * r2 + m4;
+ let a3 = a1;
+ let b0 = m3 * r1 + m5;
+ let b2 = b0;
+ let b1 = m3 * r3 + m5;
+ let b3 = b1;
+ if (m1 !== 0 || m2 !== 0) {
+ const m1r0 = m1 * r0;
+ const m1r2 = m1 * r2;
+ const m2r1 = m2 * r1;
+ const m2r3 = m2 * r3;
+ a0 += m2r1;
+ a3 += m2r1;
+ a1 += m2r3;
+ a2 += m2r3;
+ b0 += m1r0;
+ b3 += m1r0;
+ b1 += m1r2;
+ b2 += m1r2;
+ }
+ output[0] = Math.min(output[0], a0, a1, a2, a3);
+ output[1] = Math.min(output[1], b0, b1, b2, b3);
+ output[2] = Math.max(output[2], a0, a1, a2, a3);
+ output[3] = Math.max(output[3], b0, b1, b2, b3);
+ }
+ static inverseTransform(m) {
+ const d = m[0] * m[3] - m[1] * m[2];
+ return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];
+ }
+ static singularValueDecompose2dScale(matrix, output) {
+ const m0 = matrix[0];
+ const m1 = matrix[1];
+ const m2 = matrix[2];
+ const m3 = matrix[3];
+ const a = m0 ** 2 + m1 ** 2;
+ const b = m0 * m2 + m1 * m3;
+ const c = m2 ** 2 + m3 ** 2;
+ const first = (a + c) / 2;
+ const second = Math.sqrt(first ** 2 - (a * c - b ** 2));
+ output[0] = Math.sqrt(first + second || 1);
+ output[1] = Math.sqrt(first - second || 1);
+ }
+ static normalizeRect(rect) {
+ const r = rect.slice(0);
+ if (rect[0] > rect[2]) {
+ r[0] = rect[2];
+ r[2] = rect[0];
+ }
+ if (rect[1] > rect[3]) {
+ r[1] = rect[3];
+ r[3] = rect[1];
+ }
+ return r;
+ }
+ static intersect(rect1, rect2) {
+ const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));
+ const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));
+ if (xLow > xHigh) {
+ return null;
+ }
+ const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));
+ const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));
+ if (yLow > yHigh) {
+ return null;
+ }
+ return [xLow, yLow, xHigh, yHigh];
+ }
+ static pointBoundingBox(x, y, minMax) {
+ minMax[0] = Math.min(minMax[0], x);
+ minMax[1] = Math.min(minMax[1], y);
+ minMax[2] = Math.max(minMax[2], x);
+ minMax[3] = Math.max(minMax[3], y);
+ }
+ static rectBoundingBox(x0, y0, x1, y1, minMax) {
+ minMax[0] = Math.min(minMax[0], x0, x1);
+ minMax[1] = Math.min(minMax[1], y0, y1);
+ minMax[2] = Math.max(minMax[2], x0, x1);
+ minMax[3] = Math.max(minMax[3], y0, y1);
+ }
+ static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {
+ if (t <= 0 || t >= 1) {
+ return;
+ }
+ const mt = 1 - t;
+ const tt = t * t;
+ const ttt = tt * t;
+ const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;
+ const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;
+ minMax[0] = Math.min(minMax[0], x);
+ minMax[1] = Math.min(minMax[1], y);
+ minMax[2] = Math.max(minMax[2], x);
+ minMax[3] = Math.max(minMax[3], y);
+ }
+ static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {
+ if (Math.abs(a) < 1e-12) {
+ if (Math.abs(b) >= 1e-12) {
+ this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax);
+ }
+ return;
+ }
+ const delta = b ** 2 - 4 * c * a;
+ if (delta < 0) {
+ return;
+ }
+ const sqrtDelta = Math.sqrt(delta);
+ const a2 = 2 * a;
+ this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax);
+ this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax);
+ }
+ static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {
+ minMax[0] = Math.min(minMax[0], x0, x3);
+ minMax[1] = Math.min(minMax[1], y0, y3);
+ minMax[2] = Math.max(minMax[2], x0, x3);
+ minMax[3] = Math.max(minMax[3], y0, y3);
+ this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax);
+ this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax);
+ }
+}
+const PDFStringTranslateTable = (/* unused pure expression or super */ null && ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]));
+function stringToPDFString(str, keepEscapeSequence = false) {
+ if (str[0] >= "\xEF") {
+ let encoding;
+ if (str[0] === "\xFE" && str[1] === "\xFF") {
+ encoding = "utf-16be";
+ if (str.length % 2 === 1) {
+ str = str.slice(0, -1);
+ }
+ } else if (str[0] === "\xFF" && str[1] === "\xFE") {
+ encoding = "utf-16le";
+ if (str.length % 2 === 1) {
+ str = str.slice(0, -1);
+ }
+ } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") {
+ encoding = "utf-8";
+ }
+ if (encoding) {
+ try {
+ const decoder = new TextDecoder(encoding, {
+ fatal: true
+ });
+ const buffer = stringToBytes(str);
+ const decoded = decoder.decode(buffer);
+ if (keepEscapeSequence || !decoded.includes("\x1b")) {
+ return decoded;
+ }
+ return decoded.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g, "");
+ } catch (ex) {
+ warn(`stringToPDFString: "${ex}".`);
+ }
+ }
+ }
+ const strBuf = [];
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const charCode = str.charCodeAt(i);
+ if (!keepEscapeSequence && charCode === 0x1b) {
+ while (++i < ii && str.charCodeAt(i) !== 0x1b) {}
+ continue;
+ }
+ const code = PDFStringTranslateTable[charCode];
+ strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
+ }
+ return strBuf.join("");
+}
+function stringToUTF8String(str) {
+ return decodeURIComponent(escape(str));
+}
+function utf8StringToString(str) {
+ return unescape(encodeURIComponent(str));
+}
+function isArrayEqual(arr1, arr2) {
+ if (arr1.length !== arr2.length) {
+ return false;
+ }
+ for (let i = 0, ii = arr1.length; i < ii; i++) {
+ if (arr1[i] !== arr2[i]) {
+ return false;
+ }
+ }
+ return true;
+}
+function getModificationDate(date = new Date()) {
+ if (!(date instanceof Date)) {
+ date = new Date(date);
+ }
+ const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")];
+ return buffer.join("");
+}
+let NormalizeRegex = null;
+let NormalizationMap = null;
+function normalizeUnicode(str) {
+ if (!NormalizeRegex) {
+ NormalizeRegex = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu;
+ NormalizationMap = new Map([["ο¬
", "ΕΏt"]]);
+ }
+ return str.replaceAll(NormalizeRegex, (_, p1, p2) => p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2));
+}
+function getUuid() {
+ if (typeof crypto.randomUUID === "function") {
+ return crypto.randomUUID();
+ }
+ const buf = new Uint8Array(32);
+ crypto.getRandomValues(buf);
+ return bytesToString(buf);
+}
+const AnnotationPrefix = "pdfjs_internal_id_";
+function _isValidExplicitDest(validRef, validName, dest) {
+ if (!Array.isArray(dest) || dest.length < 2) {
+ return false;
+ }
+ const [page, zoom, ...args] = dest;
+ if (!validRef(page) && !Number.isInteger(page)) {
+ return false;
+ }
+ if (!validName(zoom)) {
+ return false;
+ }
+ const argsLen = args.length;
+ let allowNull = true;
+ switch (zoom.name) {
+ case "XYZ":
+ if (argsLen < 2 || argsLen > 3) {
+ return false;
+ }
+ break;
+ case "Fit":
+ case "FitB":
+ return argsLen === 0;
+ case "FitH":
+ case "FitBH":
+ case "FitV":
+ case "FitBV":
+ if (argsLen > 1) {
+ return false;
+ }
+ break;
+ case "FitR":
+ if (argsLen !== 4) {
+ return false;
+ }
+ allowNull = false;
+ break;
+ default:
+ return false;
+ }
+ for (const arg of args) {
+ if (typeof arg === "number" || allowNull && arg === null) {
+ continue;
+ }
+ return false;
+ }
+ return true;
+}
+const makeArr = () => [];
+const makeMap = () => new Map();
+const makeObj = () => Object.create(null);
+if (typeof Blob.prototype.bytes !== "function") {
+ Blob.prototype.bytes = async function () {
+ return new Uint8Array(await this.arrayBuffer());
+ };
+}
+if (typeof Response.prototype.bytes !== "function") {
+ Response.prototype.bytes = async function () {
+ return new Uint8Array(await this.arrayBuffer());
+ };
+}
+if (typeof AbortSignal.any !== "function") {
+ AbortSignal.any = function (iterable) {
+ const ac = new AbortController();
+ const {
+ signal
+ } = ac;
+ for (const s of iterable) {
+ if (s.aborted) {
+ ac.abort(s.reason);
+ return signal;
+ }
+ }
+ for (const s of iterable) {
+ s.addEventListener("abort", () => {
+ ac.abort(s.reason);
+ }, {
+ signal
+ });
+ }
+ return signal;
+ };
+}
+
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.with-resolvers.js
+var es_promise_with_resolvers = __webpack_require__(4628);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
+var es_iterator_constructor = __webpack_require__(8111);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.every.js
+var es_iterator_every = __webpack_require__(1148);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
+var es_iterator_map = __webpack_require__(1701);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.difference.v2.js
+var es_set_difference_v2 = __webpack_require__(7642);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.intersection.v2.js
+var es_set_intersection_v2 = __webpack_require__(8004);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js
+var es_set_is_disjoint_from_v2 = __webpack_require__(3853);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-subset-of.v2.js
+var es_set_is_subset_of_v2 = __webpack_require__(5876);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-superset-of.v2.js
+var es_set_is_superset_of_v2 = __webpack_require__(2475);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.symmetric-difference.v2.js
+var es_set_symmetric_difference_v2 = __webpack_require__(5024);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.union.v2.js
+var es_set_union_v2 = __webpack_require__(1698);
+;// ./src/core/primitives.js
+
+
+
+
+
+
+
+
+
+
+
+const CIRCULAR_REF = Symbol("CIRCULAR_REF");
+const EOF = Symbol("EOF");
+let CmdCache = Object.create(null);
+let NameCache = Object.create(null);
+let RefCache = Object.create(null);
+function clearPrimitiveCaches() {
+ CmdCache = Object.create(null);
+ NameCache = Object.create(null);
+ RefCache = Object.create(null);
+}
+class Name {
+ constructor(name) {
+ this.name = name;
+ }
+ static get(name) {
+ return NameCache[name] ||= new Name(name);
+ }
+}
+class Cmd {
+ constructor(cmd) {
+ this.cmd = cmd;
+ }
+ static get(cmd) {
+ return CmdCache[cmd] ||= new Cmd(cmd);
+ }
+}
+const nonSerializable = function nonSerializableClosure() {
+ return nonSerializable;
+};
+class Dict {
+ __nonSerializable__ = nonSerializable;
+ #map = new Map();
+ objId = null;
+ suppressEncryption = false;
+ xref;
+ constructor(xref = null) {
+ this.xref = xref;
+ }
+ assignXref(newXref) {
+ this.xref = newXref;
+ }
+ get size() {
+ return this.#map.size;
+ }
+ #getValue(isAsync, key1, key2, key3) {
+ let value = this.#map.get(key1);
+ if (value === undefined && key2 !== undefined) {
+ value = this.#map.get(key2);
+ if (value === undefined && key3 !== undefined) {
+ value = this.#map.get(key3);
+ }
+ }
+ if (value instanceof Ref && this.xref) {
+ return isAsync ? this.xref.fetchAsync(value, this.suppressEncryption) : this.xref.fetch(value, this.suppressEncryption);
+ }
+ return value;
+ }
+ get(key1, key2, key3) {
+ return this.#getValue(false, key1, key2, key3);
+ }
+ async getAsync(key1, key2, key3) {
+ return this.#getValue(true, key1, key2, key3);
+ }
+ getArray(key1, key2, key3) {
+ let value = this.#getValue(false, key1, key2, key3);
+ if (Array.isArray(value)) {
+ value = value.slice();
+ for (let i = 0, ii = value.length; i < ii; i++) {
+ if (value[i] instanceof Ref && this.xref) {
+ value[i] = this.xref.fetch(value[i], this.suppressEncryption);
+ }
+ }
+ }
+ return value;
+ }
+ getRaw(key) {
+ return this.#map.get(key);
+ }
+ getKeys() {
+ return this.#map.keys();
+ }
+ getRawValues() {
+ return this.#map.values();
+ }
+ getRawEntries() {
+ return this.#map.entries();
+ }
+ set(key, value) {
+ this.#map.set(key, value);
+ }
+ setIfNotExists(key, value) {
+ if (!this.has(key)) {
+ this.set(key, value);
+ }
+ }
+ setIfNumber(key, value) {
+ if (typeof value === "number") {
+ this.set(key, value);
+ }
+ }
+ setIfArray(key, value) {
+ if (Array.isArray(value) || ArrayBuffer.isView(value)) {
+ this.set(key, value);
+ }
+ }
+ setIfDefined(key, value) {
+ if (value !== undefined && value !== null) {
+ this.set(key, value);
+ }
+ }
+ setIfName(key, value) {
+ if (typeof value === "string") {
+ this.set(key, Name.get(value));
+ } else if (value instanceof Name) {
+ this.set(key, value);
+ }
+ }
+ setIfDict(key, value) {
+ if (value instanceof Dict) {
+ this.set(key, value);
+ }
+ }
+ has(key) {
+ return this.#map.has(key);
+ }
+ *[Symbol.iterator]() {
+ for (const [key, value] of this.#map) {
+ yield [key, value instanceof Ref && this.xref ? this.xref.fetch(value, this.suppressEncryption) : value];
+ }
+ }
+ static get empty() {
+ const emptyDict = new Dict(null);
+ emptyDict.set = (key, value) => {
+ unreachable("Should not call `set` on the empty dictionary.");
+ };
+ return shadow(this, "empty", emptyDict);
+ }
+ static merge({
+ xref,
+ dictArray,
+ mergeSubDicts = false
+ }) {
+ const mergedDict = new Dict(xref),
+ properties = new Map();
+ for (const dict of dictArray) {
+ if (!(dict instanceof Dict)) {
+ continue;
+ }
+ for (const [key, value] of dict.getRawEntries()) {
+ let property = properties.get(key);
+ if (property === undefined) {
+ property = [];
+ properties.set(key, property);
+ } else if (!mergeSubDicts || !(value instanceof Dict)) {
+ continue;
+ }
+ property.push(value);
+ }
+ }
+ for (const [name, values] of properties) {
+ if (values.length === 1 || !(values[0] instanceof Dict)) {
+ mergedDict.set(name, values[0]);
+ continue;
+ }
+ const subDict = new Dict(xref);
+ for (const dict of values) {
+ for (const [key, value] of dict.getRawEntries()) {
+ subDict.setIfNotExists(key, value);
+ }
+ }
+ if (subDict.size > 0) {
+ mergedDict.set(name, subDict);
+ }
+ }
+ properties.clear();
+ return mergedDict.size > 0 ? mergedDict : Dict.empty;
+ }
+ clone() {
+ const dict = new Dict(this.xref);
+ for (const [key, value] of this.#map) {
+ dict.set(key, value);
+ }
+ return dict;
+ }
+ delete(key) {
+ this.#map.delete(key);
+ }
+}
+class Ref {
+ constructor(num, gen) {
+ this.num = num;
+ this.gen = gen;
+ }
+ toString() {
+ if (this.gen === 0) {
+ return `${this.num}R`;
+ }
+ return `${this.num}R${this.gen}`;
+ }
+ static fromString(str) {
+ const ref = RefCache[str];
+ if (ref) {
+ return ref;
+ }
+ const m = /^(\d+)R(\d*)$/.exec(str);
+ if (!m || m[1] === "0") {
+ return null;
+ }
+ return RefCache[str] = new Ref(parseInt(m[1], 10), !m[2] ? 0 : parseInt(m[2], 10));
+ }
+ static get(num, gen) {
+ const key = gen === 0 ? `${num}R` : `${num}R${gen}`;
+ return RefCache[key] ||= new Ref(num, gen);
+ }
+}
+class RefSet {
+ constructor(parent = null) {
+ this._set = new Set(parent?._set);
+ }
+ has(ref) {
+ return this._set.has(ref.toString());
+ }
+ put(ref) {
+ this._set.add(ref.toString());
+ }
+ remove(ref) {
+ this._set.delete(ref.toString());
+ }
+ [Symbol.iterator]() {
+ return this._set.values();
+ }
+ clear() {
+ this._set.clear();
+ }
+}
+class RefSetCache {
+ _map = new Map();
+ get size() {
+ return this._map.size;
+ }
+ get(ref) {
+ return this._map.get(ref.toString());
+ }
+ has(ref) {
+ return this._map.has(ref.toString());
+ }
+ put(ref, obj) {
+ this._map.set(ref.toString(), obj);
+ }
+ putAlias(ref, aliasRef) {
+ this._map.set(ref.toString(), this.get(aliasRef));
+ }
+ [Symbol.iterator]() {
+ return this._map.values();
+ }
+ clear() {
+ this._map.clear();
+ }
+ *values() {
+ yield* this._map.values();
+ }
+ *items() {
+ for (const [ref, value] of this._map) {
+ yield [Ref.fromString(ref), value];
+ }
+ }
+ *keys() {
+ for (const ref of this._map.keys()) {
+ yield Ref.fromString(ref);
+ }
+ }
+}
+function isName(v, name) {
+ return v instanceof Name && (name === undefined || v.name === name);
+}
+function isCmd(v, cmd) {
+ return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);
+}
+function isDict(v, type) {
+ return v instanceof Dict && (type === undefined || isName(v.get("Type"), type));
+}
+function isRefsEqual(v1, v2) {
+ return v1.num === v2.num && v1.gen === v2.gen;
+}
+
+;// ./src/core/base_stream.js
+
+class BaseStream {
+ get length() {
+ unreachable("Abstract getter `length` accessed");
+ }
+ get isEmpty() {
+ unreachable("Abstract getter `isEmpty` accessed");
+ }
+ get isDataLoaded() {
+ return shadow(this, "isDataLoaded", true);
+ }
+ getByte() {
+ unreachable("Abstract method `getByte` called");
+ }
+ getBytes(length) {
+ unreachable("Abstract method `getBytes` called");
+ }
+ async getImageData(length, decoderOptions) {
+ return this.getBytes(length, decoderOptions);
+ }
+ async asyncGetBytes() {
+ unreachable("Abstract method `asyncGetBytes` called");
+ }
+ get isAsync() {
+ return false;
+ }
+ get isAsyncDecoder() {
+ return false;
+ }
+ get isImageStream() {
+ return false;
+ }
+ get canAsyncDecodeImageFromBuffer() {
+ return false;
+ }
+ async getTransferableImage() {
+ return null;
+ }
+ peekByte() {
+ const peekedByte = this.getByte();
+ if (peekedByte !== -1) {
+ this.pos--;
+ }
+ return peekedByte;
+ }
+ peekBytes(length) {
+ const bytes = this.getBytes(length);
+ this.pos -= bytes.length;
+ return bytes;
+ }
+ getUint16() {
+ const b0 = this.getByte();
+ const b1 = this.getByte();
+ if (b0 === -1 || b1 === -1) {
+ return -1;
+ }
+ return (b0 << 8) + b1;
+ }
+ getInt32() {
+ const b0 = this.getByte();
+ const b1 = this.getByte();
+ const b2 = this.getByte();
+ const b3 = this.getByte();
+ return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;
+ }
+ getByteRange(begin, end) {
+ unreachable("Abstract method `getByteRange` called");
+ }
+ getString(length) {
+ return bytesToString(this.getBytes(length));
+ }
+ skip(n) {
+ this.pos += n || 1;
+ }
+ reset() {
+ unreachable("Abstract method `reset` called");
+ }
+ moveStart() {
+ unreachable("Abstract method `moveStart` called");
+ }
+ makeSubStream(start, length, dict = null) {
+ unreachable("Abstract method `makeSubStream` called");
+ }
+ getBaseStreams() {
+ return null;
+ }
+ getOriginalStream() {
+ return this.stream?.getOriginalStream() || this;
+ }
+}
+
+;// ./src/core/core_utils.js
+/* unused harmony import specifier */ var core_utils_assert;
+/* unused harmony import specifier */ var core_utils_Util;
+/* unused harmony import specifier */ var core_utils_stringToPDFString;
+/* unused harmony import specifier */ var core_utils_objectSize;
+/* unused harmony import specifier */ var core_utils_warn;
+/* unused harmony import specifier */ var core_utils_AnnotationEditorPrefix;
+/* unused harmony import specifier */ var core_utils_makeArr;
+/* unused harmony import specifier */ var core_utils_RefSet;
+/* unused harmony import specifier */ var core_utils_Dict;
+/* unused harmony import specifier */ var core_utils_Ref;
+/* unused harmony import specifier */ var core_utils_isName;
+/* unused harmony import specifier */ var core_utils_BaseStream;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+const PDF_VERSION_REGEXP = /^[1-9]\.\d$/;
+const MAX_INT_32 = (/* unused pure expression or super */ null && (2 ** 31 - 1));
+const IDENTITY_MATRIX = (/* unused pure expression or super */ null && ([1, 0, 0, 1, 0, 0]));
+const RESOURCES_KEYS_OPERATOR_LIST = (/* unused pure expression or super */ null && (["ColorSpace", "ExtGState", "Font", "Pattern", "Properties", "Shading", "XObject"]));
+const RESOURCES_KEYS_TEXT_CONTENT = (/* unused pure expression or super */ null && (["ExtGState", "Font", "Properties", "XObject"]));
+function getLookupTableFactory(initializer) {
+ let lookup;
+ return function () {
+ if (initializer) {
+ lookup = Object.create(null);
+ initializer(lookup);
+ initializer = null;
+ }
+ return lookup;
+ };
+}
+class MissingDataException extends BaseException {
+ constructor(begin, end) {
+ super(`Missing data [${begin}, ${end})`, "MissingDataException");
+ this.begin = begin;
+ this.end = end;
+ }
+}
+class ParserEOFException extends BaseException {
+ constructor(msg) {
+ super(msg, "ParserEOFException");
+ }
+}
+class XRefEntryException extends BaseException {
+ constructor(msg) {
+ super(msg, "XRefEntryException");
+ }
+}
+class XRefParseException extends BaseException {
+ constructor(msg) {
+ super(msg, "XRefParseException");
+ }
+}
+function arrayBuffersToBytes(arr) {
+ const length = arr.length;
+ if (length === 0) {
+ return new Uint8Array(0);
+ }
+ if (length === 1) {
+ return new Uint8Array(arr[0]);
+ }
+ let dataLength = 0;
+ for (let i = 0; i < length; i++) {
+ dataLength += arr[i].byteLength;
+ }
+ const data = new Uint8Array(dataLength);
+ let pos = 0;
+ for (let i = 0; i < length; i++) {
+ const item = new Uint8Array(arr[i]);
+ data.set(item, pos);
+ pos += item.byteLength;
+ }
+ return data;
+}
+async function fetchBinaryData(url) {
+ const response = await fetch(url);
+ if (!response.ok) {
+ throw new Error(`Failed to fetch file "${url}" with "${response.statusText}".`);
+ }
+ return response.bytes();
+}
+function getInheritableProperty({
+ dict,
+ key,
+ getArray = false,
+ stopWhenFound = true
+}) {
+ let values;
+ const visited = new core_utils_RefSet();
+ while (dict instanceof core_utils_Dict && !(dict.objId && visited.has(dict.objId))) {
+ if (dict.objId) {
+ visited.put(dict.objId);
+ }
+ const value = getArray ? dict.getArray(key) : dict.get(key);
+ if (value !== undefined) {
+ if (stopWhenFound) {
+ return value;
+ }
+ (values ||= []).push(value);
+ }
+ dict = dict.get("Parent");
+ }
+ return values;
+}
+function getParentToUpdate(dict, ref, xref) {
+ const visited = new core_utils_RefSet();
+ const firstDict = dict;
+ const result = {
+ dict: null,
+ ref: null
+ };
+ while (dict instanceof core_utils_Dict && !visited.has(ref)) {
+ visited.put(ref);
+ if (dict.has("T")) {
+ break;
+ }
+ ref = dict.getRaw("Parent");
+ if (!(ref instanceof core_utils_Ref)) {
+ return result;
+ }
+ dict = xref.fetch(ref);
+ }
+ if (dict instanceof core_utils_Dict && dict !== firstDict) {
+ result.dict = dict;
+ result.ref = ref;
+ }
+ return result;
+}
+function deepCompare(a, b) {
+ if (a === b) {
+ return true;
+ }
+ if (a instanceof core_utils_Dict && b instanceof core_utils_Dict) {
+ if (a.size !== b.size) {
+ return false;
+ }
+ for (const [key, value1] of a.getRawEntries()) {
+ const value2 = b.getRaw(key);
+ if (value2 === undefined || !deepCompare(value1, value2)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ if (Array.isArray(a) && Array.isArray(b)) {
+ if (a.length !== b.length) {
+ return false;
+ }
+ for (let i = 0, ii = a.length; i < ii; i++) {
+ if (!deepCompare(a[i], b[i])) {
+ return false;
+ }
+ }
+ return true;
+ }
+ return false;
+}
+const ROMAN_NUMBER_MAP = (/* unused pure expression or super */ null && (["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM", "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC", "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]));
+function toRomanNumerals(number, lowerCase = false) {
+ core_utils_assert(Number.isInteger(number) && number > 0, "The number should be a positive integer.");
+ const roman = "M".repeat(number / 1000 | 0) + ROMAN_NUMBER_MAP[number % 1000 / 100 | 0] + ROMAN_NUMBER_MAP[10 + (number % 100 / 10 | 0)] + ROMAN_NUMBER_MAP[20 + number % 10];
+ return lowerCase ? roman.toLowerCase() : roman;
+}
+function isWhiteSpace(ch) {
+ return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;
+}
+function isBooleanArray(arr, len) {
+ return Array.isArray(arr) && (len === null || arr.length === len) && arr.every(x => typeof x === "boolean");
+}
+function isNumberArray(arr, len) {
+ if (Array.isArray(arr)) {
+ return (len === null || arr.length === len) && arr.every(x => typeof x === "number");
+ }
+ return ArrayBuffer.isView(arr) && !(arr instanceof BigInt64Array || arr instanceof BigUint64Array) && (len === null || arr.length === len);
+}
+function lookupMatrix(arr, fallback) {
+ return isNumberArray(arr, 6) ? arr : fallback;
+}
+function lookupRect(arr, fallback) {
+ return isNumberArray(arr, 4) ? arr : fallback;
+}
+function lookupNormalRect(arr, fallback) {
+ return isNumberArray(arr, 4) ? core_utils_Util.normalizeRect(arr) : fallback;
+}
+function parseXFAPath(path) {
+ const positionPattern = /(.+)\[(\d+)\]$/;
+ return path.split(".").map(component => {
+ const m = component.match(positionPattern);
+ if (m) {
+ return {
+ name: m[1],
+ pos: parseInt(m[2], 10)
+ };
+ }
+ return {
+ name: component,
+ pos: 0
+ };
+ });
+}
+function escapePDFName(str) {
+ const buffer = [];
+ let start = 0;
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.charCodeAt(i);
+ if (char < 0x21 || char > 0x7e || char === 0x23 || char === 0x28 || char === 0x29 || char === 0x3c || char === 0x3e || char === 0x5b || char === 0x5d || char === 0x7b || char === 0x7d || char === 0x2f || char === 0x25) {
+ if (start < i) {
+ buffer.push(str.substring(start, i));
+ }
+ buffer.push(`#${char.toString(16)}`);
+ start = i + 1;
+ }
+ }
+ if (buffer.length === 0) {
+ return str;
+ }
+ if (start < str.length) {
+ buffer.push(str.substring(start, str.length));
+ }
+ return buffer.join("");
+}
+function escapeString(str) {
+ return str.replaceAll(/([()\\\n\r])/g, match => {
+ if (match === "\n") {
+ return "\\n";
+ } else if (match === "\r") {
+ return "\\r";
+ }
+ return `\\${match}`;
+ });
+}
+function _collectJS(entry, xref, list, parents) {
+ if (!entry) {
+ return;
+ }
+ let parent = null;
+ if (entry instanceof core_utils_Ref) {
+ if (parents.has(entry)) {
+ return;
+ }
+ parent = entry;
+ parents.put(parent);
+ entry = xref.fetch(entry);
+ }
+ if (Array.isArray(entry)) {
+ for (const element of entry) {
+ _collectJS(element, xref, list, parents);
+ }
+ } else if (entry instanceof core_utils_Dict) {
+ if (core_utils_isName(entry.get("S"), "JavaScript")) {
+ const js = entry.get("JS");
+ let code;
+ if (js instanceof core_utils_BaseStream) {
+ code = js.getString();
+ } else if (typeof js === "string") {
+ code = js;
+ }
+ code &&= core_utils_stringToPDFString(code, true).replaceAll("\x00", "");
+ if (code) {
+ list.push(code.trim());
+ }
+ }
+ _collectJS(entry.getRaw("Next"), xref, list, parents);
+ }
+ if (parent) {
+ parents.remove(parent);
+ }
+}
+function collectActions(xref, dict, eventType) {
+ const actions = Object.create(null);
+ const additionalActionsDicts = getInheritableProperty({
+ dict,
+ key: "AA",
+ stopWhenFound: false
+ });
+ if (additionalActionsDicts) {
+ for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {
+ const additionalActions = additionalActionsDicts[i];
+ if (!(additionalActions instanceof core_utils_Dict)) {
+ continue;
+ }
+ for (const [key, rawActionDict] of additionalActions.getRawEntries()) {
+ const action = eventType[key];
+ if (!action) {
+ continue;
+ }
+ const parents = new core_utils_RefSet();
+ const list = [];
+ _collectJS(rawActionDict, xref, list, parents);
+ if (list.length > 0) {
+ actions[action] = list;
+ }
+ }
+ }
+ }
+ if (dict.has("A")) {
+ const actionDict = dict.get("A");
+ const parents = new core_utils_RefSet();
+ const list = [];
+ _collectJS(actionDict, xref, list, parents);
+ if (list.length > 0) {
+ actions.Action = list;
+ }
+ }
+ return core_utils_objectSize(actions) > 0 ? actions : null;
+}
+const XMLEntities = {
+ 0x3c: "<",
+ 0x3e: ">",
+ 0x26: "&",
+ 0x22: """,
+ 0x27: "'"
+};
+function* codePointIter(str) {
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.codePointAt(i);
+ if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {
+ i++;
+ }
+ yield char;
+ }
+}
+function encodeToXmlString(str) {
+ const buffer = [];
+ let start = 0;
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.codePointAt(i);
+ if (0x20 <= char && char <= 0x7e) {
+ const entity = XMLEntities[char];
+ if (entity) {
+ if (start < i) {
+ buffer.push(str.substring(start, i));
+ }
+ buffer.push(entity);
+ start = i + 1;
+ }
+ } else {
+ if (start < i) {
+ buffer.push(str.substring(start, i));
+ }
+ buffer.push(`${char.toString(16).toUpperCase()};`);
+ if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {
+ i++;
+ }
+ start = i + 1;
+ }
+ }
+ if (buffer.length === 0) {
+ return str;
+ }
+ if (start < str.length) {
+ buffer.push(str.substring(start, str.length));
+ }
+ return buffer.join("");
+}
+function validateFontName(fontFamily, mustWarn = false) {
+ const m = /^("|').*("|')$/.exec(fontFamily);
+ if (m && m[1] === m[2]) {
+ const re = new RegExp(`[^\\\\]${m[1]}`);
+ if (re.test(fontFamily.slice(1, -1))) {
+ if (mustWarn) {
+ core_utils_warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`);
+ }
+ return false;
+ }
+ } else {
+ for (const ident of fontFamily.split(/[ \t]+/)) {
+ if (/^(\d|(-(\d|-)))/.test(ident) || !/^[\w-\\]+$/.test(ident)) {
+ if (mustWarn) {
+ core_utils_warn(`FontFamily contains invalid : ${fontFamily}.`);
+ }
+ return false;
+ }
+ }
+ }
+ return true;
+}
+function validateCSSFont(cssFontInfo) {
+ const DEFAULT_CSS_FONT_OBLIQUE = "14";
+ const DEFAULT_CSS_FONT_WEIGHT = "400";
+ const CSS_FONT_WEIGHT_VALUES = new Set(["100", "200", "300", "400", "500", "600", "700", "800", "900", "1000", "normal", "bold", "bolder", "lighter"]);
+ const {
+ fontFamily,
+ fontWeight,
+ italicAngle
+ } = cssFontInfo;
+ if (!validateFontName(fontFamily, true)) {
+ return false;
+ }
+ const weight = fontWeight ? fontWeight.toString() : "";
+ cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight) ? weight : DEFAULT_CSS_FONT_WEIGHT;
+ const angle = parseFloat(italicAngle);
+ cssFontInfo.italicAngle = isNaN(angle) || angle < -90 || angle > 90 ? DEFAULT_CSS_FONT_OBLIQUE : italicAngle.toString();
+ return true;
+}
+function recoverJsURL(str) {
+ const URL_OPEN_METHODS = ["app.launchURL", "window.open", "xfa.host.gotoURL"];
+ const regex = new RegExp("^\\s*(" + URL_OPEN_METHODS.join("|").replaceAll(".", "\\.") + ")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))", "i");
+ const jsUrl = regex.exec(str);
+ if (jsUrl?.[2]) {
+ return {
+ url: jsUrl[2],
+ newWindow: jsUrl[1] === "app.launchURL" && jsUrl[3] === "true"
+ };
+ }
+ return null;
+}
+function numberToString(value) {
+ if (Number.isInteger(value)) {
+ return value.toString();
+ }
+ const roundedValue = Math.round(value * 100);
+ if (roundedValue % 100 === 0) {
+ return (roundedValue / 100).toString();
+ }
+ if (roundedValue % 10 === 0) {
+ return value.toFixed(1);
+ }
+ return value.toFixed(2);
+}
+function getNewAnnotationsMap(annotationStorage) {
+ if (!annotationStorage) {
+ return null;
+ }
+ const newAnnotationsByPage = new Map();
+ for (const [key, value] of annotationStorage) {
+ if (!key.startsWith(core_utils_AnnotationEditorPrefix)) {
+ continue;
+ }
+ newAnnotationsByPage.getOrInsertComputed(value.pageIndex, core_utils_makeArr).push(value);
+ }
+ return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;
+}
+function stringToAsciiOrUTF16BE(str) {
+ if (str === null || str === undefined) {
+ return str;
+ }
+ return isAscii(str) ? str : stringToUTF16String(str, true);
+}
+function isAscii(str) {
+ if (typeof str !== "string") {
+ return false;
+ }
+ return !str || /^[\x00-\x7F]*$/.test(str);
+}
+function stringToUTF16HexString(str) {
+ const buf = [];
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.charCodeAt(i);
+ buf.push(core_utils_Util.hexNums[char >> 8 & 0xff], core_utils_Util.hexNums[char & 0xff]);
+ }
+ return buf.join("");
+}
+function stringToUTF16String(str, bigEndian = false) {
+ const buf = [];
+ if (bigEndian) {
+ buf.push("\xFE\xFF");
+ }
+ for (let i = 0, ii = str.length; i < ii; i++) {
+ const char = str.charCodeAt(i);
+ buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));
+ }
+ return buf.join("");
+}
+function getRotationMatrix(rotation, width, height) {
+ switch (rotation) {
+ case 90:
+ return [0, 1, -1, 0, width, 0];
+ case 180:
+ return [-1, 0, 0, -1, width, height];
+ case 270:
+ return [0, -1, 1, 0, 0, height];
+ default:
+ throw new Error("Invalid rotation");
+ }
+}
+function getSizeInBytes(x) {
+ return Math.ceil(Math.ceil(Math.log2(1 + x)) / 8);
+}
+
+// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.delete.js
+var web_url_search_params_delete = __webpack_require__(4603);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.has.js
+var web_url_search_params_has = __webpack_require__(7566);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.size.js
+var web_url_search_params_size = __webpack_require__(8721);
+;// ./external/jbig2/jbig2.js
+
+
+
+
+
+
+
+
+
+
+
+
+async function JBig2(moduleArg = {}) {
+ var moduleRtn;
+ var Module = moduleArg;
+ var ENVIRONMENT_IS_WEB = true;
+ var ENVIRONMENT_IS_WORKER = false;
+ var arguments_ = [];
+ var thisProgram = "./this.program";
+ var quit_ = (status, toThrow) => {
+ throw toThrow;
+ };
+ var _scriptName = import.meta.url;
+ var scriptDirectory = "";
+ var readAsync, readBinary;
+ if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
+ try {
+ scriptDirectory = new URL(".", _scriptName).href;
+ } catch {}
+ readAsync = async url => {
+ var response = await fetch(url, {
+ credentials: "same-origin"
+ });
+ if (response.ok) {
+ return response.arrayBuffer();
+ }
+ throw new Error(response.status + " : " + response.url);
+ };
+ } else {}
+ var out = console.log.bind(console);
+ var err = console.error.bind(console);
+ var wasmBinary;
+ var ABORT = false;
+ var EXITSTATUS;
+ var readyPromiseResolve, readyPromiseReject;
+ var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
+ var HEAP64, HEAPU64;
+ var runtimeInitialized = false;
+ function updateMemoryViews() {
+ var b = wasmMemory.buffer;
+ HEAP8 = new Int8Array(b);
+ HEAP16 = new Int16Array(b);
+ HEAPU8 = new Uint8Array(b);
+ HEAPU16 = new Uint16Array(b);
+ HEAP32 = new Int32Array(b);
+ HEAPU32 = new Uint32Array(b);
+ HEAPF32 = new Float32Array(b);
+ HEAPF64 = new Float64Array(b);
+ HEAP64 = new BigInt64Array(b);
+ HEAPU64 = new BigUint64Array(b);
+ }
+ function preRun() {
+ if (Module["preRun"]) {
+ if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]];
+ while (Module["preRun"].length) {
+ addOnPreRun(Module["preRun"].shift());
+ }
+ }
+ callRuntimeCallbacks(onPreRuns);
+ }
+ function initRuntime() {
+ runtimeInitialized = true;
+ wasmExports["j"]();
+ }
+ function postRun() {
+ if (Module["postRun"]) {
+ if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]];
+ while (Module["postRun"].length) {
+ addOnPostRun(Module["postRun"].shift());
+ }
+ }
+ callRuntimeCallbacks(onPostRuns);
+ }
+ function abort(what) {
+ Module["onAbort"]?.(what);
+ what = "Aborted(" + what + ")";
+ err(what);
+ ABORT = true;
+ what += ". Build with -sASSERTIONS for more info.";
+ var e = new WebAssembly.RuntimeError(what);
+ readyPromiseReject?.(e);
+ throw e;
+ }
+ var wasmBinaryFile;
+ function getWasmImports() {
+ var imports = {
+ a: wasmImports
+ };
+ return imports;
+ }
+ async function createWasm() {
+ function receiveInstance(instance, module) {
+ wasmExports = instance.exports;
+ assignWasmExports(wasmExports);
+ updateMemoryViews();
+ return wasmExports;
+ }
+ var info = getWasmImports();
+ return new Promise((resolve, reject) => {
+ Module["instantiateWasm"](info, (inst, mod) => {
+ resolve(receiveInstance(inst, mod));
+ });
+ });
+ }
+ class ExitStatus {
+ name = "ExitStatus";
+ constructor(status) {
+ this.message = `Program terminated with exit(${status})`;
+ this.status = status;
+ }
+ }
+ var callRuntimeCallbacks = callbacks => {
+ while (callbacks.length > 0) {
+ callbacks.shift()(Module);
+ }
+ };
+ var onPostRuns = [];
+ var addOnPostRun = cb => onPostRuns.push(cb);
+ var onPreRuns = [];
+ var addOnPreRun = cb => onPreRuns.push(cb);
+ var noExitRuntime = true;
+ var __abort_js = () => abort("");
+ var runtimeKeepaliveCounter = 0;
+ var __emscripten_runtime_keepalive_clear = () => {
+ noExitRuntime = false;
+ runtimeKeepaliveCounter = 0;
+ };
+ var timers = {};
+ var handleException = e => {
+ if (e instanceof ExitStatus || e == "unwind") {
+ return EXITSTATUS;
+ }
+ quit_(1, e);
+ };
+ var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;
+ var _proc_exit = code => {
+ EXITSTATUS = code;
+ if (!keepRuntimeAlive()) {
+ Module["onExit"]?.(code);
+ ABORT = true;
+ }
+ quit_(code, new ExitStatus(code));
+ };
+ var exitJS = (status, implicit) => {
+ EXITSTATUS = status;
+ _proc_exit(status);
+ };
+ var _exit = exitJS;
+ var maybeExit = () => {
+ if (!keepRuntimeAlive()) {
+ try {
+ _exit(EXITSTATUS);
+ } catch (e) {
+ handleException(e);
+ }
+ }
+ };
+ var callUserCallback = func => {
+ if (ABORT) {
+ return;
+ }
+ try {
+ return func();
+ } catch (e) {
+ handleException(e);
+ } finally {
+ maybeExit();
+ }
+ };
+ var _emscripten_get_now = () => performance.now();
+ var __setitimer_js = (which, timeout_ms) => {
+ if (timers[which]) {
+ clearTimeout(timers[which].id);
+ delete timers[which];
+ }
+ if (!timeout_ms) return 0;
+ var id = setTimeout(() => {
+ delete timers[which];
+ callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()));
+ }, timeout_ms);
+ timers[which] = {
+ id,
+ timeout_ms
+ };
+ return 0;
+ };
+ function _createImageData(size) {
+ Module.imageData = new Uint8Array(size);
+ }
+ var getHeapMax = () => 2147483648;
+ var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
+ var growMemory = size => {
+ var oldHeapSize = wasmMemory.buffer.byteLength;
+ var pages = (size - oldHeapSize + 65535) / 65536 | 0;
+ try {
+ wasmMemory.grow(pages);
+ updateMemoryViews();
+ return 1;
+ } catch (e) {}
+ };
+ var _emscripten_resize_heap = requestedSize => {
+ var oldSize = HEAPU8.length;
+ requestedSize >>>= 0;
+ var maxHeapSize = getHeapMax();
+ if (requestedSize > maxHeapSize) {
+ return false;
+ }
+ for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
+ var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
+ overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
+ var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
+ var replacement = growMemory(newSize);
+ if (replacement) {
+ return true;
+ }
+ }
+ return false;
+ };
+ function _setImageData(array_ptr, pitch8, pitch32, height) {
+ if (pitch32 === pitch8) {
+ Module.imageData = new Uint8ClampedArray(HEAPU8.subarray(array_ptr, array_ptr + pitch32 * height));
+ return;
+ }
+ const destSize = pitch8 * height;
+ const imageData = Module.imageData = new Uint8ClampedArray(destSize);
+ for (let srcStart = array_ptr, destStart = 0; destStart < destSize; srcStart += pitch32, destStart += pitch8) {
+ imageData.set(HEAPU8.subarray(srcStart, srcStart + pitch8), destStart);
+ }
+ }
+ function _setLineData(line_ptr, pitch8, offset) {
+ Module.imageData.set(HEAPU8.subarray(line_ptr, line_ptr + pitch8), offset);
+ }
+ var writeArrayToMemory = (array, buffer) => {
+ HEAP8.set(array, buffer);
+ };
+ if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
+ if (Module["print"]) out = Module["print"];
+ if (Module["printErr"]) err = Module["printErr"];
+ if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
+ if (Module["arguments"]) arguments_ = Module["arguments"];
+ if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
+ if (Module["preInit"]) {
+ if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
+ while (Module["preInit"].length > 0) {
+ Module["preInit"].shift()();
+ }
+ }
+ Module["writeArrayToMemory"] = writeArrayToMemory;
+ var _malloc, _free, _jbig2_decode, _ccitt_decode, __emscripten_timeout, memory, __indirect_function_table, wasmMemory;
+ function assignWasmExports(wasmExports) {
+ _malloc = Module["_malloc"] = wasmExports["k"];
+ _free = Module["_free"] = wasmExports["l"];
+ _jbig2_decode = Module["_jbig2_decode"] = wasmExports["m"];
+ _ccitt_decode = Module["_ccitt_decode"] = wasmExports["n"];
+ __emscripten_timeout = wasmExports["o"];
+ memory = wasmMemory = wasmExports["i"];
+ __indirect_function_table = wasmExports["__indirect_function_table"];
+ }
+ var wasmImports = {
+ e: __abort_js,
+ b: __emscripten_runtime_keepalive_clear,
+ c: __setitimer_js,
+ g: _createImageData,
+ d: _emscripten_resize_heap,
+ a: _proc_exit,
+ h: _setImageData,
+ f: _setLineData
+ };
+ function run() {
+ preRun();
+ function doRun() {
+ Module["calledRun"] = true;
+ if (ABORT) return;
+ initRuntime();
+ readyPromiseResolve?.(Module);
+ Module["onRuntimeInitialized"]?.();
+ postRun();
+ }
+ if (Module["setStatus"]) {
+ Module["setStatus"]("Running...");
+ setTimeout(() => {
+ setTimeout(() => Module["setStatus"](""), 1);
+ doRun();
+ }, 1);
+ } else {
+ doRun();
+ }
+ }
+ var wasmExports;
+ wasmExports = await createWasm();
+ run();
+ if (runtimeInitialized) {
+ moduleRtn = Module;
+ } else {
+ moduleRtn = new Promise((resolve, reject) => {
+ readyPromiseResolve = resolve;
+ readyPromiseReject = reject;
+ });
+ }
+ return moduleRtn;
+}
+/* harmony default export */ const jbig2 = (JBig2);
+;// ./src/core/jbig2_ccittFax.js
+
+
+
+
+
+class Jbig2Error extends BaseException {
+ constructor(msg) {
+ super(msg, "Jbig2Error");
+ }
+}
+class JBig2CCITTFaxImage {
+ static #buffer = null;
+ static #handler = null;
+ static #modulePromise = null;
+ static #useWasm = true;
+ static #useWorkerFetch = true;
+ static #wasmUrl = null;
+ static setOptions({
+ handler,
+ useWasm,
+ useWorkerFetch,
+ wasmUrl
+ }) {
+ this.#useWasm = useWasm;
+ this.#useWorkerFetch = useWorkerFetch;
+ this.#wasmUrl = wasmUrl;
+ if (!useWorkerFetch) {
+ this.#handler = handler;
+ }
+ }
+ static async #getJsModule(fallbackCallback) {
+ const path = `${this.#wasmUrl}jbig2_nowasm_fallback.js`;
+ let instance = null;
+ try {
+ const mod = await import(
+ /*webpackIgnore: true*/
+ /*@vite-ignore*/
+ path);
+ instance = mod.default();
+ } catch (e) {
+ warn(`JBig2CCITTFaxImage#getJsModule: ${e}`);
+ }
+ fallbackCallback(instance);
+ }
+ static async #instantiateWasm(fallbackCallback, imports, successCallback) {
+ const filename = "jbig2.wasm";
+ try {
+ if (!this.#buffer) {
+ if (this.#useWorkerFetch) {
+ this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);
+ } else {
+ this.#buffer = await this.#handler.sendWithPromise("FetchBinaryData", {
+ kind: "wasmUrl",
+ filename
+ });
+ }
+ }
+ const results = await WebAssembly.instantiate(this.#buffer, imports);
+ return successCallback(results.instance);
+ } catch (reason) {
+ warn(`JBig2CCITTFaxImage#instantiateWasm: ${reason}`);
+ this.#getJsModule(fallbackCallback);
+ return null;
+ } finally {
+ this.#handler = null;
+ }
+ }
+ static async decode(bytes, width, height, globals, CCITTOptions) {
+ if (!this.#modulePromise) {
+ const {
+ promise,
+ resolve
+ } = Promise.withResolvers();
+ const promises = [promise];
+ if (!this.#useWasm) {
+ this.#getJsModule(resolve);
+ } else {
+ promises.push(jbig2({
+ warn: warn,
+ instantiateWasm: this.#instantiateWasm.bind(this, resolve)
+ }));
+ }
+ this.#modulePromise = Promise.race(promises);
+ }
+ const module = await this.#modulePromise;
+ if (!module) {
+ throw new Jbig2Error("JBig2 failed to initialize");
+ }
+ let ptr, globalsPtr;
+ try {
+ const size = bytes.length;
+ ptr = module._malloc(size);
+ module.writeArrayToMemory(bytes, ptr);
+ if (CCITTOptions) {
+ module._ccitt_decode(ptr, size, width, height, CCITTOptions.K, CCITTOptions.EndOfLine ? 1 : 0, CCITTOptions.EncodedByteAlign ? 1 : 0, CCITTOptions.BlackIs1 ? 1 : 0, CCITTOptions.Columns, CCITTOptions.Rows);
+ } else {
+ const globalsSize = globals ? globals.length : 0;
+ if (globalsSize > 0) {
+ globalsPtr = module._malloc(globalsSize);
+ module.writeArrayToMemory(globals, globalsPtr);
+ }
+ module._jbig2_decode(ptr, size, width, height, globalsPtr, globalsSize);
+ }
+ if (!module.imageData) {
+ throw new Jbig2Error("Unknown error");
+ }
+ const {
+ imageData
+ } = module;
+ module.imageData = null;
+ return imageData;
+ } finally {
+ if (ptr) {
+ module._free(ptr);
+ }
+ if (globalsPtr) {
+ module._free(globalsPtr);
+ }
+ }
+ }
+ static cleanup() {
+ this.#modulePromise = null;
+ }
+}
+
+;// ./src/shared/math_clamp.js
+function MathClamp(v, min, max) {
+ return Math.min(Math.max(v, min), max);
+}
+
+;// ./src/core/colorspace.js
+
+
+
+
+
+
+
+
+
+
+
+function resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {
+ const COMPONENTS = 3;
+ alpha01 = alpha01 !== 1 ? 0 : alpha01;
+ const xRatio = w1 / w2;
+ const yRatio = h1 / h2;
+ let newIndex = 0,
+ oldIndex;
+ const xScaled = new Uint16Array(w2);
+ const w1Scanline = w1 * COMPONENTS;
+ for (let i = 0; i < w2; i++) {
+ xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;
+ }
+ for (let i = 0; i < h2; i++) {
+ const py = Math.floor(i * yRatio) * w1Scanline;
+ for (let j = 0; j < w2; j++) {
+ oldIndex = py + xScaled[j];
+ dest[newIndex++] = src[oldIndex++];
+ dest[newIndex++] = src[oldIndex++];
+ dest[newIndex++] = src[oldIndex++];
+ newIndex += alpha01;
+ }
+ }
+}
+function resizeRgbaImage(src, dest, w1, h1, w2, h2, alpha01) {
+ const xRatio = w1 / w2;
+ const yRatio = h1 / h2;
+ let newIndex = 0;
+ const xScaled = new Uint16Array(w2);
+ if (alpha01 === 1) {
+ for (let i = 0; i < w2; i++) {
+ xScaled[i] = Math.floor(i * xRatio);
+ }
+ const src32 = new Uint32Array(src.buffer);
+ const dest32 = new Uint32Array(dest.buffer);
+ const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;
+ for (let i = 0; i < h2; i++) {
+ const buf = src32.subarray(Math.floor(i * yRatio) * w1);
+ for (let j = 0; j < w2; j++) {
+ dest32[newIndex++] |= buf[xScaled[j]] & rgbMask;
+ }
+ }
+ } else {
+ const COMPONENTS = 4;
+ const w1Scanline = w1 * COMPONENTS;
+ for (let i = 0; i < w2; i++) {
+ xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;
+ }
+ for (let i = 0; i < h2; i++) {
+ const buf = src.subarray(Math.floor(i * yRatio) * w1Scanline);
+ for (let j = 0; j < w2; j++) {
+ const oldIndex = xScaled[j];
+ dest[newIndex++] = buf[oldIndex];
+ dest[newIndex++] = buf[oldIndex + 1];
+ dest[newIndex++] = buf[oldIndex + 2];
+ }
+ }
+ }
+}
+function copyRgbaImage(src, dest, alpha01) {
+ if (alpha01 === 1) {
+ const src32 = new Uint32Array(src.buffer);
+ const dest32 = new Uint32Array(dest.buffer);
+ const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;
+ for (let i = 0, ii = src32.length; i < ii; i++) {
+ dest32[i] |= src32[i] & rgbMask;
+ }
+ } else {
+ let j = 0;
+ for (let i = 0, ii = src.length; i < ii; i += 4) {
+ dest[j++] = src[i];
+ dest[j++] = src[i + 1];
+ dest[j++] = src[i + 2];
+ }
+ }
+}
+function isDefaultDecodeHelper(decode, expectedLen) {
+ if (!Array.isArray(decode)) {
+ return true;
+ }
+ const decodeLen = decode.length;
+ if (decodeLen < expectedLen) {
+ warn("Decode map length is too short.");
+ return true;
+ }
+ if (decodeLen > expectedLen) {
+ info("Truncating too long decode map.");
+ decode.length = expectedLen;
+ }
+ return false;
+}
+class ColorSpace {
+ static #rgbBuf = new Uint8ClampedArray(3);
+ constructor(name, numComps) {
+ this.name = name;
+ this.numComps = numComps;
+ }
+ getRgb(src, srcOffset, output = new Uint8ClampedArray(3)) {
+ this.getRgbItem(src, srcOffset, output, 0);
+ return output;
+ }
+ getRgbHex(src, srcOffset) {
+ const buffer = this.getRgb(src, srcOffset, ColorSpace.#rgbBuf);
+ return Util.makeHexColor(buffer[0], buffer[1], buffer[2]);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ unreachable("Should not call ColorSpace.getRgbItem");
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ unreachable("Should not call ColorSpace.getRgbBuffer");
+ }
+ getOutputLength(inputLength, alpha01) {
+ unreachable("Should not call ColorSpace.getOutputLength");
+ }
+ isPassthrough(bits) {
+ return false;
+ }
+ isDefaultDecode(decode, bpc) {
+ return ColorSpace.isDefaultDecode(decode, this.numComps);
+ }
+ fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {
+ const count = originalWidth * originalHeight;
+ let rgbBuf = null;
+ const numComponentColors = 1 << bpc;
+ const needsResizing = originalHeight !== height || originalWidth !== width;
+ if (this.isPassthrough(bpc)) {
+ rgbBuf = comps;
+ } else if (this.numComps === 1 && count > numComponentColors && this.name !== "DeviceGray" && this.name !== "DeviceRGB") {
+ const allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);
+ for (let i = 0; i < numComponentColors; i++) {
+ allColors[i] = i;
+ }
+ const colorMap = new Uint8ClampedArray(numComponentColors * 3);
+ this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);
+ if (!needsResizing) {
+ let destPos = 0;
+ for (let i = 0; i < count; ++i) {
+ const key = comps[i] * 3;
+ dest[destPos++] = colorMap[key];
+ dest[destPos++] = colorMap[key + 1];
+ dest[destPos++] = colorMap[key + 2];
+ destPos += alpha01;
+ }
+ } else {
+ rgbBuf = new Uint8Array(count * 3);
+ let rgbPos = 0;
+ for (let i = 0; i < count; ++i) {
+ const key = comps[i] * 3;
+ rgbBuf[rgbPos++] = colorMap[key];
+ rgbBuf[rgbPos++] = colorMap[key + 1];
+ rgbBuf[rgbPos++] = colorMap[key + 2];
+ }
+ }
+ } else if (!needsResizing) {
+ this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);
+ } else {
+ rgbBuf = new Uint8ClampedArray(count * 3);
+ this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);
+ }
+ if (rgbBuf) {
+ if (needsResizing) {
+ resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);
+ } else {
+ let destPos = 0,
+ rgbPos = 0;
+ for (let i = 0, ii = width * actualHeight; i < ii; i++) {
+ dest[destPos++] = rgbBuf[rgbPos++];
+ dest[destPos++] = rgbBuf[rgbPos++];
+ dest[destPos++] = rgbBuf[rgbPos++];
+ destPos += alpha01;
+ }
+ }
+ }
+ }
+ get usesZeroToOneRange() {
+ return shadow(this, "usesZeroToOneRange", true);
+ }
+ static isDefaultDecode(decode, numComps) {
+ if (isDefaultDecodeHelper(decode, numComps * 2)) {
+ return true;
+ }
+ for (let i = 0, ii = decode.length; i < ii; i += 2) {
+ if (decode[i] !== 0 || decode[i + 1] !== 1) {
+ return false;
+ }
+ }
+ return true;
+ }
+}
+class AlternateCS extends ColorSpace {
+ constructor(numComps, base, tintFn) {
+ super("Alternate", numComps);
+ this.base = base;
+ this.tintFn = tintFn;
+ this.tmpBuf = new Float32Array(base.numComps);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ const tmpBuf = this.tmpBuf;
+ this.tintFn(src, srcOffset, tmpBuf, 0);
+ this.base.getRgbItem(tmpBuf, 0, dest, destOffset);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const tintFn = this.tintFn;
+ const base = this.base;
+ const scale = 1 / ((1 << bits) - 1);
+ const baseNumComps = base.numComps;
+ const usesZeroToOneRange = base.usesZeroToOneRange;
+ const isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;
+ let pos = isPassthrough ? destOffset : 0;
+ const baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);
+ const numComps = this.numComps;
+ const scaled = new Float32Array(numComps);
+ const tinted = new Float32Array(baseNumComps);
+ let i, j;
+ for (i = 0; i < count; i++) {
+ for (j = 0; j < numComps; j++) {
+ scaled[j] = src[srcOffset++] * scale;
+ }
+ tintFn(scaled, 0, tinted, 0);
+ if (usesZeroToOneRange) {
+ for (j = 0; j < baseNumComps; j++) {
+ baseBuf[pos++] = tinted[j] * 255;
+ }
+ } else {
+ base.getRgbItem(tinted, 0, baseBuf, pos);
+ pos += baseNumComps;
+ }
+ }
+ if (!isPassthrough) {
+ base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);
+ }
+}
+class PatternCS extends ColorSpace {
+ constructor(baseCS) {
+ super("Pattern", null);
+ this.base = baseCS;
+ }
+ isDefaultDecode(decode, bpc) {
+ unreachable("Should not call PatternCS.isDefaultDecode");
+ }
+}
+class IndexedCS extends ColorSpace {
+ constructor(base, highVal, lookup) {
+ super("Indexed", 1);
+ this.base = base;
+ this.highVal = highVal;
+ const length = base.numComps * (highVal + 1);
+ this.lookup = new Uint8Array(length);
+ if (lookup instanceof BaseStream) {
+ const bytes = lookup.getBytes(length);
+ this.lookup.set(bytes);
+ } else if (typeof lookup === "string") {
+ for (let i = 0; i < length; ++i) {
+ this.lookup[i] = lookup.charCodeAt(i) & 0xff;
+ }
+ } else {
+ throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);
+ }
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ const {
+ base,
+ highVal,
+ lookup
+ } = this;
+ const start = MathClamp(Math.round(src[srcOffset]), 0, highVal) * base.numComps;
+ base.getRgbBuffer(lookup, start, 1, dest, destOffset, 8, 0);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const {
+ base,
+ highVal,
+ lookup
+ } = this;
+ const {
+ numComps
+ } = base;
+ const outputDelta = base.getOutputLength(numComps, alpha01);
+ for (let i = 0; i < count; ++i) {
+ const lookupPos = MathClamp(Math.round(src[srcOffset++]), 0, highVal) * numComps;
+ base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);
+ destOffset += outputDelta;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);
+ }
+ isDefaultDecode(decode, bpc) {
+ if (isDefaultDecodeHelper(decode, 2)) {
+ return true;
+ }
+ if (!Number.isInteger(bpc) || bpc < 1) {
+ warn("Bits per component is not correct");
+ return true;
+ }
+ return decode[0] === 0 && decode[1] === (1 << bpc) - 1;
+ }
+}
+class DeviceGrayCS extends ColorSpace {
+ constructor() {
+ super("DeviceGray", 1);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ const c = src[srcOffset] * 255;
+ dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const scale = 255 / ((1 << bits) - 1);
+ let j = srcOffset,
+ q = destOffset;
+ for (let i = 0; i < count; ++i) {
+ const c = scale * src[j++];
+ dest[q++] = c;
+ dest[q++] = c;
+ dest[q++] = c;
+ q += alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01);
+ }
+}
+class DeviceRgbCS extends ColorSpace {
+ constructor() {
+ super("DeviceRGB", 3);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ dest[destOffset] = src[srcOffset] * 255;
+ dest[destOffset + 1] = src[srcOffset + 1] * 255;
+ dest[destOffset + 2] = src[srcOffset + 2] * 255;
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ if (bits === 8 && alpha01 === 0) {
+ dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);
+ return;
+ }
+ const scale = 255 / ((1 << bits) - 1);
+ let j = srcOffset,
+ q = destOffset;
+ for (let i = 0; i < count; ++i) {
+ dest[q++] = scale * src[j++];
+ dest[q++] = scale * src[j++];
+ dest[q++] = scale * src[j++];
+ q += alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01) / 3 | 0;
+ }
+ isPassthrough(bits) {
+ return bits === 8;
+ }
+}
+class DeviceRgbaCS extends ColorSpace {
+ constructor() {
+ super("DeviceRGBA", 4);
+ }
+ getOutputLength(inputLength, _alpha01) {
+ return inputLength * 4;
+ }
+ isPassthrough(bits) {
+ return bits === 8;
+ }
+ fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {
+ if (originalHeight !== height || originalWidth !== width) {
+ resizeRgbaImage(comps, dest, originalWidth, originalHeight, width, height, alpha01);
+ } else {
+ copyRgbaImage(comps, dest, alpha01);
+ }
+ }
+}
+class DeviceCmykCS extends ColorSpace {
+ constructor() {
+ super("DeviceCMYK", 4);
+ }
+ #toRgb(src, srcOffset, srcScale, dest, destOffset) {
+ const c = src[srcOffset] * srcScale;
+ const m = src[srcOffset + 1] * srcScale;
+ const y = src[srcOffset + 2] * srcScale;
+ const k = src[srcOffset + 3] * srcScale;
+ dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747);
+ dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578);
+ dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ this.#toRgb(src, srcOffset, 1, dest, destOffset);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const scale = 1 / ((1 << bits) - 1);
+ for (let i = 0; i < count; i++) {
+ this.#toRgb(src, srcOffset, scale, dest, destOffset);
+ srcOffset += 4;
+ destOffset += 3 + alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength / 4 * (3 + alpha01) | 0;
+ }
+}
+class CalGrayCS extends ColorSpace {
+ constructor(whitePoint, blackPoint, gamma) {
+ super("CalGray", 1);
+ if (!whitePoint) {
+ throw new FormatError("WhitePoint missing - required for color space CalGray");
+ }
+ [this.XW, this.YW, this.ZW] = whitePoint;
+ [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];
+ this.G = gamma || 1;
+ if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {
+ throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);
+ }
+ if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
+ info(`Invalid BlackPoint for ${this.name}, falling back to default.`);
+ this.XB = this.YB = this.ZB = 0;
+ }
+ if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {
+ warn(`${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` + `ZB: ${this.ZB}, only default values are supported.`);
+ }
+ if (this.G < 1) {
+ info(`Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`);
+ this.G = 1;
+ }
+ }
+ #toRgb(src, srcOffset, dest, destOffset, scale) {
+ const A = src[srcOffset] * scale;
+ const AG = A ** this.G;
+ const L = this.YW * AG;
+ const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);
+ dest[destOffset] = val;
+ dest[destOffset + 1] = val;
+ dest[destOffset + 2] = val;
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ this.#toRgb(src, srcOffset, dest, destOffset, 1);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const scale = 1 / ((1 << bits) - 1);
+ for (let i = 0; i < count; ++i) {
+ this.#toRgb(src, srcOffset, dest, destOffset, scale);
+ srcOffset += 1;
+ destOffset += 3 + alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01);
+ }
+}
+class CalRGBCS extends ColorSpace {
+ static #BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);
+ static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);
+ static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);
+ static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);
+ static #tempNormalizeMatrix = new Float32Array(3);
+ static #tempConvertMatrix1 = new Float32Array(3);
+ static #tempConvertMatrix2 = new Float32Array(3);
+ static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;
+ constructor(whitePoint, blackPoint, gamma, matrix) {
+ super("CalRGB", 3);
+ if (!whitePoint) {
+ throw new FormatError("WhitePoint missing - required for color space CalRGB");
+ }
+ const [XW, YW, ZW] = this.whitePoint = whitePoint;
+ const [XB, YB, ZB] = this.blackPoint = blackPoint || new Float32Array(3);
+ [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]);
+ [this.MXA, this.MYA, this.MZA, this.MXB, this.MYB, this.MZB, this.MXC, this.MYC, this.MZC] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
+ if (XW < 0 || ZW < 0 || YW !== 1) {
+ throw new FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);
+ }
+ if (XB < 0 || YB < 0 || ZB < 0) {
+ info(`Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` + "falling back to default.");
+ this.blackPoint = new Float32Array(3);
+ }
+ if (this.GR < 0 || this.GG < 0 || this.GB < 0) {
+ info(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` + `${this.name}, falling back to default.`);
+ this.GR = this.GG = this.GB = 1;
+ }
+ }
+ #matrixProduct(a, b, result) {
+ result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
+ result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];
+ result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];
+ }
+ #toFlat(sourceWhitePoint, LMS, result) {
+ result[0] = LMS[0] * 1 / sourceWhitePoint[0];
+ result[1] = LMS[1] * 1 / sourceWhitePoint[1];
+ result[2] = LMS[2] * 1 / sourceWhitePoint[2];
+ }
+ #toD65(sourceWhitePoint, LMS, result) {
+ const D65X = 0.95047;
+ const D65Y = 1;
+ const D65Z = 1.08883;
+ result[0] = LMS[0] * D65X / sourceWhitePoint[0];
+ result[1] = LMS[1] * D65Y / sourceWhitePoint[1];
+ result[2] = LMS[2] * D65Z / sourceWhitePoint[2];
+ }
+ #sRGBTransferFunction(color) {
+ if (color <= 0.0031308) {
+ return MathClamp(12.92 * color, 0, 1);
+ }
+ if (color >= 0.99554525) {
+ return 1;
+ }
+ return MathClamp((1 + 0.055) * color ** (1 / 2.4) - 0.055, 0, 1);
+ }
+ #decodeL(L) {
+ if (L < 0) {
+ return -this.#decodeL(-L);
+ }
+ if (L > 8.0) {
+ return ((L + 16) / 116) ** 3;
+ }
+ return L * CalRGBCS.#DECODE_L_CONSTANT;
+ }
+ #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {
+ if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {
+ result[0] = XYZ_Flat[0];
+ result[1] = XYZ_Flat[1];
+ result[2] = XYZ_Flat[2];
+ return;
+ }
+ const zeroDecodeL = this.#decodeL(0);
+ const X_DST = zeroDecodeL;
+ const X_SRC = this.#decodeL(sourceBlackPoint[0]);
+ const Y_DST = zeroDecodeL;
+ const Y_SRC = this.#decodeL(sourceBlackPoint[1]);
+ const Z_DST = zeroDecodeL;
+ const Z_SRC = this.#decodeL(sourceBlackPoint[2]);
+ const X_Scale = (1 - X_DST) / (1 - X_SRC);
+ const X_Offset = 1 - X_Scale;
+ const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);
+ const Y_Offset = 1 - Y_Scale;
+ const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);
+ const Z_Offset = 1 - Z_Scale;
+ result[0] = XYZ_Flat[0] * X_Scale + X_Offset;
+ result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;
+ result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;
+ }
+ #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {
+ if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {
+ result[0] = XYZ_In[0];
+ result[1] = XYZ_In[1];
+ result[2] = XYZ_In[2];
+ return;
+ }
+ const LMS = result;
+ this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);
+ const LMS_Flat = CalRGBCS.#tempNormalizeMatrix;
+ this.#toFlat(sourceWhitePoint, LMS, LMS_Flat);
+ this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);
+ }
+ #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {
+ const LMS = result;
+ this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);
+ const LMS_D65 = CalRGBCS.#tempNormalizeMatrix;
+ this.#toD65(sourceWhitePoint, LMS, LMS_D65);
+ this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);
+ }
+ #toRgb(src, srcOffset, dest, destOffset, scale) {
+ const A = MathClamp(src[srcOffset] * scale, 0, 1);
+ const B = MathClamp(src[srcOffset + 1] * scale, 0, 1);
+ const C = MathClamp(src[srcOffset + 2] * scale, 0, 1);
+ const AGR = A === 1 ? 1 : A ** this.GR;
+ const BGG = B === 1 ? 1 : B ** this.GG;
+ const CGB = C === 1 ? 1 : C ** this.GB;
+ const X = this.MXA * AGR + this.MXB * BGG + this.MXC * CGB;
+ const Y = this.MYA * AGR + this.MYB * BGG + this.MYC * CGB;
+ const Z = this.MZA * AGR + this.MZB * BGG + this.MZC * CGB;
+ const XYZ = CalRGBCS.#tempConvertMatrix1;
+ XYZ[0] = X;
+ XYZ[1] = Y;
+ XYZ[2] = Z;
+ const XYZ_Flat = CalRGBCS.#tempConvertMatrix2;
+ this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat);
+ const XYZ_Black = CalRGBCS.#tempConvertMatrix1;
+ this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black);
+ const XYZ_D65 = CalRGBCS.#tempConvertMatrix2;
+ this.#normalizeWhitePointToD65(CalRGBCS.#FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);
+ const SRGB = CalRGBCS.#tempConvertMatrix1;
+ this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);
+ dest[destOffset] = this.#sRGBTransferFunction(SRGB[0]) * 255;
+ dest[destOffset + 1] = this.#sRGBTransferFunction(SRGB[1]) * 255;
+ dest[destOffset + 2] = this.#sRGBTransferFunction(SRGB[2]) * 255;
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ this.#toRgb(src, srcOffset, dest, destOffset, 1);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const scale = 1 / ((1 << bits) - 1);
+ for (let i = 0; i < count; ++i) {
+ this.#toRgb(src, srcOffset, dest, destOffset, scale);
+ srcOffset += 3;
+ destOffset += 3 + alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01) / 3 | 0;
+ }
+}
+class LabCS extends ColorSpace {
+ constructor(whitePoint, blackPoint, range) {
+ super("Lab", 3);
+ if (!whitePoint) {
+ throw new FormatError("WhitePoint missing - required for color space Lab");
+ }
+ [this.XW, this.YW, this.ZW] = whitePoint;
+ [this.amin, this.amax, this.bmin, this.bmax] = range || [-100, 100, -100, 100];
+ [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];
+ if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {
+ throw new FormatError("Invalid WhitePoint components, no fallback available");
+ }
+ if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
+ info("Invalid BlackPoint, falling back to default");
+ this.XB = this.YB = this.ZB = 0;
+ }
+ if (this.amin > this.amax || this.bmin > this.bmax) {
+ info("Invalid Range, falling back to defaults");
+ this.amin = -100;
+ this.amax = 100;
+ this.bmin = -100;
+ this.bmax = 100;
+ }
+ }
+ #fn_g(x) {
+ return x >= 6 / 29 ? x ** 3 : 108 / 841 * (x - 4 / 29);
+ }
+ #decode(value, high1, low2, high2) {
+ return low2 + value * (high2 - low2) / high1;
+ }
+ #toRgb(src, srcOffset, maxVal, dest, destOffset) {
+ let Ls = src[srcOffset];
+ let as = src[srcOffset + 1];
+ let bs = src[srcOffset + 2];
+ if (maxVal !== false) {
+ Ls = this.#decode(Ls, maxVal, 0, 100);
+ as = this.#decode(as, maxVal, this.amin, this.amax);
+ bs = this.#decode(bs, maxVal, this.bmin, this.bmax);
+ }
+ if (as > this.amax) {
+ as = this.amax;
+ } else if (as < this.amin) {
+ as = this.amin;
+ }
+ if (bs > this.bmax) {
+ bs = this.bmax;
+ } else if (bs < this.bmin) {
+ bs = this.bmin;
+ }
+ const M = (Ls + 16) / 116;
+ const L = M + as / 500;
+ const N = M - bs / 200;
+ const X = this.XW * this.#fn_g(L);
+ const Y = this.YW * this.#fn_g(M);
+ const Z = this.ZW * this.#fn_g(N);
+ let r, g, b;
+ if (this.ZW < 1) {
+ r = X * 3.1339 + Y * -1.617 + Z * -0.4906;
+ g = X * -0.9785 + Y * 1.916 + Z * 0.0333;
+ b = X * 0.072 + Y * -0.229 + Z * 1.4057;
+ } else {
+ r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;
+ g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;
+ b = X * 0.0557 + Y * -0.204 + Z * 1.057;
+ }
+ dest[destOffset] = Math.sqrt(r) * 255;
+ dest[destOffset + 1] = Math.sqrt(g) * 255;
+ dest[destOffset + 2] = Math.sqrt(b) * 255;
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ this.#toRgb(src, srcOffset, false, dest, destOffset);
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ const maxVal = (1 << bits) - 1;
+ for (let i = 0; i < count; i++) {
+ this.#toRgb(src, srcOffset, maxVal, dest, destOffset);
+ srcOffset += 3;
+ destOffset += 3 + alpha01;
+ }
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength * (3 + alpha01) / 3 | 0;
+ }
+ isDefaultDecode(decode, bpc) {
+ return true;
+ }
+ get usesZeroToOneRange() {
+ return shadow(this, "usesZeroToOneRange", false);
+ }
+}
+
+;// ./external/qcms/qcms_utils.js
+
+
+
+
+
+
+
+
+class QCMS {
+ static #memoryArray = null;
+ static _memory = null;
+ static _mustAddAlpha = false;
+ static _destBuffer = null;
+ static _destOffset = 0;
+ static _destLength = 0;
+ static _cssColor = "";
+ static _makeHexColor = null;
+ static get _memoryArray() {
+ const array = this.#memoryArray;
+ if (array?.byteLength) {
+ return array;
+ }
+ return this.#memoryArray = new Uint8Array(this._memory.buffer);
+ }
+}
+function copy_result(ptr, len) {
+ const {
+ _mustAddAlpha,
+ _destBuffer,
+ _destOffset,
+ _destLength,
+ _memoryArray
+ } = QCMS;
+ if (len === _destLength) {
+ _destBuffer.set(_memoryArray.subarray(ptr, ptr + len), _destOffset);
+ return;
+ }
+ if (_mustAddAlpha) {
+ for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {
+ _destBuffer[j] = _memoryArray[i];
+ _destBuffer[j + 1] = _memoryArray[i + 1];
+ _destBuffer[j + 2] = _memoryArray[i + 2];
+ _destBuffer[j + 3] = 255;
+ }
+ } else {
+ for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {
+ _destBuffer[j] = _memoryArray[i];
+ _destBuffer[j + 1] = _memoryArray[i + 1];
+ _destBuffer[j + 2] = _memoryArray[i + 2];
+ }
+ }
+}
+function copy_rgb(ptr) {
+ const {
+ _destBuffer,
+ _destOffset,
+ _memoryArray
+ } = QCMS;
+ _destBuffer[_destOffset] = _memoryArray[ptr];
+ _destBuffer[_destOffset + 1] = _memoryArray[ptr + 1];
+ _destBuffer[_destOffset + 2] = _memoryArray[ptr + 2];
+}
+function make_cssRGB(ptr) {
+ const {
+ _memoryArray
+ } = QCMS;
+ QCMS._cssColor = QCMS._makeHexColor(_memoryArray[ptr], _memoryArray[ptr + 1], _memoryArray[ptr + 2]);
+}
+
+;// ./external/qcms/qcms.js
+
+
+
+
+
+
+
+
+
+
+
+
+const DataType = Object.freeze({
+ RGB8: 0,
+ "0": "RGB8",
+ RGBA8: 1,
+ "1": "RGBA8",
+ BGRA8: 2,
+ "2": "BGRA8",
+ Gray8: 3,
+ "3": "Gray8",
+ GrayA8: 4,
+ "4": "GrayA8",
+ CMYK: 5,
+ "5": "CMYK"
+});
+const Intent = Object.freeze({
+ Perceptual: 0,
+ "0": "Perceptual",
+ RelativeColorimetric: 1,
+ "1": "RelativeColorimetric",
+ Saturation: 2,
+ "2": "Saturation",
+ AbsoluteColorimetric: 3,
+ "3": "AbsoluteColorimetric"
+});
+function qcms_convert_array(transformer, src) {
+ const ptr0 = passArray8ToWasm0(src, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ wasm.qcms_convert_array(transformer, ptr0, len0);
+}
+function qcms_convert_four(transformer, src1, src2, src3, src4, css) {
+ wasm.qcms_convert_four(transformer, src1, src2, src3, src4, css);
+}
+function qcms_convert_one(transformer, src, css) {
+ wasm.qcms_convert_one(transformer, src, css);
+}
+function qcms_convert_three(transformer, src1, src2, src3, css) {
+ wasm.qcms_convert_three(transformer, src1, src2, src3, css);
+}
+function qcms_drop_transformer(transformer) {
+ wasm.qcms_drop_transformer(transformer);
+}
+function qcms_transformer_from_memory(mem, in_type, intent) {
+ const ptr0 = passArray8ToWasm0(mem, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ret = wasm.qcms_transformer_from_memory(ptr0, len0, in_type, intent);
+ return ret >>> 0;
+}
+function __wbg_get_imports() {
+ const import0 = {
+ __proto__: null,
+ __wbg___wbindgen_throw_6b64449b9b9ed33c: function (arg0, arg1) {
+ throw new Error(getStringFromWasm0(arg0, arg1));
+ },
+ __wbg_copy_result_0d15f3bf9d9012ae: function (arg0, arg1) {
+ copy_result(arg0 >>> 0, arg1 >>> 0);
+ },
+ __wbg_copy_rgb_0106d9d9464fce43: function (arg0) {
+ copy_rgb(arg0 >>> 0);
+ },
+ __wbg_make_cssRGB_8e24b34f71f5363e: function (arg0) {
+ make_cssRGB(arg0 >>> 0);
+ },
+ __wbindgen_init_externref_table: function () {
+ const table = wasm.__wbindgen_externrefs;
+ const offset = table.grow(4);
+ table.set(0, undefined);
+ table.set(offset + 0, undefined);
+ table.set(offset + 1, null);
+ table.set(offset + 2, true);
+ table.set(offset + 3, false);
+ }
+ };
+ return {
+ __proto__: null,
+ "./qcms_bg.js": import0
+ };
+}
+function getStringFromWasm0(ptr, len) {
+ ptr = ptr >>> 0;
+ return decodeText(ptr, len);
+}
+let cachedUint8ArrayMemory0 = null;
+function getUint8ArrayMemory0() {
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
+ }
+ return cachedUint8ArrayMemory0;
+}
+function passArray8ToWasm0(arg, malloc) {
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
+ getUint8ArrayMemory0().set(arg, ptr / 1);
+ WASM_VECTOR_LEN = arg.length;
+ return ptr;
+}
+let cachedTextDecoder = new TextDecoder('utf-8', {
+ ignoreBOM: true,
+ fatal: true
+});
+cachedTextDecoder.decode();
+const MAX_SAFARI_DECODE_BYTES = 2146435072;
+let numBytesDecoded = 0;
+function decodeText(ptr, len) {
+ numBytesDecoded += len;
+ if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
+ cachedTextDecoder = new TextDecoder('utf-8', {
+ ignoreBOM: true,
+ fatal: true
+ });
+ cachedTextDecoder.decode();
+ numBytesDecoded = len;
+ }
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
+}
+let WASM_VECTOR_LEN = 0;
+let wasmModule, wasm;
+function __wbg_finalize_init(instance, module) {
+ wasm = instance.exports;
+ wasmModule = module;
+ cachedUint8ArrayMemory0 = null;
+ wasm.__wbindgen_start();
+ return wasm;
+}
+async function __wbg_load(module, imports) {
+ if (typeof Response === 'function' && module instanceof Response) {
+ if (typeof WebAssembly.instantiateStreaming === 'function') {
+ try {
+ return await WebAssembly.instantiateStreaming(module, imports);
+ } catch (e) {
+ const validResponse = module.ok && expectedResponseType(module.type);
+ if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {
+ console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
+ } else {
+ throw e;
+ }
+ }
+ }
+ const bytes = await module.arrayBuffer();
+ return await WebAssembly.instantiate(bytes, imports);
+ } else {
+ const instance = await WebAssembly.instantiate(module, imports);
+ if (instance instanceof WebAssembly.Instance) {
+ return {
+ instance,
+ module
+ };
+ } else {
+ return instance;
+ }
+ }
+ function expectedResponseType(type) {
+ switch (type) {
+ case 'basic':
+ case 'cors':
+ case 'default':
+ return true;
+ }
+ return false;
+ }
+}
+function initSync(module) {
+ if (wasm !== undefined) return wasm;
+ if (module !== undefined) {
+ if (Object.getPrototypeOf(module) === Object.prototype) {
+ ({
+ module
+ } = module);
+ } else {
+ console.warn('using deprecated parameters for `initSync()`; pass a single object instead');
+ }
+ }
+ const imports = __wbg_get_imports();
+ if (!(module instanceof WebAssembly.Module)) {
+ module = new WebAssembly.Module(module);
+ }
+ const instance = new WebAssembly.Instance(module, imports);
+ return __wbg_finalize_init(instance, module);
+}
+async function __wbg_init(module_or_path) {
+ if (wasm !== undefined) return wasm;
+ if (module_or_path !== undefined) {
+ if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
+ ({
+ module_or_path
+ } = module_or_path);
+ } else {
+ console.warn('using deprecated parameters for the initialization function; pass a single object instead');
+ }
+ }
+ const imports = __wbg_get_imports();
+ if (typeof module_or_path === 'string' || typeof Request === 'function' && module_or_path instanceof Request || typeof URL === 'function' && module_or_path instanceof URL) {
+ module_or_path = fetch(module_or_path);
+ }
+ const {
+ instance,
+ module
+ } = await __wbg_load(await module_or_path, imports);
+ return __wbg_finalize_init(instance, module);
+}
+
+;// ./src/core/icc_colorspace.js
+
+
+
+
+
+
+
+
+
+
+
+
+function fetchSync(url) {
+ const xhr = new XMLHttpRequest();
+ xhr.open("GET", url, false);
+ xhr.responseType = "arraybuffer";
+ xhr.send(null);
+ return xhr.response;
+}
+class IccColorSpace extends ColorSpace {
+ #transformer;
+ #convertPixel;
+ static #useWasm = true;
+ static #wasmUrl = null;
+ static #finalizer = null;
+ constructor(iccProfile, name, numComps) {
+ if (!IccColorSpace.isUsable) {
+ throw new Error("No ICC color space support");
+ }
+ super(name, numComps);
+ let inType;
+ switch (numComps) {
+ case 1:
+ inType = DataType.Gray8;
+ this.#convertPixel = (src, srcOffset, css) => qcms_convert_one(this.#transformer, src[srcOffset] * 255, css);
+ break;
+ case 3:
+ inType = DataType.RGB8;
+ this.#convertPixel = (src, srcOffset, css) => qcms_convert_three(this.#transformer, src[srcOffset] * 255, src[srcOffset + 1] * 255, src[srcOffset + 2] * 255, css);
+ break;
+ case 4:
+ inType = DataType.CMYK;
+ this.#convertPixel = (src, srcOffset, css) => qcms_convert_four(this.#transformer, src[srcOffset] * 255, src[srcOffset + 1] * 255, src[srcOffset + 2] * 255, src[srcOffset + 3] * 255, css);
+ break;
+ default:
+ throw new Error(`Unsupported number of components: ${numComps}`);
+ }
+ this.#transformer = qcms_transformer_from_memory(iccProfile, inType, Intent.Perceptual);
+ if (!this.#transformer) {
+ throw new Error("Failed to create ICC color space");
+ }
+ IccColorSpace.#finalizer ||= new FinalizationRegistry(transformer => {
+ qcms_drop_transformer(transformer);
+ });
+ IccColorSpace.#finalizer.register(this, this.#transformer);
+ }
+ getRgbHex(src, srcOffset) {
+ this.#convertPixel(src, srcOffset, true);
+ return QCMS._cssColor;
+ }
+ getRgbItem(src, srcOffset, dest, destOffset) {
+ QCMS._destBuffer = dest;
+ QCMS._destOffset = destOffset;
+ QCMS._destLength = 3;
+ this.#convertPixel(src, srcOffset, false);
+ QCMS._destBuffer = null;
+ }
+ getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {
+ src = src.subarray(srcOffset, srcOffset + count * this.numComps);
+ if (bits !== 8) {
+ const scale = 255 / ((1 << bits) - 1);
+ for (let i = 0, ii = src.length; i < ii; i++) {
+ src[i] *= scale;
+ }
+ }
+ QCMS._mustAddAlpha = alpha01 && dest.buffer === src.buffer;
+ QCMS._destBuffer = dest;
+ QCMS._destOffset = destOffset;
+ QCMS._destLength = count * (3 + alpha01);
+ qcms_convert_array(this.#transformer, src);
+ QCMS._mustAddAlpha = false;
+ QCMS._destBuffer = null;
+ }
+ getOutputLength(inputLength, alpha01) {
+ return inputLength / this.numComps * (3 + alpha01) | 0;
+ }
+ static setOptions({
+ useWasm,
+ useWorkerFetch,
+ wasmUrl
+ }) {
+ if (!useWorkerFetch) {
+ this.#useWasm = false;
+ return;
+ }
+ this.#useWasm = useWasm;
+ this.#wasmUrl = wasmUrl;
+ }
+ static get isUsable() {
+ let isUsable = false;
+ if (this.#useWasm) {
+ if (this.#wasmUrl) {
+ try {
+ this._module = initSync({
+ module: fetchSync(`${this.#wasmUrl}qcms_bg.wasm`)
+ });
+ isUsable = !!this._module;
+ QCMS._memory = this._module.memory;
+ QCMS._makeHexColor = Util.makeHexColor.bind(Util);
+ } catch (e) {
+ warn(`ICCBased color space: "${e}".`);
+ }
+ } else {
+ warn("No ICC color space support due to missing `wasmUrl` API option");
+ }
+ }
+ return shadow(this, "isUsable", isUsable);
+ }
+}
+class CmykICCBasedCS extends IccColorSpace {
+ static #iccUrl;
+ constructor() {
+ const iccProfile = new Uint8Array(fetchSync(`${CmykICCBasedCS.#iccUrl}CGATS001Compat-v2-micro.icc`));
+ super(iccProfile, "DeviceCMYK", 4);
+ }
+ static setOptions({
+ iccUrl
+ }) {
+ this.#iccUrl = iccUrl;
+ }
+ static get isUsable() {
+ let isUsable = false;
+ if (IccColorSpace.isUsable) {
+ if (this.#iccUrl) {
+ isUsable = true;
+ } else {
+ warn("No CMYK ICC profile support due to missing `iccUrl` API option");
+ }
+ }
+ return shadow(this, "isUsable", isUsable);
+ }
+}
+
+;// ./src/core/colorspace_utils.js
+
+
+
+
+
+
+class ColorSpaceUtils {
+ static parse({
+ cs,
+ xref,
+ resources = null,
+ pdfFunctionFactory,
+ globalColorSpaceCache,
+ localColorSpaceCache,
+ asyncIfNotCached = false
+ }) {
+ const options = {
+ xref,
+ resources,
+ pdfFunctionFactory,
+ globalColorSpaceCache,
+ localColorSpaceCache
+ };
+ let csName, csRef, parsedCS;
+ if (cs instanceof Ref) {
+ csRef = cs;
+ const cachedCS = globalColorSpaceCache.getByRef(csRef) || localColorSpaceCache.getByRef(csRef);
+ if (cachedCS) {
+ return cachedCS;
+ }
+ cs = xref.fetch(cs);
+ }
+ if (cs instanceof Name) {
+ csName = cs.name;
+ const cachedCS = localColorSpaceCache.getByName(csName);
+ if (cachedCS) {
+ return cachedCS;
+ }
+ }
+ try {
+ parsedCS = this.#parse(cs, options);
+ } catch (ex) {
+ if (asyncIfNotCached && !(ex instanceof MissingDataException)) {
+ return Promise.reject(ex);
+ }
+ throw ex;
+ }
+ if (csName || csRef) {
+ localColorSpaceCache.set(csName, csRef, parsedCS);
+ if (csRef) {
+ globalColorSpaceCache.set(null, csRef, parsedCS);
+ }
+ }
+ return asyncIfNotCached ? Promise.resolve(parsedCS) : parsedCS;
+ }
+ static #subParse(cs, options) {
+ const {
+ globalColorSpaceCache
+ } = options;
+ let csRef;
+ if (cs instanceof Ref) {
+ csRef = cs;
+ const cachedCS = globalColorSpaceCache.getByRef(csRef);
+ if (cachedCS) {
+ return cachedCS;
+ }
+ }
+ const parsedCS = this.#parse(cs, options);
+ if (csRef) {
+ globalColorSpaceCache.set(null, csRef, parsedCS);
+ }
+ return parsedCS;
+ }
+ static #parse(cs, options) {
+ const {
+ xref,
+ resources,
+ pdfFunctionFactory,
+ globalColorSpaceCache
+ } = options;
+ cs = xref.fetchIfRef(cs);
+ if (cs instanceof Name) {
+ switch (cs.name) {
+ case "G":
+ case "DeviceGray":
+ return this.gray;
+ case "RGB":
+ case "DeviceRGB":
+ return this.rgb;
+ case "DeviceRGBA":
+ return this.rgba;
+ case "CMYK":
+ case "DeviceCMYK":
+ return this.cmyk;
+ case "Pattern":
+ return new PatternCS(null);
+ default:
+ if (resources instanceof Dict) {
+ const colorSpaces = resources.get("ColorSpace");
+ if (colorSpaces instanceof Dict) {
+ const resourcesCS = colorSpaces.get(cs.name);
+ if (resourcesCS) {
+ if (resourcesCS instanceof Name) {
+ return this.#parse(resourcesCS, options);
+ }
+ cs = resourcesCS;
+ break;
+ }
+ }
+ }
+ warn(`Unrecognized ColorSpace: ${cs.name}`);
+ return this.gray;
+ }
+ }
+ if (Array.isArray(cs)) {
+ const mode = xref.fetchIfRef(cs[0]).name;
+ let params, numComps, baseCS, whitePoint, blackPoint, gamma;
+ switch (mode) {
+ case "G":
+ case "DeviceGray":
+ return this.gray;
+ case "RGB":
+ case "DeviceRGB":
+ return this.rgb;
+ case "CMYK":
+ case "DeviceCMYK":
+ return this.cmyk;
+ case "CalGray":
+ params = xref.fetchIfRef(cs[1]);
+ whitePoint = params.getArray("WhitePoint");
+ blackPoint = params.getArray("BlackPoint");
+ gamma = params.get("Gamma");
+ return new CalGrayCS(whitePoint, blackPoint, gamma);
+ case "CalRGB":
+ params = xref.fetchIfRef(cs[1]);
+ whitePoint = params.getArray("WhitePoint");
+ blackPoint = params.getArray("BlackPoint");
+ gamma = params.getArray("Gamma");
+ const matrix = params.getArray("Matrix");
+ return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);
+ case "ICCBased":
+ const isRef = cs[1] instanceof Ref;
+ if (isRef) {
+ const cachedCS = globalColorSpaceCache.getByRef(cs[1]);
+ if (cachedCS) {
+ return cachedCS;
+ }
+ }
+ const stream = xref.fetchIfRef(cs[1]);
+ const dict = stream.dict;
+ numComps = dict.get("N");
+ if (IccColorSpace.isUsable) {
+ try {
+ const iccCS = new IccColorSpace(stream.getBytes(), "ICCBased", numComps);
+ if (isRef) {
+ globalColorSpaceCache.set(null, cs[1], iccCS);
+ }
+ return iccCS;
+ } catch (ex) {
+ if (ex instanceof MissingDataException) {
+ throw ex;
+ }
+ warn(`ICCBased color space (${cs[1]}): "${ex}".`);
+ }
+ }
+ const altRaw = dict.getRaw("Alternate");
+ if (altRaw) {
+ const altCS = this.#subParse(altRaw, options);
+ if (altCS.numComps === numComps) {
+ return altCS;
+ }
+ warn("ICCBased color space: Ignoring incorrect /Alternate entry.");
+ }
+ if (numComps === 1) {
+ return this.gray;
+ } else if (numComps === 3) {
+ return this.rgb;
+ } else if (numComps === 4) {
+ return this.cmyk;
+ }
+ break;
+ case "Pattern":
+ baseCS = cs[1] || null;
+ if (baseCS) {
+ baseCS = this.#subParse(baseCS, options);
+ }
+ return new PatternCS(baseCS);
+ case "I":
+ case "Indexed":
+ baseCS = this.#subParse(cs[1], options);
+ const hiVal = MathClamp(xref.fetchIfRef(cs[2]), 0, 255);
+ const lookup = xref.fetchIfRef(cs[3]);
+ return new IndexedCS(baseCS, hiVal, lookup);
+ case "Separation":
+ case "DeviceN":
+ const name = xref.fetchIfRef(cs[1]);
+ numComps = Array.isArray(name) ? name.length : 1;
+ baseCS = this.#subParse(cs[2], options);
+ const tintFn = pdfFunctionFactory.create(cs[3]);
+ return new AlternateCS(numComps, baseCS, tintFn);
+ case "Lab":
+ params = xref.fetchIfRef(cs[1]);
+ whitePoint = params.getArray("WhitePoint");
+ blackPoint = params.getArray("BlackPoint");
+ const range = params.getArray("Range");
+ return new LabCS(whitePoint, blackPoint, range);
+ default:
+ warn(`Unimplemented ColorSpace object: ${mode}`);
+ return this.gray;
+ }
+ }
+ warn(`Unrecognized ColorSpace object: ${cs}`);
+ return this.gray;
+ }
+ static get gray() {
+ return shadow(this, "gray", new DeviceGrayCS());
+ }
+ static get rgb() {
+ return shadow(this, "rgb", new DeviceRgbCS());
+ }
+ static get rgba() {
+ return shadow(this, "rgba", new DeviceRgbaCS());
+ }
+ static get cmyk() {
+ if (CmykICCBasedCS.isUsable) {
+ try {
+ return shadow(this, "cmyk", new CmykICCBasedCS());
+ } catch {
+ warn("CMYK fallback: DeviceCMYK");
+ }
+ }
+ return shadow(this, "cmyk", new DeviceCmykCS());
+ }
+}
+
+;// ./src/shared/image_utils.js
+/* unused harmony import specifier */ var image_utils_ImageKind;
+/* unused harmony import specifier */ var image_utils_FeatureTest;
+
+
+
+
+
+function convertToRGBA(params) {
+ switch (params.kind) {
+ case image_utils_ImageKind.GRAYSCALE_1BPP:
+ return convertBlackAndWhiteToRGBA(params);
+ case image_utils_ImageKind.RGB_24BPP:
+ return convertRGBToRGBA(params);
+ }
+ return null;
+}
+function convertBlackAndWhiteToRGBA({
+ src,
+ srcPos = 0,
+ dest,
+ width,
+ height,
+ nonBlackColor = 0xffffffff,
+ inverseDecode = false
+}) {
+ const black = image_utils_FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;
+ const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];
+ const widthInSource = width >> 3;
+ const widthRemainder = width & 7;
+ const xorMask = zeroMapping ^ oneMapping;
+ const srcLength = src.length;
+ dest = new Uint32Array(dest.buffer);
+ let destPos = 0;
+ for (let i = 0; i < height; ++i) {
+ for (const max = srcPos + widthInSource; srcPos < max; ++srcPos, destPos += 8) {
+ const elem = src[srcPos];
+ dest[destPos] = zeroMapping ^ -(elem >> 7 & 1) & xorMask;
+ dest[destPos + 1] = zeroMapping ^ -(elem >> 6 & 1) & xorMask;
+ dest[destPos + 2] = zeroMapping ^ -(elem >> 5 & 1) & xorMask;
+ dest[destPos + 3] = zeroMapping ^ -(elem >> 4 & 1) & xorMask;
+ dest[destPos + 4] = zeroMapping ^ -(elem >> 3 & 1) & xorMask;
+ dest[destPos + 5] = zeroMapping ^ -(elem >> 2 & 1) & xorMask;
+ dest[destPos + 6] = zeroMapping ^ -(elem >> 1 & 1) & xorMask;
+ dest[destPos + 7] = zeroMapping ^ -(elem & 1) & xorMask;
+ }
+ if (widthRemainder === 0) {
+ continue;
+ }
+ const elem = srcPos < srcLength ? src[srcPos++] : 255;
+ for (let j = 0; j < widthRemainder; ++j, ++destPos) {
+ dest[destPos] = zeroMapping ^ -(elem >> 7 - j & 1) & xorMask;
+ }
+ }
+ return {
+ srcPos,
+ destPos
+ };
+}
+function convertRGBToRGBA({
+ src,
+ srcPos = 0,
+ dest,
+ destPos = 0,
+ width,
+ height
+}) {
+ let i = 0;
+ const len = width * height * 3;
+ const len32 = len >> 2;
+ const src32 = new Uint32Array(src.buffer, srcPos, len32);
+ const alphaMask = image_utils_FeatureTest.isLittleEndian ? 0xff000000 : 0xff;
+ if (image_utils_FeatureTest.isLittleEndian) {
+ for (; i < len32 - 2; i += 3, destPos += 4) {
+ const s1 = src32[i],
+ s2 = src32[i + 1],
+ s3 = src32[i + 2];
+ dest[destPos] = s1 | alphaMask;
+ dest[destPos + 1] = s1 >>> 24 | s2 << 8 | alphaMask;
+ dest[destPos + 2] = s2 >>> 16 | s3 << 16 | alphaMask;
+ dest[destPos + 3] = s3 >>> 8 | alphaMask;
+ }
+ for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {
+ dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | alphaMask;
+ }
+ } else {
+ for (; i < len32 - 2; i += 3, destPos += 4) {
+ const s1 = src32[i],
+ s2 = src32[i + 1],
+ s3 = src32[i + 2];
+ dest[destPos] = s1 | alphaMask;
+ dest[destPos + 1] = s1 << 24 | s2 >>> 8 | alphaMask;
+ dest[destPos + 2] = s2 << 16 | s3 >>> 16 | alphaMask;
+ dest[destPos + 3] = s3 << 8 | alphaMask;
+ }
+ for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {
+ dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | alphaMask;
+ }
+ }
+ return {
+ srcPos: srcPos + len,
+ destPos
+ };
+}
+function grayToRGBA(src, dest) {
+ if (FeatureTest.isLittleEndian) {
+ for (let i = 0, ii = src.length; i < ii; i++) {
+ dest[i] = src[i] * 0x10101 | 0xff000000;
+ }
+ } else {
+ for (let i = 0, ii = src.length; i < ii; i++) {
+ dest[i] = src[i] * 0x1010100 | 0x000000ff;
+ }
+ }
+}
+
+;// ./src/core/jpg.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+class JpegError extends BaseException {
+ constructor(msg) {
+ super(msg, "JpegError");
+ }
+}
+class DNLMarkerError extends BaseException {
+ constructor(message, scanLines) {
+ super(message, "DNLMarkerError");
+ this.scanLines = scanLines;
+ }
+}
+class EOIMarkerError extends BaseException {
+ constructor(msg) {
+ super(msg, "EOIMarkerError");
+ }
+}
+const dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);
+const dctCos1 = 4017;
+const dctSin1 = 799;
+const dctCos3 = 3406;
+const dctSin3 = 2276;
+const dctCos6 = 1567;
+const dctSin6 = 3784;
+const dctSqrt2 = 5793;
+const dctSqrt1d2 = 2896;
+function buildHuffmanTable(codeLengths, values) {
+ let k = 0,
+ i,
+ j,
+ length = 16;
+ while (length > 0 && !codeLengths[length - 1]) {
+ length--;
+ }
+ const code = [{
+ children: [],
+ index: 0
+ }];
+ let p = code[0],
+ q;
+ for (i = 0; i < length; i++) {
+ for (j = 0; j < codeLengths[i]; j++) {
+ p = code.pop();
+ p.children[p.index] = values[k];
+ while (p.index > 0) {
+ p = code.pop();
+ }
+ p.index++;
+ code.push(p);
+ while (code.length <= i) {
+ code.push(q = {
+ children: [],
+ index: 0
+ });
+ p.children[p.index] = q.children;
+ p = q;
+ }
+ k++;
+ }
+ if (i + 1 < length) {
+ code.push(q = {
+ children: [],
+ index: 0
+ });
+ p.children[p.index] = q.children;
+ p = q;
+ }
+ }
+ return code[0].children;
+}
+function getBlockBufferOffset(component, row, col) {
+ return 64 * ((component.blocksPerLine + 1) * row + col);
+}
+function decodeScan(data, view, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive, parseDNLMarker = false) {
+ const mcusPerLine = frame.mcusPerLine;
+ const progressive = frame.progressive;
+ const startOffset = offset;
+ let bitsData = 0,
+ bitsCount = 0;
+ function readBit() {
+ if (bitsCount > 0) {
+ bitsCount--;
+ return bitsData >> bitsCount & 1;
+ }
+ bitsData = data[offset++];
+ if (bitsData === 0xff) {
+ const nextByte = data[offset++];
+ if (nextByte) {
+ if (nextByte === 0xdc && parseDNLMarker) {
+ offset += 2;
+ const scanLines = view.getUint16(offset);
+ offset += 2;
+ if (scanLines > 0 && scanLines !== frame.scanLines) {
+ throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data", scanLines);
+ }
+ } else if (nextByte === 0xd9) {
+ if (parseDNLMarker) {
+ const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);
+ if (maybeScanLines > 0 && Math.round(frame.scanLines / maybeScanLines) >= 5) {
+ throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, " + "possibly caused by incorrect `scanLines` parameter", maybeScanLines);
+ }
+ }
+ throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data");
+ }
+ throw new JpegError(`unexpected marker ${(bitsData << 8 | nextByte).toString(16)}`);
+ }
+ }
+ bitsCount = 7;
+ return bitsData >>> 7;
+ }
+ function decodeHuffman(tree) {
+ let node = tree;
+ while (true) {
+ node = node[readBit()];
+ switch (typeof node) {
+ case "number":
+ return node;
+ case "object":
+ continue;
+ }
+ throw new JpegError("invalid huffman sequence");
+ }
+ }
+ function receive(length) {
+ let n = 0;
+ while (length > 0) {
+ n = n << 1 | readBit();
+ length--;
+ }
+ return n;
+ }
+ function receiveAndExtend(length) {
+ if (length === 1) {
+ return readBit() === 1 ? 1 : -1;
+ }
+ const n = receive(length);
+ if (n >= 1 << length - 1) {
+ return n;
+ }
+ return n + (-1 << length) + 1;
+ }
+ function decodeBaseline(component, blockOffset) {
+ const t = decodeHuffman(component.huffmanTableDC);
+ const diff = t === 0 ? 0 : receiveAndExtend(t);
+ component.blockData[blockOffset] = component.pred += diff;
+ let k = 1;
+ while (k < 64) {
+ const rs = decodeHuffman(component.huffmanTableAC);
+ const s = rs & 15,
+ r = rs >> 4;
+ if (s === 0) {
+ if (r < 15) {
+ break;
+ }
+ k += 16;
+ continue;
+ }
+ k += r;
+ const z = dctZigZag[k];
+ component.blockData[blockOffset + z] = receiveAndExtend(s);
+ k++;
+ }
+ }
+ function decodeDCFirst(component, blockOffset) {
+ const t = decodeHuffman(component.huffmanTableDC);
+ const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;
+ component.blockData[blockOffset] = component.pred += diff;
+ }
+ function decodeDCSuccessive(component, blockOffset) {
+ component.blockData[blockOffset] |= readBit() << successive;
+ }
+ let eobrun = 0;
+ function decodeACFirst(component, blockOffset) {
+ if (eobrun > 0) {
+ eobrun--;
+ return;
+ }
+ let k = spectralStart;
+ const e = spectralEnd;
+ while (k <= e) {
+ const rs = decodeHuffman(component.huffmanTableAC);
+ const s = rs & 15,
+ r = rs >> 4;
+ if (s === 0) {
+ if (r < 15) {
+ eobrun = receive(r) + (1 << r) - 1;
+ break;
+ }
+ k += 16;
+ continue;
+ }
+ k += r;
+ const z = dctZigZag[k];
+ component.blockData[blockOffset + z] = receiveAndExtend(s) * (1 << successive);
+ k++;
+ }
+ }
+ let successiveACState = 0,
+ successiveACNextValue;
+ function decodeACSuccessive(component, blockOffset) {
+ let k = spectralStart;
+ const e = spectralEnd;
+ let r = 0;
+ let s;
+ let rs;
+ while (k <= e) {
+ const offsetZ = blockOffset + dctZigZag[k];
+ const sign = component.blockData[offsetZ] < 0 ? -1 : 1;
+ switch (successiveACState) {
+ case 0:
+ rs = decodeHuffman(component.huffmanTableAC);
+ s = rs & 15;
+ r = rs >> 4;
+ if (s === 0) {
+ if (r < 15) {
+ eobrun = receive(r) + (1 << r);
+ successiveACState = 4;
+ } else {
+ r = 16;
+ successiveACState = 1;
+ }
+ } else {
+ if (s !== 1) {
+ throw new JpegError("invalid ACn encoding");
+ }
+ successiveACNextValue = receiveAndExtend(s);
+ successiveACState = r ? 2 : 3;
+ }
+ continue;
+ case 1:
+ case 2:
+ if (component.blockData[offsetZ]) {
+ component.blockData[offsetZ] += sign * (readBit() << successive);
+ } else {
+ r--;
+ if (r === 0) {
+ successiveACState = successiveACState === 2 ? 3 : 0;
+ }
+ }
+ break;
+ case 3:
+ if (component.blockData[offsetZ]) {
+ component.blockData[offsetZ] += sign * (readBit() << successive);
+ } else {
+ component.blockData[offsetZ] = successiveACNextValue << successive;
+ successiveACState = 0;
+ }
+ break;
+ case 4:
+ if (component.blockData[offsetZ]) {
+ component.blockData[offsetZ] += sign * (readBit() << successive);
+ }
+ break;
+ }
+ k++;
+ }
+ if (successiveACState === 4) {
+ eobrun--;
+ if (eobrun === 0) {
+ successiveACState = 0;
+ }
+ }
+ }
+ let blockRow = 0;
+ function decodeMcu(component, decode, mcu, row, col) {
+ const mcuRow = mcu / mcusPerLine | 0;
+ const mcuCol = mcu % mcusPerLine;
+ blockRow = mcuRow * component.v + row;
+ const blockCol = mcuCol * component.h + col;
+ const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);
+ decode(component, blockOffset);
+ }
+ function decodeBlock(component, decode, mcu) {
+ blockRow = mcu / component.blocksPerLine | 0;
+ const blockCol = mcu % component.blocksPerLine;
+ const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);
+ decode(component, blockOffset);
+ }
+ const componentsLength = components.length;
+ let component, i, j, k, n;
+ let decodeFn;
+ if (progressive) {
+ if (spectralStart === 0) {
+ decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;
+ } else {
+ decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;
+ }
+ } else {
+ decodeFn = decodeBaseline;
+ }
+ let mcu = 0,
+ fileMarker;
+ const mcuExpected = componentsLength === 1 ? components[0].blocksPerLine * components[0].blocksPerColumn : mcusPerLine * frame.mcusPerColumn;
+ let h, v;
+ while (mcu <= mcuExpected) {
+ const mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;
+ if (mcuToRead > 0) {
+ for (i = 0; i < componentsLength; i++) {
+ components[i].pred = 0;
+ }
+ eobrun = 0;
+ if (componentsLength === 1) {
+ component = components[0];
+ for (n = 0; n < mcuToRead; n++) {
+ decodeBlock(component, decodeFn, mcu);
+ mcu++;
+ }
+ } else {
+ for (n = 0; n < mcuToRead; n++) {
+ for (i = 0; i < componentsLength; i++) {
+ component = components[i];
+ h = component.h;
+ v = component.v;
+ for (j = 0; j < v; j++) {
+ for (k = 0; k < h; k++) {
+ decodeMcu(component, decodeFn, mcu, j, k);
+ }
+ }
+ }
+ mcu++;
+ }
+ }
+ }
+ bitsCount = 0;
+ fileMarker = findNextFileMarker(data, view, offset);
+ if (!fileMarker) {
+ break;
+ }
+ if (fileMarker.invalid) {
+ const partialMsg = mcuToRead > 0 ? "unexpected" : "excessive";
+ warn(`decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`);
+ offset = fileMarker.offset;
+ }
+ if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {
+ offset += 2;
+ } else {
+ break;
+ }
+ }
+ return offset - startOffset;
+}
+function quantizeAndInverse(component, blockBufferOffset, p) {
+ const qt = component.quantizationTable,
+ blockData = component.blockData;
+ let v0, v1, v2, v3, v4, v5, v6, v7;
+ let p0, p1, p2, p3, p4, p5, p6, p7;
+ let t;
+ if (!qt) {
+ throw new JpegError("missing required Quantization Table.");
+ }
+ for (let row = 0; row < 64; row += 8) {
+ p0 = blockData[blockBufferOffset + row];
+ p1 = blockData[blockBufferOffset + row + 1];
+ p2 = blockData[blockBufferOffset + row + 2];
+ p3 = blockData[blockBufferOffset + row + 3];
+ p4 = blockData[blockBufferOffset + row + 4];
+ p5 = blockData[blockBufferOffset + row + 5];
+ p6 = blockData[blockBufferOffset + row + 6];
+ p7 = blockData[blockBufferOffset + row + 7];
+ p0 *= qt[row];
+ if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {
+ t = dctSqrt2 * p0 + 512 >> 10;
+ p[row] = t;
+ p[row + 1] = t;
+ p[row + 2] = t;
+ p[row + 3] = t;
+ p[row + 4] = t;
+ p[row + 5] = t;
+ p[row + 6] = t;
+ p[row + 7] = t;
+ continue;
+ }
+ p1 *= qt[row + 1];
+ p2 *= qt[row + 2];
+ p3 *= qt[row + 3];
+ p4 *= qt[row + 4];
+ p5 *= qt[row + 5];
+ p6 *= qt[row + 6];
+ p7 *= qt[row + 7];
+ v0 = dctSqrt2 * p0 + 128 >> 8;
+ v1 = dctSqrt2 * p4 + 128 >> 8;
+ v2 = p2;
+ v3 = p6;
+ v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;
+ v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;
+ v5 = p3 << 4;
+ v6 = p5 << 4;
+ v0 = v0 + v1 + 1 >> 1;
+ v1 = v0 - v1;
+ t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;
+ v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;
+ v3 = t;
+ v4 = v4 + v6 + 1 >> 1;
+ v6 = v4 - v6;
+ v7 = v7 + v5 + 1 >> 1;
+ v5 = v7 - v5;
+ v0 = v0 + v3 + 1 >> 1;
+ v3 = v0 - v3;
+ v1 = v1 + v2 + 1 >> 1;
+ v2 = v1 - v2;
+ t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;
+ v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;
+ v7 = t;
+ t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;
+ v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;
+ v6 = t;
+ p[row] = v0 + v7;
+ p[row + 7] = v0 - v7;
+ p[row + 1] = v1 + v6;
+ p[row + 6] = v1 - v6;
+ p[row + 2] = v2 + v5;
+ p[row + 5] = v2 - v5;
+ p[row + 3] = v3 + v4;
+ p[row + 4] = v3 - v4;
+ }
+ for (let col = 0; col < 8; ++col) {
+ p0 = p[col];
+ p1 = p[col + 8];
+ p2 = p[col + 16];
+ p3 = p[col + 24];
+ p4 = p[col + 32];
+ p5 = p[col + 40];
+ p6 = p[col + 48];
+ p7 = p[col + 56];
+ if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {
+ t = dctSqrt2 * p0 + 8192 >> 14;
+ if (t < -2040) {
+ t = 0;
+ } else if (t >= 2024) {
+ t = 255;
+ } else {
+ t = t + 2056 >> 4;
+ }
+ blockData[blockBufferOffset + col] = t;
+ blockData[blockBufferOffset + col + 8] = t;
+ blockData[blockBufferOffset + col + 16] = t;
+ blockData[blockBufferOffset + col + 24] = t;
+ blockData[blockBufferOffset + col + 32] = t;
+ blockData[blockBufferOffset + col + 40] = t;
+ blockData[blockBufferOffset + col + 48] = t;
+ blockData[blockBufferOffset + col + 56] = t;
+ continue;
+ }
+ v0 = dctSqrt2 * p0 + 2048 >> 12;
+ v1 = dctSqrt2 * p4 + 2048 >> 12;
+ v2 = p2;
+ v3 = p6;
+ v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;
+ v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;
+ v5 = p3;
+ v6 = p5;
+ v0 = (v0 + v1 + 1 >> 1) + 4112;
+ v1 = v0 - v1;
+ t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;
+ v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;
+ v3 = t;
+ v4 = v4 + v6 + 1 >> 1;
+ v6 = v4 - v6;
+ v7 = v7 + v5 + 1 >> 1;
+ v5 = v7 - v5;
+ v0 = v0 + v3 + 1 >> 1;
+ v3 = v0 - v3;
+ v1 = v1 + v2 + 1 >> 1;
+ v2 = v1 - v2;
+ t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;
+ v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;
+ v7 = t;
+ t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;
+ v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;
+ v6 = t;
+ p0 = v0 + v7;
+ p7 = v0 - v7;
+ p1 = v1 + v6;
+ p6 = v1 - v6;
+ p2 = v2 + v5;
+ p5 = v2 - v5;
+ p3 = v3 + v4;
+ p4 = v3 - v4;
+ if (p0 < 16) {
+ p0 = 0;
+ } else if (p0 >= 4080) {
+ p0 = 255;
+ } else {
+ p0 >>= 4;
+ }
+ if (p1 < 16) {
+ p1 = 0;
+ } else if (p1 >= 4080) {
+ p1 = 255;
+ } else {
+ p1 >>= 4;
+ }
+ if (p2 < 16) {
+ p2 = 0;
+ } else if (p2 >= 4080) {
+ p2 = 255;
+ } else {
+ p2 >>= 4;
+ }
+ if (p3 < 16) {
+ p3 = 0;
+ } else if (p3 >= 4080) {
+ p3 = 255;
+ } else {
+ p3 >>= 4;
+ }
+ if (p4 < 16) {
+ p4 = 0;
+ } else if (p4 >= 4080) {
+ p4 = 255;
+ } else {
+ p4 >>= 4;
+ }
+ if (p5 < 16) {
+ p5 = 0;
+ } else if (p5 >= 4080) {
+ p5 = 255;
+ } else {
+ p5 >>= 4;
+ }
+ if (p6 < 16) {
+ p6 = 0;
+ } else if (p6 >= 4080) {
+ p6 = 255;
+ } else {
+ p6 >>= 4;
+ }
+ if (p7 < 16) {
+ p7 = 0;
+ } else if (p7 >= 4080) {
+ p7 = 255;
+ } else {
+ p7 >>= 4;
+ }
+ blockData[blockBufferOffset + col] = p0;
+ blockData[blockBufferOffset + col + 8] = p1;
+ blockData[blockBufferOffset + col + 16] = p2;
+ blockData[blockBufferOffset + col + 24] = p3;
+ blockData[blockBufferOffset + col + 32] = p4;
+ blockData[blockBufferOffset + col + 40] = p5;
+ blockData[blockBufferOffset + col + 48] = p6;
+ blockData[blockBufferOffset + col + 56] = p7;
+ }
+}
+function buildComponentData(frame, component) {
+ const blocksPerLine = component.blocksPerLine;
+ const blocksPerColumn = component.blocksPerColumn;
+ const computationBuffer = new Int16Array(64);
+ for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {
+ for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {
+ const offset = getBlockBufferOffset(component, blockRow, blockCol);
+ quantizeAndInverse(component, offset, computationBuffer);
+ }
+ }
+ return component.blockData;
+}
+function findNextFileMarker(data, view, currentPos, startPos = currentPos) {
+ const maxPos = data.length - 1;
+ let newPos = startPos < currentPos ? startPos : currentPos;
+ if (currentPos >= maxPos) {
+ return null;
+ }
+ const currentMarker = view.getUint16(currentPos);
+ if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {
+ return {
+ invalid: null,
+ marker: currentMarker,
+ offset: currentPos
+ };
+ }
+ let newMarker = view.getUint16(newPos);
+ while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {
+ if (++newPos >= maxPos) {
+ return null;
+ }
+ newMarker = view.getUint16(newPos);
+ }
+ return {
+ invalid: currentMarker.toString(16),
+ marker: newMarker,
+ offset: newPos
+ };
+}
+function prepareComponents(frame) {
+ const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);
+ const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);
+ for (const component of frame.components) {
+ const blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);
+ const blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);
+ const blocksPerLineForMcu = mcusPerLine * component.h;
+ const blocksPerColumnForMcu = mcusPerColumn * component.v;
+ const blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);
+ component.blockData = new Int16Array(blocksBufferSize);
+ component.blocksPerLine = blocksPerLine;
+ component.blocksPerColumn = blocksPerColumn;
+ }
+ frame.mcusPerLine = mcusPerLine;
+ frame.mcusPerColumn = mcusPerColumn;
+}
+function readDataBlock(data, view, offset) {
+ const length = view.getUint16(offset);
+ offset += 2;
+ let endOffset = offset + length - 2;
+ const fileMarker = findNextFileMarker(data, view, endOffset, offset);
+ if (fileMarker?.invalid) {
+ warn("readDataBlock - incorrect length, current marker is: " + fileMarker.invalid);
+ endOffset = fileMarker.offset;
+ }
+ const array = data.subarray(offset, endOffset);
+ return {
+ appData: array,
+ oldOffset: offset,
+ newOffset: offset + array.length
+ };
+}
+function skipData(data, view, offset) {
+ const length = view.getUint16(offset);
+ offset += 2;
+ const endOffset = offset + length - 2;
+ const fileMarker = findNextFileMarker(data, view, endOffset, offset);
+ if (fileMarker?.invalid) {
+ return fileMarker.offset;
+ }
+ return endOffset;
+}
+class JpegImage {
+ constructor({
+ decodeTransform = null,
+ colorTransform = -1
+ } = {}) {
+ this._decodeTransform = decodeTransform;
+ this._colorTransform = colorTransform;
+ }
+ static canUseImageDecoder(data, colorTransform = -1) {
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
+ let exifOffsets = null;
+ let offset = 0;
+ let numComponents = null;
+ let fileMarker = view.getUint16(offset);
+ offset += 2;
+ if (fileMarker !== 0xffd8) {
+ throw new JpegError("SOI not found");
+ }
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ markerLoop: while (fileMarker !== 0xffd9) {
+ switch (fileMarker) {
+ case 0xffe1:
+ const {
+ appData,
+ oldOffset,
+ newOffset
+ } = readDataBlock(data, view, offset);
+ offset = newOffset;
+ if (appData[0] === 0x45 && appData[1] === 0x78 && appData[2] === 0x69 && appData[3] === 0x66 && appData[4] === 0 && appData[5] === 0) {
+ if (exifOffsets) {
+ throw new JpegError("Duplicate EXIF-blocks found.");
+ }
+ exifOffsets = {
+ exifStart: oldOffset + 6,
+ exifEnd: newOffset
+ };
+ }
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ continue;
+ case 0xffc0:
+ case 0xffc1:
+ case 0xffc2:
+ numComponents = data[offset + (2 + 1 + 2 + 2)];
+ break markerLoop;
+ case 0xffff:
+ if (data[offset] !== 0xff) {
+ offset--;
+ }
+ break;
+ }
+ offset = skipData(data, view, offset);
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ }
+ if (numComponents === 4) {
+ return null;
+ }
+ if (numComponents === 3 && colorTransform === 0) {
+ return null;
+ }
+ return exifOffsets || {};
+ }
+ parse(data, {
+ dnlScanLines = null
+ } = {}) {
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
+ const maxOffset = data.length - 1;
+ let offset = 0;
+ let jfif = null;
+ let adobe = null;
+ let frame, resetInterval;
+ let numSOSMarkers = 0;
+ const quantizationTables = [];
+ const huffmanTablesAC = [],
+ huffmanTablesDC = [];
+ let fileMarker = view.getUint16(offset);
+ offset += 2;
+ if (fileMarker !== 0xffd8) {
+ throw new JpegError("SOI not found");
+ }
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ markerLoop: while (fileMarker !== 0xffd9) {
+ let i, j, l;
+ switch (fileMarker) {
+ case 0xffe0:
+ case 0xffe1:
+ case 0xffe2:
+ case 0xffe3:
+ case 0xffe4:
+ case 0xffe5:
+ case 0xffe6:
+ case 0xffe7:
+ case 0xffe8:
+ case 0xffe9:
+ case 0xffea:
+ case 0xffeb:
+ case 0xffec:
+ case 0xffed:
+ case 0xffee:
+ case 0xffef:
+ case 0xfffe:
+ const {
+ appData,
+ newOffset
+ } = readDataBlock(data, view, offset);
+ offset = newOffset;
+ if (fileMarker === 0xffe0) {
+ if (appData[0] === 0x4a && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {
+ jfif = {
+ version: {
+ major: appData[5],
+ minor: appData[6]
+ },
+ densityUnits: appData[7],
+ xDensity: appData[8] << 8 | appData[9],
+ yDensity: appData[10] << 8 | appData[11],
+ thumbWidth: appData[12],
+ thumbHeight: appData[13],
+ thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])
+ };
+ }
+ }
+ if (fileMarker === 0xffee) {
+ if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6f && appData[3] === 0x62 && appData[4] === 0x65) {
+ adobe = {
+ version: appData[5] << 8 | appData[6],
+ flags0: appData[7] << 8 | appData[8],
+ flags1: appData[9] << 8 | appData[10],
+ transformCode: appData[11]
+ };
+ }
+ }
+ break;
+ case 0xffdb:
+ const quantizationTablesLength = view.getUint16(offset);
+ offset += 2;
+ const quantizationTablesEnd = quantizationTablesLength + offset - 2;
+ let z;
+ while (offset < quantizationTablesEnd) {
+ const quantizationTableSpec = data[offset++];
+ const tableData = new Uint16Array(64);
+ if (quantizationTableSpec >> 4 === 0) {
+ for (j = 0; j < 64; j++) {
+ z = dctZigZag[j];
+ tableData[z] = data[offset++];
+ }
+ } else if (quantizationTableSpec >> 4 === 1) {
+ for (j = 0; j < 64; j++) {
+ z = dctZigZag[j];
+ tableData[z] = view.getUint16(offset);
+ offset += 2;
+ }
+ } else {
+ throw new JpegError("DQT - invalid table spec");
+ }
+ quantizationTables[quantizationTableSpec & 15] = tableData;
+ }
+ break;
+ case 0xffc0:
+ case 0xffc1:
+ case 0xffc2:
+ if (frame) {
+ throw new JpegError("Only single frame JPEGs supported");
+ }
+ offset += 2;
+ frame = {};
+ frame.extended = fileMarker === 0xffc1;
+ frame.progressive = fileMarker === 0xffc2;
+ frame.precision = data[offset++];
+ const sofScanLines = view.getUint16(offset);
+ offset += 2;
+ frame.scanLines = dnlScanLines || sofScanLines;
+ frame.samplesPerLine = view.getUint16(offset);
+ offset += 2;
+ frame.components = [];
+ frame.componentIds = {};
+ const componentsCount = data[offset++];
+ let maxH = 0,
+ maxV = 0;
+ for (i = 0; i < componentsCount; i++) {
+ const componentId = data[offset];
+ const h = data[offset + 1] >> 4;
+ const v = data[offset + 1] & 15;
+ if (maxH < h) {
+ maxH = h;
+ }
+ if (maxV < v) {
+ maxV = v;
+ }
+ const qId = data[offset + 2];
+ l = frame.components.push({
+ h,
+ v,
+ quantizationId: qId,
+ quantizationTable: null
+ });
+ frame.componentIds[componentId] = l - 1;
+ offset += 3;
+ }
+ frame.maxH = maxH;
+ frame.maxV = maxV;
+ prepareComponents(frame);
+ break;
+ case 0xffc4:
+ const huffmanLength = view.getUint16(offset);
+ offset += 2;
+ for (i = 2; i < huffmanLength;) {
+ const huffmanTableSpec = data[offset++];
+ const codeLengths = new Uint8Array(16);
+ let codeLengthSum = 0;
+ for (j = 0; j < 16; j++, offset++) {
+ codeLengthSum += codeLengths[j] = data[offset];
+ }
+ const huffmanValues = new Uint8Array(codeLengthSum);
+ for (j = 0; j < codeLengthSum; j++, offset++) {
+ huffmanValues[j] = data[offset];
+ }
+ i += 17 + codeLengthSum;
+ (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);
+ }
+ break;
+ case 0xffdd:
+ offset += 2;
+ resetInterval = view.getUint16(offset);
+ offset += 2;
+ break;
+ case 0xffda:
+ const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;
+ offset += 2;
+ const selectorsCount = data[offset++],
+ components = [];
+ for (i = 0; i < selectorsCount; i++) {
+ const index = data[offset++];
+ const componentIndex = frame.componentIds[index];
+ const component = frame.components[componentIndex];
+ component.index = index;
+ const tableSpec = data[offset++];
+ component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];
+ component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];
+ components.push(component);
+ }
+ const spectralStart = data[offset++],
+ spectralEnd = data[offset++],
+ successiveApproximation = data[offset++];
+ try {
+ const processed = decodeScan(data, view, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);
+ offset += processed;
+ } catch (ex) {
+ if (ex instanceof DNLMarkerError) {
+ warn(`${ex.message} -- attempting to re-parse the JPEG image.`);
+ return this.parse(data, {
+ dnlScanLines: ex.scanLines
+ });
+ } else if (ex instanceof EOIMarkerError) {
+ warn(`${ex.message} -- ignoring the rest of the image data.`);
+ break markerLoop;
+ }
+ throw ex;
+ }
+ break;
+ case 0xffdc:
+ offset += 4;
+ break;
+ case 0xffff:
+ if (data[offset] !== 0xff) {
+ offset--;
+ }
+ break;
+ default:
+ const nextFileMarker = findNextFileMarker(data, view, offset - 2, offset - 3);
+ if (nextFileMarker?.invalid) {
+ warn("JpegImage.parse - unexpected data, current marker is: " + nextFileMarker.invalid);
+ offset = nextFileMarker.offset;
+ break;
+ }
+ if (!nextFileMarker || offset >= maxOffset) {
+ warn("JpegImage.parse - reached the end of the image data " + "without finding an EOI marker (0xFFD9).");
+ break markerLoop;
+ }
+ throw new JpegError("JpegImage.parse - unknown marker: " + fileMarker.toString(16));
+ }
+ if (offset < maxOffset) {
+ fileMarker = view.getUint16(offset);
+ offset += 2;
+ } else {
+ fileMarker = 0;
+ }
+ }
+ if (!frame) {
+ throw new JpegError("JpegImage.parse - no frame data found.");
+ }
+ this.width = frame.samplesPerLine;
+ this.height = frame.scanLines;
+ this.jfif = jfif;
+ this.adobe = adobe;
+ this.components = [];
+ for (const component of frame.components) {
+ const quantizationTable = quantizationTables[component.quantizationId];
+ if (quantizationTable) {
+ component.quantizationTable = quantizationTable;
+ }
+ this.components.push({
+ index: component.index,
+ output: buildComponentData(frame, component),
+ scaleX: component.h / frame.maxH,
+ scaleY: component.v / frame.maxV,
+ blocksPerLine: component.blocksPerLine,
+ blocksPerColumn: component.blocksPerColumn
+ });
+ }
+ this.numComponents = this.components.length;
+ return undefined;
+ }
+ _getLinearizedBlockData(width, height, isSourcePDF = false) {
+ const scaleX = this.width / width,
+ scaleY = this.height / height;
+ let component, componentScaleX, componentScaleY, blocksPerScanline;
+ let x, y, i, j, k;
+ let index;
+ let offset = 0;
+ let output;
+ const numComponents = this.components.length;
+ const dataLength = width * height * numComponents;
+ const data = new Uint8ClampedArray(dataLength);
+ const xScaleBlockOffset = new Uint32Array(width);
+ const mask3LSB = 0xfffffff8;
+ let lastComponentScaleX;
+ for (i = 0; i < numComponents; i++) {
+ component = this.components[i];
+ componentScaleX = component.scaleX * scaleX;
+ componentScaleY = component.scaleY * scaleY;
+ offset = i;
+ output = component.output;
+ blocksPerScanline = component.blocksPerLine + 1 << 3;
+ if (componentScaleX !== lastComponentScaleX) {
+ for (x = 0; x < width; x++) {
+ j = 0 | x * componentScaleX;
+ xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;
+ }
+ lastComponentScaleX = componentScaleX;
+ }
+ for (y = 0; y < height; y++) {
+ j = 0 | y * componentScaleY;
+ index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;
+ for (x = 0; x < width; x++) {
+ data[offset] = output[index + xScaleBlockOffset[x]];
+ offset += numComponents;
+ }
+ }
+ }
+ let transform = this._decodeTransform;
+ if (!isSourcePDF && numComponents === 4 && !transform) {
+ transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);
+ }
+ if (transform) {
+ for (i = 0; i < dataLength;) {
+ for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {
+ data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];
+ }
+ }
+ }
+ return data;
+ }
+ get _isColorConversionNeeded() {
+ if (this.adobe) {
+ return !!this.adobe.transformCode;
+ }
+ if (this.numComponents === 3) {
+ if (this._colorTransform === 0) {
+ return false;
+ } else if (this.components[0].index === 0x52 && this.components[1].index === 0x47 && this.components[2].index === 0x42) {
+ return false;
+ }
+ return true;
+ }
+ if (this._colorTransform === 1) {
+ return true;
+ }
+ return false;
+ }
+ _convertYccToRgb(data) {
+ let Y, Cb, Cr;
+ for (let i = 0, length = data.length; i < length; i += 3) {
+ Y = data[i];
+ Cb = data[i + 1];
+ Cr = data[i + 2];
+ data[i] = Y - 179.456 + 1.402 * Cr;
+ data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;
+ data[i + 2] = Y - 226.816 + 1.772 * Cb;
+ }
+ return data;
+ }
+ _convertYccToRgba(data, out) {
+ for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) {
+ const Y = data[i];
+ const Cb = data[i + 1];
+ const Cr = data[i + 2];
+ out[j] = Y - 179.456 + 1.402 * Cr;
+ out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;
+ out[j + 2] = Y - 226.816 + 1.772 * Cb;
+ out[j + 3] = 255;
+ }
+ return out;
+ }
+ _convertYcckToRgb(data) {
+ this._convertYcckToCmyk(data);
+ return this._convertCmykToRgb(data);
+ }
+ _convertYcckToRgba(data) {
+ this._convertYcckToCmyk(data);
+ return this._convertCmykToRgba(data);
+ }
+ _convertYcckToCmyk(data) {
+ let Y, Cb, Cr;
+ for (let i = 0, length = data.length; i < length; i += 4) {
+ Y = data[i];
+ Cb = data[i + 1];
+ Cr = data[i + 2];
+ data[i] = 434.456 - Y - 1.402 * Cr;
+ data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;
+ data[i + 2] = 481.816 - Y - 1.772 * Cb;
+ }
+ return data;
+ }
+ _convertCmykToRgb(data) {
+ const count = data.length / 4;
+ ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, count, data, 0, 8, 0);
+ return data.subarray(0, count * 3);
+ }
+ _convertCmykToRgba(data) {
+ ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, data.length / 4, data, 0, 8, 1);
+ if (ColorSpaceUtils.cmyk instanceof DeviceCmykCS) {
+ for (let i = 3, ii = data.length; i < ii; i += 4) {
+ data[i] = 255;
+ }
+ }
+ return data;
+ }
+ getData({
+ width,
+ height,
+ forceRGBA = false,
+ forceRGB = false,
+ isSourcePDF = false
+ }) {
+ if (this.numComponents > 4) {
+ throw new JpegError("Unsupported color mode");
+ }
+ const data = this._getLinearizedBlockData(width, height, isSourcePDF);
+ if (this.numComponents === 1 && (forceRGBA || forceRGB)) {
+ const len = data.length * (forceRGBA ? 4 : 3);
+ const rgbaData = new Uint8ClampedArray(len);
+ let offset = 0;
+ if (forceRGBA) {
+ grayToRGBA(data, new Uint32Array(rgbaData.buffer));
+ } else {
+ for (const grayColor of data) {
+ rgbaData[offset++] = grayColor;
+ rgbaData[offset++] = grayColor;
+ rgbaData[offset++] = grayColor;
+ }
+ }
+ return rgbaData;
+ } else if (this.numComponents === 3 && this._isColorConversionNeeded) {
+ if (forceRGBA) {
+ const rgbaData = new Uint8ClampedArray(data.length / 3 * 4);
+ return this._convertYccToRgba(data, rgbaData);
+ }
+ return this._convertYccToRgb(data);
+ } else if (this.numComponents === 4) {
+ if (this._isColorConversionNeeded) {
+ if (forceRGBA) {
+ return this._convertYcckToRgba(data);
+ }
+ if (forceRGB) {
+ return this._convertYcckToRgb(data);
+ }
+ return this._convertYcckToCmyk(data);
+ } else if (forceRGBA) {
+ return this._convertCmykToRgba(data);
+ } else if (forceRGB) {
+ return this._convertCmykToRgb(data);
+ }
+ }
+ return data;
+ }
+}
+
+;// ./external/openjpeg/openjpeg.js
+
+
+
+
+
+
+
+
+
+
+
+
+async function OpenJPEG(moduleArg = {}) {
+ var moduleRtn;
+ var Module = moduleArg;
+ var ENVIRONMENT_IS_WEB = true;
+ var ENVIRONMENT_IS_WORKER = false;
+ var arguments_ = [];
+ var thisProgram = "./this.program";
+ var quit_ = (status, toThrow) => {
+ throw toThrow;
+ };
+ var _scriptName = import.meta.url;
+ var scriptDirectory = "";
+ var readAsync, readBinary;
+ if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
+ try {
+ scriptDirectory = new URL(".", _scriptName).href;
+ } catch {}
+ readAsync = async url => {
+ var response = await fetch(url, {
+ credentials: "same-origin"
+ });
+ if (response.ok) {
+ return response.arrayBuffer();
+ }
+ throw new Error(response.status + " : " + response.url);
+ };
+ } else {}
+ var out = console.log.bind(console);
+ var err = console.error.bind(console);
+ var wasmBinary;
+ var ABORT = false;
+ var EXITSTATUS;
+ class EmscriptenEH {}
+ class EmscriptenSjLj extends EmscriptenEH {}
+ var readyPromiseResolve, readyPromiseReject;
+ var runtimeInitialized = false;
+ function updateMemoryViews() {
+ var b = wasmMemory.buffer;
+ HEAP8 = new Int8Array(b);
+ HEAP16 = new Int16Array(b);
+ HEAPU8 = new Uint8Array(b);
+ HEAPU16 = new Uint16Array(b);
+ HEAP32 = new Int32Array(b);
+ HEAPU32 = new Uint32Array(b);
+ HEAPF32 = new Float32Array(b);
+ HEAPF64 = new Float64Array(b);
+ HEAP64 = new BigInt64Array(b);
+ HEAPU64 = new BigUint64Array(b);
+ }
+ function preRun() {
+ if (Module["preRun"]) {
+ if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]];
+ while (Module["preRun"].length) {
+ addOnPreRun(Module["preRun"].shift());
+ }
+ }
+ callRuntimeCallbacks(onPreRuns);
+ }
+ function initRuntime() {
+ runtimeInitialized = true;
+ wasmExports["s"]();
+ }
+ function postRun() {
+ if (Module["postRun"]) {
+ if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]];
+ while (Module["postRun"].length) {
+ addOnPostRun(Module["postRun"].shift());
+ }
+ }
+ callRuntimeCallbacks(onPostRuns);
+ }
+ function abort(what) {
+ Module["onAbort"]?.(what);
+ what = `Aborted(${what})`;
+ err(what);
+ ABORT = true;
+ what += ". Build with -sASSERTIONS for more info.";
+ var e = new WebAssembly.RuntimeError(what);
+ readyPromiseReject?.(e);
+ throw e;
+ }
+ var wasmBinaryFile;
+ function getWasmImports() {
+ var imports = {
+ a: wasmImports
+ };
+ return imports;
+ }
+ async function createWasm() {
+ function receiveInstance(instance, module) {
+ wasmExports = instance.exports;
+ assignWasmExports(wasmExports);
+ updateMemoryViews();
+ return wasmExports;
+ }
+ var info = getWasmImports();
+ return new Promise((resolve, reject) => {
+ Module["instantiateWasm"](info, (inst, mod) => {
+ resolve(receiveInstance(inst, mod));
+ });
+ });
+ }
+ class ExitStatus {
+ name = "ExitStatus";
+ constructor(status) {
+ this.message = `Program terminated with exit(${status})`;
+ this.status = status;
+ }
+ }
+ var HEAP16;
+ var HEAP32;
+ var HEAP64;
+ var HEAP8;
+ var HEAPF32;
+ var HEAPF64;
+ var HEAPU16;
+ var HEAPU32;
+ var HEAPU64;
+ var HEAPU8;
+ var callRuntimeCallbacks = callbacks => {
+ while (callbacks.length > 0) {
+ callbacks.shift()(Module);
+ }
+ };
+ var onPostRuns = [];
+ var addOnPostRun = cb => onPostRuns.push(cb);
+ var onPreRuns = [];
+ var addOnPreRun = cb => onPreRuns.push(cb);
+ var noExitRuntime = true;
+ var __abort_js = () => abort("");
+ var runtimeKeepaliveCounter = 0;
+ var __emscripten_runtime_keepalive_clear = () => {
+ noExitRuntime = false;
+ runtimeKeepaliveCounter = 0;
+ };
+ var timers = {};
+ var handleException = e => {
+ if (e instanceof ExitStatus || e == "unwind") {
+ return EXITSTATUS;
+ }
+ quit_(1, e);
+ };
+ var keepRuntimeAlive = () => noExitRuntime || runtimeKeepaliveCounter > 0;
+ var _proc_exit = code => {
+ EXITSTATUS = code;
+ if (!keepRuntimeAlive()) {
+ Module["onExit"]?.(code);
+ ABORT = true;
+ }
+ quit_(code, new ExitStatus(code));
+ };
+ var exitJS = (status, implicit) => {
+ EXITSTATUS = status;
+ _proc_exit(status);
+ };
+ var _exit = exitJS;
+ var maybeExit = () => {
+ if (!keepRuntimeAlive()) {
+ try {
+ _exit(EXITSTATUS);
+ } catch (e) {
+ handleException(e);
+ }
+ }
+ };
+ var callUserCallback = func => {
+ if (ABORT) {
+ return;
+ }
+ try {
+ return func();
+ } catch (e) {
+ handleException(e);
+ } finally {
+ maybeExit();
+ }
+ };
+ var _emscripten_get_now = () => performance.now();
+ var __setitimer_js = (which, timeout_ms) => {
+ if (timers[which]) {
+ clearTimeout(timers[which].id);
+ delete timers[which];
+ }
+ if (!timeout_ms) return 0;
+ var id = setTimeout(() => {
+ delete timers[which];
+ callUserCallback(() => __emscripten_timeout(which, _emscripten_get_now()));
+ }, timeout_ms);
+ timers[which] = {
+ id,
+ timeout_ms
+ };
+ return 0;
+ };
+ function _copy_pixels_1(compG_ptr, nb_pixels) {
+ compG_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ imageData.set(compG);
+ }
+ function _copy_pixels_3(compR_ptr, compG_ptr, compB_ptr, nb_pixels) {
+ compR_ptr >>= 2;
+ compG_ptr >>= 2;
+ compB_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 3);
+ const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[3 * i] = compR[i];
+ imageData[3 * i + 1] = compG[i];
+ imageData[3 * i + 2] = compB[i];
+ }
+ }
+ function _copy_pixels_4(compR_ptr, compG_ptr, compB_ptr, compA_ptr, nb_pixels) {
+ compR_ptr >>= 2;
+ compG_ptr >>= 2;
+ compB_ptr >>= 2;
+ compA_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);
+ const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels);
+ const compA = HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[4 * i] = compR[i];
+ imageData[4 * i + 1] = compG[i];
+ imageData[4 * i + 2] = compB[i];
+ imageData[4 * i + 3] = compA[i];
+ }
+ }
+ var getHeapMax = () => 2147483648;
+ var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
+ var growMemory = size => {
+ var oldHeapSize = wasmMemory.buffer.byteLength;
+ var pages = (size - oldHeapSize + 65535) / 65536 | 0;
+ try {
+ wasmMemory.grow(pages);
+ updateMemoryViews();
+ return 1;
+ } catch (e) {}
+ };
+ var _emscripten_resize_heap = requestedSize => {
+ var oldSize = HEAPU8.length;
+ requestedSize >>>= 0;
+ var maxHeapSize = getHeapMax();
+ if (requestedSize > maxHeapSize) {
+ return false;
+ }
+ for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
+ var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
+ overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
+ var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
+ var replacement = growMemory(newSize);
+ if (replacement) {
+ return true;
+ }
+ }
+ return false;
+ };
+ var ENV = {};
+ var getExecutableName = () => thisProgram || "./this.program";
+ var getEnvStrings = () => {
+ if (!getEnvStrings.strings) {
+ var lang = (globalThis.navigator?.language ?? "C").replace("-", "_") + ".UTF-8";
+ var env = {
+ USER: "web_user",
+ LOGNAME: "web_user",
+ PATH: "/",
+ PWD: "/",
+ HOME: "/home/web_user",
+ LANG: lang,
+ _: getExecutableName()
+ };
+ for (var x in ENV) {
+ if (ENV[x] === undefined) delete env[x];else env[x] = ENV[x];
+ }
+ var strings = [];
+ for (var x in env) {
+ strings.push(`${x}=${env[x]}`);
+ }
+ getEnvStrings.strings = strings;
+ }
+ return getEnvStrings.strings;
+ };
+ var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
+ if (!(maxBytesToWrite > 0)) return 0;
+ var startIdx = outIdx;
+ var endIdx = outIdx + maxBytesToWrite - 1;
+ for (var i = 0; i < str.length; ++i) {
+ var u = str.codePointAt(i);
+ if (u <= 127) {
+ if (outIdx >= endIdx) break;
+ heap[outIdx++] = u;
+ } else if (u <= 2047) {
+ if (outIdx + 1 >= endIdx) break;
+ heap[outIdx++] = 192 | u >> 6;
+ heap[outIdx++] = 128 | u & 63;
+ } else if (u <= 65535) {
+ if (outIdx + 2 >= endIdx) break;
+ heap[outIdx++] = 224 | u >> 12;
+ heap[outIdx++] = 128 | u >> 6 & 63;
+ heap[outIdx++] = 128 | u & 63;
+ } else {
+ if (outIdx + 3 >= endIdx) break;
+ heap[outIdx++] = 240 | u >> 18;
+ heap[outIdx++] = 128 | u >> 12 & 63;
+ heap[outIdx++] = 128 | u >> 6 & 63;
+ heap[outIdx++] = 128 | u & 63;
+ i++;
+ }
+ }
+ heap[outIdx] = 0;
+ return outIdx - startIdx;
+ };
+ var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
+ var _environ_get = (__environ, environ_buf) => {
+ var bufSize = 0;
+ var envp = 0;
+ for (var string of getEnvStrings()) {
+ var ptr = environ_buf + bufSize;
+ HEAPU32[__environ + envp >> 2] = ptr;
+ bufSize += stringToUTF8(string, ptr, Infinity) + 1;
+ envp += 4;
+ }
+ return 0;
+ };
+ var lengthBytesUTF8 = str => {
+ var len = 0;
+ for (var i = 0; i < str.length; ++i) {
+ var c = str.charCodeAt(i);
+ if (c <= 127) {
+ len++;
+ } else if (c <= 2047) {
+ len += 2;
+ } else if (c >= 55296 && c <= 57343) {
+ len += 4;
+ ++i;
+ } else {
+ len += 3;
+ }
+ }
+ return len;
+ };
+ var _environ_sizes_get = (penviron_count, penviron_buf_size) => {
+ var strings = getEnvStrings();
+ HEAPU32[penviron_count >> 2] = strings.length;
+ var bufSize = 0;
+ for (var string of strings) {
+ bufSize += lengthBytesUTF8(string) + 1;
+ }
+ HEAPU32[penviron_buf_size >> 2] = bufSize;
+ return 0;
+ };
+ var INT53_MAX = 9007199254740992;
+ var INT53_MIN = -9007199254740992;
+ var bigintToI53Checked = num => num < INT53_MIN || num > INT53_MAX ? NaN : Number(num);
+ function _fd_seek(fd, offset, whence, newOffset) {
+ offset = bigintToI53Checked(offset);
+ return 70;
+ }
+ var printCharBuffers = [null, [], []];
+ var UTF8Decoder = globalThis.TextDecoder && new TextDecoder();
+ var findStringEnd = (heapOrArray, idx, maxBytesToRead, ignoreNul) => {
+ var maxIdx = idx + maxBytesToRead;
+ if (ignoreNul) return maxIdx;
+ while (heapOrArray[idx] && !(idx >= maxIdx)) ++idx;
+ return idx;
+ };
+ var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead, ignoreNul) => {
+ var endPtr = findStringEnd(heapOrArray, idx, maxBytesToRead, ignoreNul);
+ if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
+ return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
+ }
+ var str = "";
+ while (idx < endPtr) {
+ var u0 = heapOrArray[idx++];
+ if (!(u0 & 128)) {
+ str += String.fromCharCode(u0);
+ continue;
+ }
+ var u1 = heapOrArray[idx++] & 63;
+ if ((u0 & 224) == 192) {
+ str += String.fromCharCode((u0 & 31) << 6 | u1);
+ continue;
+ }
+ var u2 = heapOrArray[idx++] & 63;
+ if ((u0 & 240) == 224) {
+ u0 = (u0 & 15) << 12 | u1 << 6 | u2;
+ } else {
+ u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
+ }
+ if (u0 < 65536) {
+ str += String.fromCharCode(u0);
+ } else {
+ var ch = u0 - 65536;
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
+ }
+ }
+ return str;
+ };
+ var printChar = (stream, curr) => {
+ var buffer = printCharBuffers[stream];
+ if (curr === 0 || curr === 10) {
+ (stream === 1 ? out : err)(UTF8ArrayToString(buffer));
+ buffer.length = 0;
+ } else {
+ buffer.push(curr);
+ }
+ };
+ var UTF8ToString = (ptr, maxBytesToRead, ignoreNul) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead, ignoreNul) : "";
+ var _fd_write = (fd, iov, iovcnt, pnum) => {
+ var num = 0;
+ for (var i = 0; i < iovcnt; i++) {
+ var ptr = HEAPU32[iov >> 2];
+ var len = HEAPU32[iov + 4 >> 2];
+ iov += 8;
+ for (var j = 0; j < len; j++) {
+ printChar(fd, HEAPU8[ptr + j]);
+ }
+ num += len;
+ }
+ HEAPU32[pnum >> 2] = num;
+ return 0;
+ };
+ function _gray_to_rgba(compG_ptr, nb_pixels) {
+ compG_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i];
+ imageData[4 * i + 3] = 255;
+ }
+ }
+ function _graya_to_rgba(compG_ptr, compA_ptr, nb_pixels) {
+ compG_ptr >>= 2;
+ compA_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ const compA = HEAP32.subarray(compA_ptr, compA_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[4 * i] = imageData[4 * i + 1] = imageData[4 * i + 2] = compG[i];
+ imageData[4 * i + 3] = compA[i];
+ }
+ }
+ function _jsPrintWarning(message_ptr) {
+ const message = UTF8ToString(message_ptr);
+ (Module.warn || console.warn)(`OpenJPEG: ${message}`);
+ }
+ function _rgb_to_rgba(compR_ptr, compG_ptr, compB_ptr, nb_pixels) {
+ compR_ptr >>= 2;
+ compG_ptr >>= 2;
+ compB_ptr >>= 2;
+ const imageData = Module.imageData = new Uint8ClampedArray(nb_pixels * 4);
+ const compR = HEAP32.subarray(compR_ptr, compR_ptr + nb_pixels);
+ const compG = HEAP32.subarray(compG_ptr, compG_ptr + nb_pixels);
+ const compB = HEAP32.subarray(compB_ptr, compB_ptr + nb_pixels);
+ for (let i = 0; i < nb_pixels; i++) {
+ imageData[4 * i] = compR[i];
+ imageData[4 * i + 1] = compG[i];
+ imageData[4 * i + 2] = compB[i];
+ imageData[4 * i + 3] = 255;
+ }
+ }
+ function _storeErrorMessage(message_ptr) {
+ const message = UTF8ToString(message_ptr);
+ if (!Module.errorMessages) {
+ Module.errorMessages = message;
+ } else {
+ Module.errorMessages += "\n" + message;
+ }
+ }
+ var writeArrayToMemory = (array, buffer) => {
+ HEAP8.set(array, buffer);
+ };
+ if (Module["noExitRuntime"]) noExitRuntime = Module["noExitRuntime"];
+ if (Module["print"]) out = Module["print"];
+ if (Module["printErr"]) err = Module["printErr"];
+ if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"];
+ if (Module["arguments"]) arguments_ = Module["arguments"];
+ if (Module["thisProgram"]) thisProgram = Module["thisProgram"];
+ if (Module["preInit"]) {
+ if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]];
+ while (Module["preInit"].length > 0) {
+ Module["preInit"].shift()();
+ }
+ }
+ Module["writeArrayToMemory"] = writeArrayToMemory;
+ var _malloc, _free, _jp2_decode, __emscripten_timeout, memory, __indirect_function_table, wasmMemory;
+ function assignWasmExports(wasmExports) {
+ _malloc = Module["_malloc"] = wasmExports["t"];
+ _free = Module["_free"] = wasmExports["u"];
+ _jp2_decode = Module["_jp2_decode"] = wasmExports["v"];
+ __emscripten_timeout = wasmExports["w"];
+ memory = wasmMemory = wasmExports["r"];
+ __indirect_function_table = wasmExports["__indirect_function_table"];
+ }
+ var wasmImports = {
+ m: __abort_js,
+ l: __emscripten_runtime_keepalive_clear,
+ i: __setitimer_js,
+ f: _copy_pixels_1,
+ e: _copy_pixels_3,
+ d: _copy_pixels_4,
+ j: _emscripten_resize_heap,
+ o: _environ_get,
+ p: _environ_sizes_get,
+ n: _fd_seek,
+ b: _fd_write,
+ q: _gray_to_rgba,
+ h: _graya_to_rgba,
+ c: _jsPrintWarning,
+ k: _proc_exit,
+ g: _rgb_to_rgba,
+ a: _storeErrorMessage
+ };
+ function run() {
+ preRun();
+ function doRun() {
+ Module["calledRun"] = true;
+ if (ABORT) return;
+ initRuntime();
+ readyPromiseResolve?.(Module);
+ Module["onRuntimeInitialized"]?.();
+ postRun();
+ }
+ if (Module["setStatus"]) {
+ Module["setStatus"]("Running...");
+ setTimeout(() => {
+ setTimeout(() => Module["setStatus"](""), 1);
+ doRun();
+ }, 1);
+ } else {
+ doRun();
+ }
+ }
+ var wasmExports;
+ wasmExports = await createWasm();
+ run();
+ if (runtimeInitialized) {
+ moduleRtn = Module;
+ } else {
+ moduleRtn = new Promise((resolve, reject) => {
+ readyPromiseResolve = resolve;
+ readyPromiseReject = reject;
+ });
+ }
+ return moduleRtn;
+}
+/* harmony default export */ const openjpeg = (OpenJPEG);
+;// ./src/core/stream.js
+
+
+
+
+
+
+
+
+
+
+class Stream extends BaseStream {
+ constructor(arrayBuffer, start, length, dict) {
+ super();
+ this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);
+ this.start = start || 0;
+ this.pos = this.start;
+ this.end = start + length || this.bytes.length;
+ this.dict = dict;
+ }
+ get length() {
+ return this.end - this.start;
+ }
+ get isEmpty() {
+ return this.length === 0;
+ }
+ getByte() {
+ if (this.pos >= this.end) {
+ return -1;
+ }
+ return this.bytes[this.pos++];
+ }
+ getBytes(length) {
+ const bytes = this.bytes;
+ const pos = this.pos;
+ const strEnd = this.end;
+ if (!length) {
+ this.pos = strEnd;
+ return bytes.subarray(pos, strEnd);
+ }
+ let end = pos + length;
+ if (end > strEnd) {
+ end = strEnd;
+ }
+ this.pos = end;
+ return bytes.subarray(pos, end);
+ }
+ getByteRange(begin, end) {
+ if (begin < 0) {
+ begin = 0;
+ }
+ if (end > this.end) {
+ end = this.end;
+ }
+ return this.bytes.subarray(begin, end);
+ }
+ reset() {
+ this.pos = this.start;
+ }
+ moveStart() {
+ this.start = this.pos;
+ }
+ makeSubStream(start, length, dict = null) {
+ return new Stream(this.bytes.buffer, start, length, dict);
+ }
+ clone() {
+ return new Stream(this.bytes.buffer, this.start, this.end - this.start, this.dict.clone());
+ }
+}
+class StringStream extends Stream {
+ constructor(str) {
+ super(stringToBytes(str));
+ }
+}
+class NullStream extends Stream {
+ constructor() {
+ super(new Uint8Array(0));
+ }
+}
+
+;// ./src/core/jpx.js
+
+
+
+
+
+
+
+
+
+class JpxError extends BaseException {
+ constructor(msg) {
+ super(msg, "JpxError");
+ }
+}
+class JpxImage {
+ static #buffer = null;
+ static #handler = null;
+ static #modulePromise = null;
+ static #useWasm = true;
+ static #useWorkerFetch = true;
+ static #wasmUrl = null;
+ static setOptions({
+ handler,
+ useWasm,
+ useWorkerFetch,
+ wasmUrl
+ }) {
+ this.#useWasm = useWasm;
+ this.#useWorkerFetch = useWorkerFetch;
+ this.#wasmUrl = wasmUrl;
+ if (!useWorkerFetch) {
+ this.#handler = handler;
+ }
+ }
+ static async #getJsModule(fallbackCallback) {
+ const path = `${this.#wasmUrl}openjpeg_nowasm_fallback.js`;
+ let instance = null;
+ try {
+ const mod = await import(
+ /*webpackIgnore: true*/
+ /*@vite-ignore*/
+ path);
+ instance = mod.default();
+ } catch (e) {
+ warn(`JpxImage#getJsModule: ${e}`);
+ }
+ fallbackCallback(instance);
+ }
+ static async #instantiateWasm(fallbackCallback, imports, successCallback) {
+ const filename = "openjpeg.wasm";
+ try {
+ if (!this.#buffer) {
+ if (this.#useWorkerFetch) {
+ this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);
+ } else {
+ this.#buffer = await this.#handler.sendWithPromise("FetchBinaryData", {
+ kind: "wasmUrl",
+ filename
+ });
+ }
+ }
+ const results = await WebAssembly.instantiate(this.#buffer, imports);
+ return successCallback(results.instance);
+ } catch (reason) {
+ warn(`JpxImage#instantiateWasm: ${reason}`);
+ this.#getJsModule(fallbackCallback);
+ return null;
+ } finally {
+ this.#handler = null;
+ }
+ }
+ static async decode(bytes, {
+ numComponents = 4,
+ isIndexedColormap = false,
+ smaskInData = false,
+ reducePower = 0
+ } = {}) {
+ if (!this.#modulePromise) {
+ const {
+ promise,
+ resolve
+ } = Promise.withResolvers();
+ const promises = [promise];
+ if (!this.#useWasm) {
+ this.#getJsModule(resolve);
+ } else {
+ promises.push(openjpeg({
+ warn: warn,
+ instantiateWasm: this.#instantiateWasm.bind(this, resolve)
+ }));
+ }
+ this.#modulePromise = Promise.race(promises);
+ }
+ const module = await this.#modulePromise;
+ if (!module) {
+ throw new JpxError("OpenJPEG failed to initialize");
+ }
+ let ptr;
+ try {
+ const size = bytes.length;
+ ptr = module._malloc(size);
+ module.writeArrayToMemory(bytes, ptr);
+ const ret = module._jp2_decode(ptr, size, numComponents > 0 ? numComponents : 0, !!isIndexedColormap, !!smaskInData, reducePower);
+ if (ret) {
+ const {
+ errorMessages
+ } = module;
+ if (errorMessages) {
+ delete module.errorMessages;
+ throw new JpxError(errorMessages);
+ }
+ throw new JpxError("Unknown error");
+ }
+ const {
+ imageData
+ } = module;
+ module.imageData = null;
+ return imageData;
+ } finally {
+ if (ptr) {
+ module._free(ptr);
+ }
+ }
+ }
+ static cleanup() {
+ this.#modulePromise = null;
+ }
+ static parseImageProperties(stream) {
+ if (stream instanceof ArrayBuffer || ArrayBuffer.isView(stream)) {
+ stream = new Stream(stream);
+ } else {
+ throw new JpxError("Invalid data format, must be a TypedArray.");
+ }
+ let newByte = stream.getByte();
+ while (newByte >= 0) {
+ const oldByte = newByte;
+ newByte = stream.getByte();
+ const code = oldByte << 8 | newByte;
+ if (code === 0xff51) {
+ stream.skip(4);
+ const Xsiz = stream.getInt32() >>> 0;
+ const Ysiz = stream.getInt32() >>> 0;
+ const XOsiz = stream.getInt32() >>> 0;
+ const YOsiz = stream.getInt32() >>> 0;
+ stream.skip(16);
+ const Csiz = stream.getUint16();
+ return {
+ width: Xsiz - XOsiz,
+ height: Ysiz - YOsiz,
+ bitsPerComponent: 8,
+ componentsCount: Csiz
+ };
+ }
+ }
+ throw new JpxError("No size marker found in JPX stream");
+ }
+}
+
+;// ./src/pdf.image_decoders.js
+
+
+
+
+globalThis.pdfjsImageDecoders = {
+ getVerbosityLevel: getVerbosityLevel,
+ Jbig2Error: Jbig2Error,
+ Jbig2Image: JBig2CCITTFaxImage,
+ JpegError: JpegError,
+ JpegImage: JpegImage,
+ JpxError: JpxError,
+ JpxImage: JpxImage,
+ setVerbosityLevel: setVerbosityLevel,
+ VerbosityLevel: VerbosityLevel
+};
+
+export { Jbig2Error, JBig2CCITTFaxImage as Jbig2Image, JpegError, JpegImage, JpxError, JpxImage, VerbosityLevel, getVerbosityLevel, setVerbosityLevel };
+
+//# sourceMappingURL=pdf.image_decoders.mjs.map
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/image_decoders/pdf.image_decoders.mjs.map b/frontend/node_modules/pdfjs-dist/legacy/image_decoders/pdf.image_decoders.mjs.map
new file mode 100644
index 0000000..b321598
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/image_decoders/pdf.image_decoders.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"pdf.image_decoders.mjs","mappings":"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A;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChMa;AACb,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,wBAAwB,mBAAO,CAAC,IAAmC;;AAEnE,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,gBAAgB;AACjC;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,cAAc,mBAAO,CAAC,IAAuB;;AAE7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;;;;;;;;AC1Ba;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,YAAY;AACrB;AACA;;AAEA;AACA;AACA;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CtC,4BAA4B,mBAAO,CAAC,IAAsC;AAC1E,gBAAgB,mBAAO,CAAC,IAAyB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;ACpFa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,8BAA8B,mBAAO,CAAC,IAAsC;AAC5E,2BAA2B,mBAAO,CAAC,IAAqC;AACxE,eAAe,mBAAO,CAAC,IAAwB;AAC/C,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,qBAAqB,mBAAO,CAAC,IAA6B;AAC1D,8BAA8B,mBAAO,CAAC,IAAsC;AAC5E,eAAe,mBAAO,CAAC,IAAwB;AAC/C,oBAAoB,mBAAO,CAAC,IAA8B;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;;;;;;;;AC3Ca;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,WAAW,mBAAO,CAAC,IAA4B;AAC/C,iCAAiC,mBAAO,CAAC,IAA4C;AACrF,+BAA+B,mBAAO,CAAC,IA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ACtE,sBAAsB,mBAAO,CAAC,IAAgC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBa;AACb,kBAAkB,mBAAO,CAAC,IAA2B;AACrD,eAAe,mBAAO,CAAC,GAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTa;AACb,sBAAsB,mBAAO,CAAC,IAAgC;;AAE9D;AACA;AACA;AACA;;AAEA;;;;;;;;ACRa;AACb,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;;AAEA;AACA;AACA;AACA;;;;;;;;ACRa;AACb;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;ACTa;AACb,kBAAkB,mBAAO,CAAC,IAAoC;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACTa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,0BAA0B,mBAAO,CAAC,IAAqC;AACvE,cAAc,mBAAO,CAAC,IAAuB;AAC7C,aAAa,mBAAO,CAAC,IAA+B;AACpD,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,wBAAwB,mBAAO,CAAC,GAAkC;AAClE,kBAAkB,mBAAO,CAAC,IAAwC;;AAElE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;;;;;;;;AC5Ja;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAAoC;;AAE9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C;AACA,SAAS,qBAAqB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;;;;;;;ACzBa;AACb,YAAY,mBAAO,CAAC,IAAoB;AACxC,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACzCY;AACb;AACA,oBAAoB,mBAAO,CAAC,IAA2C;;AAEvE;AACA;AACA;;;;;;;;ACNa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,YAAY,mBAAO,CAAC,IAAoB;;AAExC;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;ACZY;AACb;;AAEA;AACA;AACA;AACA;;;;;;;;ACNa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;;AAEA;;;;;;;;ACNa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,aAAa,mBAAO,CAAC,IAAqB;AAC1C,aAAa,mBAAO,CAAC,IAA+B;AACpD,UAAU,mBAAO,CAAC,IAAkB;AACpC,oBAAoB,mBAAO,CAAC,IAA2C;AACvE,wBAAwB,mBAAO,CAAC,IAAgC;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;AClBa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,4BAA4B,mBAAO,CAAC,IAAuC;AAC3E,iBAAiB,mBAAO,CAAC,IAAuC;;AAEhE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;AChBa;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,gBAAgB,mBAAO,CAAC,IAAoC;;AAE5D;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,CAAC;;;;;;;;ACVY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,gBAAgB,mBAAO,CAAC,IAAoC;;AAE5D;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA,CAAC;;;;;;;;ACVY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,gBAAgB,oCAA+C;AAC/D,YAAY,mBAAO,CAAC,IAAoB;AACxC,uBAAuB,mBAAO,CAAC,IAAiC;;AAEhE;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,4FAA4F;AAChG;AACA;AACA;AACA,CAAC;;AAED;AACA;;;;;;;;AC3Ba;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,eAAe,mBAAO,CAAC,IAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAmC;AACnE,qBAAqB,mBAAO,CAAC,IAA+B;AAC5D,+BAA+B,mBAAO,CAAC,IAA2C;AAClF,YAAY,mBAAO,CAAC,IAAoB;;AAExC;AACA,wBAAwB,qBAAqB;AAC7C,CAAC;;AAED,iCAAiC;AACjC;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,wDAAwD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACzCY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,iBAAiB,mBAAO,CAAC,GAA0B;AACnD,eAAe,mBAAO,CAAC,IAAwB;AAC/C,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,qBAAqB,mBAAO,CAAC,IAAsC;AACnE,4BAA4B,mBAAO,CAAC,IAAuC;AAC3E,qBAAqB,mBAAO,CAAC,IAA8B;AAC3D,YAAY,mBAAO,CAAC,IAAoB;AACxC,aAAa,mBAAO,CAAC,IAA+B;AACpD,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,wBAAwB,6CAAwD;AAChF,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB,IAAI;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,iDAAiD;AACrD;AACA,CAAC;;;;;;;;AChEY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,WAAW,mBAAO,CAAC,IAA4B;AAC/C,cAAc,mBAAO,CAAC,IAAsB;AAC5C,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,eAAe,mBAAO,CAAC,IAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;AAClE,oBAAoB,mBAAO,CAAC,IAA6B;AACzD,+CAA+C,mBAAO,CAAC,IAA6D;;AAEpH;;AAEA;AACA;AACA,IAAI,sFAAsF;AAC1F;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK,IAAI,oCAAoC;AAC7C;AACA,CAAC;;;;;;;;AC/BY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,WAAW,mBAAO,CAAC,IAA4B;AAC/C,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,eAAe,mBAAO,CAAC,IAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;AAClE,0BAA0B,mBAAO,CAAC,IAAoC;AACtE,mCAAmC,mBAAO,CAAC,IAA+C;AAC1F,oBAAoB,mBAAO,CAAC,IAA6B;AACzD,4CAA4C,mBAAO,CAAC,GAAyD;AAC7G,+CAA+C,mBAAO,CAAC,IAA6D;AACpH,cAAc,mBAAO,CAAC,IAAsB;;AAE5C,uHAAuH,aAAa;AACpI;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,6DAA6D;AACjE;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;AC3CY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;AACA;AACA;;AAEA;AACA;AACA,IAAI,yDAAyD;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACvBY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;AACA;AACA;;AAEA;AACA;AACA,IAAI,yDAAyD;AAC7D;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACjBY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iCAAiC,mBAAO,CAAC,IAAqC;;AAE9E;AACA;AACA,IAAI,+BAA+B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACfY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA6B;AACtD,YAAY,mBAAO,CAAC,IAAoB;AACxC,6BAA6B,mBAAO,CAAC,IAAyC;;AAE9E;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,wDAAwD;AAC5D;AACA,CAAC;;;;;;;;ACpCY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,YAAY,mBAAO,CAAC,IAAoB;AACxC,mBAAmB,mBAAO,CAAC,IAA+B;AAC1D,6BAA6B,mBAAO,CAAC,IAAyC;;AAE9E;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,2DAA2D;AAC/D;AACA,CAAC;;;;;;;;ACjBY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,qBAAqB,mBAAO,CAAC,IAAmC;AAChE,6BAA6B,mBAAO,CAAC,IAAyC;;AAE9E;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,2DAA2D;AAC/D;AACA,CAAC;;;;;;;;ACbY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA+B;AACxD,6BAA6B,mBAAO,CAAC,IAAyC;;AAE9E;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,2DAA2D;AAC/D;AACA,CAAC;;;;;;;;ACbY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,mBAAmB,mBAAO,CAAC,IAAiC;AAC5D,6BAA6B,mBAAO,CAAC,IAAyC;;AAE9E;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,2DAA2D;AAC/D;AACA,CAAC;;;;;;;;ACbY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,0BAA0B,mBAAO,CAAC,IAAuC;AACzE,oCAAoC,mBAAO,CAAC,IAA2D;AACvG,6BAA6B,mBAAO,CAAC,IAAyC;;AAE9E;;AAEA;AACA;AACA,IAAI,wDAAwD;AAC5D;AACA,CAAC;;;;;;;;ACZY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,YAAY,mBAAO,CAAC,IAAwB;AAC5C,oCAAoC,mBAAO,CAAC,IAA2D;AACvG,6BAA6B,mBAAO,CAAC,IAAyC;;AAE9E;;AAEA;AACA;AACA,IAAI,wDAAwD;AAC5D;AACA,CAAC;;;;;;;;ACZY;AACb,0BAA0B,mBAAO,CAAC,IAAqC;AACvE,oBAAoB,mBAAO,CAAC,IAA+B;AAC3D,wBAAwB,mBAAO,CAAC,IAAmC;AACnE,0BAA0B,mBAAO,CAAC,IAAqC;AACvE,eAAe,mBAAO,CAAC,IAAyB;;AAEhD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC,uBAAuB,YAAY;AACrE,IAAI;AACJ;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA,GAAG;;;;;;;;AC/CU;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAAgC;AAC1D,mBAAmB,mBAAO,CAAC,IAA6B;;AAExD;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA,oBAAoB,gFAAgF;AACpG;AACA;;AAEA;;AAEA,aAAa;AACb;AACA,CAAC;;;;;;;;ACpCY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,cAAc,mBAAO,CAAC,IAAuB;AAC7C,mBAAmB,mBAAO,CAAC,IAA6B;AACxD,kBAAkB,mBAAO,CAAC,IAAwC;AAClE,eAAe,mBAAO,CAAC,IAA6B;;AAEpD;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,yEAAyE;AACxG;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,CAAC;;;;;;;;AC/BY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,0BAA0B,mBAAO,CAAC,IAAqC;AACvE,mBAAmB,mBAAO,CAAC,IAA6B;AACxD,kBAAkB,mBAAO,CAAC,IAAwC;AAClE,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,wBAAwB,mBAAO,CAAC,GAAkC;;AAElE;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA,oBAAoB,gFAAgF;AACpG;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;AC3DY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,mBAAmB,mBAAO,CAAC,IAA6B;AACxD,kBAAkB,mBAAO,CAAC,IAAwC;;AAElE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA,oBAAoB,gFAAgF;AACpG;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACnCY;AACb,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,eAAe,mBAAO,CAAC,GAAwB;AAC/C,8BAA8B,mBAAO,CAAC,IAAwC;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,sBAAsB,kBAAkB;AACxC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI,gCAAgC;AACvC;;;;;;;;AC7Ca;AACb,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,eAAe,mBAAO,CAAC,GAAwB;AAC/C,8BAA8B,mBAAO,CAAC,IAAwC;;AAE9E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG,IAAI,gCAAgC;AACvC;;;;;;;;AC3Ba;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,4BAA4B,mBAAO,CAAC,IAAuC;;AAE3E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;;;;;;;ACpBa;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB,mBAAO,CAAC,IAA2B;AACpD,8BAA8B,mBAAO,CAAC,IAAwC;AAC9E,eAAe,mBAAO,CAAC,GAAwB;AAC/C,qBAAqB,mBAAO,CAAC,IAAwC;;AAErE;;AAEA;AACA;AACA,IAAI,oDAAoD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,CAAC;;;;;;;SCtBD;SACA;;SAEA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;;SAEA;SACA;;SAEA;SACA;SACA;;;;;UCtBA;UACA;UACA;UACA;UACA,yCAAyC,wCAAwC;UACjF;UACA;UACA,E;;;;;UCPA,wF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoBA,MAAMA,QAAQ,GAEZ,OAAOC,OAAO,KAAK,QAAQ,IAC3BA,OAAO,GAAG,EAAE,KAAK,kBAAkB,IACnC,CAACA,OAAO,CAACC,QAAQ,CAACC,EAAE,IACpB,EAAEF,OAAO,CAACC,QAAQ,CAACE,QAAQ,IAAIH,OAAO,CAACI,IAAI,IAAIJ,OAAO,CAACI,IAAI,KAAK,SAAS,CAAC;AAE5E,MAAMC,SAAS,GAAG,CAACC,QAAQ,EAAEA,QAAQ,EAAE,CAACA,QAAQ,EAAE,CAACA,QAAQ,CAAC;AAC5D,MAAMC,aAAa,GAAG,IAAIC,YAAY,CAACH,SAAS,CAAC;AAEjD,MAAMI,oBAAoB,GAAG,iDAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAIvD,MAAMC,WAAW,GAAG,IAAI;AACxB,MAAMC,mBAAmB,GAAG,IAAI;AAChC,MAAMC,eAAe,GAAGD,mBAAmB,GAAGD,WAAW;AAgBzD,MAAMG,mBAAmB,GAAG;EAC1BC,GAAG,EAAE,IAAI;EACTC,OAAO,EAAE,IAAI;EACbC,KAAK,EAAE,IAAI;EACXC,IAAI,EAAE,IAAI;EACVC,iBAAiB,EAAE,IAAI;EACvBC,mBAAmB,EAAE,IAAI;EACzBC,mBAAmB,EAAE,IAAI;EACzBC,UAAU,EAAE,IAAI;EAChBC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,cAAc,GAAG;EACrBC,OAAO,EAAE,CAAC;EACVC,MAAM,EAAE,CAAC;EACTC,YAAY,EAAE,CAAC;EACfC,cAAc,EAAE;AAClB,CAAC;AAED,MAAMC,sBAAsB,GAAG,wBAAwB;AAEvD,MAAMC,oBAAoB,GAAG;EAC3BL,OAAO,EAAE,CAAC,CAAC;EACXM,IAAI,EAAE,CAAC;EACPC,QAAQ,EAAE,CAAC;EACXC,SAAS,EAAE,CAAC;EACZC,KAAK,EAAE,EAAE;EACTC,GAAG,EAAE,EAAE;EACPC,KAAK,EAAE,EAAE;EACTC,SAAS,EAAE,GAAG;EACdC,OAAO,EAAE;AACX,CAAC;AAED,MAAMC,0BAA0B,GAAG;EACjCC,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE,CAAC;EACTC,aAAa,EAAE,EAAE;EACjBC,cAAc,EAAE,EAAE;EAClBC,gBAAgB,EAAE,EAAE;EACpBC,SAAS,EAAE,EAAE;EACbC,aAAa,EAAE,EAAE;EACjBC,WAAW,EAAE,EAAE;EACfC,qBAAqB,EAAE,EAAE;EACzBC,eAAe,EAAE,EAAE;EACnBC,mBAAmB,EAAE,EAAE;EACvBC,cAAc,EAAE,EAAE;EAClBC,kBAAkB,EAAE,EAAE;EACtBC,SAAS,EAAE;AACb,CAAC;AAGD,MAAMC,cAAc,GAAG;EACrBrC,KAAK,EAAE,IAAI;EACXsC,eAAe,EAAE,IAAI;EACrBC,IAAI,EAAE,IAAI;EACVC,kBAAkB,EAAE,IAAI;EACxBC,sBAAsB,EAAE,KAAK;EAC7BC,sBAAsB,EAAE,KAAK;EAC7BC,QAAQ,EAAE,KAAK;EACfC,kBAAkB,EAAE;AACtB,CAAC;AAED,MAAMC,cAAc,GAAG;EACrBC,SAAS,EAAE,CAAC;EACZC,OAAO,EAAE,CAAC;EACVC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,iBAAiB,GAAG;EACxBC,IAAI,EAAE,CAAC;EACPC,MAAM,EAAE,CAAC;EACTC,WAAW,EAAE,CAAC;EACdC,SAAS,EAAE,CAAC;EACZC,gBAAgB,EAAE,CAAC;EACnBC,kBAAkB,EAAE,CAAC;EACrBC,uBAAuB,EAAE,CAAC;EAC1BC,WAAW,EAAE,CAAC;EACdC,gBAAgB,EAAE,CAAC;EACnBC,gBAAgB,EAAE;AACpB,CAAC;AAED,MAAMC,SAAS,GAAG;EAChBC,cAAc,EAAE,CAAC;EACjBC,SAAS,EAAE,CAAC;EACZC,UAAU,EAAE;AACd,CAAC;AAED,MAAMC,cAAc,GAAG;EACrBC,IAAI,EAAE,CAAC;EACPC,IAAI,EAAE,CAAC;EACPnD,QAAQ,EAAE,CAAC;EACXoD,IAAI,EAAE,CAAC;EACPC,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE,CAAC;EACTC,OAAO,EAAE,CAAC;EACVC,QAAQ,EAAE,CAAC;EACXvD,SAAS,EAAE,CAAC;EACZwD,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE,EAAE;EACZC,SAAS,EAAE,EAAE;EACbzD,KAAK,EAAE,EAAE;EACT0D,KAAK,EAAE,EAAE;EACTzD,GAAG,EAAE,EAAE;EACPC,KAAK,EAAE,EAAE;EACTyD,cAAc,EAAE,EAAE;EAClBC,KAAK,EAAE,EAAE;EACTC,KAAK,EAAE,EAAE;EACTC,MAAM,EAAE,EAAE;EACVC,MAAM,EAAE,EAAE;EACVC,WAAW,EAAE,EAAE;EACfC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,EAAE;EACbC,MAAM,EAAE,EAAE;EACVC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,mBAAmB,GAAG;EAC1BC,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,cAAc,GAAG;EACrBpC,SAAS,EAAE,IAAI;EACfqC,MAAM,EAAE,IAAI;EACZ1F,KAAK,EAAE,IAAI;EACX2F,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,IAAI;EACdC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,IAAI;EACdC,MAAM,EAAE,IAAI;EACZC,YAAY,EAAE,KAAK;EACnBC,cAAc,EAAE;AAClB,CAAC;AAED,MAAMC,mBAAmB,GAAG;EAC1BJ,QAAQ,EAAE,SAAS;EACnBK,QAAQ,EAAE,SAAS;EACnBC,QAAQ,EAAE,SAAS;EACnBC,SAAS,EAAE,SAAS;EACpBC,QAAQ,EAAE,SAAS;EACnBC,aAAa,EAAE,SAAS;EACxBC,KAAK,EAAE,SAAS;EAChBC,UAAU,EAAE,SAAS;EACrBC,KAAK,EAAE,SAAS;EAChBC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE,SAAS;EACrBC,WAAW,EAAE,SAAS;EACtBC,eAAe,EAAE,SAAS;EAC1BC,WAAW,EAAE,SAAS;EACtBC,IAAI,EAAE,SAAS;EACfC,QAAQ,EAAE,SAAS;EACnBC,cAAc,EAAE,SAAS;EACzBC,iBAAiB,EAAE;AACrB,CAAC;AAED,MAAMC,yBAAyB,GAAG;EAChCC,KAAK,EAAE,CAAC;EACRC,MAAM,EAAE,CAAC;EACTC,OAAO,EAAE,CAAC;EACVC,KAAK,EAAE,CAAC;EACRjD,SAAS,EAAE;AACb,CAAC;AAED,MAAMkD,yBAAyB,GAAG;EAChCC,CAAC,EAAE,aAAa;EAChBC,CAAC,EAAE,YAAY;EACfC,CAAC,EAAE,YAAY;EACfC,CAAC,EAAE,UAAU;EACbC,EAAE,EAAE,OAAO;EACXC,EAAE,EAAE,MAAM;EACVC,EAAE,EAAE,UAAU;EACdC,EAAE,EAAE,WAAW;EACfC,EAAE,EAAE,aAAa;EACjBC,EAAE,EAAE,eAAe;EACnBC,CAAC,EAAE,WAAW;EACdC,CAAC,EAAE,QAAQ;EACXC,CAAC,EAAE,UAAU;EACbC,CAAC,EAAE;AACL,CAAC;AAED,MAAMC,uBAAuB,GAAG;EAC9BC,EAAE,EAAE,WAAW;EACfC,EAAE,EAAE,UAAU;EACdC,EAAE,EAAE,SAAS;EACbC,EAAE,EAAE,WAAW;EACfC,EAAE,EAAE;AACN,CAAC;AAED,MAAMC,mBAAmB,GAAG;EAC1BC,CAAC,EAAE,UAAU;EACbR,CAAC,EAAE;AACL,CAAC;AAED,MAAMS,cAAc,GAAG;EACrBC,MAAM,EAAE,CAAC;EACTC,QAAQ,EAAE,CAAC;EACXC,KAAK,EAAE;AACT,CAAC;AAGD,MAAMC,GAAG,GAAG;EAKVC,UAAU,EAAE,CAAC;EACbC,YAAY,EAAE,CAAC;EACfC,UAAU,EAAE,CAAC;EACbC,WAAW,EAAE,CAAC;EACdC,aAAa,EAAE,CAAC;EAChBC,OAAO,EAAE,CAAC;EACVC,kBAAkB,EAAE,CAAC;EACrBC,WAAW,EAAE,CAAC;EACdC,SAAS,EAAE,CAAC;EACZC,IAAI,EAAE,EAAE;EACRC,OAAO,EAAE,EAAE;EACXC,SAAS,EAAE,EAAE;EACbC,MAAM,EAAE,EAAE;EACVC,MAAM,EAAE,EAAE;EACVC,OAAO,EAAE,EAAE;EACXC,QAAQ,EAAE,EAAE;EACZC,QAAQ,EAAE,EAAE;EACZC,SAAS,EAAE,EAAE;EACbC,SAAS,EAAE,EAAE;EACbC,MAAM,EAAE,EAAE;EACVC,WAAW,EAAE,EAAE;EACfC,IAAI,EAAE,EAAE;EACRC,MAAM,EAAE,EAAE;EACVC,UAAU,EAAE,EAAE;EACdC,YAAY,EAAE,EAAE;EAChBC,eAAe,EAAE,EAAE;EACnBC,iBAAiB,EAAE,EAAE;EACrBC,OAAO,EAAE,EAAE;EACXC,IAAI,EAAE,EAAE;EACRC,MAAM,EAAE,EAAE;EACVC,SAAS,EAAE,EAAE;EACbC,OAAO,EAAE,EAAE;EACXC,cAAc,EAAE,EAAE;EAClBC,cAAc,EAAE,EAAE;EAClBC,SAAS,EAAE,EAAE;EACbC,UAAU,EAAE,EAAE;EACdC,OAAO,EAAE,EAAE;EACXC,oBAAoB,EAAE,EAAE;EACxBC,WAAW,EAAE,EAAE;EACfC,QAAQ,EAAE,EAAE;EACZC,kBAAkB,EAAE,EAAE;EACtBC,aAAa,EAAE,EAAE;EACjBC,QAAQ,EAAE,EAAE;EACZC,QAAQ,EAAE,EAAE;EACZC,cAAc,EAAE,EAAE;EAClBC,gBAAgB,EAAE,EAAE;EACpBC,0BAA0B,EAAE,EAAE;EAC9BC,YAAY,EAAE,EAAE;EAChBC,qBAAqB,EAAE,EAAE;EACzBC,mBAAmB,EAAE,EAAE;EACvBC,iBAAiB,EAAE,EAAE;EACrBC,cAAc,EAAE,EAAE;EAClBC,eAAe,EAAE,EAAE;EACnBC,YAAY,EAAE,EAAE;EAChBC,aAAa,EAAE,EAAE;EACjBC,aAAa,EAAE,EAAE;EACjBC,WAAW,EAAE,EAAE;EACfC,iBAAiB,EAAE,EAAE;EACrBC,eAAe,EAAE,EAAE;EACnBC,kBAAkB,EAAE,EAAE;EACtBC,gBAAgB,EAAE,EAAE;EACpBC,WAAW,EAAE,EAAE;EACfC,gBAAgB,EAAE,EAAE;EACpBC,cAAc,EAAE,EAAE;EAClBC,cAAc,EAAE,EAAE;EAClBC,YAAY,EAAE,EAAE;EAChBC,SAAS,EAAE,EAAE;EACbC,cAAc,EAAE,EAAE;EAClBC,kBAAkB,EAAE,EAAE;EACtBC,uBAAuB,EAAE,EAAE;EAC3BC,gBAAgB,EAAE,EAAE;EACpBC,WAAW,EAAE,EAAE;EACfC,SAAS,EAAE,EAAE;EACbC,qBAAqB,EAAE,EAAE;EACzBC,mBAAmB,EAAE,EAAE;EACvBC,UAAU,EAAE,EAAE;EACdC,QAAQ,EAAE,EAAE;EAGZC,eAAe,EAAE,EAAE;EACnBC,aAAa,EAAE,EAAE;EAEjBC,qBAAqB,EAAE,EAAE;EACzBC,0BAA0B,EAAE,EAAE;EAC9BC,iBAAiB,EAAE,EAAE;EACrBC,uBAAuB,EAAE,EAAE;EAC3BC,4BAA4B,EAAE,EAAE;EAChCC,uBAAuB,EAAE,EAAE;EAC3BC,2BAA2B,EAAE,EAAE;EAC/BC,wBAAwB,EAAE,EAAE;EAC5BC,aAAa,EAAE,EAAE;EACjBC,oBAAoB,EAAE,EAAE;EACxBC,kBAAkB,EAAE,EAAE;EACtBC,WAAW,EAAE;AACf,CAAC;AAID,MAAMC,OAAO,GAAG;EACd/E,MAAM,EAAE,CAAC;EACTC,MAAM,EAAE,CAAC;EACTC,OAAO,EAAE,CAAC;EACV8E,gBAAgB,EAAE,CAAC;EACnB3E,SAAS,EAAE;AACb,CAAC;AAED,MAAM4E,iBAAiB,GAAG;EACxBC,aAAa,EAAE,CAAC;EAChBC,kBAAkB,EAAE;AACtB,CAAC;AAED,IAAIC,SAAS,GAAGrG,cAAc,CAACE,QAAQ;AAEvC,SAASoG,iBAAiBA,CAACC,KAAK,EAAE;EAChC,IAAIC,MAAM,CAACC,SAAS,CAACF,KAAK,CAAC,EAAE;IAC3BF,SAAS,GAAGE,KAAK;EACnB;AACF;AAEA,SAASG,iBAAiBA,CAAA,EAAG;EAC3B,OAAOL,SAAS;AAClB;AAKA,SAASM,IAAIA,CAACC,GAAG,EAAE;EACjB,IAAIP,SAAS,IAAIrG,cAAc,CAACG,KAAK,EAAE;IAErC0G,OAAO,CAACF,IAAI,CAAC,SAASC,GAAG,EAAE,CAAC;EAC9B;AACF;AAGA,SAASE,IAAIA,CAACF,GAAG,EAAE;EACjB,IAAIP,SAAS,IAAIrG,cAAc,CAACE,QAAQ,EAAE;IAExC2G,OAAO,CAACC,IAAI,CAAC,YAAYF,GAAG,EAAE,CAAC;EACjC;AACF;AAEA,SAASG,WAAWA,CAACH,GAAG,EAAE;EACxB,MAAM,IAAII,KAAK,CAACJ,GAAG,CAAC;AACtB;AAEA,SAASK,MAAMA,CAACC,IAAI,EAAEN,GAAG,EAAE;EACzB,IAAI,CAACM,IAAI,EAAE;IACTH,WAAW,CAACH,GAAG,CAAC;EAClB;AACF;AAGA,SAASO,gBAAgBA,CAACC,GAAG,EAAE;EAC7B,QAAQA,GAAG,EAAEC,QAAQ;IACnB,KAAK,OAAO;IACZ,KAAK,QAAQ;IACb,KAAK,MAAM;IACX,KAAK,SAAS;IACd,KAAK,MAAM;MACT,OAAO,IAAI;IACb;MACE,OAAO,KAAK;EAChB;AACF;AAUA,SAASC,sBAAsBA,CAACF,GAAG,EAAEG,OAAO,GAAG,IAAI,EAAEC,OAAO,GAAG,IAAI,EAAE;EACnE,IAAI,CAACJ,GAAG,EAAE;IACR,OAAO,IAAI;EACb;EACA,IAAII,OAAO,IAAI,OAAOJ,GAAG,KAAK,QAAQ,EAAE;IAEtC,IAAII,OAAO,CAACC,kBAAkB,IAAIL,GAAG,CAACM,UAAU,CAAC,MAAM,CAAC,EAAE;MACxD,MAAMC,IAAI,GAAGP,GAAG,CAACQ,KAAK,CAAC,KAAK,CAAC;MAG7B,IAAID,IAAI,EAAEE,MAAM,IAAI,CAAC,EAAE;QACrBT,GAAG,GAAG,UAAUA,GAAG,EAAE;MACvB;IACF;IAIA,IAAII,OAAO,CAACM,kBAAkB,EAAE;MAC9B,IAAI;QACFV,GAAG,GAAGW,kBAAkB,CAACX,GAAG,CAAC;MAC/B,CAAC,CAAC,MAAM,CAAC;IACX;EACF;EAEA,MAAMY,WAAW,GAAGT,OAAO,GAAGU,GAAG,CAACC,KAAK,CAACd,GAAG,EAAEG,OAAO,CAAC,GAAGU,GAAG,CAACC,KAAK,CAACd,GAAG,CAAC;EACtE,OAAOD,gBAAgB,CAACa,WAAW,CAAC,GAAGA,WAAW,GAAG,IAAI;AAC3D;AAUA,SAASG,aAAaA,CAACf,GAAG,EAAEgB,IAAI,EAAEC,QAAQ,GAAG,KAAK,EAAE;EAClD,MAAMC,GAAG,GAAGL,GAAG,CAACC,KAAK,CAACd,GAAG,CAAC;EAC1B,IAAIkB,GAAG,EAAE;IACPA,GAAG,CAACF,IAAI,GAAGA,IAAI;IACf,OAAOE,GAAG,CAACC,IAAI;EACjB;EAGA,IAAIF,QAAQ,IAAIf,sBAAsB,CAACF,GAAG,EAAE,oBAAoB,CAAC,EAAE;IACjE,OAAOA,GAAG,CAACoB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAGJ,IAAI,GAAG,IAAIA,IAAI,EAAE,GAAG,EAAE,EAAE;EAC3D;EACA,OAAO,EAAE;AACX;AAGA,SAASK,SAASA,CAACC,GAAG,EAAE;EACtB,OAAOA,GAAG,CAACC,SAAS,CAACD,GAAG,CAACE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD;AAEA,SAASC,MAAMA,CAACC,GAAG,EAAEC,IAAI,EAAEC,KAAK,EAAEC,eAAe,GAAG,KAAK,EAAE;EAOzDC,MAAM,CAACC,cAAc,CAACL,GAAG,EAAEC,IAAI,EAAE;IAC/BC,KAAK;IACLI,UAAU,EAAE,CAACH,eAAe;IAC5BI,YAAY,EAAE,IAAI;IAClBC,QAAQ,EAAE;EACZ,CAAC,CAAC;EACF,OAAON,KAAK;AACd;AAKA,MAAMO,aAAa,GAAI,SAASC,oBAAoBA,CAAA,EAAG;EAErD,SAASD,aAAaA,CAACE,OAAO,EAAEC,IAAI,EAAE;IAOpC,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;EACAH,aAAa,CAACI,SAAS,GAAG,IAAI3C,KAAK,CAAC,CAAC;EACrCuC,aAAa,CAACK,WAAW,GAAGL,aAAa;EAEzC,OAAOA,aAAa;AACtB,CAAC,CAAE,CAAC;AAEJ,MAAMM,iBAAiB,SAASN,aAAa,CAAC;EAC5CK,WAAWA,CAAChD,GAAG,EAAEkD,IAAI,EAAE;IACrB,KAAK,CAAClD,GAAG,EAAE,mBAAmB,CAAC;IAC/B,IAAI,CAACkD,IAAI,GAAGA,IAAI;EAClB;AACF;AAEA,MAAMC,qBAAqB,SAASR,aAAa,CAAC;EAChDK,WAAWA,CAAChD,GAAG,EAAEoD,OAAO,EAAE;IACxB,KAAK,CAACpD,GAAG,EAAE,uBAAuB,CAAC;IACnC,IAAI,CAACoD,OAAO,GAAGA,OAAO;EACxB;AACF;AAEA,MAAMC,mBAAmB,SAASV,aAAa,CAAC;EAC9CK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,qBAAqB,CAAC;EACnC;AACF;AAEA,MAAMsD,iBAAiB,SAASX,aAAa,CAAC;EAC5CK,WAAWA,CAAChD,GAAG,EAAEuD,MAAM,EAAEC,OAAO,EAAE;IAChC,KAAK,CAACxD,GAAG,EAAE,mBAAmB,CAAC;IAC/B,IAAI,CAACuD,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;AACF;AAKA,MAAMC,WAAW,SAASd,aAAa,CAAC;EACtCK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,aAAa,CAAC;EAC3B;AACF;AAKA,MAAM0D,cAAc,SAASf,aAAa,CAAC;EACzCK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,gBAAgB,CAAC;EAC9B;AACF;AAEA,SAAS2D,aAAaA,CAACC,KAAK,EAAE;EAC5B,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,EAAE3C,MAAM,KAAK4C,SAAS,EAAE;IAC5D1D,WAAW,CAAC,oCAAoC,CAAC;EACnD;EACA,MAAMc,MAAM,GAAG2C,KAAK,CAAC3C,MAAM;EAC3B,MAAM6C,kBAAkB,GAAG,IAAI;EAC/B,IAAI7C,MAAM,GAAG6C,kBAAkB,EAAE;IAC/B,OAAOC,MAAM,CAACC,YAAY,CAACC,KAAK,CAAC,IAAI,EAAEL,KAAK,CAAC;EAC/C;EACA,MAAMM,MAAM,GAAG,EAAE;EACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlD,MAAM,EAAEkD,CAAC,IAAIL,kBAAkB,EAAE;IACnD,MAAMM,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAACH,CAAC,GAAGL,kBAAkB,EAAE7C,MAAM,CAAC;IACzD,MAAMsD,KAAK,GAAGX,KAAK,CAACY,QAAQ,CAACL,CAAC,EAAEC,QAAQ,CAAC;IACzCF,MAAM,CAACO,IAAI,CAACV,MAAM,CAACC,YAAY,CAACC,KAAK,CAAC,IAAI,EAAEM,KAAK,CAAC,CAAC;EACrD;EACA,OAAOL,MAAM,CAACQ,IAAI,CAAC,EAAE,CAAC;AACxB;AAEA,SAASC,aAAaA,CAAC7C,GAAG,EAAE;EAC1B,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3B3B,WAAW,CAAC,oCAAoC,CAAC;EACnD;EACA,MAAMc,MAAM,GAAGa,GAAG,CAACb,MAAM;EACzB,MAAM2C,KAAK,GAAG,IAAIgB,UAAU,CAAC3D,MAAM,CAAC;EACpC,KAAK,IAAIkD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlD,MAAM,EAAE,EAAEkD,CAAC,EAAE;IAC/BP,KAAK,CAACO,CAAC,CAAC,GAAGrC,GAAG,CAAC+C,UAAU,CAACV,CAAC,CAAC,GAAG,IAAI;EACrC;EACA,OAAOP,KAAK;AACd;AAEA,SAASkB,UAAUA,CAAC5C,GAAG,EAAE;EACvB,OAAOI,MAAM,CAACyC,IAAI,CAAC7C,GAAG,CAAC,CAACjB,MAAM;AAChC;AAGA,SAAS+D,cAAcA,CAAA,EAAG;EACxB,MAAMC,OAAO,GAAG,IAAIL,UAAU,CAAC,CAAC,CAAC;EACjCK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;EACd,MAAMC,MAAM,GAAG,IAAIC,WAAW,CAACF,OAAO,CAACG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;EACpD,OAAOF,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AACxB;AAEA,MAAMG,WAAW,CAAC;EAChB,WAAWL,cAAcA,CAAA,EAAG;IAC1B,OAAO/C,MAAM,CAAC,IAAI,EAAE,gBAAgB,EAAE+C,cAAc,CAAC,CAAC,CAAC;EACzD;EAEA,WAAWM,0BAA0BA,CAAA,EAAG;IACtC,OAAOrD,MAAM,CACX,IAAI,EACJ,4BAA4B,EAC5B,OAAOsD,eAAe,KAAK,WAC7B,CAAC;EACH;EAEA,WAAWC,uBAAuBA,CAAA,EAAG;IACnC,OAAOvD,MAAM,CACX,IAAI,EACJ,yBAAyB,EACzB,OAAOwD,YAAY,KAAK,WAC1B,CAAC;EACH;EAEA,WAAWC,uBAAuBA,CAAA,EAAG;IACnC,OAAOzD,MAAM,CACX,IAAI,EACJ,yBAAyB,EACzB,OAAO0D,YAAY,KAAK,WAC1B,CAAC;EACH;EAEA,WAAWC,oBAAoBA,CAAA,EAAG;IAChC,OAAO3D,MAAM,CACX,IAAI,EACJ,sBAAsB,EACtB,OAAO4D,SAAS,KAAK,WACvB,CAAC;EACH;EAEA,WAAWC,QAAQA,CAAA,EAAG;IACpB,MAAM;MAAEA,QAAQ;MAAEC;IAAU,CAAC,GAAGC,SAAS;IAEzC,OAAO/D,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE;MAC9BgE,SAAS,EAAEF,SAAS,CAACG,QAAQ,CAAC,SAAS,CAAC;MACxCC,OAAO,EAAEL,QAAQ,CAACI,QAAQ,CAAC,OAAO,CAAC;MACnCE,KAAK,EAAEN,QAAQ,CAACI,QAAQ,CAAC,KAAK,CAAC;MAC/BG,SAAS,EAAEP,QAAQ,CAACI,QAAQ,CAAC,KAAK,CAAC;MACnCI,SAAS,EAEPP,SAAS,CAACG,QAAQ,CAAC,SAAS;IAChC,CAAC,CAAC;EACJ;EAEA,WAAWK,mBAAmBA,CAAA,EAAG;IAC/B,OAAOtE,MAAM,CACX,IAAI,EACJ,qBAAqB,EACrBuE,UAAU,CAACC,GAAG,EAAEC,QAAQ,GAAG,0BAA0B,CACvD,CAAC;EACH;EAEA,WAAWC,0BAA0BA,CAAA,EAAG;IACtC,OAAO1E,MAAM,CACX,IAAI,EACJ,4BAA4B,EAC5B,CAAC,MAAM;MACL,IAAI,OAAO2E,QAAQ,KAAK,WAAW,EAAE;QACnC,OAAO,KAAK;MACd;MACA,MAAMC,KAAK,GAAGD,QAAQ,CAACE,aAAa,CAAC,OAAO,CAAC;MAC7CD,KAAK,CAACtX,IAAI,GAAG,OAAO;MACpBsX,KAAK,CAACE,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;MAC/BF,KAAK,CAACzE,KAAK,GAAG,WAAW;MAGzB,OAAOyE,KAAK,CAACzE,KAAK,KAAK,SAAS;IAClC,CAAC,EAAE,CACL,CAAC;EACH;AACF;AAEA,MAAM4E,IAAI,CAAC;EACT,WAAWC,OAAOA,CAAA,EAAG;IACnB,OAAOhF,MAAM,CACX,IAAI,EACJ,SAAS,EACTiF,KAAK,CAACC,IAAI,CAACD,KAAK,CAAC,GAAG,CAAC,CAACnC,IAAI,CAAC,CAAC,EAAEqC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CACpE,CAAC;EACH;EAEA,OAAOC,YAAYA,CAACC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE;IAC3B,OAAO,IAAI,IAAI,CAACT,OAAO,CAACO,CAAC,CAAC,GAAG,IAAI,CAACP,OAAO,CAACQ,CAAC,CAAC,GAAG,IAAI,CAACR,OAAO,CAACS,CAAC,CAAC,EAAE;EAClE;EAEA,OAAOC,oBAAoBA,CAACC,EAAE,EAAE;IAC9B,OAAO,CAACA,EAAE,CAACC,CAAC,EAAED,EAAE,CAACF,CAAC,EAAEE,EAAE,CAACE,CAAC,EAAEF,EAAE,CAACG,CAAC,EAAEH,EAAE,CAACI,CAAC,EAAEJ,EAAE,CAACK,CAAC,CAAC;EAC7C;EAKA,OAAOC,WAAWA,CAAC9N,SAAS,EAAE+N,MAAM,EAAE;IACpC,IAAIC,IAAI;IACR,IAAIhO,SAAS,CAAC,CAAC,CAAC,EAAE;MAChB,IAAIA,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACpBgO,IAAI,GAAGD,MAAM,CAAC,CAAC,CAAC;QAChBA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;QACrBA,MAAM,CAAC,CAAC,CAAC,GAAGC,IAAI;MAClB;MACAD,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;MACzB+N,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;MAEzB,IAAIA,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACpBgO,IAAI,GAAGD,MAAM,CAAC,CAAC,CAAC;QAChBA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;QACrBA,MAAM,CAAC,CAAC,CAAC,GAAGC,IAAI;MAClB;MACAD,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;MACzB+N,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;IAC3B,CAAC,MAAM;MACLgO,IAAI,GAAGD,MAAM,CAAC,CAAC,CAAC;MAChBA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;MACrBA,MAAM,CAAC,CAAC,CAAC,GAAGC,IAAI;MAChBA,IAAI,GAAGD,MAAM,CAAC,CAAC,CAAC;MAChBA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;MACrBA,MAAM,CAAC,CAAC,CAAC,GAAGC,IAAI;MAEhB,IAAIhO,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACpBgO,IAAI,GAAGD,MAAM,CAAC,CAAC,CAAC;QAChBA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;QACrBA,MAAM,CAAC,CAAC,CAAC,GAAGC,IAAI;MAClB;MACAD,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;MACzB+N,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;MAEzB,IAAIA,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACpBgO,IAAI,GAAGD,MAAM,CAAC,CAAC,CAAC;QAChBA,MAAM,CAAC,CAAC,CAAC,GAAGA,MAAM,CAAC,CAAC,CAAC;QACrBA,MAAM,CAAC,CAAC,CAAC,GAAGC,IAAI;MAClB;MACAD,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;MACzB+N,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;IAC3B;IACA+N,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;IACzB+N,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;IACzB+N,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;IACzB+N,MAAM,CAAC,CAAC,CAAC,IAAI/N,SAAS,CAAC,CAAC,CAAC;EAC3B;EAGA,OAAOA,SAASA,CAACiO,EAAE,EAAEC,EAAE,EAAE;IACvB,OAAO,CACLD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,EAC7BD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,EAC7BD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,EAC7BD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,EAC7BD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,EACrCA,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,GAAGD,EAAE,CAAC,CAAC,CAAC,CACtC;EACH;EAGA,OAAOE,mBAAmBA,CAACC,CAAC,EAAEC,EAAE,EAAE;IAChC,OAAO,CACLD,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACZ,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACf,CAAC,EACzBc,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACZ,CAAC,GAAGW,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACf,CAAC,EACzBc,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACX,CAAC,GAAGU,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACV,CAAC,EACzBS,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACX,CAAC,GAAGU,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACV,CAAC,EACzBS,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACT,CAAC,GAAGQ,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACR,CAAC,GAAGO,CAAC,CAAC,CAAC,CAAC,EAChCA,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACT,CAAC,GAAGQ,CAAC,CAAC,CAAC,CAAC,GAAGC,EAAE,CAACR,CAAC,GAAGO,CAAC,CAAC,CAAC,CAAC,CACjC;EACH;EAGA,OAAOE,cAAcA,CAACC,CAAC,EAAEH,CAAC,EAAEI,GAAG,GAAG,CAAC,EAAE;IACnC,MAAMC,EAAE,GAAGF,CAAC,CAACC,GAAG,CAAC;IACjB,MAAME,EAAE,GAAGH,CAAC,CAACC,GAAG,GAAG,CAAC,CAAC;IACrBD,CAAC,CAACC,GAAG,CAAC,GAAGC,EAAE,GAAGL,CAAC,CAAC,CAAC,CAAC,GAAGM,EAAE,GAAGN,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;IACrCG,CAAC,CAACC,GAAG,GAAG,CAAC,CAAC,GAAGC,EAAE,GAAGL,CAAC,CAAC,CAAC,CAAC,GAAGM,EAAE,GAAGN,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;EAC3C;EAEA,OAAOO,sBAAsBA,CAACJ,CAAC,EAAEvO,SAAS,EAAEwO,GAAG,GAAG,CAAC,EAAE;IACnD,MAAMI,EAAE,GAAG5O,SAAS,CAAC,CAAC,CAAC;IACvB,MAAMiO,EAAE,GAAGjO,SAAS,CAAC,CAAC,CAAC;IACvB,MAAMkO,EAAE,GAAGlO,SAAS,CAAC,CAAC,CAAC;IACvB,MAAM6O,EAAE,GAAG7O,SAAS,CAAC,CAAC,CAAC;IACvB,MAAM8O,EAAE,GAAG9O,SAAS,CAAC,CAAC,CAAC;IACvB,MAAM+O,EAAE,GAAG/O,SAAS,CAAC,CAAC,CAAC;IACvB,KAAK,IAAI+J,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,CAAC,EAAE;MAC7B,MAAMiF,EAAE,GAAGT,CAAC,CAACC,GAAG,GAAGzE,CAAC,CAAC;MACrB,MAAMkF,GAAG,GAAGV,CAAC,CAACC,GAAG,GAAGzE,CAAC,GAAG,CAAC,CAAC;MAC1BwE,CAAC,CAACC,GAAG,GAAGzE,CAAC,CAAC,GAAGiF,EAAE,GAAGJ,EAAE,GAAGK,GAAG,GAAGf,EAAE,GAAGY,EAAE;MACpCP,CAAC,CAACC,GAAG,GAAGzE,CAAC,GAAG,CAAC,CAAC,GAAGiF,EAAE,GAAGf,EAAE,GAAGgB,GAAG,GAAGJ,EAAE,GAAGE,EAAE;IAC1C;EACF;EAEA,OAAOG,qBAAqBA,CAACX,CAAC,EAAEH,CAAC,EAAE;IACjC,MAAMK,EAAE,GAAGF,CAAC,CAAC,CAAC,CAAC;IACf,MAAMG,EAAE,GAAGH,CAAC,CAAC,CAAC,CAAC;IACf,MAAMZ,CAAC,GAAGS,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;IACnCG,CAAC,CAAC,CAAC,CAAC,GAAG,CAACE,EAAE,GAAGL,CAAC,CAAC,CAAC,CAAC,GAAGM,EAAE,GAAGN,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,IAAIT,CAAC;IAC9DY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAACE,EAAE,GAAGL,CAAC,CAAC,CAAC,CAAC,GAAGM,EAAE,GAAGN,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,IAAIT,CAAC;EACjE;EAIA,OAAOwB,uBAAuBA,CAACC,IAAI,EAAEpP,SAAS,EAAEqP,MAAM,EAAE;IACtD,MAAMT,EAAE,GAAG5O,SAAS,CAAC,CAAC,CAAC;IACvB,MAAMiO,EAAE,GAAGjO,SAAS,CAAC,CAAC,CAAC;IACvB,MAAMkO,EAAE,GAAGlO,SAAS,CAAC,CAAC,CAAC;IACvB,MAAM6O,EAAE,GAAG7O,SAAS,CAAC,CAAC,CAAC;IACvB,MAAM8O,EAAE,GAAG9O,SAAS,CAAC,CAAC,CAAC;IACvB,MAAM+O,EAAE,GAAG/O,SAAS,CAAC,CAAC,CAAC;IACvB,MAAMsP,EAAE,GAAGF,IAAI,CAAC,CAAC,CAAC;IAClB,MAAMG,EAAE,GAAGH,IAAI,CAAC,CAAC,CAAC;IAClB,MAAMI,EAAE,GAAGJ,IAAI,CAAC,CAAC,CAAC;IAClB,MAAMK,EAAE,GAAGL,IAAI,CAAC,CAAC,CAAC;IAElB,IAAIM,EAAE,GAAGd,EAAE,GAAGU,EAAE,GAAGR,EAAE;IACrB,IAAIa,EAAE,GAAGD,EAAE;IACX,IAAIE,EAAE,GAAGhB,EAAE,GAAGY,EAAE,GAAGV,EAAE;IACrB,IAAIe,EAAE,GAAGD,EAAE;IACX,IAAIE,EAAE,GAAGjB,EAAE,GAAGU,EAAE,GAAGR,EAAE;IACrB,IAAIgB,EAAE,GAAGD,EAAE;IACX,IAAIE,EAAE,GAAGnB,EAAE,GAAGY,EAAE,GAAGV,EAAE;IACrB,IAAIkB,EAAE,GAAGD,EAAE;IAEX,IAAI/B,EAAE,KAAK,CAAC,IAAIC,EAAE,KAAK,CAAC,EAAE;MAExB,MAAMgC,IAAI,GAAGjC,EAAE,GAAGqB,EAAE;MACpB,MAAMa,IAAI,GAAGlC,EAAE,GAAGuB,EAAE;MACpB,MAAMY,IAAI,GAAGlC,EAAE,GAAGqB,EAAE;MACpB,MAAMc,IAAI,GAAGnC,EAAE,GAAGuB,EAAE;MACpBC,EAAE,IAAIU,IAAI;MACVP,EAAE,IAAIO,IAAI;MACVR,EAAE,IAAIS,IAAI;MACVV,EAAE,IAAIU,IAAI;MACVP,EAAE,IAAII,IAAI;MACVD,EAAE,IAAIC,IAAI;MACVF,EAAE,IAAIG,IAAI;MACVJ,EAAE,IAAII,IAAI;IACZ;IAEAd,MAAM,CAAC,CAAC,CAAC,GAAGpF,IAAI,CAACC,GAAG,CAACmF,MAAM,CAAC,CAAC,CAAC,EAAEK,EAAE,EAAEE,EAAE,EAAED,EAAE,EAAEE,EAAE,CAAC;IAC/CR,MAAM,CAAC,CAAC,CAAC,GAAGpF,IAAI,CAACC,GAAG,CAACmF,MAAM,CAAC,CAAC,CAAC,EAAES,EAAE,EAAEE,EAAE,EAAED,EAAE,EAAEE,EAAE,CAAC;IAC/CZ,MAAM,CAAC,CAAC,CAAC,GAAGpF,IAAI,CAACqG,GAAG,CAACjB,MAAM,CAAC,CAAC,CAAC,EAAEK,EAAE,EAAEE,EAAE,EAAED,EAAE,EAAEE,EAAE,CAAC;IAC/CR,MAAM,CAAC,CAAC,CAAC,GAAGpF,IAAI,CAACqG,GAAG,CAACjB,MAAM,CAAC,CAAC,CAAC,EAAES,EAAE,EAAEE,EAAE,EAAED,EAAE,EAAEE,EAAE,CAAC;EACjD;EAEA,OAAOM,gBAAgBA,CAACnC,CAAC,EAAE;IACzB,MAAMT,CAAC,GAAGS,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,CACLA,CAAC,CAAC,CAAC,CAAC,GAAGT,CAAC,EACR,CAACS,CAAC,CAAC,CAAC,CAAC,GAAGT,CAAC,EACT,CAACS,CAAC,CAAC,CAAC,CAAC,GAAGT,CAAC,EACTS,CAAC,CAAC,CAAC,CAAC,GAAGT,CAAC,EACR,CAACS,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,IAAIT,CAAC,EAC/B,CAACS,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,GAAGA,CAAC,CAAC,CAAC,CAAC,IAAIT,CAAC,CAChC;EACH;EAKA,OAAO6C,6BAA6BA,CAACC,MAAM,EAAEpB,MAAM,EAAE;IACnD,MAAMT,EAAE,GAAG6B,MAAM,CAAC,CAAC,CAAC;IACpB,MAAMxC,EAAE,GAAGwC,MAAM,CAAC,CAAC,CAAC;IACpB,MAAMvC,EAAE,GAAGuC,MAAM,CAAC,CAAC,CAAC;IACpB,MAAM5B,EAAE,GAAG4B,MAAM,CAAC,CAAC,CAAC;IAEpB,MAAMhD,CAAC,GAAGmB,EAAE,IAAI,CAAC,GAAGX,EAAE,IAAI,CAAC;IAC3B,MAAMX,CAAC,GAAGsB,EAAE,GAAGV,EAAE,GAAGD,EAAE,GAAGY,EAAE;IAC3B,MAAMnB,CAAC,GAAGQ,EAAE,IAAI,CAAC,GAAGW,EAAE,IAAI,CAAC;IAG3B,MAAM6B,KAAK,GAAG,CAACjD,CAAC,GAAGC,CAAC,IAAI,CAAC;IACzB,MAAMiD,MAAM,GAAG1G,IAAI,CAAC2G,IAAI,CAACF,KAAK,IAAI,CAAC,IAAIjD,CAAC,GAAGC,CAAC,GAAGJ,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD+B,MAAM,CAAC,CAAC,CAAC,GAAGpF,IAAI,CAAC2G,IAAI,CAACF,KAAK,GAAGC,MAAM,IAAI,CAAC,CAAC;IAC1CtB,MAAM,CAAC,CAAC,CAAC,GAAGpF,IAAI,CAAC2G,IAAI,CAACF,KAAK,GAAGC,MAAM,IAAI,CAAC,CAAC;EAC5C;EAMA,OAAOE,aAAaA,CAACzB,IAAI,EAAE;IACzB,MAAMhC,CAAC,GAAGgC,IAAI,CAAC0B,KAAK,CAAC,CAAC,CAAC;IACvB,IAAI1B,IAAI,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC,EAAE;MACrBhC,CAAC,CAAC,CAAC,CAAC,GAAGgC,IAAI,CAAC,CAAC,CAAC;MACdhC,CAAC,CAAC,CAAC,CAAC,GAAGgC,IAAI,CAAC,CAAC,CAAC;IAChB;IACA,IAAIA,IAAI,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC,EAAE;MACrBhC,CAAC,CAAC,CAAC,CAAC,GAAGgC,IAAI,CAAC,CAAC,CAAC;MACdhC,CAAC,CAAC,CAAC,CAAC,GAAGgC,IAAI,CAAC,CAAC,CAAC;IAChB;IACA,OAAOhC,CAAC;EACV;EAKA,OAAO2D,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAE;IAC7B,MAAMC,IAAI,GAAGjH,IAAI,CAACqG,GAAG,CACnBrG,IAAI,CAACC,GAAG,CAAC8G,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC,EAC5B/G,IAAI,CAACC,GAAG,CAAC+G,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAC7B,CAAC;IACD,MAAME,KAAK,GAAGlH,IAAI,CAACC,GAAG,CACpBD,IAAI,CAACqG,GAAG,CAACU,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC,EAC5B/G,IAAI,CAACqG,GAAG,CAACW,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAC7B,CAAC;IACD,IAAIC,IAAI,GAAGC,KAAK,EAAE;MAChB,OAAO,IAAI;IACb;IACA,MAAMC,IAAI,GAAGnH,IAAI,CAACqG,GAAG,CACnBrG,IAAI,CAACC,GAAG,CAAC8G,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC,EAC5B/G,IAAI,CAACC,GAAG,CAAC+G,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAC7B,CAAC;IACD,MAAMI,KAAK,GAAGpH,IAAI,CAACC,GAAG,CACpBD,IAAI,CAACqG,GAAG,CAACU,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAAC,EAC5B/G,IAAI,CAACqG,GAAG,CAACW,KAAK,CAAC,CAAC,CAAC,EAAEA,KAAK,CAAC,CAAC,CAAC,CAC7B,CAAC;IACD,IAAIG,IAAI,GAAGC,KAAK,EAAE;MAChB,OAAO,IAAI;IACb;IAEA,OAAO,CAACH,IAAI,EAAEE,IAAI,EAAED,KAAK,EAAEE,KAAK,CAAC;EACnC;EAEA,OAAOC,gBAAgBA,CAACC,CAAC,EAAEC,CAAC,EAAEzD,MAAM,EAAE;IACpCA,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACC,GAAG,CAAC6D,MAAM,CAAC,CAAC,CAAC,EAAEwD,CAAC,CAAC;IAClCxD,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACC,GAAG,CAAC6D,MAAM,CAAC,CAAC,CAAC,EAAEyD,CAAC,CAAC;IAClCzD,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACqG,GAAG,CAACvC,MAAM,CAAC,CAAC,CAAC,EAAEwD,CAAC,CAAC;IAClCxD,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACqG,GAAG,CAACvC,MAAM,CAAC,CAAC,CAAC,EAAEyD,CAAC,CAAC;EACpC;EAEA,OAAOC,eAAeA,CAACC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE9D,MAAM,EAAE;IAC7CA,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACC,GAAG,CAAC6D,MAAM,CAAC,CAAC,CAAC,EAAE2D,EAAE,EAAEE,EAAE,CAAC;IACvC7D,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACC,GAAG,CAAC6D,MAAM,CAAC,CAAC,CAAC,EAAE4D,EAAE,EAAEE,EAAE,CAAC;IACvC9D,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACqG,GAAG,CAACvC,MAAM,CAAC,CAAC,CAAC,EAAE2D,EAAE,EAAEE,EAAE,CAAC;IACvC7D,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACqG,GAAG,CAACvC,MAAM,CAAC,CAAC,CAAC,EAAE4D,EAAE,EAAEE,EAAE,CAAC;EACzC;EAEA,OAAO,CAACC,kBAAkBC,CAACL,EAAE,EAAEE,EAAE,EAAEI,EAAE,EAAEC,EAAE,EAAEN,EAAE,EAAEE,EAAE,EAAEK,EAAE,EAAEC,EAAE,EAAEC,CAAC,EAAErE,MAAM,EAAE;IACpE,IAAIqE,CAAC,IAAI,CAAC,IAAIA,CAAC,IAAI,CAAC,EAAE;MACpB;IACF;IACA,MAAMC,EAAE,GAAG,CAAC,GAAGD,CAAC;IAChB,MAAME,EAAE,GAAGF,CAAC,GAAGA,CAAC;IAChB,MAAMG,GAAG,GAAGD,EAAE,GAAGF,CAAC;IAClB,MAAMb,CAAC,GAAGc,EAAE,IAAIA,EAAE,IAAIA,EAAE,GAAGX,EAAE,GAAG,CAAC,GAAGU,CAAC,GAAGR,EAAE,CAAC,GAAG,CAAC,GAAGU,EAAE,GAAGN,EAAE,CAAC,GAAGO,GAAG,GAAGN,EAAE;IACrE,MAAMT,CAAC,GAAGa,EAAE,IAAIA,EAAE,IAAIA,EAAE,GAAGV,EAAE,GAAG,CAAC,GAAGS,CAAC,GAAGP,EAAE,CAAC,GAAG,CAAC,GAAGS,EAAE,GAAGJ,EAAE,CAAC,GAAGK,GAAG,GAAGJ,EAAE;IACrEpE,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACC,GAAG,CAAC6D,MAAM,CAAC,CAAC,CAAC,EAAEwD,CAAC,CAAC;IAClCxD,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACC,GAAG,CAAC6D,MAAM,CAAC,CAAC,CAAC,EAAEyD,CAAC,CAAC;IAClCzD,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACqG,GAAG,CAACvC,MAAM,CAAC,CAAC,CAAC,EAAEwD,CAAC,CAAC;IAClCxD,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACqG,GAAG,CAACvC,MAAM,CAAC,CAAC,CAAC,EAAEyD,CAAC,CAAC;EACpC;EAEA,OAAO,CAACgB,WAAWC,CAACf,EAAE,EAAEE,EAAE,EAAEI,EAAE,EAAEC,EAAE,EAAEN,EAAE,EAAEE,EAAE,EAAEK,EAAE,EAAEC,EAAE,EAAE1E,CAAC,EAAEH,CAAC,EAAEI,CAAC,EAAEK,MAAM,EAAE;IACnE,IAAI9D,IAAI,CAACyI,GAAG,CAACjF,CAAC,CAAC,GAAG,KAAK,EAAE;MACvB,IAAIxD,IAAI,CAACyI,GAAG,CAACpF,CAAC,CAAC,IAAI,KAAK,EAAE;QACxB,IAAI,CAAC,CAACwE,kBAAkB,CACtBJ,EAAE,EACFE,EAAE,EACFI,EAAE,EACFC,EAAE,EACFN,EAAE,EACFE,EAAE,EACFK,EAAE,EACFC,EAAE,EACF,CAACzE,CAAC,GAAGJ,CAAC,EACNS,MACF,CAAC;MACH;MACA;IACF;IAEA,MAAM4E,KAAK,GAAGrF,CAAC,IAAI,CAAC,GAAG,CAAC,GAAGI,CAAC,GAAGD,CAAC;IAChC,IAAIkF,KAAK,GAAG,CAAC,EAAE;MACb;IACF;IACA,MAAMC,SAAS,GAAG3I,IAAI,CAAC2G,IAAI,CAAC+B,KAAK,CAAC;IAClC,MAAMhD,EAAE,GAAG,CAAC,GAAGlC,CAAC;IAChB,IAAI,CAAC,CAACqE,kBAAkB,CACtBJ,EAAE,EACFE,EAAE,EACFI,EAAE,EACFC,EAAE,EACFN,EAAE,EACFE,EAAE,EACFK,EAAE,EACFC,EAAE,EACF,CAAC,CAAC7E,CAAC,GAAGsF,SAAS,IAAIjD,EAAE,EACrB5B,MACF,CAAC;IACD,IAAI,CAAC,CAAC+D,kBAAkB,CACtBJ,EAAE,EACFE,EAAE,EACFI,EAAE,EACFC,EAAE,EACFN,EAAE,EACFE,EAAE,EACFK,EAAE,EACFC,EAAE,EACF,CAAC,CAAC7E,CAAC,GAAGsF,SAAS,IAAIjD,EAAE,EACrB5B,MACF,CAAC;EACH;EAGA,OAAO8E,iBAAiBA,CAACnB,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEG,EAAE,EAAEE,EAAE,EAAED,EAAE,EAAEE,EAAE,EAAEpE,MAAM,EAAE;IAC/DA,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACC,GAAG,CAAC6D,MAAM,CAAC,CAAC,CAAC,EAAE2D,EAAE,EAAEO,EAAE,CAAC;IACvClE,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACC,GAAG,CAAC6D,MAAM,CAAC,CAAC,CAAC,EAAE4D,EAAE,EAAEQ,EAAE,CAAC;IACvCpE,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACqG,GAAG,CAACvC,MAAM,CAAC,CAAC,CAAC,EAAE2D,EAAE,EAAEO,EAAE,CAAC;IACvClE,MAAM,CAAC,CAAC,CAAC,GAAG9D,IAAI,CAACqG,GAAG,CAACvC,MAAM,CAAC,CAAC,CAAC,EAAE4D,EAAE,EAAEQ,EAAE,CAAC;IAEvC,IAAI,CAAC,CAACK,WAAW,CACfd,EAAE,EACFE,EAAE,EACFI,EAAE,EACFC,EAAE,EACFN,EAAE,EACFE,EAAE,EACFK,EAAE,EACFC,EAAE,EACF,CAAC,IAAI,CAACT,EAAE,GAAG,CAAC,IAAIE,EAAE,GAAGI,EAAE,CAAC,GAAGC,EAAE,CAAC,EAC9B,CAAC,IAAIP,EAAE,GAAG,CAAC,GAAGE,EAAE,GAAGI,EAAE,CAAC,EACtB,CAAC,IAAIJ,EAAE,GAAGF,EAAE,CAAC,EACb3D,MACF,CAAC;IACD,IAAI,CAAC,CAACyE,WAAW,CACfd,EAAE,EACFE,EAAE,EACFI,EAAE,EACFC,EAAE,EACFN,EAAE,EACFE,EAAE,EACFK,EAAE,EACFC,EAAE,EACF,CAAC,IAAI,CAACR,EAAE,GAAG,CAAC,IAAIE,EAAE,GAAGK,EAAE,CAAC,GAAGC,EAAE,CAAC,EAC9B,CAAC,IAAIR,EAAE,GAAG,CAAC,GAAGE,EAAE,GAAGK,EAAE,CAAC,EACtB,CAAC,IAAIL,EAAE,GAAGF,EAAE,CAAC,EACb5D,MACF,CAAC;EACH;AACF;AAEA,MAAM+E,uBAAuB,GAAG,iDAC9B,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAC7E,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC5E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAC7E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EACzE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAC7C;AAED,SAASC,iBAAiBA,CAACrL,GAAG,EAAEsL,kBAAkB,GAAG,KAAK,EAAE;EAI1D,IAAItL,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE;IACpB,IAAIuL,QAAQ;IACZ,IAAIvL,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;MAC1CuL,QAAQ,GAAG,UAAU;MACrB,IAAIvL,GAAG,CAACb,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;QACxBa,GAAG,GAAGA,GAAG,CAACoJ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACxB;IACF,CAAC,MAAM,IAAIpJ,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;MACjDuL,QAAQ,GAAG,UAAU;MACrB,IAAIvL,GAAG,CAACb,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;QACxBa,GAAG,GAAGA,GAAG,CAACoJ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;MACxB;IACF,CAAC,MAAM,IAAIpJ,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;MACtEuL,QAAQ,GAAG,OAAO;IACpB;IAEA,IAAIA,QAAQ,EAAE;MACZ,IAAI;QACF,MAAMC,OAAO,GAAG,IAAIC,WAAW,CAACF,QAAQ,EAAE;UAAEG,KAAK,EAAE;QAAK,CAAC,CAAC;QAC1D,MAAMpI,MAAM,GAAGT,aAAa,CAAC7C,GAAG,CAAC;QACjC,MAAM2L,OAAO,GAAGH,OAAO,CAACI,MAAM,CAACtI,MAAM,CAAC;QACtC,IAAIgI,kBAAkB,IAAI,CAACK,OAAO,CAACvH,QAAQ,CAAC,MAAM,CAAC,EAAE;UACnD,OAAOuH,OAAO;QAChB;QACA,OAAOA,OAAO,CAACE,UAAU,CAAC,yBAAyB,EAAE,EAAE,CAAC;MAC1D,CAAC,CAAC,OAAOC,EAAE,EAAE;QACX1N,IAAI,CAAC,uBAAuB0N,EAAE,IAAI,CAAC;MACrC;IACF;EACF;EAEA,MAAM1J,MAAM,GAAG,EAAE;EACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG/L,GAAG,CAACb,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;IAC5C,MAAM2J,QAAQ,GAAGhM,GAAG,CAAC+C,UAAU,CAACV,CAAC,CAAC;IAClC,IAAI,CAACiJ,kBAAkB,IAAIU,QAAQ,KAAK,IAAI,EAAE;MAE5C,OAAO,EAAE3J,CAAC,GAAG0J,EAAE,IAAI/L,GAAG,CAAC+C,UAAU,CAACV,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;MAChD;IACF;IACA,MAAMjB,IAAI,GAAGgK,uBAAuB,CAACY,QAAQ,CAAC;IAC9C5J,MAAM,CAACO,IAAI,CAACvB,IAAI,GAAGa,MAAM,CAACC,YAAY,CAACd,IAAI,CAAC,GAAGpB,GAAG,CAACiM,MAAM,CAAC5J,CAAC,CAAC,CAAC;EAC/D;EACA,OAAOD,MAAM,CAACQ,IAAI,CAAC,EAAE,CAAC;AACxB;AAEA,SAASvD,kBAAkBA,CAACW,GAAG,EAAE;EAC/B,OAAOkM,kBAAkB,CAACC,MAAM,CAACnM,GAAG,CAAC,CAAC;AACxC;AAEA,SAASoM,kBAAkBA,CAACpM,GAAG,EAAE;EAC/B,OAAOqM,QAAQ,CAACC,kBAAkB,CAACtM,GAAG,CAAC,CAAC;AAC1C;AAEA,SAASuM,YAAYA,CAACC,IAAI,EAAEC,IAAI,EAAE;EAChC,IAAID,IAAI,CAACrN,MAAM,KAAKsN,IAAI,CAACtN,MAAM,EAAE;IAC/B,OAAO,KAAK;EACd;EACA,KAAK,IAAIkD,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAGS,IAAI,CAACrN,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;IAC7C,IAAImK,IAAI,CAACnK,CAAC,CAAC,KAAKoK,IAAI,CAACpK,CAAC,CAAC,EAAE;MACvB,OAAO,KAAK;IACd;EACF;EACA,OAAO,IAAI;AACb;AAEA,SAASqK,mBAAmBA,CAACC,IAAI,GAAG,IAAIC,IAAI,CAAC,CAAC,EAAE;EAC9C,IAAI,EAAED,IAAI,YAAYC,IAAI,CAAC,EAAE;IAC3BD,IAAI,GAAG,IAAIC,IAAI,CAACD,IAAI,CAAC;EACvB;EACA,MAAMrJ,MAAM,GAAG,CACbqJ,IAAI,CAACE,cAAc,CAAC,CAAC,CAACtH,QAAQ,CAAC,CAAC,EAChC,CAACoH,IAAI,CAACG,WAAW,CAAC,CAAC,GAAG,CAAC,EAAEvH,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EACpDmH,IAAI,CAACI,UAAU,CAAC,CAAC,CAACxH,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAC7CmH,IAAI,CAACK,WAAW,CAAC,CAAC,CAACzH,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAC9CmH,IAAI,CAACM,aAAa,CAAC,CAAC,CAAC1H,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAChDmH,IAAI,CAACO,aAAa,CAAC,CAAC,CAAC3H,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CACjD;EAED,OAAOlC,MAAM,CAACV,IAAI,CAAC,EAAE,CAAC;AACxB;AAEA,IAAIuK,cAAc,GAAG,IAAI;AACzB,IAAIC,gBAAgB,GAAG,IAAI;AAC3B,SAASC,gBAAgBA,CAACrN,GAAG,EAAE;EAC7B,IAAI,CAACmN,cAAc,EAAE;IAOnBA,cAAc,GACZ,0UAA0U;IAC5UC,gBAAgB,GAAG,IAAIE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;EAC3C;EACA,OAAOtN,GAAG,CAAC6L,UAAU,CAACsB,cAAc,EAAE,CAACI,CAAC,EAAEvG,EAAE,EAAEwG,EAAE,KAC9CxG,EAAE,GAAGA,EAAE,CAACyG,SAAS,CAAC,MAAM,CAAC,GAAGL,gBAAgB,CAACM,GAAG,CAACF,EAAE,CACrD,CAAC;AACH;AAEA,SAASG,OAAOA,CAAA,EAAG;EACjB,IAEE,OAAOC,MAAM,CAACC,UAAU,KAAK,UAAU,EACvC;IACA,OAAOD,MAAM,CAACC,UAAU,CAAC,CAAC;EAC5B;EACA,MAAMC,GAAG,GAAG,IAAIhL,UAAU,CAAC,EAAE,CAAC;EAC9B8K,MAAM,CAACG,eAAe,CAACD,GAAG,CAAC;EAC3B,OAAOjM,aAAa,CAACiM,GAAG,CAAC;AAC3B;AAEA,MAAME,gBAAgB,GAAG,oBAAoB;AAE7C,SAASC,oBAAoBA,CAACC,QAAQ,EAAEC,SAAS,EAAEC,IAAI,EAAE;EACvD,IAAI,CAAChJ,KAAK,CAACiJ,OAAO,CAACD,IAAI,CAAC,IAAIA,IAAI,CAACjP,MAAM,GAAG,CAAC,EAAE;IAC3C,OAAO,KAAK;EACd;EACA,MAAM,CAACmP,IAAI,EAAEC,IAAI,EAAE,GAAGC,IAAI,CAAC,GAAGJ,IAAI;EAClC,IAAI,CAACF,QAAQ,CAACI,IAAI,CAAC,IAAI,CAACxQ,MAAM,CAACC,SAAS,CAACuQ,IAAI,CAAC,EAAE;IAC9C,OAAO,KAAK;EACd;EACA,IAAI,CAACH,SAAS,CAACI,IAAI,CAAC,EAAE;IACpB,OAAO,KAAK;EACd;EACA,MAAME,OAAO,GAAGD,IAAI,CAACrP,MAAM;EAC3B,IAAIuP,SAAS,GAAG,IAAI;EACpB,QAAQH,IAAI,CAACvN,IAAI;IACf,KAAK,KAAK;MACR,IAAIyN,OAAO,GAAG,CAAC,IAAIA,OAAO,GAAG,CAAC,EAAE;QAC9B,OAAO,KAAK;MACd;MACA;IACF,KAAK,KAAK;IACV,KAAK,MAAM;MACT,OAAOA,OAAO,KAAK,CAAC;IACtB,KAAK,MAAM;IACX,KAAK,OAAO;IACZ,KAAK,MAAM;IACX,KAAK,OAAO;MACV,IAAIA,OAAO,GAAG,CAAC,EAAE;QACf,OAAO,KAAK;MACd;MACA;IACF,KAAK,MAAM;MACT,IAAIA,OAAO,KAAK,CAAC,EAAE;QACjB,OAAO,KAAK;MACd;MACAC,SAAS,GAAG,KAAK;MACjB;IACF;MACE,OAAO,KAAK;EAChB;EACA,KAAK,MAAMC,GAAG,IAAIH,IAAI,EAAE;IACtB,IAAI,OAAOG,GAAG,KAAK,QAAQ,IAAKD,SAAS,IAAIC,GAAG,KAAK,IAAK,EAAE;MAC1D;IACF;IACA,OAAO,KAAK;EACd;EACA,OAAO,IAAI;AACb;AAIA,MAAMC,OAAO,GAAGA,CAAA,KAAM,EAAE;AACxB,MAAMC,OAAO,GAAGA,CAAA,KAAM,IAAIvB,GAAG,CAAC,CAAC;AAC/B,MAAMwB,OAAO,GAAGA,CAAA,KAAMtO,MAAM,CAACuO,MAAM,CAAC,IAAI,CAAC;AAGzC,IAGE,OAAOC,IAAI,CAAC/N,SAAS,CAACa,KAAK,KAAK,UAAU,EAC1C;EACAkN,IAAI,CAAC/N,SAAS,CAACa,KAAK,GAAG,kBAAkB;IACvC,OAAO,IAAIgB,UAAU,CAAC,MAAM,IAAI,CAACmM,WAAW,CAAC,CAAC,CAAC;EACjD,CAAC;AACH;AAGA,IAGE,OAAOC,QAAQ,CAACjO,SAAS,CAACa,KAAK,KAAK,UAAU,EAC9C;EACAoN,QAAQ,CAACjO,SAAS,CAACa,KAAK,GAAG,kBAAkB;IAC3C,OAAO,IAAIgB,UAAU,CAAC,MAAM,IAAI,CAACmM,WAAW,CAAC,CAAC,CAAC;EACjD,CAAC;AACH;AAGA,IAGE,OAAOE,WAAW,CAACC,GAAG,KAAK,UAAU,EACrC;EACAD,WAAW,CAACC,GAAG,GAAG,UAAUC,QAAQ,EAAE;IACpC,MAAMC,EAAE,GAAG,IAAIC,eAAe,CAAC,CAAC;IAChC,MAAM;MAAEC;IAAO,CAAC,GAAGF,EAAE;IAGrB,KAAK,MAAMG,CAAC,IAAIJ,QAAQ,EAAE;MACxB,IAAII,CAAC,CAACC,OAAO,EAAE;QACbJ,EAAE,CAACK,KAAK,CAACF,CAAC,CAACG,MAAM,CAAC;QAClB,OAAOJ,MAAM;MACf;IACF;IAEA,KAAK,MAAMC,CAAC,IAAIJ,QAAQ,EAAE;MACxBI,CAAC,CAACI,gBAAgB,CAChB,OAAO,EACP,MAAM;QACJP,EAAE,CAACK,KAAK,CAACF,CAAC,CAACG,MAAM,CAAC;MACpB,CAAC,EACD;QAAEJ;MAAO,CACX,CAAC;IACH;IAEA,OAAOA,MAAM;EACf,CAAC;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5vCgE;AAEhE,MAAMM,YAAY,GAAGC,MAAM,CAAC,cAAc,CAAC;AAC3C,MAAMC,GAAG,GAAGD,MAAM,CAAC,KAAK,CAAC;AAEzB,IAAIE,QAAQ,GAAGzP,MAAM,CAACuO,MAAM,CAAC,IAAI,CAAC;AAClC,IAAImB,SAAS,GAAG1P,MAAM,CAACuO,MAAM,CAAC,IAAI,CAAC;AACnC,IAAIoB,QAAQ,GAAG3P,MAAM,CAACuO,MAAM,CAAC,IAAI,CAAC;AAElC,SAASqB,oBAAoBA,CAAA,EAAG;EAC9BH,QAAQ,GAAGzP,MAAM,CAACuO,MAAM,CAAC,IAAI,CAAC;EAC9BmB,SAAS,GAAG1P,MAAM,CAACuO,MAAM,CAAC,IAAI,CAAC;EAC/BoB,QAAQ,GAAG3P,MAAM,CAACuO,MAAM,CAAC,IAAI,CAAC;AAChC;AAEA,MAAMsB,IAAI,CAAC;EACTnP,WAAWA,CAACF,IAAI,EAAE;IAOhB,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;EAEA,OAAO0M,GAAGA,CAAC1M,IAAI,EAAE;IAEf,OAAQkP,SAAS,CAAClP,IAAI,CAAC,KAAK,IAAIqP,IAAI,CAACrP,IAAI,CAAC;EAC5C;AACF;AAEA,MAAMsP,GAAG,CAAC;EACRpP,WAAWA,CAACqP,GAAG,EAAE;IAOf,IAAI,CAACA,GAAG,GAAGA,GAAG;EAChB;EAEA,OAAO7C,GAAGA,CAAC6C,GAAG,EAAE;IAEd,OAAQN,QAAQ,CAACM,GAAG,CAAC,KAAK,IAAID,GAAG,CAACC,GAAG,CAAC;EACxC;AACF;AAEA,MAAMhQ,eAAe,GAAG,SAASiQ,sBAAsBA,CAAA,EAAG;EACxD,OAAOjQ,eAAe;AACxB,CAAC;AAED,MAAMkQ,IAAI,CAAC;EACTC,mBAAmB,GAAGnQ,eAAe;EAErC,CAACoQ,GAAG,GAAG,IAAIrD,GAAG,CAAC,CAAC;EAEhBsD,KAAK,GAAG,IAAI;EAEZC,kBAAkB,GAAG,KAAK;EAE1BC,IAAI;EAEJ5P,WAAWA,CAAC4P,IAAI,GAAG,IAAI,EAAE;IACvB,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;EAEAC,UAAUA,CAACC,OAAO,EAAE;IAClB,IAAI,CAACF,IAAI,GAAGE,OAAO;EACrB;EAEA,IAAIC,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAAC,CAACN,GAAG,CAACM,IAAI;EACvB;EAEA,CAACC,QAAQC,CAACC,OAAO,EAAEC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAE;IACnC,IAAIjR,KAAK,GAAG,IAAI,CAAC,CAACqQ,GAAG,CAACjD,GAAG,CAAC2D,IAAI,CAAC;IAC/B,IAAI/Q,KAAK,KAAKyB,SAAS,IAAIuP,IAAI,KAAKvP,SAAS,EAAE;MAO7CzB,KAAK,GAAG,IAAI,CAAC,CAACqQ,GAAG,CAACjD,GAAG,CAAC4D,IAAI,CAAC;MAC3B,IAAIhR,KAAK,KAAKyB,SAAS,IAAIwP,IAAI,KAAKxP,SAAS,EAAE;QAO7CzB,KAAK,GAAG,IAAI,CAAC,CAACqQ,GAAG,CAACjD,GAAG,CAAC6D,IAAI,CAAC;MAC7B;IACF;IACA,IAAIjR,KAAK,YAAYkR,GAAG,IAAI,IAAI,CAACV,IAAI,EAAE;MACrC,OAAOM,OAAO,GACV,IAAI,CAACN,IAAI,CAACW,UAAU,CAACnR,KAAK,EAAE,IAAI,CAACuQ,kBAAkB,CAAC,GACpD,IAAI,CAACC,IAAI,CAACY,KAAK,CAACpR,KAAK,EAAE,IAAI,CAACuQ,kBAAkB,CAAC;IACrD;IACA,OAAOvQ,KAAK;EACd;EAGAoN,GAAGA,CAAC2D,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAE;IACpB,OAAO,IAAI,CAAC,CAACL,QAAQ,CAAiB,KAAK,EAAEG,IAAI,EAAEC,IAAI,EAAEC,IAAI,CAAC;EAChE;EAGA,MAAMI,QAAQA,CAACN,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAE;IAC/B,OAAO,IAAI,CAAC,CAACL,QAAQ,CAAiB,IAAI,EAAEG,IAAI,EAAEC,IAAI,EAAEC,IAAI,CAAC;EAC/D;EAGAK,QAAQA,CAACP,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAE;IACzB,IAAIjR,KAAK,GAAG,IAAI,CAAC,CAAC4Q,QAAQ,CAAiB,KAAK,EAAEG,IAAI,EAAEC,IAAI,EAAEC,IAAI,CAAC;IAEnE,IAAInM,KAAK,CAACiJ,OAAO,CAAC/N,KAAK,CAAC,EAAE;MACxBA,KAAK,GAAGA,KAAK,CAAC8I,KAAK,CAAC,CAAC;MACrB,KAAK,IAAI/G,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAGzL,KAAK,CAACnB,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;QAC9C,IAAI/B,KAAK,CAAC+B,CAAC,CAAC,YAAYmP,GAAG,IAAI,IAAI,CAACV,IAAI,EAAE;UACxCxQ,KAAK,CAAC+B,CAAC,CAAC,GAAG,IAAI,CAACyO,IAAI,CAACY,KAAK,CAACpR,KAAK,CAAC+B,CAAC,CAAC,EAAE,IAAI,CAACwO,kBAAkB,CAAC;QAC/D;MACF;IACF;IACA,OAAOvQ,KAAK;EACd;EAGAuR,MAAMA,CAACC,GAAG,EAAE;IACV,OAAO,IAAI,CAAC,CAACnB,GAAG,CAACjD,GAAG,CAACoE,GAAG,CAAC;EAC3B;EAEAC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAAC,CAACpB,GAAG,CAAC1N,IAAI,CAAC,CAAC;EACzB;EAGA+O,YAAYA,CAAA,EAAG;IACb,OAAO,IAAI,CAAC,CAACrB,GAAG,CAACsB,MAAM,CAAC,CAAC;EAC3B;EAEAC,aAAaA,CAAA,EAAG;IACd,OAAO,IAAI,CAAC,CAACvB,GAAG,CAACwB,OAAO,CAAC,CAAC;EAC5B;EAEAC,GAAGA,CAACN,GAAG,EAAExR,KAAK,EAAE;IAQd,IAAI,CAAC,CAACqQ,GAAG,CAACyB,GAAG,CAACN,GAAG,EAAExR,KAAK,CAAC;EAC3B;EAEA+R,cAAcA,CAACP,GAAG,EAAExR,KAAK,EAAE;IACzB,IAAI,CAAC,IAAI,CAACgS,GAAG,CAACR,GAAG,CAAC,EAAE;MAClB,IAAI,CAACM,GAAG,CAACN,GAAG,EAAExR,KAAK,CAAC;IACtB;EACF;EAEAiS,WAAWA,CAACT,GAAG,EAAExR,KAAK,EAAE;IACtB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,IAAI,CAAC8R,GAAG,CAACN,GAAG,EAAExR,KAAK,CAAC;IACtB;EACF;EAEAkS,UAAUA,CAACV,GAAG,EAAExR,KAAK,EAAE;IACrB,IAAI8E,KAAK,CAACiJ,OAAO,CAAC/N,KAAK,CAAC,IAAImS,WAAW,CAACC,MAAM,CAACpS,KAAK,CAAC,EAAE;MACrD,IAAI,CAAC8R,GAAG,CAACN,GAAG,EAAExR,KAAK,CAAC;IACtB;EACF;EAEAqS,YAAYA,CAACb,GAAG,EAAExR,KAAK,EAAE;IACvB,IAAIA,KAAK,KAAKyB,SAAS,IAAIzB,KAAK,KAAK,IAAI,EAAE;MACzC,IAAI,CAAC8R,GAAG,CAACN,GAAG,EAAExR,KAAK,CAAC;IACtB;EACF;EAEAsS,SAASA,CAACd,GAAG,EAAExR,KAAK,EAAE;IACpB,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,IAAI,CAAC8R,GAAG,CAACN,GAAG,EAAEzB,IAAI,CAAC3C,GAAG,CAACpN,KAAK,CAAC,CAAC;IAChC,CAAC,MAAM,IAAIA,KAAK,YAAY+P,IAAI,EAAE;MAChC,IAAI,CAAC+B,GAAG,CAACN,GAAG,EAAExR,KAAK,CAAC;IACtB;EACF;EAEAuS,SAASA,CAACf,GAAG,EAAExR,KAAK,EAAE;IACpB,IAAIA,KAAK,YAAYmQ,IAAI,EAAE;MACzB,IAAI,CAAC2B,GAAG,CAACN,GAAG,EAAExR,KAAK,CAAC;IACtB;EACF;EAEAgS,GAAGA,CAACR,GAAG,EAAE;IACP,OAAO,IAAI,CAAC,CAACnB,GAAG,CAAC2B,GAAG,CAACR,GAAG,CAAC;EAC3B;EAEA,EAAE/B,MAAM,CAAC+C,QAAQ,IAAI;IACnB,KAAK,MAAM,CAAChB,GAAG,EAAExR,KAAK,CAAC,IAAI,IAAI,CAAC,CAACqQ,GAAG,EAAE;MACpC,MAAM,CACJmB,GAAG,EACHxR,KAAK,YAAYkR,GAAG,IAAI,IAAI,CAACV,IAAI,GAC7B,IAAI,CAACA,IAAI,CAACY,KAAK,CAACpR,KAAK,EAAE,IAAI,CAACuQ,kBAAkB,CAAC,GAC/CvQ,KAAK,CACV;IACH;EACF;EAEA,WAAWyS,KAAKA,CAAA,EAAG;IACjB,MAAMC,SAAS,GAAG,IAAIvC,IAAI,CAAC,IAAI,CAAC;IAEhCuC,SAAS,CAACZ,GAAG,GAAG,CAACN,GAAG,EAAExR,KAAK,KAAK;MAC9BjC,WAAW,CAAC,gDAAgD,CAAC;IAC/D,CAAC;IACD,OAAO8B,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE6S,SAAS,CAAC;EACzC;EAEA,OAAOC,KAAKA,CAAC;IAAEnC,IAAI;IAAEoC,SAAS;IAAEC,aAAa,GAAG;EAAM,CAAC,EAAE;IACvD,MAAMC,UAAU,GAAG,IAAI3C,IAAI,CAACK,IAAI,CAAC;MAC/BuC,UAAU,GAAG,IAAI/F,GAAG,CAAC,CAAC;IAExB,KAAK,MAAMgG,IAAI,IAAIJ,SAAS,EAAE;MAC5B,IAAI,EAAEI,IAAI,YAAY7C,IAAI,CAAC,EAAE;QAC3B;MACF;MACA,KAAK,MAAM,CAACqB,GAAG,EAAExR,KAAK,CAAC,IAAIgT,IAAI,CAACpB,aAAa,CAAC,CAAC,EAAE;QAC/C,IAAIqB,QAAQ,GAAGF,UAAU,CAAC3F,GAAG,CAACoE,GAAG,CAAC;QAClC,IAAIyB,QAAQ,KAAKxR,SAAS,EAAE;UAC1BwR,QAAQ,GAAG,EAAE;UACbF,UAAU,CAACjB,GAAG,CAACN,GAAG,EAAEyB,QAAQ,CAAC;QAC/B,CAAC,MAAM,IAAI,CAACJ,aAAa,IAAI,EAAE7S,KAAK,YAAYmQ,IAAI,CAAC,EAAE;UAIrD;QACF;QACA8C,QAAQ,CAAC5Q,IAAI,CAACrC,KAAK,CAAC;MACtB;IACF;IACA,KAAK,MAAM,CAACU,IAAI,EAAEiR,MAAM,CAAC,IAAIoB,UAAU,EAAE;MACvC,IAAIpB,MAAM,CAAC9S,MAAM,KAAK,CAAC,IAAI,EAAE8S,MAAM,CAAC,CAAC,CAAC,YAAYxB,IAAI,CAAC,EAAE;QACvD2C,UAAU,CAAChB,GAAG,CAACpR,IAAI,EAAEiR,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B;MACF;MACA,MAAMuB,OAAO,GAAG,IAAI/C,IAAI,CAACK,IAAI,CAAC;MAE9B,KAAK,MAAMwC,IAAI,IAAIrB,MAAM,EAAE;QACzB,KAAK,MAAM,CAACH,GAAG,EAAExR,KAAK,CAAC,IAAIgT,IAAI,CAACpB,aAAa,CAAC,CAAC,EAAE;UAC/CsB,OAAO,CAACnB,cAAc,CAACP,GAAG,EAAExR,KAAK,CAAC;QACpC;MACF;MACA,IAAIkT,OAAO,CAACvC,IAAI,GAAG,CAAC,EAAE;QACpBmC,UAAU,CAAChB,GAAG,CAACpR,IAAI,EAAEwS,OAAO,CAAC;MAC/B;IACF;IACAH,UAAU,CAACI,KAAK,CAAC,CAAC;IAElB,OAAOL,UAAU,CAACnC,IAAI,GAAG,CAAC,GAAGmC,UAAU,GAAG3C,IAAI,CAACsC,KAAK;EACtD;EAEAW,KAAKA,CAAA,EAAG;IACN,MAAMJ,IAAI,GAAG,IAAI7C,IAAI,CAAC,IAAI,CAACK,IAAI,CAAC;IAChC,KAAK,MAAM,CAACgB,GAAG,EAAExR,KAAK,CAAC,IAAI,IAAI,CAAC,CAACqQ,GAAG,EAAE;MACpC2C,IAAI,CAAClB,GAAG,CAACN,GAAG,EAAExR,KAAK,CAAC;IACtB;IACA,OAAOgT,IAAI;EACb;EAEAK,MAAMA,CAAC7B,GAAG,EAAE;IACV,IAAI,CAAC,CAACnB,GAAG,CAACgD,MAAM,CAAC7B,GAAG,CAAC;EACvB;AACF;AAEA,MAAMN,GAAG,CAAC;EACRtQ,WAAWA,CAAC0S,GAAG,EAAEC,GAAG,EAAE;IACpB,IAAI,CAACD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACC,GAAG,GAAGA,GAAG;EAChB;EAEAtO,QAAQA,CAAA,EAAG;IAGT,IAAI,IAAI,CAACsO,GAAG,KAAK,CAAC,EAAE;MAClB,OAAO,GAAG,IAAI,CAACD,GAAG,GAAG;IACvB;IACA,OAAO,GAAG,IAAI,CAACA,GAAG,IAAI,IAAI,CAACC,GAAG,EAAE;EAClC;EAEA,OAAOC,UAAUA,CAAC9T,GAAG,EAAE;IACrB,MAAM+T,GAAG,GAAG5D,QAAQ,CAACnQ,GAAG,CAAC;IACzB,IAAI+T,GAAG,EAAE;MACP,OAAOA,GAAG;IACZ;IACA,MAAMrN,CAAC,GAAG,eAAe,CAACsN,IAAI,CAAChU,GAAG,CAAC;IACnC,IAAI,CAAC0G,CAAC,IAAIA,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;MACtB,OAAO,IAAI;IACb;IAGA,OAAQyJ,QAAQ,CAACnQ,GAAG,CAAC,GAAG,IAAIwR,GAAG,CAC7ByC,QAAQ,CAACvN,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAClB,CAACA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAGuN,QAAQ,CAACvN,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,CAAC;EACH;EAEA,OAAOgH,GAAGA,CAACkG,GAAG,EAAEC,GAAG,EAAE;IACnB,MAAM/B,GAAG,GAAG+B,GAAG,KAAK,CAAC,GAAG,GAAGD,GAAG,GAAG,GAAG,GAAGA,GAAG,IAAIC,GAAG,EAAE;IAEnD,OAAQ1D,QAAQ,CAAC2B,GAAG,CAAC,KAAK,IAAIN,GAAG,CAACoC,GAAG,EAAEC,GAAG,CAAC;EAC7C;AACF;AAIA,MAAMK,MAAM,CAAC;EACXhT,WAAWA,CAACiT,MAAM,GAAG,IAAI,EAAE;IAQzB,IAAI,CAACC,IAAI,GAAG,IAAIC,GAAG,CAACF,MAAM,EAAEC,IAAI,CAAC;EACnC;EAEA9B,GAAGA,CAACyB,GAAG,EAAE;IAQP,OAAO,IAAI,CAACK,IAAI,CAAC9B,GAAG,CAACyB,GAAG,CAACxO,QAAQ,CAAC,CAAC,CAAC;EACtC;EAEA+O,GAAGA,CAACP,GAAG,EAAE;IAQP,IAAI,CAACK,IAAI,CAACG,GAAG,CAACR,GAAG,CAACxO,QAAQ,CAAC,CAAC,CAAC;EAC/B;EAEAiP,MAAMA,CAACT,GAAG,EAAE;IACV,IAAI,CAACK,IAAI,CAACT,MAAM,CAACI,GAAG,CAACxO,QAAQ,CAAC,CAAC,CAAC;EAClC;EAEA,CAACwK,MAAM,CAAC+C,QAAQ,IAAI;IAClB,OAAO,IAAI,CAACsB,IAAI,CAACnC,MAAM,CAAC,CAAC;EAC3B;EAEAwB,KAAKA,CAAA,EAAG;IACN,IAAI,CAACW,IAAI,CAACX,KAAK,CAAC,CAAC;EACnB;AACF;AAEA,MAAMgB,WAAW,CAAC;EAChBC,IAAI,GAAG,IAAIpH,GAAG,CAAC,CAAC;EAEhB,IAAI2D,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACyD,IAAI,CAACzD,IAAI;EACvB;EAEAvD,GAAGA,CAACqG,GAAG,EAAE;IACP,OAAO,IAAI,CAACW,IAAI,CAAChH,GAAG,CAACqG,GAAG,CAACxO,QAAQ,CAAC,CAAC,CAAC;EACtC;EAEA+M,GAAGA,CAACyB,GAAG,EAAE;IACP,OAAO,IAAI,CAACW,IAAI,CAACpC,GAAG,CAACyB,GAAG,CAACxO,QAAQ,CAAC,CAAC,CAAC;EACtC;EAEA+O,GAAGA,CAACP,GAAG,EAAE3T,GAAG,EAAE;IACZ,IAAI,CAACsU,IAAI,CAACtC,GAAG,CAAC2B,GAAG,CAACxO,QAAQ,CAAC,CAAC,EAAEnF,GAAG,CAAC;EACpC;EAEAuU,QAAQA,CAACZ,GAAG,EAAEa,QAAQ,EAAE;IACtB,IAAI,CAACF,IAAI,CAACtC,GAAG,CAAC2B,GAAG,CAACxO,QAAQ,CAAC,CAAC,EAAE,IAAI,CAACmI,GAAG,CAACkH,QAAQ,CAAC,CAAC;EACnD;EAEA,CAAC7E,MAAM,CAAC+C,QAAQ,IAAI;IAClB,OAAO,IAAI,CAAC4B,IAAI,CAACzC,MAAM,CAAC,CAAC;EAC3B;EAEAwB,KAAKA,CAAA,EAAG;IACN,IAAI,CAACiB,IAAI,CAACjB,KAAK,CAAC,CAAC;EACnB;EAEA,CAACxB,MAAMA,CAAA,EAAG;IACR,OAAO,IAAI,CAACyC,IAAI,CAACzC,MAAM,CAAC,CAAC;EAC3B;EAEA,CAAC4C,KAAKA,CAAA,EAAG;IACP,KAAK,MAAM,CAACd,GAAG,EAAEzT,KAAK,CAAC,IAAI,IAAI,CAACoU,IAAI,EAAE;MACpC,MAAM,CAAClD,GAAG,CAACsC,UAAU,CAACC,GAAG,CAAC,EAAEzT,KAAK,CAAC;IACpC;EACF;EAEA,CAAC2C,IAAIA,CAAA,EAAG;IACN,KAAK,MAAM8Q,GAAG,IAAI,IAAI,CAACW,IAAI,CAACzR,IAAI,CAAC,CAAC,EAAE;MAClC,MAAMuO,GAAG,CAACsC,UAAU,CAACC,GAAG,CAAC;IAC3B;EACF;AACF;AAEA,SAASe,MAAMA,CAACC,CAAC,EAAE/T,IAAI,EAAE;EACvB,OAAO+T,CAAC,YAAY1E,IAAI,KAAKrP,IAAI,KAAKe,SAAS,IAAIgT,CAAC,CAAC/T,IAAI,KAAKA,IAAI,CAAC;AACrE;AAEA,SAASgU,KAAKA,CAACD,CAAC,EAAExE,GAAG,EAAE;EACrB,OAAOwE,CAAC,YAAYzE,GAAG,KAAKC,GAAG,KAAKxO,SAAS,IAAIgT,CAAC,CAACxE,GAAG,KAAKA,GAAG,CAAC;AACjE;AAEA,SAAS0E,MAAMA,CAACF,CAAC,EAAEtnB,IAAI,EAAE;EACvB,OACEsnB,CAAC,YAAYtE,IAAI,KAAKhjB,IAAI,KAAKsU,SAAS,IAAI+S,MAAM,CAACC,CAAC,CAACrH,GAAG,CAAC,MAAM,CAAC,EAAEjgB,IAAI,CAAC,CAAC;AAE5E;AAEA,SAASynB,WAAWA,CAACC,EAAE,EAAEC,EAAE,EAAE;EAO3B,OAAOD,EAAE,CAACvB,GAAG,KAAKwB,EAAE,CAACxB,GAAG,IAAIuB,EAAE,CAACtB,GAAG,KAAKuB,EAAE,CAACvB,GAAG;AAC/C;;;AClbuE;AAEvE,MAAMwB,UAAU,CAAC;EAWf,IAAIlW,MAAMA,CAAA,EAAG;IACXd,WAAW,CAAC,mCAAmC,CAAC;EAClD;EAGA,IAAIiX,OAAOA,CAAA,EAAG;IACZjX,WAAW,CAAC,oCAAoC,CAAC;EACnD;EAEA,IAAIkX,YAAYA,CAAA,EAAG;IACjB,OAAOpV,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC;EAC3C;EAEAqV,OAAOA,CAAA,EAAG;IACRnX,WAAW,CAAC,kCAAkC,CAAC;EACjD;EAEAoX,QAAQA,CAACtW,MAAM,EAAE;IACfd,WAAW,CAAC,mCAAmC,CAAC;EAClD;EAOA,MAAMqX,YAAYA,CAACvW,MAAM,EAAEwW,cAAc,EAAE;IACzC,OAAO,IAAI,CAACF,QAAQ,CAACtW,MAAM,EAAEwW,cAAc,CAAC;EAC9C;EAEA,MAAMC,aAAaA,CAAA,EAAG;IACpBvX,WAAW,CAAC,wCAAwC,CAAC;EACvD;EAEA,IAAI+S,OAAOA,CAAA,EAAG;IACZ,OAAO,KAAK;EACd;EAEA,IAAIyE,cAAcA,CAAA,EAAG;IACnB,OAAO,KAAK;EACd;EAEA,IAAIC,aAAaA,CAAA,EAAG;IAClB,OAAO,KAAK;EACd;EAEA,IAAIC,6BAA6BA,CAAA,EAAG;IAClC,OAAO,KAAK;EACd;EAEA,MAAMC,oBAAoBA,CAAA,EAAG;IAC3B,OAAO,IAAI;EACb;EAEAC,QAAQA,CAAA,EAAG;IACT,MAAMC,UAAU,GAAG,IAAI,CAACV,OAAO,CAAC,CAAC;IACjC,IAAIU,UAAU,KAAK,CAAC,CAAC,EAAE;MACrB,IAAI,CAACpP,GAAG,EAAE;IACZ;IACA,OAAOoP,UAAU;EACnB;EAEAC,SAASA,CAAChX,MAAM,EAAE;IAChB,MAAM2C,KAAK,GAAG,IAAI,CAAC2T,QAAQ,CAACtW,MAAM,CAAC;IACnC,IAAI,CAAC2H,GAAG,IAAIhF,KAAK,CAAC3C,MAAM;IACxB,OAAO2C,KAAK;EACd;EAEAsU,SAASA,CAAA,EAAG;IACV,MAAMhO,EAAE,GAAG,IAAI,CAACoN,OAAO,CAAC,CAAC;IACzB,MAAMlN,EAAE,GAAG,IAAI,CAACkN,OAAO,CAAC,CAAC;IACzB,IAAIpN,EAAE,KAAK,CAAC,CAAC,IAAIE,EAAE,KAAK,CAAC,CAAC,EAAE;MAC1B,OAAO,CAAC,CAAC;IACX;IACA,OAAO,CAACF,EAAE,IAAI,CAAC,IAAIE,EAAE;EACvB;EAEA+N,QAAQA,CAAA,EAAG;IACT,MAAMjO,EAAE,GAAG,IAAI,CAACoN,OAAO,CAAC,CAAC;IACzB,MAAMlN,EAAE,GAAG,IAAI,CAACkN,OAAO,CAAC,CAAC;IACzB,MAAMnN,EAAE,GAAG,IAAI,CAACmN,OAAO,CAAC,CAAC;IACzB,MAAMjN,EAAE,GAAG,IAAI,CAACiN,OAAO,CAAC,CAAC;IACzB,OAAO,CAACpN,EAAE,IAAI,EAAE,KAAKE,EAAE,IAAI,EAAE,CAAC,IAAID,EAAE,IAAI,CAAC,CAAC,GAAGE,EAAE;EACjD;EAEA+N,YAAYA,CAACC,KAAK,EAAEC,GAAG,EAAE;IACvBnY,WAAW,CAAC,uCAAuC,CAAC;EACtD;EAEAoY,SAASA,CAACtX,MAAM,EAAE;IAChB,OAAO0C,aAAa,CAAC,IAAI,CAAC4T,QAAQ,CAACtW,MAAM,CAAC,CAAC;EAC7C;EAEAuX,IAAIA,CAACpR,CAAC,EAAE;IACN,IAAI,CAACwB,GAAG,IAAIxB,CAAC,IAAI,CAAC;EACpB;EAEAqR,KAAKA,CAAA,EAAG;IACNtY,WAAW,CAAC,gCAAgC,CAAC;EAC/C;EAEAuY,SAASA,CAAA,EAAG;IACVvY,WAAW,CAAC,oCAAoC,CAAC;EACnD;EAEAwY,aAAaA,CAACC,KAAK,EAAE3X,MAAM,EAAEmU,IAAI,GAAG,IAAI,EAAE;IACxCjV,WAAW,CAAC,wCAAwC,CAAC;EACvD;EAKA0Y,cAAcA,CAAA,EAAG;IACf,OAAO,IAAI;EACb;EAEAC,iBAAiBA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACC,MAAM,EAAED,iBAAiB,CAAC,CAAC,IAAI,IAAI;EACjD;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3H2B;AACiC;AACd;AAE9C,MAAME,kBAAkB,GAAG,aAAa;AACxC,MAAMC,UAAU,GAAG,iDAAC,IAAI,EAAE,GAAG,CAAC;AAE9B,MAAMC,eAAe,GAAG,iDAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAE1C,MAAMC,4BAA4B,GAAG,iDACnC,YAAY,EACZ,WAAW,EACX,MAAM,EACN,SAAS,EACT,YAAY,EACZ,SAAS,EACT,SAAS,CACV;AAED,MAAMC,2BAA2B,GAAG,iDAClC,WAAW,EACX,MAAM,EACN,YAAY,EACZ,SAAS,CACV;AAED,SAASC,qBAAqBA,CAACC,WAAW,EAAE;EAC1C,IAAIC,MAAM;EACV,OAAO,YAAY;IACjB,IAAID,WAAW,EAAE;MACfC,MAAM,GAAGjX,MAAM,CAACuO,MAAM,CAAC,IAAI,CAAC;MAC5ByI,WAAW,CAACC,MAAM,CAAC;MACnBD,WAAW,GAAG,IAAI;IACpB;IACA,OAAOC,MAAM;EACf,CAAC;AACH;AAEA,MAAMC,oBAAoB,SAAS7W,aAAa,CAAC;EAC/CK,WAAWA,CAACqV,KAAK,EAAEC,GAAG,EAAE;IACtB,KAAK,CAAC,iBAAiBD,KAAK,KAAKC,GAAG,GAAG,EAAE,sBAAsB,CAAC;IAChE,IAAI,CAACD,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,GAAG,GAAGA,GAAG;EAChB;AACF;AAEA,MAAMmB,kBAAkB,SAAS9W,aAAa,CAAC;EAC7CK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,oBAAoB,CAAC;EAClC;AACF;AAEA,MAAM0Z,kBAAkB,SAAS/W,aAAa,CAAC;EAC7CK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,oBAAoB,CAAC;EAClC;AACF;AAEA,MAAM2Z,kBAAkB,SAAShX,aAAa,CAAC;EAC7CK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,oBAAoB,CAAC;EAClC;AACF;AAOA,SAAS4Z,mBAAmBA,CAACC,GAAG,EAAE;EAShC,MAAM5Y,MAAM,GAAG4Y,GAAG,CAAC5Y,MAAM;EACzB,IAAIA,MAAM,KAAK,CAAC,EAAE;IAChB,OAAO,IAAI2D,UAAU,CAAC,CAAC,CAAC;EAC1B;EACA,IAAI3D,MAAM,KAAK,CAAC,EAAE;IAChB,OAAO,IAAI2D,UAAU,CAACiV,GAAG,CAAC,CAAC,CAAC,CAAC;EAC/B;EACA,IAAIC,UAAU,GAAG,CAAC;EAClB,KAAK,IAAI3V,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlD,MAAM,EAAEkD,CAAC,EAAE,EAAE;IAC/B2V,UAAU,IAAID,GAAG,CAAC1V,CAAC,CAAC,CAAC4V,UAAU;EACjC;EACA,MAAMC,IAAI,GAAG,IAAIpV,UAAU,CAACkV,UAAU,CAAC;EACvC,IAAIlR,GAAG,GAAG,CAAC;EACX,KAAK,IAAIzE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlD,MAAM,EAAEkD,CAAC,EAAE,EAAE;IAC/B,MAAM8V,IAAI,GAAG,IAAIrV,UAAU,CAACiV,GAAG,CAAC1V,CAAC,CAAC,CAAC;IACnC6V,IAAI,CAAC9F,GAAG,CAAC+F,IAAI,EAAErR,GAAG,CAAC;IACnBA,GAAG,IAAIqR,IAAI,CAACF,UAAU;EACxB;EACA,OAAOC,IAAI;AACb;AAEA,eAAeE,eAAeA,CAAC1Z,GAAG,EAAE;EAClC,MAAM2Z,QAAQ,GAAG,MAAM3G,KAAK,CAAChT,GAAG,CAAC;EACjC,IAAI,CAAC2Z,QAAQ,CAACC,EAAE,EAAE;IAChB,MAAM,IAAIha,KAAK,CACb,yBAAyBI,GAAG,WAAW2Z,QAAQ,CAACE,UAAU,IAC5D,CAAC;EACH;EACA,OAAOF,QAAQ,CAACvW,KAAK,CAAC,CAAC;AACzB;AAsBA,SAAS0W,sBAAsBA,CAAC;EAC9BlF,IAAI;EACJxB,GAAG;EACHF,QAAQ,GAAG,KAAK;EAChB6G,aAAa,GAAG;AAClB,CAAC,EAAE;EACD,IAAIxG,MAAM;EACV,MAAMyG,OAAO,GAAG,IAAIxE,iBAAM,CAAC,CAAC;EAE5B,OAAOZ,IAAI,YAAY7C,eAAI,IAAI,EAAE6C,IAAI,CAAC1C,KAAK,IAAI8H,OAAO,CAACpG,GAAG,CAACgB,IAAI,CAAC1C,KAAK,CAAC,CAAC,EAAE;IACvE,IAAI0C,IAAI,CAAC1C,KAAK,EAAE;MACd8H,OAAO,CAACpE,GAAG,CAAChB,IAAI,CAAC1C,KAAK,CAAC;IACzB;IACA,MAAMtQ,KAAK,GAAGsR,QAAQ,GAAG0B,IAAI,CAAC1B,QAAQ,CAACE,GAAG,CAAC,GAAGwB,IAAI,CAAC5F,GAAG,CAACoE,GAAG,CAAC;IAC3D,IAAIxR,KAAK,KAAKyB,SAAS,EAAE;MACvB,IAAI0W,aAAa,EAAE;QACjB,OAAOnY,KAAK;MACd;MACA,CAAC2R,MAAM,KAAK,EAAE,EAAEtP,IAAI,CAACrC,KAAK,CAAC;IAC7B;IACAgT,IAAI,GAAGA,IAAI,CAAC5F,GAAG,CAAC,QAAQ,CAAC;EAC3B;EACA,OAAOuE,MAAM;AACf;AASA,SAAS0G,iBAAiBA,CAACrF,IAAI,EAAES,GAAG,EAAEjD,IAAI,EAAE;EAC1C,MAAM4H,OAAO,GAAG,IAAIxE,iBAAM,CAAC,CAAC;EAC5B,MAAM0E,SAAS,GAAGtF,IAAI;EACtB,MAAMuF,MAAM,GAAG;IAAEvF,IAAI,EAAE,IAAI;IAAES,GAAG,EAAE;EAAK,CAAC;EAExC,OAAOT,IAAI,YAAY7C,eAAI,IAAI,CAACiI,OAAO,CAACpG,GAAG,CAACyB,GAAG,CAAC,EAAE;IAChD2E,OAAO,CAACpE,GAAG,CAACP,GAAG,CAAC;IAChB,IAAIT,IAAI,CAAChB,GAAG,CAAC,GAAG,CAAC,EAAE;MACjB;IACF;IACAyB,GAAG,GAAGT,IAAI,CAACzB,MAAM,CAAC,QAAQ,CAAC;IAC3B,IAAI,EAAEkC,GAAG,YAAYvC,cAAG,CAAC,EAAE;MACzB,OAAOqH,MAAM;IACf;IACAvF,IAAI,GAAGxC,IAAI,CAACY,KAAK,CAACqC,GAAG,CAAC;EACxB;EACA,IAAIT,IAAI,YAAY7C,eAAI,IAAI6C,IAAI,KAAKsF,SAAS,EAAE;IAC9CC,MAAM,CAACvF,IAAI,GAAGA,IAAI;IAClBuF,MAAM,CAAC9E,GAAG,GAAGA,GAAG;EAClB;EACA,OAAO8E,MAAM;AACf;AAEA,SAASC,WAAWA,CAAC/S,CAAC,EAAEH,CAAC,EAAE;EACzB,IAAIG,CAAC,KAAKH,CAAC,EAAE;IACX,OAAO,IAAI;EACb;EACA,IAAIG,CAAC,YAAY0K,eAAI,IAAI7K,CAAC,YAAY6K,eAAI,EAAE;IAC1C,IAAI1K,CAAC,CAACkL,IAAI,KAAKrL,CAAC,CAACqL,IAAI,EAAE;MACrB,OAAO,KAAK;IACd;IACA,KAAK,MAAM,CAACa,GAAG,EAAEiH,MAAM,CAAC,IAAIhT,CAAC,CAACmM,aAAa,CAAC,CAAC,EAAE;MAC7C,MAAM8G,MAAM,GAAGpT,CAAC,CAACiM,MAAM,CAACC,GAAG,CAAC;MAC5B,IAAIkH,MAAM,KAAKjX,SAAS,IAAI,CAAC+W,WAAW,CAACC,MAAM,EAAEC,MAAM,CAAC,EAAE;QACxD,OAAO,KAAK;MACd;IACF;IACA,OAAO,IAAI;EACb;EAEA,IAAI5T,KAAK,CAACiJ,OAAO,CAACtI,CAAC,CAAC,IAAIX,KAAK,CAACiJ,OAAO,CAACzI,CAAC,CAAC,EAAE;IACxC,IAAIG,CAAC,CAAC5G,MAAM,KAAKyG,CAAC,CAACzG,MAAM,EAAE;MACzB,OAAO,KAAK;IACd;IACA,KAAK,IAAIkD,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAGhG,CAAC,CAAC5G,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;MAC1C,IAAI,CAACyW,WAAW,CAAC/S,CAAC,CAAC1D,CAAC,CAAC,EAAEuD,CAAC,CAACvD,CAAC,CAAC,CAAC,EAAE;QAC5B,OAAO,KAAK;MACd;IACF;IACA,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd;AAGA,MAAM4W,gBAAgB,GAAG,iDACvB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAC1D,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAC1D,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAC3D;AASD,SAASC,eAAeA,CAACC,MAAM,EAAEC,SAAS,GAAG,KAAK,EAAE;EAClD7a,iBAAM,CACJT,MAAM,CAACC,SAAS,CAACob,MAAM,CAAC,IAAIA,MAAM,GAAG,CAAC,EACtC,0CACF,CAAC;EAED,MAAME,KAAK,GACT,GAAG,CAACC,MAAM,CAAEH,MAAM,GAAG,IAAI,GAAI,CAAC,CAAC,GAC/BF,gBAAgB,CAAGE,MAAM,GAAG,IAAI,GAAI,GAAG,GAAI,CAAC,CAAC,GAC7CF,gBAAgB,CAAC,EAAE,IAAME,MAAM,GAAG,GAAG,GAAI,EAAE,GAAI,CAAC,CAAC,CAAC,GAClDF,gBAAgB,CAAC,EAAE,GAAIE,MAAM,GAAG,EAAG,CAAC;EACtC,OAAOC,SAAS,GAAGC,KAAK,CAACE,WAAW,CAAC,CAAC,GAAGF,KAAK;AAChD;AAGA,SAASG,YAAYA,CAACC,EAAE,EAAE;EACxB,OAAOA,EAAE,KAAK,IAAI,IAAIA,EAAE,KAAK,IAAI,IAAIA,EAAE,KAAK,IAAI,IAAIA,EAAE,KAAK,IAAI;AACjE;AASA,SAASC,cAAcA,CAAC3B,GAAG,EAAE4B,GAAG,EAAE;EAChC,OACEvU,KAAK,CAACiJ,OAAO,CAAC0J,GAAG,CAAC,KACjB4B,GAAG,KAAK,IAAI,IAAI5B,GAAG,CAAC5Y,MAAM,KAAKwa,GAAG,CAAC,IACpC5B,GAAG,CAAC6B,KAAK,CAAC/P,CAAC,IAAI,OAAOA,CAAC,KAAK,SAAS,CAAC;AAE1C;AASA,SAASgQ,aAAaA,CAAC9B,GAAG,EAAE4B,GAAG,EAAE;EAC/B,IAAIvU,KAAK,CAACiJ,OAAO,CAAC0J,GAAG,CAAC,EAAE;IACtB,OACE,CAAC4B,GAAG,KAAK,IAAI,IAAI5B,GAAG,CAAC5Y,MAAM,KAAKwa,GAAG,KACnC5B,GAAG,CAAC6B,KAAK,CAAC/P,CAAC,IAAI,OAAOA,CAAC,KAAK,QAAQ,CAAC;EAEzC;EAIA,OACE4I,WAAW,CAACC,MAAM,CAACqF,GAAG,CAAC,IACvB,EAAEA,GAAG,YAAY+B,aAAa,IAAI/B,GAAG,YAAYgC,cAAc,CAAC,KAC/DJ,GAAG,KAAK,IAAI,IAAI5B,GAAG,CAAC5Y,MAAM,KAAKwa,GAAG,CAAC;AAExC;AAGA,SAASK,YAAYA,CAACjC,GAAG,EAAEkC,QAAQ,EAAE;EACnC,OAAOJ,aAAa,CAAC9B,GAAG,EAAE,CAAC,CAAC,GAAGA,GAAG,GAAGkC,QAAQ;AAC/C;AAGA,SAASC,UAAUA,CAACnC,GAAG,EAAEkC,QAAQ,EAAE;EACjC,OAAOJ,aAAa,CAAC9B,GAAG,EAAE,CAAC,CAAC,GAAGA,GAAG,GAAGkC,QAAQ;AAC/C;AAGA,SAASE,gBAAgBA,CAACpC,GAAG,EAAEkC,QAAQ,EAAE;EACvC,OAAOJ,aAAa,CAAC9B,GAAG,EAAE,CAAC,CAAC,GAAG7S,eAAI,CAACiE,aAAa,CAAC4O,GAAG,CAAC,GAAGkC,QAAQ;AACnE;AAWA,SAASG,YAAYA,CAACC,IAAI,EAAE;EAC1B,MAAMC,eAAe,GAAG,gBAAgB;EACxC,OAAOD,IAAI,CAACva,KAAK,CAAC,GAAG,CAAC,CAAC6Q,GAAG,CAAC4J,SAAS,IAAI;IACtC,MAAM7T,CAAC,GAAG6T,SAAS,CAACrb,KAAK,CAACob,eAAe,CAAC;IAC1C,IAAI5T,CAAC,EAAE;MACL,OAAO;QAAE1F,IAAI,EAAE0F,CAAC,CAAC,CAAC,CAAC;QAAEI,GAAG,EAAEmN,QAAQ,CAACvN,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;MAAE,CAAC;IAChD;IACA,OAAO;MAAE1F,IAAI,EAAEuZ,SAAS;MAAEzT,GAAG,EAAE;IAAE,CAAC;EACpC,CAAC,CAAC;AACJ;AAEA,SAAS0T,aAAaA,CAACxa,GAAG,EAAE;EAC1B,MAAMsD,MAAM,GAAG,EAAE;EACjB,IAAIwT,KAAK,GAAG,CAAC;EACb,KAAK,IAAIzU,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG/L,GAAG,CAACb,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;IAC5C,MAAMoY,IAAI,GAAGza,GAAG,CAAC+C,UAAU,CAACV,CAAC,CAAC;IAE9B,IACEoY,IAAI,GAAG,IAAI,IACXA,IAAI,GAAG,IAAI,IACXA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,IACbA,IAAI,KAAK,IAAI,EACb;MACA,IAAI3D,KAAK,GAAGzU,CAAC,EAAE;QACbiB,MAAM,CAACX,IAAI,CAAC3C,GAAG,CAACC,SAAS,CAAC6W,KAAK,EAAEzU,CAAC,CAAC,CAAC;MACtC;MACAiB,MAAM,CAACX,IAAI,CAAC,IAAI8X,IAAI,CAAClV,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;MACpCuR,KAAK,GAAGzU,CAAC,GAAG,CAAC;IACf;EACF;EAEA,IAAIiB,MAAM,CAACnE,MAAM,KAAK,CAAC,EAAE;IACvB,OAAOa,GAAG;EACZ;EAEA,IAAI8W,KAAK,GAAG9W,GAAG,CAACb,MAAM,EAAE;IACtBmE,MAAM,CAACX,IAAI,CAAC3C,GAAG,CAACC,SAAS,CAAC6W,KAAK,EAAE9W,GAAG,CAACb,MAAM,CAAC,CAAC;EAC/C;EAEA,OAAOmE,MAAM,CAACV,IAAI,CAAC,EAAE,CAAC;AACxB;AAIA,SAAS8X,YAAYA,CAAC1a,GAAG,EAAE;EACzB,OAAOA,GAAG,CAAC6L,UAAU,CAAC,eAAe,EAAE3M,KAAK,IAAI;IAC9C,IAAIA,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO,KAAK;IACd,CAAC,MAAM,IAAIA,KAAK,KAAK,IAAI,EAAE;MACzB,OAAO,KAAK;IACd;IACA,OAAO,KAAKA,KAAK,EAAE;EACrB,CAAC,CAAC;AACJ;AAEA,SAASyb,UAAUA,CAACC,KAAK,EAAE9J,IAAI,EAAE+J,IAAI,EAAEC,OAAO,EAAE;EAC9C,IAAI,CAACF,KAAK,EAAE;IACV;EACF;EAEA,IAAIzG,MAAM,GAAG,IAAI;EACjB,IAAIyG,KAAK,YAAYpJ,cAAG,EAAE;IACxB,IAAIsJ,OAAO,CAACxI,GAAG,CAACsI,KAAK,CAAC,EAAE;MAEtB;IACF;IACAzG,MAAM,GAAGyG,KAAK;IACdE,OAAO,CAACxG,GAAG,CAACH,MAAM,CAAC;IACnByG,KAAK,GAAG9J,IAAI,CAACY,KAAK,CAACkJ,KAAK,CAAC;EAC3B;EACA,IAAIxV,KAAK,CAACiJ,OAAO,CAACuM,KAAK,CAAC,EAAE;IACxB,KAAK,MAAMG,OAAO,IAAIH,KAAK,EAAE;MAC3BD,UAAU,CAACI,OAAO,EAAEjK,IAAI,EAAE+J,IAAI,EAAEC,OAAO,CAAC;IAC1C;EACF,CAAC,MAAM,IAAIF,KAAK,YAAYnK,eAAI,EAAE;IAChC,IAAIqE,iBAAM,CAAC8F,KAAK,CAAClN,GAAG,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE;MACxC,MAAMsN,EAAE,GAAGJ,KAAK,CAAClN,GAAG,CAAC,IAAI,CAAC;MAC1B,IAAItM,IAAI;MACR,IAAI4Z,EAAE,YAAY3F,qBAAU,EAAE;QAC5BjU,IAAI,GAAG4Z,EAAE,CAACvE,SAAS,CAAC,CAAC;MACvB,CAAC,MAAM,IAAI,OAAOuE,EAAE,KAAK,QAAQ,EAAE;QACjC5Z,IAAI,GAAG4Z,EAAE;MACX;MACA5Z,IAAI,KAAKiK,4BAAiB,CACxBjK,IAAI,EACuB,IAC7B,CAAC,CAACyK,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;MACxB,IAAIzK,IAAI,EAAE;QACRyZ,IAAI,CAAClY,IAAI,CAACvB,IAAI,CAAC6Z,IAAI,CAAC,CAAC,CAAC;MACxB;IACF;IACAN,UAAU,CAACC,KAAK,CAAC/I,MAAM,CAAC,MAAM,CAAC,EAAEf,IAAI,EAAE+J,IAAI,EAAEC,OAAO,CAAC;EACvD;EAEA,IAAI3G,MAAM,EAAE;IACV2G,OAAO,CAACtG,MAAM,CAACL,MAAM,CAAC;EACxB;AACF;AAEA,SAAS+G,cAAcA,CAACpK,IAAI,EAAEwC,IAAI,EAAE6H,SAAS,EAAE;EAC7C,MAAMC,OAAO,GAAG5a,MAAM,CAACuO,MAAM,CAAC,IAAI,CAAC;EACnC,MAAMsM,sBAAsB,GAAG7C,sBAAsB,CAAC;IACpDlF,IAAI;IACJxB,GAAG,EAAE,IAAI;IACT2G,aAAa,EAAE;EACjB,CAAC,CAAC;EACF,IAAI4C,sBAAsB,EAAE;IAM1B,KAAK,IAAIhZ,CAAC,GAAGgZ,sBAAsB,CAAClc,MAAM,GAAG,CAAC,EAAEkD,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;MAC3D,MAAMiZ,iBAAiB,GAAGD,sBAAsB,CAAChZ,CAAC,CAAC;MACnD,IAAI,EAAEiZ,iBAAiB,YAAY7K,eAAI,CAAC,EAAE;QACxC;MACF;MACA,KAAK,MAAM,CAACqB,GAAG,EAAEyJ,aAAa,CAAC,IAAID,iBAAiB,CAACpJ,aAAa,CAAC,CAAC,EAAE;QACpE,MAAMsJ,MAAM,GAAGL,SAAS,CAACrJ,GAAG,CAAC;QAC7B,IAAI,CAAC0J,MAAM,EAAE;UACX;QACF;QACA,MAAMV,OAAO,GAAG,IAAI5G,iBAAM,CAAC,CAAC;QAC5B,MAAM2G,IAAI,GAAG,EAAE;QACfF,UAAU,CAACY,aAAa,EAAEzK,IAAI,EAAE+J,IAAI,EAAEC,OAAO,CAAC;QAC9C,IAAID,IAAI,CAAC1b,MAAM,GAAG,CAAC,EAAE;UACnBic,OAAO,CAACI,MAAM,CAAC,GAAGX,IAAI;QACxB;MACF;IACF;EACF;EAEA,IAAIvH,IAAI,CAAChB,GAAG,CAAC,GAAG,CAAC,EAAE;IACjB,MAAMmJ,UAAU,GAAGnI,IAAI,CAAC5F,GAAG,CAAC,GAAG,CAAC;IAChC,MAAMoN,OAAO,GAAG,IAAI5G,iBAAM,CAAC,CAAC;IAC5B,MAAM2G,IAAI,GAAG,EAAE;IACfF,UAAU,CAACc,UAAU,EAAE3K,IAAI,EAAE+J,IAAI,EAAEC,OAAO,CAAC;IAC3C,IAAID,IAAI,CAAC1b,MAAM,GAAG,CAAC,EAAE;MACnBic,OAAO,CAACM,MAAM,GAAGb,IAAI;IACvB;EACF;EACA,OAAO7X,qBAAU,CAACoY,OAAO,CAAC,GAAG,CAAC,GAAGA,OAAO,GAAG,IAAI;AACjD;AAEA,MAAMO,WAAW,GAAG;EACV,IAAI,EAAE,MAAM;EACZ,IAAI,EAAE,MAAM;EACZ,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,QAAQ;EACd,IAAI,EAAE;AAChB,CAAC;AAED,UAAUC,aAAaA,CAAC5b,GAAG,EAAE;EAC3B,KAAK,IAAIqC,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG/L,GAAG,CAACb,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;IAC5C,MAAMoY,IAAI,GAAGza,GAAG,CAAC6b,WAAW,CAACxZ,CAAC,CAAC;IAC/B,IAAIoY,IAAI,GAAG,MAAM,KAAKA,IAAI,GAAG,MAAM,IAAIA,IAAI,GAAG,MAAM,CAAC,EAAE;MAErDpY,CAAC,EAAE;IACL;IACA,MAAMoY,IAAI;EACZ;AACF;AAEA,SAASqB,iBAAiBA,CAAC9b,GAAG,EAAE;EAC9B,MAAMsD,MAAM,GAAG,EAAE;EACjB,IAAIwT,KAAK,GAAG,CAAC;EACb,KAAK,IAAIzU,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG/L,GAAG,CAACb,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;IAC5C,MAAMoY,IAAI,GAAGza,GAAG,CAAC6b,WAAW,CAACxZ,CAAC,CAAC;IAC/B,IAAI,IAAI,IAAIoY,IAAI,IAAIA,IAAI,IAAI,IAAI,EAAE;MAEhC,MAAMsB,MAAM,GAAGJ,WAAW,CAAClB,IAAI,CAAC;MAChC,IAAIsB,MAAM,EAAE;QACV,IAAIjF,KAAK,GAAGzU,CAAC,EAAE;UACbiB,MAAM,CAACX,IAAI,CAAC3C,GAAG,CAACC,SAAS,CAAC6W,KAAK,EAAEzU,CAAC,CAAC,CAAC;QACtC;QACAiB,MAAM,CAACX,IAAI,CAACoZ,MAAM,CAAC;QACnBjF,KAAK,GAAGzU,CAAC,GAAG,CAAC;MACf;IACF,CAAC,MAAM;MACL,IAAIyU,KAAK,GAAGzU,CAAC,EAAE;QACbiB,MAAM,CAACX,IAAI,CAAC3C,GAAG,CAACC,SAAS,CAAC6W,KAAK,EAAEzU,CAAC,CAAC,CAAC;MACtC;MACAiB,MAAM,CAACX,IAAI,CAAC,MAAM8X,IAAI,CAAClV,QAAQ,CAAC,EAAE,CAAC,CAACyW,WAAW,CAAC,CAAC,GAAG,CAAC;MACrD,IAAIvB,IAAI,GAAG,MAAM,KAAKA,IAAI,GAAG,MAAM,IAAIA,IAAI,GAAG,MAAM,CAAC,EAAE;QAErDpY,CAAC,EAAE;MACL;MACAyU,KAAK,GAAGzU,CAAC,GAAG,CAAC;IACf;EACF;EAEA,IAAIiB,MAAM,CAACnE,MAAM,KAAK,CAAC,EAAE;IACvB,OAAOa,GAAG;EACZ;EACA,IAAI8W,KAAK,GAAG9W,GAAG,CAACb,MAAM,EAAE;IACtBmE,MAAM,CAACX,IAAI,CAAC3C,GAAG,CAACC,SAAS,CAAC6W,KAAK,EAAE9W,GAAG,CAACb,MAAM,CAAC,CAAC;EAC/C;EACA,OAAOmE,MAAM,CAACV,IAAI,CAAC,EAAE,CAAC;AACxB;AAEA,SAASqZ,gBAAgBA,CAACC,UAAU,EAAEC,QAAQ,GAAG,KAAK,EAAE;EAEtD,MAAMzV,CAAC,GAAG,gBAAgB,CAACsN,IAAI,CAACkI,UAAU,CAAC;EAC3C,IAAIxV,CAAC,IAAIA,CAAC,CAAC,CAAC,CAAC,KAAKA,CAAC,CAAC,CAAC,CAAC,EAAE;IACtB,MAAM0V,EAAE,GAAG,IAAIC,MAAM,CAAC,UAAU3V,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,IAAI0V,EAAE,CAACE,IAAI,CAACJ,UAAU,CAAC9S,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;MACpC,IAAI+S,QAAQ,EAAE;QACZ/d,eAAI,CAAC,iCAAiCsI,CAAC,CAAC,CAAC,CAAC,KAAKwV,UAAU,GAAG,CAAC;MAC/D;MACA,OAAO,KAAK;IACd;EACF,CAAC,MAAM;IAEL,KAAK,MAAMK,KAAK,IAAIL,UAAU,CAACpc,KAAK,CAAC,QAAQ,CAAC,EAAE;MAC9C,IAAI,iBAAiB,CAACwc,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC,YAAY,CAACD,IAAI,CAACC,KAAK,CAAC,EAAE;QAC9D,IAAIJ,QAAQ,EAAE;UACZ/d,eAAI,CAAC,+CAA+C8d,UAAU,GAAG,CAAC;QACpE;QACA,OAAO,KAAK;MACd;IACF;EACF;EACA,OAAO,IAAI;AACb;AAEA,SAASM,eAAeA,CAACC,WAAW,EAAE;EAEpC,MAAMC,wBAAwB,GAAG,IAAI;EAErC,MAAMC,uBAAuB,GAAG,KAAK;EACrC,MAAMC,sBAAsB,GAAG,IAAIvI,GAAG,CAAC,CACrC,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,CACV,CAAC;EAEF,MAAM;IAAE6H,UAAU;IAAEW,UAAU;IAAEC;EAAY,CAAC,GAAGL,WAAW;EAE3D,IAAI,CAACR,gBAAgB,CAACC,UAAU,EAAE,IAAI,CAAC,EAAE;IACvC,OAAO,KAAK;EACd;EAEA,MAAMa,MAAM,GAAGF,UAAU,GAAGA,UAAU,CAACtX,QAAQ,CAAC,CAAC,GAAG,EAAE;EACtDkX,WAAW,CAACI,UAAU,GAAGD,sBAAsB,CAACtK,GAAG,CAACyK,MAAM,CAAC,GACvDA,MAAM,GACNJ,uBAAuB;EAE3B,MAAMK,KAAK,GAAGC,UAAU,CAACH,WAAW,CAAC;EACrCL,WAAW,CAACK,WAAW,GACrBI,KAAK,CAACF,KAAK,CAAC,IAAIA,KAAK,GAAG,CAAC,EAAE,IAAIA,KAAK,GAAG,EAAE,GACrCN,wBAAwB,GACxBI,WAAW,CAACvX,QAAQ,CAAC,CAAC;EAE5B,OAAO,IAAI;AACb;AAEA,SAAS4X,YAAYA,CAACnd,GAAG,EAAE;EAMzB,MAAMod,gBAAgB,GAAG,CAAC,eAAe,EAAE,aAAa,EAAE,kBAAkB,CAAC;EAC7E,MAAMC,KAAK,GAAG,IAAIhB,MAAM,CACtB,QAAQ,GACNe,gBAAgB,CAACxa,IAAI,CAAC,GAAG,CAAC,CAACiJ,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GACjD,qDAAqD,EACvD,GACF,CAAC;EAED,MAAMyR,KAAK,GAAGD,KAAK,CAACrJ,IAAI,CAAChU,GAAG,CAAC;EAC7B,IAAIsd,KAAK,GAAG,CAAC,CAAC,EAAE;IACd,OAAO;MACL5e,GAAG,EAAE4e,KAAK,CAAC,CAAC,CAAC;MACbC,SAAS,EAAED,KAAK,CAAC,CAAC,CAAC,KAAK,eAAe,IAAIA,KAAK,CAAC,CAAC,CAAC,KAAK;IAC1D,CAAC;EACH;EAEA,OAAO,IAAI;AACb;AAEA,SAASE,cAAcA,CAACld,KAAK,EAAE;EAQ7B,IAAIxC,MAAM,CAACC,SAAS,CAACuC,KAAK,CAAC,EAAE;IAC3B,OAAOA,KAAK,CAACiF,QAAQ,CAAC,CAAC;EACzB;EAEA,MAAMkY,YAAY,GAAGlb,IAAI,CAACmb,KAAK,CAACpd,KAAK,GAAG,GAAG,CAAC;EAC5C,IAAImd,YAAY,GAAG,GAAG,KAAK,CAAC,EAAE;IAC5B,OAAO,CAACA,YAAY,GAAG,GAAG,EAAElY,QAAQ,CAAC,CAAC;EACxC;EAEA,IAAIkY,YAAY,GAAG,EAAE,KAAK,CAAC,EAAE;IAC3B,OAAOnd,KAAK,CAACqd,OAAO,CAAC,CAAC,CAAC;EACzB;EAEA,OAAOrd,KAAK,CAACqd,OAAO,CAAC,CAAC,CAAC;AACzB;AAEA,SAASC,oBAAoBA,CAACC,iBAAiB,EAAE;EAC/C,IAAI,CAACA,iBAAiB,EAAE;IACtB,OAAO,IAAI;EACb;EACA,MAAMC,oBAAoB,GAAG,IAAIxQ,GAAG,CAAC,CAAC;EAGtC,KAAK,MAAM,CAACwE,GAAG,EAAExR,KAAK,CAAC,IAAIud,iBAAiB,EAAE;IAC5C,IAAI,CAAC/L,GAAG,CAAC9S,UAAU,CAAC/P,iCAAsB,CAAC,EAAE;MAC3C;IACF;IACA6uB,oBAAoB,CACjBC,mBAAmB,CAACzd,KAAK,CAAC0d,SAAS,EAAEpP,kBAAO,CAAC,CAC7CjM,IAAI,CAACrC,KAAK,CAAC;EAChB;EACA,OAAOwd,oBAAoB,CAAC7M,IAAI,GAAG,CAAC,GAAG6M,oBAAoB,GAAG,IAAI;AACpE;AAGA,SAASG,sBAAsBA,CAACje,GAAG,EAAE;EACnC,IAAIA,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK+B,SAAS,EAAE;IACrC,OAAO/B,GAAG;EACZ;EACA,OAAOke,OAAO,CAACle,GAAG,CAAC,GAAGA,GAAG,GAAGme,mBAAmB,CAACne,GAAG,EAAoB,IAAI,CAAC;AAC9E;AAEA,SAASke,OAAOA,CAACle,GAAG,EAAE;EACpB,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAO,KAAK;EACd;EACA,OAAO,CAACA,GAAG,IAAI,gBAAgB,CAACsc,IAAI,CAACtc,GAAG,CAAC;AAC3C;AAEA,SAASoe,sBAAsBA,CAACpe,GAAG,EAAE;EACnC,MAAM8N,GAAG,GAAG,EAAE;EACd,KAAK,IAAIzL,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG/L,GAAG,CAACb,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;IAC5C,MAAMoY,IAAI,GAAGza,GAAG,CAAC+C,UAAU,CAACV,CAAC,CAAC;IAC9ByL,GAAG,CAACnL,IAAI,CAACuC,eAAI,CAACC,OAAO,CAAEsV,IAAI,IAAI,CAAC,GAAI,IAAI,CAAC,EAAEvV,eAAI,CAACC,OAAO,CAACsV,IAAI,GAAG,IAAI,CAAC,CAAC;EACvE;EACA,OAAO3M,GAAG,CAAClL,IAAI,CAAC,EAAE,CAAC;AACrB;AAEA,SAASub,mBAAmBA,CAACne,GAAG,EAAEqe,SAAS,GAAG,KAAK,EAAE;EACnD,MAAMvQ,GAAG,GAAG,EAAE;EACd,IAAIuQ,SAAS,EAAE;IACbvQ,GAAG,CAACnL,IAAI,CAAC,UAAU,CAAC;EACtB;EACA,KAAK,IAAIN,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG/L,GAAG,CAACb,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;IAC5C,MAAMoY,IAAI,GAAGza,GAAG,CAAC+C,UAAU,CAACV,CAAC,CAAC;IAC9ByL,GAAG,CAACnL,IAAI,CACNV,MAAM,CAACC,YAAY,CAAEuY,IAAI,IAAI,CAAC,GAAI,IAAI,CAAC,EACvCxY,MAAM,CAACC,YAAY,CAACuY,IAAI,GAAG,IAAI,CACjC,CAAC;EACH;EACA,OAAO3M,GAAG,CAAClL,IAAI,CAAC,EAAE,CAAC;AACrB;AAEA,SAAS0b,iBAAiBA,CAACC,QAAQ,EAAEC,KAAK,EAAEC,MAAM,EAAE;EAClD,QAAQF,QAAQ;IACd,KAAK,EAAE;MACL,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEC,KAAK,EAAE,CAAC,CAAC;IAChC,KAAK,GAAG;MACN,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEA,KAAK,EAAEC,MAAM,CAAC;IACtC,KAAK,GAAG;MACN,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAEA,MAAM,CAAC;IACjC;MACE,MAAM,IAAIngB,KAAK,CAAC,kBAAkB,CAAC;EACvC;AACF;AASA,SAASogB,cAAcA,CAAC7U,CAAC,EAAE;EAGzB,OAAOtH,IAAI,CAACoc,IAAI,CAACpc,IAAI,CAACoc,IAAI,CAACpc,IAAI,CAACqc,IAAI,CAAC,CAAC,GAAG/U,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD;;;;;;;;;;;;;;;;;;;;;ACruBA,eAAegV,KAAKA,CAACC,SAAS,GAAC,CAAC,CAAC,EAAC;EAAC,IAAIC,SAAS;EAAC,IAAIC,MAAM,GAACF,SAAS;EAAC,IAAIG,kBAAkB,GAAC,IAAI;EAAC,IAAIC,qBAAqB,GAAC,KAAK;EAAC,IAAIC,UAAU,GAAC,EAAE;EAAC,IAAIC,WAAW,GAAC,gBAAgB;EAAC,IAAIC,KAAK,GAACA,CAAC5d,MAAM,EAAC6d,OAAO,KAAG;IAAC,MAAMA,OAAO;EAAA,CAAC;EAAC,IAAIC,WAAW,GAACC,MAAM,CAACC,IAAI,CAAC/gB,GAAG;EAAC,IAAIghB,eAAe,GAAC,EAAE;EAAkI,IAAIC,SAAS,EAACC,UAAU;EAAC,IAAGX,kBAAkB,IAAEC,qBAAqB,EAAC;IAAC,IAAG;MAACQ,eAAe,GAAC,IAAIngB,GAAG,CAAC,GAAG,EAACggB,WAAW,CAAC,CAAC1f,IAAI;IAAA,CAAC,OAAK,CAAC;IAAE8f,SAAS,GAAC,MAAMjhB,GAAG,IAAE;MAAC,IAAI2Z,QAAQ,GAAC,MAAM3G,KAAK,CAAChT,GAAG,EAAC;QAACmhB,WAAW,EAAC;MAAa,CAAC,CAAC;MAAC,IAAGxH,QAAQ,CAACC,EAAE,EAAC;QAAC,OAAOD,QAAQ,CAACpJ,WAAW,CAAC,CAAC;MAAA;MAAC,MAAM,IAAI3Q,KAAK,CAAC+Z,QAAQ,CAAC5W,MAAM,GAAC,KAAK,GAAC4W,QAAQ,CAAC3Z,GAAG,CAAC;IAAA,CAAC;EAAC,CAAC,MAAI,CAAC;EAAC,IAAIohB,GAAG,GAAC3hB,OAAO,CAAC4hB,GAAG,CAACC,IAAI,CAAC7hB,OAAO,CAAC;EAAC,IAAI8hB,GAAG,GAAC9hB,OAAO,CAAC+hB,KAAK,CAACF,IAAI,CAAC7hB,OAAO,CAAC;EAAC,IAAIgiB,UAAU;EAAC,IAAIC,KAAK,GAAC,KAAK;EAAC,IAAIC,UAAU;EAAC,IAAIC,mBAAmB,EAACC,kBAAkB;EAAC,IAAIC,KAAK,EAACC,MAAM,EAACC,MAAM,EAACC,OAAO,EAACC,MAAM,EAACC,OAAO,EAACC,OAAO,EAACC,OAAO;EAAC,IAAIC,MAAM,EAACC,OAAO;EAAC,IAAIC,kBAAkB,GAAC,KAAK;EAAC,SAASC,iBAAiBA,CAAA,EAAE;IAAC,IAAIvb,CAAC,GAACwb,UAAU,CAAC9d,MAAM;IAACkd,KAAK,GAAC,IAAIa,SAAS,CAACzb,CAAC,CAAC;IAAC8a,MAAM,GAAC,IAAIY,UAAU,CAAC1b,CAAC,CAAC;IAAC6a,MAAM,GAAC,IAAI3d,UAAU,CAAC8C,CAAC,CAAC;IAAC+a,OAAO,GAAC,IAAIY,WAAW,CAAC3b,CAAC,CAAC;IAACgb,MAAM,GAAC,IAAIY,UAAU,CAAC5b,CAAC,CAAC;IAACib,OAAO,GAAC,IAAIxd,WAAW,CAACuC,CAAC,CAAC;IAACkb,OAAO,GAAC,IAAIjzB,YAAY,CAAC+X,CAAC,CAAC;IAACmb,OAAO,GAAC,IAAIU,YAAY,CAAC7b,CAAC,CAAC;IAACob,MAAM,GAAC,IAAIlH,aAAa,CAAClU,CAAC,CAAC;IAACqb,OAAO,GAAC,IAAIlH,cAAc,CAACnU,CAAC,CAAC;EAAA;EAAC,SAAS8b,MAAMA,CAAA,EAAE;IAAC,IAAG1C,MAAM,CAAC,QAAQ,CAAC,EAAC;MAAC,IAAG,OAAOA,MAAM,CAAC,QAAQ,CAAC,IAAE,UAAU,EAACA,MAAM,CAAC,QAAQ,CAAC,GAAC,CAACA,MAAM,CAAC,QAAQ,CAAC,CAAC;MAAC,OAAMA,MAAM,CAAC,QAAQ,CAAC,CAAC7f,MAAM,EAAC;QAACwiB,WAAW,CAAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC4C,KAAK,CAAC,CAAC,CAAC;MAAA;IAAC;IAACC,oBAAoB,CAACC,SAAS,CAAC;EAAA;EAAC,SAASC,WAAWA,CAAA,EAAE;IAACb,kBAAkB,GAAC,IAAI;IAACc,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;EAAA;EAAC,SAASC,OAAOA,CAAA,EAAE;IAAC,IAAGjD,MAAM,CAAC,SAAS,CAAC,EAAC;MAAC,IAAG,OAAOA,MAAM,CAAC,SAAS,CAAC,IAAE,UAAU,EAACA,MAAM,CAAC,SAAS,CAAC,GAAC,CAACA,MAAM,CAAC,SAAS,CAAC,CAAC;MAAC,OAAMA,MAAM,CAAC,SAAS,CAAC,CAAC7f,MAAM,EAAC;QAAC+iB,YAAY,CAAClD,MAAM,CAAC,SAAS,CAAC,CAAC4C,KAAK,CAAC,CAAC,CAAC;MAAA;IAAC;IAACC,oBAAoB,CAACM,UAAU,CAAC;EAAA;EAAC,SAASxS,KAAKA,CAACyS,IAAI,EAAC;IAACpD,MAAM,CAAC,SAAS,CAAC,GAAGoD,IAAI,CAAC;IAACA,IAAI,GAAC,UAAU,GAACA,IAAI,GAAC,GAAG;IAACnC,GAAG,CAACmC,IAAI,CAAC;IAAChC,KAAK,GAAC,IAAI;IAACgC,IAAI,IAAE,0CAA0C;IAAC,IAAIlc,CAAC,GAAC,IAAImc,WAAW,CAACC,YAAY,CAACF,IAAI,CAAC;IAAC7B,kBAAkB,GAAGra,CAAC,CAAC;IAAC,MAAMA,CAAC;EAAA;EAAC,IAAIqc,cAAc;EAAopC,SAASC,cAAcA,CAAA,EAAE;IAAC,IAAIC,OAAO,GAAC;MAAC1c,CAAC,EAAC2c;IAAW,CAAC;IAAC,OAAOD,OAAO;EAAA;EAAC,eAAeE,UAAUA,CAAA,EAAE;IAAC,SAASC,eAAeA,CAACC,QAAQ,EAACC,MAAM,EAAC;MAACd,WAAW,GAACa,QAAQ,CAACE,OAAO;MAACC,iBAAiB,CAAChB,WAAW,CAAC;MAACb,iBAAiB,CAAC,CAAC;MAAC,OAAOa,WAAW;IAAA;IAAwF,IAAI/jB,IAAI,GAACukB,cAAc,CAAC,CAAC;IAA+B,OAAO,IAAIS,OAAO,CAAC,CAACC,OAAO,EAACC,MAAM,KAAG;MAACnE,MAAM,CAAC,iBAAiB,CAAC,CAAC/gB,IAAI,EAAC,CAACmlB,IAAI,EAACC,GAAG,KAAG;QAACH,OAAO,CAACN,eAAe,CAACQ,IAAI,EAACC,GAAG,CAAC,CAAC;MAAA,CAAC,CAAC;IAAA,CAAC,CAAC;EAAkK;EAAC,MAAMC,UAAU;IAACtiB,IAAI,GAAC,YAAY;IAACE,WAAWA,CAACO,MAAM,EAAC;MAAC,IAAI,CAACV,OAAO,GAAC,gCAAgCU,MAAM,GAAG;MAAC,IAAI,CAACA,MAAM,GAACA,MAAM;IAAA;EAAC;EAAC,IAAIogB,oBAAoB,GAAC0B,SAAS,IAAE;IAAC,OAAMA,SAAS,CAACpkB,MAAM,GAAC,CAAC,EAAC;MAACokB,SAAS,CAAC3B,KAAK,CAAC,CAAC,CAAC5C,MAAM,CAAC;IAAA;EAAC,CAAC;EAAC,IAAImD,UAAU,GAAC,EAAE;EAAC,IAAID,YAAY,GAACsB,EAAE,IAAErB,UAAU,CAACxf,IAAI,CAAC6gB,EAAE,CAAC;EAAC,IAAI1B,SAAS,GAAC,EAAE;EAAC,IAAIH,WAAW,GAAC6B,EAAE,IAAE1B,SAAS,CAACnf,IAAI,CAAC6gB,EAAE,CAAC;EAAC,IAAIC,aAAa,GAAC,IAAI;EAAC,IAAIC,UAAU,GAACA,CAAA,KAAI/T,KAAK,CAAC,EAAE,CAAC;EAAC,IAAIgU,uBAAuB,GAAC,CAAC;EAAC,IAAIC,oCAAoC,GAACA,CAAA,KAAI;IAACH,aAAa,GAAC,KAAK;IAACE,uBAAuB,GAAC,CAAC;EAAA,CAAC;EAAC,IAAIE,MAAM,GAAC,CAAC,CAAC;EAAC,IAAIC,eAAe,GAAC5d,CAAC,IAAE;IAAC,IAAGA,CAAC,YAAYod,UAAU,IAAEpd,CAAC,IAAE,QAAQ,EAAC;MAAC,OAAOma,UAAU;IAAA;IAAChB,KAAK,CAAC,CAAC,EAACnZ,CAAC,CAAC;EAAA,CAAC;EAAC,IAAI6d,gBAAgB,GAACA,CAAA,KAAIN,aAAa,IAAEE,uBAAuB,GAAC,CAAC;EAAC,IAAIK,UAAU,GAAC5iB,IAAI,IAAE;IAACif,UAAU,GAACjf,IAAI;IAAC,IAAG,CAAC2iB,gBAAgB,CAAC,CAAC,EAAC;MAAC/E,MAAM,CAAC,QAAQ,CAAC,GAAG5d,IAAI,CAAC;MAACgf,KAAK,GAAC,IAAI;IAAA;IAACf,KAAK,CAACje,IAAI,EAAC,IAAIkiB,UAAU,CAACliB,IAAI,CAAC,CAAC;EAAA,CAAC;EAAC,IAAI6iB,MAAM,GAACA,CAACxiB,MAAM,EAACyiB,QAAQ,KAAG;IAAC7D,UAAU,GAAC5e,MAAM;IAACuiB,UAAU,CAACviB,MAAM,CAAC;EAAA,CAAC;EAAC,IAAI0iB,KAAK,GAACF,MAAM;EAAC,IAAIG,SAAS,GAACA,CAAA,KAAI;IAAC,IAAG,CAACL,gBAAgB,CAAC,CAAC,EAAC;MAAC,IAAG;QAACI,KAAK,CAAC9D,UAAU,CAAC;MAAA,CAAC,QAAMna,CAAC,EAAC;QAAC4d,eAAe,CAAC5d,CAAC,CAAC;MAAA;IAAC;EAAC,CAAC;EAAC,IAAIme,gBAAgB,GAACC,IAAI,IAAE;IAAC,IAAGlE,KAAK,EAAC;MAAC;IAAM;IAAC,IAAG;MAAC,OAAOkE,IAAI,CAAC,CAAC;IAAA,CAAC,QAAMpe,CAAC,EAAC;MAAC4d,eAAe,CAAC5d,CAAC,CAAC;IAAA,CAAC,SAAO;MAACke,SAAS,CAAC,CAAC;IAAA;EAAC,CAAC;EAAC,IAAIG,mBAAmB,GAACA,CAAA,KAAIC,WAAW,CAACC,GAAG,CAAC,CAAC;EAAC,IAAIC,cAAc,GAACA,CAACC,KAAK,EAACC,UAAU,KAAG;IAAC,IAAGf,MAAM,CAACc,KAAK,CAAC,EAAC;MAACE,YAAY,CAAChB,MAAM,CAACc,KAAK,CAAC,CAACG,EAAE,CAAC;MAAC,OAAOjB,MAAM,CAACc,KAAK,CAAC;IAAA;IAAC,IAAG,CAACC,UAAU,EAAC,OAAO,CAAC;IAAC,IAAIE,EAAE,GAACC,UAAU,CAAC,MAAI;MAAC,OAAOlB,MAAM,CAACc,KAAK,CAAC;MAACN,gBAAgB,CAAC,MAAIW,oBAAoB,CAACL,KAAK,EAACJ,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC,EAACK,UAAU,CAAC;IAACf,MAAM,CAACc,KAAK,CAAC,GAAC;MAACG,EAAE;MAACF;IAAU,CAAC;IAAC,OAAO,CAAC;EAAA,CAAC;EAAC,SAASK,gBAAgBA,CAAChU,IAAI,EAAC;IAAC+N,MAAM,CAACkG,SAAS,GAAC,IAAIpiB,UAAU,CAACmO,IAAI,CAAC;EAAA;EAAC,IAAIkU,UAAU,GAACA,CAAA,KAAI,UAAU;EAAC,IAAIC,WAAW,GAACA,CAACnU,IAAI,EAACoU,SAAS,KAAG9iB,IAAI,CAACoc,IAAI,CAAC1N,IAAI,GAACoU,SAAS,CAAC,GAACA,SAAS;EAAC,IAAIC,UAAU,GAACrU,IAAI,IAAE;IAAC,IAAIsU,WAAW,GAACnE,UAAU,CAAC9d,MAAM,CAAC2U,UAAU;IAAC,IAAIuN,KAAK,GAAC,CAACvU,IAAI,GAACsU,WAAW,GAAC,KAAK,IAAE,KAAK,GAAC,CAAC;IAAC,IAAG;MAACnE,UAAU,CAACqE,IAAI,CAACD,KAAK,CAAC;MAACrE,iBAAiB,CAAC,CAAC;MAAC,OAAO,CAAC;IAAA,CAAC,QAAMjb,CAAC,EAAC,CAAC;EAAC,CAAC;EAAC,IAAIwf,uBAAuB,GAACC,aAAa,IAAE;IAAC,IAAIC,OAAO,GAACnF,MAAM,CAACthB,MAAM;IAACwmB,aAAa,MAAI,CAAC;IAAC,IAAIE,WAAW,GAACV,UAAU,CAAC,CAAC;IAAC,IAAGQ,aAAa,GAACE,WAAW,EAAC;MAAC,OAAO,KAAK;IAAA;IAAC,KAAI,IAAIC,OAAO,GAAC,CAAC,EAACA,OAAO,IAAE,CAAC,EAACA,OAAO,IAAE,CAAC,EAAC;MAAC,IAAIC,iBAAiB,GAACH,OAAO,IAAE,CAAC,GAAC,EAAE,GAACE,OAAO,CAAC;MAACC,iBAAiB,GAACxjB,IAAI,CAACC,GAAG,CAACujB,iBAAiB,EAACJ,aAAa,GAAC,SAAS,CAAC;MAAC,IAAIK,OAAO,GAACzjB,IAAI,CAACC,GAAG,CAACqjB,WAAW,EAACT,WAAW,CAAC7iB,IAAI,CAACqG,GAAG,CAAC+c,aAAa,EAACI,iBAAiB,CAAC,EAAC,KAAK,CAAC,CAAC;MAAC,IAAIE,WAAW,GAACX,UAAU,CAACU,OAAO,CAAC;MAAC,IAAGC,WAAW,EAAC;QAAC,OAAO,IAAI;MAAA;IAAC;IAAC,OAAO,KAAK;EAAA,CAAC;EAAC,SAASC,aAAaA,CAACC,SAAS,EAACC,MAAM,EAACC,OAAO,EAAC5H,MAAM,EAAC;IAAC,IAAG4H,OAAO,KAAGD,MAAM,EAAC;MAACpH,MAAM,CAACkG,SAAS,GAAC,IAAIoB,iBAAiB,CAAC7F,MAAM,CAAC/d,QAAQ,CAACyjB,SAAS,EAACA,SAAS,GAACE,OAAO,GAAC5H,MAAM,CAAC,CAAC;MAAC;IAAM;IAAC,MAAM8H,QAAQ,GAACH,MAAM,GAAC3H,MAAM;IAAC,MAAMyG,SAAS,GAAClG,MAAM,CAACkG,SAAS,GAAC,IAAIoB,iBAAiB,CAACC,QAAQ,CAAC;IAAC,KAAI,IAAIC,QAAQ,GAACL,SAAS,EAACM,SAAS,GAAC,CAAC,EAACA,SAAS,GAACF,QAAQ,EAACC,QAAQ,IAAEH,OAAO,EAACI,SAAS,IAAEL,MAAM,EAAC;MAAClB,SAAS,CAAC9S,GAAG,CAACqO,MAAM,CAAC/d,QAAQ,CAAC8jB,QAAQ,EAACA,QAAQ,GAACJ,MAAM,CAAC,EAACK,SAAS,CAAC;IAAA;EAAC;EAAC,SAASC,YAAYA,CAACC,QAAQ,EAACP,MAAM,EAACQ,MAAM,EAAC;IAAC5H,MAAM,CAACkG,SAAS,CAAC9S,GAAG,CAACqO,MAAM,CAAC/d,QAAQ,CAACikB,QAAQ,EAACA,QAAQ,GAACP,MAAM,CAAC,EAACQ,MAAM,CAAC;EAAA;EAAC,IAAIC,kBAAkB,GAACA,CAACC,KAAK,EAACxjB,MAAM,KAAG;IAACkd,KAAK,CAACpO,GAAG,CAAC0U,KAAK,EAACxjB,MAAM,CAAC;EAAA,CAAC;EAAE,IAAG0b,MAAM,CAAC,eAAe,CAAC,EAACyE,aAAa,GAACzE,MAAM,CAAC,eAAe,CAAC;EAAC,IAAGA,MAAM,CAAC,OAAO,CAAC,EAACc,GAAG,GAACd,MAAM,CAAC,OAAO,CAAC;EAAC,IAAGA,MAAM,CAAC,UAAU,CAAC,EAACiB,GAAG,GAACjB,MAAM,CAAC,UAAU,CAAC;EAAC,IAAGA,MAAM,CAAC,YAAY,CAAC,EAACmB,UAAU,GAACnB,MAAM,CAAC,YAAY,CAAC;EAAC,IAAGA,MAAM,CAAC,WAAW,CAAC,EAACG,UAAU,GAACH,MAAM,CAAC,WAAW,CAAC;EAAC,IAAGA,MAAM,CAAC,aAAa,CAAC,EAACI,WAAW,GAACJ,MAAM,CAAC,aAAa,CAAC;EAAC,IAAGA,MAAM,CAAC,SAAS,CAAC,EAAC;IAAC,IAAG,OAAOA,MAAM,CAAC,SAAS,CAAC,IAAE,UAAU,EAACA,MAAM,CAAC,SAAS,CAAC,GAAC,CAACA,MAAM,CAAC,SAAS,CAAC,CAAC;IAAC,OAAMA,MAAM,CAAC,SAAS,CAAC,CAAC7f,MAAM,GAAC,CAAC,EAAC;MAAC6f,MAAM,CAAC,SAAS,CAAC,CAAC4C,KAAK,CAAC,CAAC,CAAC,CAAC;IAAA;EAAC;EAAE5C,MAAM,CAAC,oBAAoB,CAAC,GAAC6H,kBAAkB;EAAC,IAAIE,OAAO,EAACC,KAAK,EAACC,aAAa,EAACC,aAAa,EAAClC,oBAAoB,EAACmC,MAAM,EAACC,yBAAyB,EAAChG,UAAU;EAAC,SAAS4B,iBAAiBA,CAAChB,WAAW,EAAC;IAAC+E,OAAO,GAAC/H,MAAM,CAAC,SAAS,CAAC,GAACgD,WAAW,CAAC,GAAG,CAAC;IAACgF,KAAK,GAAChI,MAAM,CAAC,OAAO,CAAC,GAACgD,WAAW,CAAC,GAAG,CAAC;IAACiF,aAAa,GAACjI,MAAM,CAAC,eAAe,CAAC,GAACgD,WAAW,CAAC,GAAG,CAAC;IAACkF,aAAa,GAAClI,MAAM,CAAC,eAAe,CAAC,GAACgD,WAAW,CAAC,GAAG,CAAC;IAACgD,oBAAoB,GAAChD,WAAW,CAAC,GAAG,CAAC;IAACmF,MAAM,GAAC/F,UAAU,GAACY,WAAW,CAAC,GAAG,CAAC;IAACoF,yBAAyB,GAACpF,WAAW,CAAC,2BAA2B,CAAC;EAAA;EAAC,IAAIU,WAAW,GAAC;IAACxc,CAAC,EAACwd,UAAU;IAAC9d,CAAC,EAACge,oCAAoC;IAAC5d,CAAC,EAAC0e,cAAc;IAAC/e,CAAC,EAACsf,gBAAgB;IAAChf,CAAC,EAACyf,uBAAuB;IAAC3f,CAAC,EAACie,UAAU;IAACqD,CAAC,EAACnB,aAAa;IAAC/f,CAAC,EAACugB;EAAY,CAAC;EAAC,SAASY,GAAGA,CAAA,EAAE;IAAC5F,MAAM,CAAC,CAAC;IAAC,SAAS6F,KAAKA,CAAA,EAAE;MAACvI,MAAM,CAAC,WAAW,CAAC,GAAC,IAAI;MAAC,IAAGoB,KAAK,EAAC;MAAO2B,WAAW,CAAC,CAAC;MAACzB,mBAAmB,GAAGtB,MAAM,CAAC;MAACA,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC;MAACiD,OAAO,CAAC,CAAC;IAAA;IAAC,IAAGjD,MAAM,CAAC,WAAW,CAAC,EAAC;MAACA,MAAM,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;MAAC+F,UAAU,CAAC,MAAI;QAACA,UAAU,CAAC,MAAI/F,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QAACuI,KAAK,CAAC,CAAC;MAAA,CAAC,EAAC,CAAC,CAAC;IAAA,CAAC,MAAI;MAACA,KAAK,CAAC,CAAC;IAAA;EAAC;EAAC,IAAIvF,WAAW;EAACA,WAAW,GAAC,MAAOW,UAAU,CAAC,CAAE;EAAC2E,GAAG,CAAC,CAAC;EAAC,IAAGpG,kBAAkB,EAAC;IAACnC,SAAS,GAACC,MAAM;EAAA,CAAC,MAAI;IAACD,SAAS,GAAC,IAAIkE,OAAO,CAAC,CAACC,OAAO,EAACC,MAAM,KAAG;MAAC7C,mBAAmB,GAAC4C,OAAO;MAAC3C,kBAAkB,GAAC4C,MAAM;IAAA,CAAC,CAAC;EAAA;EACvzQ,OAAOpE,SAAS;AAAA;AAAC,4CAAeF,KAAK,E;;;;ACakB;AACN;AACA;AAElD,MAAM2I,UAAU,SAAS3mB,aAAa,CAAC;EACrCK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,YAAY,CAAC;EAC1B;AACF;AAEA,MAAMupB,kBAAkB,CAAC;EACvB,OAAO,CAACnkB,MAAM,GAAG,IAAI;EAErB,OAAO,CAACokB,OAAO,GAAG,IAAI;EAEtB,OAAO,CAACC,aAAa,GAAG,IAAI;EAE5B,OAAO,CAACC,OAAO,GAAG,IAAI;EAEtB,OAAO,CAACC,cAAc,GAAG,IAAI;EAE7B,OAAO,CAACC,OAAO,GAAG,IAAI;EAEtB,OAAOC,UAAUA,CAAC;IAAEL,OAAO;IAAEE,OAAO;IAAEC,cAAc;IAAEC;EAAQ,CAAC,EAAE;IAC/D,IAAI,CAAC,CAACF,OAAO,GAAGA,OAAO;IACvB,IAAI,CAAC,CAACC,cAAc,GAAGA,cAAc;IACrC,IAAI,CAAC,CAACC,OAAO,GAAGA,OAAO;IAEvB,IAAI,CAACD,cAAc,EAAE;MACnB,IAAI,CAAC,CAACH,OAAO,GAAGA,OAAO;IACzB;EACF;EAEA,aAAa,CAACM,WAAWC,CAACC,gBAAgB,EAAE;IAC1C,MAAM7N,IAAI,GAGJ,GAAG,IAAI,CAAC,CAACyN,OAAO,0BAA0B;IAEhD,IAAIjF,QAAQ,GAAG,IAAI;IACnB,IAAI;MACF,MAAMQ,GAAG,GAAG;MAAA;MAAA;MAEOhJ,IAAI,CAAE;MACzBwI,QAAQ,GAAGQ,GAAG,CAAC8E,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,OAAOjiB,CAAC,EAAE;MACV9H,IAAI,CAAC,mCAAmC8H,CAAC,EAAE,CAAC;IAC9C;IACAgiB,gBAAgB,CAACrF,QAAQ,CAAC;EAC5B;EAEA,aAAa,CAACuF,eAAeC,CAACH,gBAAgB,EAAEzF,OAAO,EAAE6F,eAAe,EAAE;IACxE,MAAMC,QAAQ,GAAG,YAAY;IAC7B,IAAI;MACF,IAAI,CAAC,IAAI,CAAC,CAACjlB,MAAM,EAAE;QACjB,IAAI,IAAI,CAAC,CAACukB,cAAc,EAAE;UACxB,IAAI,CAAC,CAACvkB,MAAM,GAAG,MAAM8U,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC0P,OAAO,GAAGS,QAAQ,EAAE,CAAC;QACrE,CAAC,MAAM;UAIL,IAAI,CAAC,CAACjlB,MAAM,GAAG,MAAM,IAAI,CAAC,CAACokB,OAAO,CAACc,eAAe,CAChD,iBAAiB,EACjB;YAAEC,IAAI,EAAE,SAAS;YAAEF;UAAS,CAC9B,CAAC;QACH;MACF;MACA,MAAMG,OAAO,GAAG,MAAMrG,WAAW,CAACsG,WAAW,CAAC,IAAI,CAAC,CAACrlB,MAAM,EAAEmf,OAAO,CAAC;MACpE,OAAO6F,eAAe,CAACI,OAAO,CAAC7F,QAAQ,CAAC;IAC1C,CAAC,CAAC,OAAOjT,MAAM,EAAE;MACfxR,IAAI,CAAC,uCAAuCwR,MAAM,EAAE,CAAC;MAErD,IAAI,CAAC,CAACoY,WAAW,CAACE,gBAAgB,CAAC;MACnC,OAAO,IAAI;IACb,CAAC,SAAS;MACR,IAAI,CAAC,CAACR,OAAO,GAAG,IAAI;IACtB;EACF;EAEA,aAAa9b,MAAMA,CAAC9J,KAAK,EAAE0c,KAAK,EAAEC,MAAM,EAAEmK,OAAO,EAAEC,YAAY,EAAE;IAC/D,IAAI,CAAC,IAAI,CAAC,CAAClB,aAAa,EAAE;MACxB,MAAM;QAAEmB,OAAO;QAAE5F;MAAQ,CAAC,GAAGD,OAAO,CAAC8F,aAAa,CAAC,CAAC;MACpD,MAAMC,QAAQ,GAAG,CAACF,OAAO,CAAC;MAC1B,IAAI,CAAC,IAAI,CAAC,CAAClB,OAAO,EAAE;QAClB,IAAI,CAAC,CAACI,WAAW,CAAC9E,OAAO,CAAC;MAC5B,CAAC,MAAM;QACL8F,QAAQ,CAACrmB,IAAI,CACXkc,KAAK,CAAC;UACJzgB,IAAI;UACJgqB,eAAe,EAAE,IAAI,CAAC,CAACA,eAAe,CAACpI,IAAI,CAAC,IAAI,EAAEkD,OAAO;QAC3D,CAAC,CACH,CAAC;MACH;MACA,IAAI,CAAC,CAACyE,aAAa,GAAG1E,OAAO,CAACgG,IAAI,CAACD,QAAQ,CAAC;IAC9C;IACA,MAAMlG,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC6E,aAAa;IAExC,IAAI,CAAC7E,MAAM,EAAE;MACX,MAAM,IAAI0E,UAAU,CAAC,4BAA4B,CAAC;IACpD;IACA,IAAI0B,GAAG,EAAEC,UAAU;IAEnB,IAAI;MACF,MAAMlY,IAAI,GAAGnP,KAAK,CAAC3C,MAAM;MACzB+pB,GAAG,GAAGpG,MAAM,CAACiE,OAAO,CAAC9V,IAAI,CAAC;MAC1B6R,MAAM,CAAC+D,kBAAkB,CAAC/kB,KAAK,EAAEonB,GAAG,CAAC;MAErC,IAAIL,YAAY,EAAE;QAChB/F,MAAM,CAACoE,aAAa,CAClBgC,GAAG,EACHjY,IAAI,EACJuN,KAAK,EACLC,MAAM,EACNoK,YAAY,CAACnyB,CAAC,EACdmyB,YAAY,CAACO,SAAS,GAAG,CAAC,GAAG,CAAC,EAC9BP,YAAY,CAACQ,gBAAgB,GAAG,CAAC,GAAG,CAAC,EACrCR,YAAY,CAACS,QAAQ,GAAG,CAAC,GAAG,CAAC,EAC7BT,YAAY,CAACU,OAAO,EACpBV,YAAY,CAACW,IACf,CAAC;MACH,CAAC,MAAM;QACL,MAAMC,WAAW,GAAGb,OAAO,GAAGA,OAAO,CAACzpB,MAAM,GAAG,CAAC;QAChD,IAAIsqB,WAAW,GAAG,CAAC,EAAE;UACnBN,UAAU,GAAGrG,MAAM,CAACiE,OAAO,CAAC0C,WAAW,CAAC;UACxC3G,MAAM,CAAC+D,kBAAkB,CAAC+B,OAAO,EAAEO,UAAU,CAAC;QAChD;QACArG,MAAM,CAACmE,aAAa,CAACiC,GAAG,EAAEjY,IAAI,EAAEuN,KAAK,EAAEC,MAAM,EAAE0K,UAAU,EAAEM,WAAW,CAAC;MACzE;MACA,IAAI,CAAC3G,MAAM,CAACoC,SAAS,EAAE;QACrB,MAAM,IAAIsC,UAAU,CAAC,eAAe,CAAC;MACvC;MACA,MAAM;QAAEtC;MAAU,CAAC,GAAGpC,MAAM;MAC5BA,MAAM,CAACoC,SAAS,GAAG,IAAI;MAEvB,OAAOA,SAAS;IAClB,CAAC,SAAS;MACR,IAAIgE,GAAG,EAAE;QACPpG,MAAM,CAACkE,KAAK,CAACkC,GAAG,CAAC;MACnB;MACA,IAAIC,UAAU,EAAE;QACdrG,MAAM,CAACkE,KAAK,CAACmC,UAAU,CAAC;MAC1B;IACF;EACF;EAEA,OAAOO,OAAOA,CAAA,EAAG;IACf,IAAI,CAAC,CAAC/B,aAAa,GAAG,IAAI;EAC5B;AACF;;;AClJA,SAASgC,SAASA,CAAC5U,CAAC,EAAEvS,GAAG,EAAEoG,GAAG,EAAE;EAE9B,OAAOrG,IAAI,CAACC,GAAG,CAACD,IAAI,CAACqG,GAAG,CAACmM,CAAC,EAAEvS,GAAG,CAAC,EAAEoG,GAAG,CAAC;AACxC;;;;;;;;;;;ACI2B;AACmB;AACM;AAYpD,SAASghB,cAAcA,CAACC,GAAG,EAAEzb,IAAI,EAAE0b,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,OAAO,EAAE;EAC1D,MAAMC,UAAU,GAAG,CAAC;EACpBD,OAAO,GAAGA,OAAO,KAAK,CAAC,GAAG,CAAC,GAAGA,OAAO;EACrC,MAAME,MAAM,GAAGN,EAAE,GAAGE,EAAE;EACtB,MAAMK,MAAM,GAAGN,EAAE,GAAGE,EAAE;EACtB,IAAIK,QAAQ,GAAG,CAAC;IACdC,QAAQ;EACV,MAAMC,OAAO,GAAG,IAAIjJ,WAAW,CAACyI,EAAE,CAAC;EACnC,MAAMS,UAAU,GAAGX,EAAE,GAAGK,UAAU;EAElC,KAAK,IAAI9nB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2nB,EAAE,EAAE3nB,CAAC,EAAE,EAAE;IAC3BmoB,OAAO,CAACnoB,CAAC,CAAC,GAAGE,IAAI,CAACmoB,KAAK,CAACroB,CAAC,GAAG+nB,MAAM,CAAC,GAAGD,UAAU;EAClD;EACA,KAAK,IAAI9nB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4nB,EAAE,EAAE5nB,CAAC,EAAE,EAAE;IAC3B,MAAMsoB,EAAE,GAAGpoB,IAAI,CAACmoB,KAAK,CAACroB,CAAC,GAAGgoB,MAAM,CAAC,GAAGI,UAAU;IAC9C,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,EAAE,EAAEY,CAAC,EAAE,EAAE;MAC3BL,QAAQ,GAAGI,EAAE,GAAGH,OAAO,CAACI,CAAC,CAAC;MAC1Bxc,IAAI,CAACkc,QAAQ,EAAE,CAAC,GAAGT,GAAG,CAACU,QAAQ,EAAE,CAAC;MAClCnc,IAAI,CAACkc,QAAQ,EAAE,CAAC,GAAGT,GAAG,CAACU,QAAQ,EAAE,CAAC;MAClCnc,IAAI,CAACkc,QAAQ,EAAE,CAAC,GAAGT,GAAG,CAACU,QAAQ,EAAE,CAAC;MAClCD,QAAQ,IAAIJ,OAAO;IACrB;EACF;AACF;AAEA,SAASW,eAAeA,CAAChB,GAAG,EAAEzb,IAAI,EAAE0b,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,OAAO,EAAE;EAC3D,MAAME,MAAM,GAAGN,EAAE,GAAGE,EAAE;EACtB,MAAMK,MAAM,GAAGN,EAAE,GAAGE,EAAE;EACtB,IAAIK,QAAQ,GAAG,CAAC;EAChB,MAAME,OAAO,GAAG,IAAIjJ,WAAW,CAACyI,EAAE,CAAC;EAEnC,IAAIE,OAAO,KAAK,CAAC,EAAE;IACjB,KAAK,IAAI7nB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2nB,EAAE,EAAE3nB,CAAC,EAAE,EAAE;MAC3BmoB,OAAO,CAACnoB,CAAC,CAAC,GAAGE,IAAI,CAACmoB,KAAK,CAACroB,CAAC,GAAG+nB,MAAM,CAAC;IACrC;IACA,MAAMU,KAAK,GAAG,IAAIznB,WAAW,CAACwmB,GAAG,CAACvmB,MAAM,CAAC;IACzC,MAAMynB,MAAM,GAAG,IAAI1nB,WAAW,CAAC+K,IAAI,CAAC9K,MAAM,CAAC;IAC3C,MAAM0nB,OAAO,GAAGznB,WAAW,CAACL,cAAc,GAAG,UAAU,GAAG,UAAU;IACpE,KAAK,IAAIb,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4nB,EAAE,EAAE5nB,CAAC,EAAE,EAAE;MAC3B,MAAMyL,GAAG,GAAGgd,KAAK,CAACpoB,QAAQ,CAACH,IAAI,CAACmoB,KAAK,CAACroB,CAAC,GAAGgoB,MAAM,CAAC,GAAGP,EAAE,CAAC;MACvD,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,EAAE,EAAEY,CAAC,EAAE,EAAE;QAC3BG,MAAM,CAACT,QAAQ,EAAE,CAAC,IAAIxc,GAAG,CAAC0c,OAAO,CAACI,CAAC,CAAC,CAAC,GAAGI,OAAO;MACjD;IACF;EACF,CAAC,MAAM;IACL,MAAMb,UAAU,GAAG,CAAC;IACpB,MAAMM,UAAU,GAAGX,EAAE,GAAGK,UAAU;IAClC,KAAK,IAAI9nB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2nB,EAAE,EAAE3nB,CAAC,EAAE,EAAE;MAC3BmoB,OAAO,CAACnoB,CAAC,CAAC,GAAGE,IAAI,CAACmoB,KAAK,CAACroB,CAAC,GAAG+nB,MAAM,CAAC,GAAGD,UAAU;IAClD;IACA,KAAK,IAAI9nB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4nB,EAAE,EAAE5nB,CAAC,EAAE,EAAE;MAC3B,MAAMyL,GAAG,GAAG+b,GAAG,CAACnnB,QAAQ,CAACH,IAAI,CAACmoB,KAAK,CAACroB,CAAC,GAAGgoB,MAAM,CAAC,GAAGI,UAAU,CAAC;MAC7D,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,EAAE,EAAEY,CAAC,EAAE,EAAE;QAC3B,MAAML,QAAQ,GAAGC,OAAO,CAACI,CAAC,CAAC;QAC3Bxc,IAAI,CAACkc,QAAQ,EAAE,CAAC,GAAGxc,GAAG,CAACyc,QAAQ,CAAC;QAChCnc,IAAI,CAACkc,QAAQ,EAAE,CAAC,GAAGxc,GAAG,CAACyc,QAAQ,GAAG,CAAC,CAAC;QACpCnc,IAAI,CAACkc,QAAQ,EAAE,CAAC,GAAGxc,GAAG,CAACyc,QAAQ,GAAG,CAAC,CAAC;MACtC;IACF;EACF;AACF;AAEA,SAASU,aAAaA,CAACpB,GAAG,EAAEzb,IAAI,EAAE8b,OAAO,EAAE;EACzC,IAAIA,OAAO,KAAK,CAAC,EAAE;IACjB,MAAMY,KAAK,GAAG,IAAIznB,WAAW,CAACwmB,GAAG,CAACvmB,MAAM,CAAC;IACzC,MAAMynB,MAAM,GAAG,IAAI1nB,WAAW,CAAC+K,IAAI,CAAC9K,MAAM,CAAC;IAC3C,MAAM0nB,OAAO,GAAGznB,WAAW,CAACL,cAAc,GAAG,UAAU,GAAG,UAAU;IACpE,KAAK,IAAIb,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG+e,KAAK,CAAC3rB,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;MAC9C0oB,MAAM,CAAC1oB,CAAC,CAAC,IAAIyoB,KAAK,CAACzoB,CAAC,CAAC,GAAG2oB,OAAO;IACjC;EACF,CAAC,MAAM;IACL,IAAIJ,CAAC,GAAG,CAAC;IACT,KAAK,IAAIvoB,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG8d,GAAG,CAAC1qB,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,IAAI,CAAC,EAAE;MAC/C+L,IAAI,CAACwc,CAAC,EAAE,CAAC,GAAGf,GAAG,CAACxnB,CAAC,CAAC;MAClB+L,IAAI,CAACwc,CAAC,EAAE,CAAC,GAAGf,GAAG,CAACxnB,CAAC,GAAG,CAAC,CAAC;MACtB+L,IAAI,CAACwc,CAAC,EAAE,CAAC,GAAGf,GAAG,CAACxnB,CAAC,GAAG,CAAC,CAAC;IACxB;EACF;AACF;AAEA,SAAS6oB,qBAAqBA,CAACtf,MAAM,EAAEuf,WAAW,EAAE;EAClD,IAAI,CAAC/lB,KAAK,CAACiJ,OAAO,CAACzC,MAAM,CAAC,EAAE;IAC1B,OAAO,IAAI;EACb;EACA,MAAMwf,SAAS,GAAGxf,MAAM,CAACzM,MAAM;EAE/B,IAAIisB,SAAS,GAAGD,WAAW,EAAE;IAC3B/sB,IAAI,CAAC,iCAAiC,CAAC;IACvC,OAAO,IAAI;EACb;EACA,IAAIgtB,SAAS,GAAGD,WAAW,EAAE;IAC3BltB,IAAI,CAAC,iCAAiC,CAAC;IACvC2N,MAAM,CAACzM,MAAM,GAAGgsB,WAAW;EAC7B;EACA,OAAO,KAAK;AACd;AAEA,MAAME,UAAU,CAAC;EACf,OAAO,CAACC,MAAM,GAAG,IAAIhF,iBAAiB,CAAC,CAAC,CAAC;EAEzCplB,WAAWA,CAACF,IAAI,EAAEuqB,QAAQ,EAAE;IAO1B,IAAI,CAACvqB,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACuqB,QAAQ,GAAGA,QAAQ;EAC1B;EAOAC,MAAMA,CAAC3B,GAAG,EAAE4B,SAAS,EAAE9jB,MAAM,GAAG,IAAI2e,iBAAiB,CAAC,CAAC,CAAC,EAAE;IACxD,IAAI,CAACoF,UAAU,CAAC7B,GAAG,EAAE4B,SAAS,EAAE9jB,MAAM,EAAE,CAAC,CAAC;IAC1C,OAAOA,MAAM;EACf;EAEAgkB,SAASA,CAAC9B,GAAG,EAAE4B,SAAS,EAAE;IACxB,MAAMnoB,MAAM,GAAG,IAAI,CAACkoB,MAAM,CAAC3B,GAAG,EAAE4B,SAAS,EAAEJ,UAAU,CAAC,CAACC,MAAM,CAAC;IAC9D,OAAOpmB,IAAI,CAACO,YAAY,CAACnC,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC;EAC3D;EAMAooB,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAC3CvtB,WAAW,CAAC,uCAAuC,CAAC;EACtD;EAWAwtB,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IACnE7rB,WAAW,CAAC,yCAAyC,CAAC;EACxD;EAOA2tB,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC7rB,WAAW,CAAC,4CAA4C,CAAC;EAC3D;EAKA6tB,aAAaA,CAACH,IAAI,EAAE;IAClB,OAAO,KAAK;EACd;EAKAI,eAAeA,CAACvgB,MAAM,EAAEwgB,GAAG,EAAE;IAC3B,OAAOf,UAAU,CAACc,eAAe,CAACvgB,MAAM,EAAE,IAAI,CAAC2f,QAAQ,CAAC;EAC1D;EAOAc,OAAOA,CACLje,IAAI,EACJke,aAAa,EACbC,cAAc,EACd/N,KAAK,EACLC,MAAM,EACN+N,YAAY,EACZJ,GAAG,EACHK,KAAK,EACLvC,OAAO,EACP;IAOA,MAAM4B,KAAK,GAAGQ,aAAa,GAAGC,cAAc;IAC5C,IAAIjB,MAAM,GAAG,IAAI;IACjB,MAAMoB,kBAAkB,GAAG,CAAC,IAAIN,GAAG;IACnC,MAAMO,aAAa,GAAGJ,cAAc,KAAK9N,MAAM,IAAI6N,aAAa,KAAK9N,KAAK;IAE1E,IAAI,IAAI,CAAC0N,aAAa,CAACE,GAAG,CAAC,EAAE;MAC3Bd,MAAM,GAAGmB,KAAK;IAChB,CAAC,MAAM,IACL,IAAI,CAAClB,QAAQ,KAAK,CAAC,IACnBO,KAAK,GAAGY,kBAAkB,IAC1B,IAAI,CAAC1rB,IAAI,KAAK,YAAY,IAC1B,IAAI,CAACA,IAAI,KAAK,WAAW,EACzB;MAUA,MAAM4rB,SAAS,GACbR,GAAG,IAAI,CAAC,GACJ,IAAItpB,UAAU,CAAC4pB,kBAAkB,CAAC,GAClC,IAAInL,WAAW,CAACmL,kBAAkB,CAAC;MACzC,KAAK,IAAIrqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGqqB,kBAAkB,EAAErqB,CAAC,EAAE,EAAE;QAC3CuqB,SAAS,CAACvqB,CAAC,CAAC,GAAGA,CAAC;MAClB;MACA,MAAMwqB,QAAQ,GAAG,IAAIvG,iBAAiB,CAACoG,kBAAkB,GAAG,CAAC,CAAC;MAC9D,IAAI,CAACb,YAAY,CACfe,SAAS,EACT,CAAC,EACDF,kBAAkB,EAClBG,QAAQ,EACR,CAAC,EACDT,GAAG,EACa,CAClB,CAAC;MAED,IAAI,CAACO,aAAa,EAAE;QAElB,IAAIG,OAAO,GAAG,CAAC;QACf,KAAK,IAAIzqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAE,EAAEzpB,CAAC,EAAE;UAC9B,MAAMyP,GAAG,GAAG2a,KAAK,CAACpqB,CAAC,CAAC,GAAG,CAAC;UACxB+L,IAAI,CAAC0e,OAAO,EAAE,CAAC,GAAGD,QAAQ,CAAC/a,GAAG,CAAC;UAC/B1D,IAAI,CAAC0e,OAAO,EAAE,CAAC,GAAGD,QAAQ,CAAC/a,GAAG,GAAG,CAAC,CAAC;UACnC1D,IAAI,CAAC0e,OAAO,EAAE,CAAC,GAAGD,QAAQ,CAAC/a,GAAG,GAAG,CAAC,CAAC;UACnCgb,OAAO,IAAI5C,OAAO;QACpB;MACF,CAAC,MAAM;QACLoB,MAAM,GAAG,IAAIxoB,UAAU,CAACgpB,KAAK,GAAG,CAAC,CAAC;QAClC,IAAIiB,MAAM,GAAG,CAAC;QACd,KAAK,IAAI1qB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAE,EAAEzpB,CAAC,EAAE;UAC9B,MAAMyP,GAAG,GAAG2a,KAAK,CAACpqB,CAAC,CAAC,GAAG,CAAC;UACxBipB,MAAM,CAACyB,MAAM,EAAE,CAAC,GAAGF,QAAQ,CAAC/a,GAAG,CAAC;UAChCwZ,MAAM,CAACyB,MAAM,EAAE,CAAC,GAAGF,QAAQ,CAAC/a,GAAG,GAAG,CAAC,CAAC;UACpCwZ,MAAM,CAACyB,MAAM,EAAE,CAAC,GAAGF,QAAQ,CAAC/a,GAAG,GAAG,CAAC,CAAC;QACtC;MACF;IACF,CAAC,MAAM,IAAI,CAAC6a,aAAa,EAAE;MAEzB,IAAI,CAACd,YAAY,CAACY,KAAK,EAAE,CAAC,EAAEjO,KAAK,GAAGgO,YAAY,EAAEpe,IAAI,EAAE,CAAC,EAAEge,GAAG,EAAElC,OAAO,CAAC;IAC1E,CAAC,MAAM;MACLoB,MAAM,GAAG,IAAIhF,iBAAiB,CAACwF,KAAK,GAAG,CAAC,CAAC;MACzC,IAAI,CAACD,YAAY,CAACY,KAAK,EAAE,CAAC,EAAEX,KAAK,EAAER,MAAM,EAAE,CAAC,EAAEc,GAAG,EAAkB,CAAC,CAAC;IACvE;IAEA,IAAId,MAAM,EAAE;MACV,IAAIqB,aAAa,EAAE;QACjB/C,cAAc,CACZ0B,MAAM,EACNld,IAAI,EACJke,aAAa,EACbC,cAAc,EACd/N,KAAK,EACLC,MAAM,EACNyL,OACF,CAAC;MACH,CAAC,MAAM;QACL,IAAI4C,OAAO,GAAG,CAAC;UACbC,MAAM,GAAG,CAAC;QACZ,KAAK,IAAI1qB,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAGyS,KAAK,GAAGgO,YAAY,EAAEnqB,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;UACtD+L,IAAI,CAAC0e,OAAO,EAAE,CAAC,GAAGxB,MAAM,CAACyB,MAAM,EAAE,CAAC;UAClC3e,IAAI,CAAC0e,OAAO,EAAE,CAAC,GAAGxB,MAAM,CAACyB,MAAM,EAAE,CAAC;UAClC3e,IAAI,CAAC0e,OAAO,EAAE,CAAC,GAAGxB,MAAM,CAACyB,MAAM,EAAE,CAAC;UAClCD,OAAO,IAAI5C,OAAO;QACpB;MACF;IACF;EACF;EAOA,IAAI8C,kBAAkBA,CAAA,EAAG;IACvB,OAAO7sB,MAAM,CAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,CAAC;EACjD;EAWA,OAAOgsB,eAAeA,CAACvgB,MAAM,EAAE2f,QAAQ,EAAE;IACvC,IAAIL,qBAAqB,CAACtf,MAAM,EAAE2f,QAAQ,GAAG,CAAC,CAAC,EAAE;MAC/C,OAAO,IAAI;IACb;IACA,KAAK,IAAIlpB,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAGH,MAAM,CAACzM,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,IAAI,CAAC,EAAE;MAClD,IAAIuJ,MAAM,CAACvJ,CAAC,CAAC,KAAK,CAAC,IAAIuJ,MAAM,CAACvJ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;QAC1C,OAAO,KAAK;MACd;IACF;IACA,OAAO,IAAI;EACb;AACF;AAUA,MAAM4qB,WAAW,SAAS5B,UAAU,CAAC;EACnCnqB,WAAWA,CAACqqB,QAAQ,EAAE2B,IAAI,EAAEC,MAAM,EAAE;IAClC,KAAK,CAAC,WAAW,EAAE5B,QAAQ,CAAC;IAC5B,IAAI,CAAC2B,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,MAAM,GAAG,IAAIv/B,YAAY,CAACq/B,IAAI,CAAC3B,QAAQ,CAAC;EAC/C;EAEAG,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAO3C,MAAMwB,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,IAAI,CAACD,MAAM,CAACtD,GAAG,EAAE4B,SAAS,EAAE2B,MAAM,EAAE,CAAC,CAAC;IACtC,IAAI,CAACF,IAAI,CAACxB,UAAU,CAAC0B,MAAM,EAAE,CAAC,EAAEhf,IAAI,EAAEwd,UAAU,CAAC;EACnD;EAEAC,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IAOnE,MAAMiD,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,MAAMD,IAAI,GAAG,IAAI,CAACA,IAAI;IACtB,MAAMG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAItB,IAAI,IAAI,CAAC,CAAC;IACnC,MAAMuB,YAAY,GAAGJ,IAAI,CAAC3B,QAAQ;IAClC,MAAMyB,kBAAkB,GAAGE,IAAI,CAACF,kBAAkB;IAClD,MAAMd,aAAa,GACjB,CAACgB,IAAI,CAAChB,aAAa,CAAC,CAAC,CAAC,IAAI,CAACc,kBAAkB,KAAK9C,OAAO,KAAK,CAAC;IACjE,IAAIpjB,GAAG,GAAGolB,aAAa,GAAGN,UAAU,GAAG,CAAC;IACxC,MAAM2B,OAAO,GAAGrB,aAAa,GACzB9d,IAAI,GACJ,IAAIkY,iBAAiB,CAACgH,YAAY,GAAGxB,KAAK,CAAC;IAC/C,MAAMP,QAAQ,GAAG,IAAI,CAACA,QAAQ;IAE9B,MAAMiC,MAAM,GAAG,IAAI3/B,YAAY,CAAC09B,QAAQ,CAAC;IACzC,MAAMkC,MAAM,GAAG,IAAI5/B,YAAY,CAACy/B,YAAY,CAAC;IAC7C,IAAIjrB,CAAC,EAAEuoB,CAAC;IAER,KAAKvoB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAEzpB,CAAC,EAAE,EAAE;MAC1B,KAAKuoB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGW,QAAQ,EAAEX,CAAC,EAAE,EAAE;QAC7B4C,MAAM,CAAC5C,CAAC,CAAC,GAAGf,GAAG,CAAC4B,SAAS,EAAE,CAAC,GAAG4B,KAAK;MACtC;MACAF,MAAM,CAACK,MAAM,EAAE,CAAC,EAAEC,MAAM,EAAE,CAAC,CAAC;MAC5B,IAAIT,kBAAkB,EAAE;QACtB,KAAKpC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0C,YAAY,EAAE1C,CAAC,EAAE,EAAE;UACjC2C,OAAO,CAACzmB,GAAG,EAAE,CAAC,GAAG2mB,MAAM,CAAC7C,CAAC,CAAC,GAAG,GAAG;QAClC;MACF,CAAC,MAAM;QACLsC,IAAI,CAACxB,UAAU,CAAC+B,MAAM,EAAE,CAAC,EAAEF,OAAO,EAAEzmB,GAAG,CAAC;QACxCA,GAAG,IAAIwmB,YAAY;MACrB;IACF;IAEA,IAAI,CAACpB,aAAa,EAAE;MAClBgB,IAAI,CAACrB,YAAY,CAAC0B,OAAO,EAAE,CAAC,EAAEzB,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAE,CAAC,EAAE1B,OAAO,CAAC;IACpE;EACF;EAEA8B,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC,OAAO,IAAI,CAACgD,IAAI,CAAClB,eAAe,CAC7BC,WAAW,GAAG,IAAI,CAACiB,IAAI,CAAC3B,QAAQ,GAAI,IAAI,CAACA,QAAQ,EAClDrB,OACF,CAAC;EACH;AACF;AAEA,MAAMwD,SAAS,SAASrC,UAAU,CAAC;EACjCnqB,WAAWA,CAACysB,MAAM,EAAE;IAClB,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC;IACtB,IAAI,CAACT,IAAI,GAAGS,MAAM;EACpB;EAEAxB,eAAeA,CAACvgB,MAAM,EAAEwgB,GAAG,EAAE;IAC3B/tB,WAAW,CAAC,2CAA2C,CAAC;EAC1D;AACF;AAKA,MAAMuvB,SAAS,SAASvC,UAAU,CAAC;EACjCnqB,WAAWA,CAACgsB,IAAI,EAAEW,OAAO,EAAEpW,MAAM,EAAE;IACjC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACnB,IAAI,CAACyV,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACW,OAAO,GAAGA,OAAO;IAEtB,MAAM1uB,MAAM,GAAG+tB,IAAI,CAAC3B,QAAQ,IAAIsC,OAAO,GAAG,CAAC,CAAC;IAC5C,IAAI,CAACpW,MAAM,GAAG,IAAI3U,UAAU,CAAC3D,MAAM,CAAC;IAEpC,IAAIsY,MAAM,YAAYpC,UAAU,EAAE;MAChC,MAAMvT,KAAK,GAAG2V,MAAM,CAAChC,QAAQ,CAACtW,MAAM,CAAC;MACrC,IAAI,CAACsY,MAAM,CAACrF,GAAG,CAACtQ,KAAK,CAAC;IACxB,CAAC,MAAM,IAAI,OAAO2V,MAAM,KAAK,QAAQ,EAAE;MACrC,KAAK,IAAIpV,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlD,MAAM,EAAE,EAAEkD,CAAC,EAAE;QAC/B,IAAI,CAACoV,MAAM,CAACpV,CAAC,CAAC,GAAGoV,MAAM,CAAC1U,UAAU,CAACV,CAAC,CAAC,GAAG,IAAI;MAC9C;IACF,CAAC,MAAM;MACL,MAAM,IAAIV,WAAW,CAAC,0CAA0C8V,MAAM,EAAE,CAAC;IAC3E;EACF;EAEAiU,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAO3C,MAAM;MAAEsB,IAAI;MAAEW,OAAO;MAAEpW;IAAO,CAAC,GAAG,IAAI;IACtC,MAAMX,KAAK,GACT6S,SAAS,CAACpnB,IAAI,CAACmb,KAAK,CAACmM,GAAG,CAAC4B,SAAS,CAAC,CAAC,EAAE,CAAC,EAAEoC,OAAO,CAAC,GAAGX,IAAI,CAAC3B,QAAQ;IACnE2B,IAAI,CAACrB,YAAY,CAACpU,MAAM,EAAEX,KAAK,EAAE,CAAC,EAAE1I,IAAI,EAAEwd,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7D;EAEAC,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IAOnE,MAAM;MAAEgD,IAAI;MAAEW,OAAO;MAAEpW;IAAO,CAAC,GAAG,IAAI;IACtC,MAAM;MAAE8T;IAAS,CAAC,GAAG2B,IAAI;IACzB,MAAMY,WAAW,GAAGZ,IAAI,CAAClB,eAAe,CAACT,QAAQ,EAAErB,OAAO,CAAC;IAE3D,KAAK,IAAI7nB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAE,EAAEzpB,CAAC,EAAE;MAC9B,MAAM0rB,SAAS,GACbpE,SAAS,CAACpnB,IAAI,CAACmb,KAAK,CAACmM,GAAG,CAAC4B,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEoC,OAAO,CAAC,GAAGtC,QAAQ;MAChE2B,IAAI,CAACrB,YAAY,CAACpU,MAAM,EAAEsW,SAAS,EAAE,CAAC,EAAE3f,IAAI,EAAEwd,UAAU,EAAE,CAAC,EAAE1B,OAAO,CAAC;MACrE0B,UAAU,IAAIkC,WAAW;IAC3B;EACF;EAEA9B,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC,OAAO,IAAI,CAACgD,IAAI,CAAClB,eAAe,CAACC,WAAW,GAAG,IAAI,CAACiB,IAAI,CAAC3B,QAAQ,EAAErB,OAAO,CAAC;EAC7E;EAEAiC,eAAeA,CAACvgB,MAAM,EAAEwgB,GAAG,EAAE;IAC3B,IAAIlB,qBAAqB,CAACtf,MAAM,EAAE,CAAC,CAAC,EAAE;MACpC,OAAO,IAAI;IACb;IACA,IAAI,CAAC9N,MAAM,CAACC,SAAS,CAACquB,GAAG,CAAC,IAAIA,GAAG,GAAG,CAAC,EAAE;MACrChuB,IAAI,CAAC,mCAAmC,CAAC;MACzC,OAAO,IAAI;IACb;IACA,OAAOwN,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAIA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAIwgB,GAAG,IAAI,CAAC;EACxD;AACF;AAKA,MAAM4B,YAAY,SAAS3C,UAAU,CAAC;EACpCnqB,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;EACxB;EAEAwqB,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAO3C,MAAM5lB,CAAC,GAAG6jB,GAAG,CAAC4B,SAAS,CAAC,GAAG,GAAG;IAC9Brd,IAAI,CAACwd,UAAU,CAAC,GAAGxd,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAGxd,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAG5lB,CAAC;EACpE;EAEA6lB,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IAOnE,MAAMmD,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC,IAAItB,IAAI,IAAI,CAAC,CAAC;IACrC,IAAInB,CAAC,GAAGa,SAAS;MACfwC,CAAC,GAAGrC,UAAU;IAChB,KAAK,IAAIvpB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAE,EAAEzpB,CAAC,EAAE;MAC9B,MAAM2D,CAAC,GAAGqnB,KAAK,GAAGxD,GAAG,CAACe,CAAC,EAAE,CAAC;MAC1Bxc,IAAI,CAAC6f,CAAC,EAAE,CAAC,GAAGjoB,CAAC;MACboI,IAAI,CAAC6f,CAAC,EAAE,CAAC,GAAGjoB,CAAC;MACboI,IAAI,CAAC6f,CAAC,EAAE,CAAC,GAAGjoB,CAAC;MACbioB,CAAC,IAAI/D,OAAO;IACd;EACF;EAEA8B,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC,OAAO+B,WAAW,IAAI,CAAC,GAAG/B,OAAO,CAAC;EACpC;AACF;AAKA,MAAMgE,WAAW,SAAS7C,UAAU,CAAC;EACnCnqB,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;EACvB;EAEAwqB,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAO3Cxd,IAAI,CAACwd,UAAU,CAAC,GAAG/B,GAAG,CAAC4B,SAAS,CAAC,GAAG,GAAG;IACvCrd,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAG/B,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG;IAC/Crd,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAG/B,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG;EACjD;EAEAI,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IAOnE,IAAI6B,IAAI,KAAK,CAAC,IAAI7B,OAAO,KAAK,CAAC,EAAE;MAC/B9b,IAAI,CAACgE,GAAG,CAACyX,GAAG,CAACnnB,QAAQ,CAAC+oB,SAAS,EAAEA,SAAS,GAAGK,KAAK,GAAG,CAAC,CAAC,EAAEF,UAAU,CAAC;MACpE;IACF;IACA,MAAMyB,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC,IAAItB,IAAI,IAAI,CAAC,CAAC;IACrC,IAAInB,CAAC,GAAGa,SAAS;MACfwC,CAAC,GAAGrC,UAAU;IAChB,KAAK,IAAIvpB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAE,EAAEzpB,CAAC,EAAE;MAC9B+L,IAAI,CAAC6f,CAAC,EAAE,CAAC,GAAGZ,KAAK,GAAGxD,GAAG,CAACe,CAAC,EAAE,CAAC;MAC5Bxc,IAAI,CAAC6f,CAAC,EAAE,CAAC,GAAGZ,KAAK,GAAGxD,GAAG,CAACe,CAAC,EAAE,CAAC;MAC5Bxc,IAAI,CAAC6f,CAAC,EAAE,CAAC,GAAGZ,KAAK,GAAGxD,GAAG,CAACe,CAAC,EAAE,CAAC;MAC5BqD,CAAC,IAAI/D,OAAO;IACd;EACF;EAEA8B,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC,OAAS+B,WAAW,IAAI,CAAC,GAAG/B,OAAO,CAAC,GAAI,CAAC,GAAI,CAAC;EAChD;EAEAgC,aAAaA,CAACH,IAAI,EAAE;IAClB,OAAOA,IAAI,KAAK,CAAC;EACnB;AACF;AAKA,MAAMoC,YAAY,SAAS9C,UAAU,CAAC;EACpCnqB,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;EACxB;EAEA8qB,eAAeA,CAACC,WAAW,EAAEmC,QAAQ,EAAE;IACrC,OAAOnC,WAAW,GAAG,CAAC;EACxB;EAEAC,aAAaA,CAACH,IAAI,EAAE;IAClB,OAAOA,IAAI,KAAK,CAAC;EACnB;EAEAM,OAAOA,CACLje,IAAI,EACJke,aAAa,EACbC,cAAc,EACd/N,KAAK,EACLC,MAAM,EACN+N,YAAY,EACZJ,GAAG,EACHK,KAAK,EACLvC,OAAO,EACP;IAOA,IAAIqC,cAAc,KAAK9N,MAAM,IAAI6N,aAAa,KAAK9N,KAAK,EAAE;MACxDqM,eAAe,CACb4B,KAAK,EACLre,IAAI,EACJke,aAAa,EACbC,cAAc,EACd/N,KAAK,EACLC,MAAM,EACNyL,OACF,CAAC;IACH,CAAC,MAAM;MACLe,aAAa,CAACwB,KAAK,EAAEre,IAAI,EAAE8b,OAAO,CAAC;IACrC;EACF;AACF;AAKA,MAAMmE,YAAY,SAAShD,UAAU,CAAC;EACpCnqB,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;EACxB;EAQA,CAACotB,KAAKC,CAAC1E,GAAG,EAAE4B,SAAS,EAAE+C,QAAQ,EAAEpgB,IAAI,EAAEwd,UAAU,EAAE;IACjD,MAAM5lB,CAAC,GAAG6jB,GAAG,CAAC4B,SAAS,CAAC,GAAG+C,QAAQ;IACnC,MAAM9nB,CAAC,GAAGmjB,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG+C,QAAQ;IACvC,MAAM1kB,CAAC,GAAG+f,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG+C,QAAQ;IACvC,MAAMC,CAAC,GAAG5E,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG+C,QAAQ;IAEvCpgB,IAAI,CAACwd,UAAU,CAAC,GACd,GAAG,GACH5lB,CAAC,IACE,CAAC,iBAAiB,GAAGA,CAAC,GACrB,iBAAiB,GAAGU,CAAC,GACrB,iBAAiB,GAAGoD,CAAC,GACrB,kBAAkB,GAAG2kB,CAAC,GACtB,CAAC,iBAAiB,CAAC,GACvB/nB,CAAC,IACE,kBAAkB,GAAGA,CAAC,GACrB,kBAAkB,GAAGoD,CAAC,GACtB,CAAC,kBAAkB,GAAG2kB,CAAC,GACvB,iBAAiB,CAAC,GACtB3kB,CAAC,IACE,CAAC,kBAAkB,GAAGA,CAAC,GAAG,kBAAkB,GAAG2kB,CAAC,GAAG,gBAAgB,CAAC,GACvEA,CAAC,IAAI,CAAC,iBAAiB,GAAGA,CAAC,GAAG,kBAAkB,CAAC;IAEnDrgB,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAClB,GAAG,GACH5lB,CAAC,IACE,iBAAiB,GAAGA,CAAC,GACpB,kBAAkB,GAAGU,CAAC,GACtB,iBAAiB,GAAGoD,CAAC,GACrB,kBAAkB,GAAG2kB,CAAC,GACtB,CAAC,gBAAgB,CAAC,GACtB/nB,CAAC,IACE,CAAC,kBAAkB,GAAGA,CAAC,GACtB,kBAAkB,GAAGoD,CAAC,GACtB,kBAAkB,GAAG2kB,CAAC,GACtB,iBAAiB,CAAC,GACtB3kB,CAAC,IAAI,iBAAiB,GAAGA,CAAC,GAAG,eAAe,GAAG2kB,CAAC,GAAG,iBAAiB,CAAC,GACrEA,CAAC,IAAI,CAAC,kBAAkB,GAAGA,CAAC,GAAG,kBAAkB,CAAC;IAEpDrgB,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAClB,GAAG,GACH5lB,CAAC,IACE,kBAAkB,GAAGA,CAAC,GACrB,iBAAiB,GAAGU,CAAC,GACrB,iBAAiB,GAAGoD,CAAC,GACrB,mBAAmB,GAAG2kB,CAAC,GACvB,CAAC,kBAAkB,CAAC,GACxB/nB,CAAC,IACE,iBAAiB,GAAGA,CAAC,GACpB,iBAAiB,GAAGoD,CAAC,GACrB,kBAAkB,GAAG2kB,CAAC,GACtB,kBAAkB,CAAC,GACvB3kB,CAAC,IACE,mBAAmB,GAAGA,CAAC,GACtB,kBAAkB,GAAG2kB,CAAC,GACtB,CAAC,kBAAkB,CAAC,GACxBA,CAAC,IAAI,CAAC,iBAAiB,GAAGA,CAAC,GAAG,kBAAkB,CAAC;EACrD;EAEA/C,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAO3C,IAAI,CAAC,CAAC0C,KAAK,CAACzE,GAAG,EAAE4B,SAAS,EAAE,CAAC,EAAErd,IAAI,EAAEwd,UAAU,CAAC;EAClD;EAEAC,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IAOnE,MAAMmD,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAItB,IAAI,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI1pB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAEzpB,CAAC,EAAE,EAAE;MAC9B,IAAI,CAAC,CAACisB,KAAK,CAACzE,GAAG,EAAE4B,SAAS,EAAE4B,KAAK,EAAEjf,IAAI,EAAEwd,UAAU,CAAC;MACpDH,SAAS,IAAI,CAAC;MACdG,UAAU,IAAI,CAAC,GAAG1B,OAAO;IAC3B;EACF;EAEA8B,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC,OAAS+B,WAAW,GAAG,CAAC,IAAK,CAAC,GAAG/B,OAAO,CAAC,GAAI,CAAC;EAChD;AACF;AAOA,MAAMwE,SAAS,SAASrD,UAAU,CAAC;EACjCnqB,WAAWA,CAACytB,UAAU,EAAEC,UAAU,EAAEC,KAAK,EAAE;IACzC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAEnB,IAAI,CAACF,UAAU,EAAE;MACf,MAAM,IAAIhtB,WAAW,CACnB,uDACF,CAAC;IACH;IAEA,CAAC,IAAI,CAACmtB,EAAE,EAAE,IAAI,CAACC,EAAE,EAAE,IAAI,CAACC,EAAE,CAAC,GAAGL,UAAU;IACxC,CAAC,IAAI,CAACM,EAAE,EAAE,IAAI,CAACC,EAAE,EAAE,IAAI,CAACC,EAAE,CAAC,GAAGP,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrD,IAAI,CAACQ,CAAC,GAAGP,KAAK,IAAI,CAAC;IAGnB,IAAI,IAAI,CAACC,EAAE,GAAG,CAAC,IAAI,IAAI,CAACE,EAAE,GAAG,CAAC,IAAI,IAAI,CAACD,EAAE,KAAK,CAAC,EAAE;MAC/C,MAAM,IAAIptB,WAAW,CACnB,qCAAqC,IAAI,CAACX,IAAI,yBAChD,CAAC;IACH;IAEA,IAAI,IAAI,CAACiuB,EAAE,GAAG,CAAC,IAAI,IAAI,CAACC,EAAE,GAAG,CAAC,IAAI,IAAI,CAACC,EAAE,GAAG,CAAC,EAAE;MAC7ClxB,IAAI,CAAC,0BAA0B,IAAI,CAAC+C,IAAI,4BAA4B,CAAC;MACrE,IAAI,CAACiuB,EAAE,GAAG,IAAI,CAACC,EAAE,GAAG,IAAI,CAACC,EAAE,GAAG,CAAC;IACjC;IAEA,IAAI,IAAI,CAACF,EAAE,KAAK,CAAC,IAAI,IAAI,CAACC,EAAE,KAAK,CAAC,IAAI,IAAI,CAACC,EAAE,KAAK,CAAC,EAAE;MACnD/wB,IAAI,CACF,GAAG,IAAI,CAAC4C,IAAI,qBAAqB,IAAI,CAACiuB,EAAE,SAAS,IAAI,CAACC,EAAE,IAAI,GAC1D,OAAO,IAAI,CAACC,EAAE,sCAClB,CAAC;IACH;IAEA,IAAI,IAAI,CAACC,CAAC,GAAG,CAAC,EAAE;MACdnxB,IAAI,CACF,kBAAkB,IAAI,CAACmxB,CAAC,QAAQ,IAAI,CAACpuB,IAAI,4BAC3C,CAAC;MACD,IAAI,CAACouB,CAAC,GAAG,CAAC;IACZ;EACF;EAEA,CAACd,KAAKC,CAAC1E,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAEyB,KAAK,EAAE;IAG9C,MAAMgC,CAAC,GAAGxF,GAAG,CAAC4B,SAAS,CAAC,GAAG4B,KAAK;IAChC,MAAMiC,EAAE,GAAGD,CAAC,IAAI,IAAI,CAACD,CAAC;IAItB,MAAMG,CAAC,GAAG,IAAI,CAACR,EAAE,GAAGO,EAAE;IAGtB,MAAME,GAAG,GAAGjtB,IAAI,CAACqG,GAAG,CAAC,KAAK,GAAG2mB,CAAC,IAAI,kBAAkB,GAAG,IAAI,EAAE,CAAC,CAAC;IAC/DnhB,IAAI,CAACwd,UAAU,CAAC,GAAG4D,GAAG;IACtBphB,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAG4D,GAAG;IAC1BphB,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAG4D,GAAG;EAC5B;EAEA9D,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAO3C,IAAI,CAAC,CAAC0C,KAAK,CAACzE,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE,CAAC,CAAC;EAClD;EAEAC,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IAOnE,MAAMmD,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAItB,IAAI,IAAI,CAAC,CAAC;IAEnC,KAAK,IAAI1pB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAE,EAAEzpB,CAAC,EAAE;MAC9B,IAAI,CAAC,CAACisB,KAAK,CAACzE,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAEyB,KAAK,CAAC;MACpD5B,SAAS,IAAI,CAAC;MACdG,UAAU,IAAI,CAAC,GAAG1B,OAAO;IAC3B;EACF;EAEA8B,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC,OAAO+B,WAAW,IAAI,CAAC,GAAG/B,OAAO,CAAC;EACpC;AACF;AAOA,MAAMuF,QAAQ,SAASpE,UAAU,CAAC;EAIhC,OAAO,CAACqE,qBAAqB,GAAG,IAAI7hC,YAAY,CAAC,CAC/C,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EACvB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EACvB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;EAG3B,OAAO,CAAC8hC,6BAA6B,GAAG,IAAI9hC,YAAY,CAAC,CACvD,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,EAChC,SAAS,EAAE,SAAS,EAAE,SAAS,EAC/B,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;EAIpC,OAAO,CAAC+hC,0BAA0B,GAAG,IAAI/hC,YAAY,CAAC,CACpD,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,EACjC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAChC,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;EAEpC,OAAO,CAACgiC,sBAAsB,GAAG,IAAIhiC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;EAE5D,OAAO,CAACiiC,mBAAmB,GAAG,IAAIjiC,YAAY,CAAC,CAAC,CAAC;EAEjD,OAAO,CAACkiC,kBAAkB,GAAG,IAAIliC,YAAY,CAAC,CAAC,CAAC;EAEhD,OAAO,CAACmiC,kBAAkB,GAAG,IAAIniC,YAAY,CAAC,CAAC,CAAC;EAEhD,OAAO,CAACoiC,iBAAiB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG;EAEvD/uB,WAAWA,CAACytB,UAAU,EAAEC,UAAU,EAAEC,KAAK,EAAE9lB,MAAM,EAAE;IACjD,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAElB,IAAI,CAAC4lB,UAAU,EAAE;MACf,MAAM,IAAIhtB,WAAW,CACnB,sDACF,CAAC;IACH;IAEA,MAAM,CAACmtB,EAAE,EAAEC,EAAE,EAAEC,EAAE,CAAC,GAAI,IAAI,CAACL,UAAU,GAAGA,UAAW;IACnD,MAAM,CAACM,EAAE,EAAEC,EAAE,EAAEC,EAAE,CAAC,GAAI,IAAI,CAACP,UAAU,GAAGA,UAAU,IAAI,IAAI/gC,YAAY,CAAC,CAAC,CAAE;IAE1E,CAAC,IAAI,CAACqiC,EAAE,EAAE,IAAI,CAACC,EAAE,EAAE,IAAI,CAACC,EAAE,CAAC,GAAGvB,KAAK,IAAI,IAAIhhC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,CACE,IAAI,CAACwiC,GAAG,EACR,IAAI,CAACC,GAAG,EACR,IAAI,CAACC,GAAG,EACR,IAAI,CAACC,GAAG,EACR,IAAI,CAACC,GAAG,EACR,IAAI,CAACC,GAAG,EACR,IAAI,CAACC,GAAG,EACR,IAAI,CAACC,GAAG,EACR,IAAI,CAACC,GAAG,CACT,GAAG9nB,MAAM,IAAI,IAAIlb,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAG3D,IAAIihC,EAAE,GAAG,CAAC,IAAIE,EAAE,GAAG,CAAC,IAAID,EAAE,KAAK,CAAC,EAAE;MAChC,MAAM,IAAIptB,WAAW,CACnB,qCAAqC,IAAI,CAACX,IAAI,yBAChD,CAAC;IACH;IAEA,IAAIiuB,EAAE,GAAG,CAAC,IAAIC,EAAE,GAAG,CAAC,IAAIC,EAAE,GAAG,CAAC,EAAE;MAC9BlxB,IAAI,CACF,0BAA0B,IAAI,CAAC+C,IAAI,KAAKiuB,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAK,GAC3D,0BACJ,CAAC;MACD,IAAI,CAACP,UAAU,GAAG,IAAI/gC,YAAY,CAAC,CAAC,CAAC;IACvC;IAEA,IAAI,IAAI,CAACqiC,EAAE,GAAG,CAAC,IAAI,IAAI,CAACC,EAAE,GAAG,CAAC,IAAI,IAAI,CAACC,EAAE,GAAG,CAAC,EAAE;MAC7CnyB,IAAI,CACF,kBAAkB,IAAI,CAACiyB,EAAE,KAAK,IAAI,CAACC,EAAE,KAAK,IAAI,CAACC,EAAE,QAAQ,GACvD,GAAG,IAAI,CAACpvB,IAAI,4BAChB,CAAC;MACD,IAAI,CAACkvB,EAAE,GAAG,IAAI,CAACC,EAAE,GAAG,IAAI,CAACC,EAAE,GAAG,CAAC;IACjC;EACF;EAEA,CAACU,aAAaC,CAAChrB,CAAC,EAAEH,CAAC,EAAEiT,MAAM,EAAE;IAC3BA,MAAM,CAAC,CAAC,CAAC,GAAG9S,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;IACnDiT,MAAM,CAAC,CAAC,CAAC,GAAG9S,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;IACnDiT,MAAM,CAAC,CAAC,CAAC,GAAG9S,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC,GAAGG,CAAC,CAAC,CAAC,CAAC,GAAGH,CAAC,CAAC,CAAC,CAAC;EACrD;EAEA,CAACorB,MAAMC,CAACC,gBAAgB,EAAEC,GAAG,EAAEtY,MAAM,EAAE;IACrCA,MAAM,CAAC,CAAC,CAAC,GAAIsY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAID,gBAAgB,CAAC,CAAC,CAAC;IAC9CrY,MAAM,CAAC,CAAC,CAAC,GAAIsY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAID,gBAAgB,CAAC,CAAC,CAAC;IAC9CrY,MAAM,CAAC,CAAC,CAAC,GAAIsY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAID,gBAAgB,CAAC,CAAC,CAAC;EAChD;EAEA,CAACE,KAAKC,CAACH,gBAAgB,EAAEC,GAAG,EAAEtY,MAAM,EAAE;IACpC,MAAMyY,IAAI,GAAG,OAAO;IACpB,MAAMC,IAAI,GAAG,CAAC;IACd,MAAMC,IAAI,GAAG,OAAO;IAEpB3Y,MAAM,CAAC,CAAC,CAAC,GAAIsY,GAAG,CAAC,CAAC,CAAC,GAAGG,IAAI,GAAIJ,gBAAgB,CAAC,CAAC,CAAC;IACjDrY,MAAM,CAAC,CAAC,CAAC,GAAIsY,GAAG,CAAC,CAAC,CAAC,GAAGI,IAAI,GAAIL,gBAAgB,CAAC,CAAC,CAAC;IACjDrY,MAAM,CAAC,CAAC,CAAC,GAAIsY,GAAG,CAAC,CAAC,CAAC,GAAGK,IAAI,GAAIN,gBAAgB,CAAC,CAAC,CAAC;EACnD;EAEA,CAACO,oBAAoBC,CAACC,KAAK,EAAE;IAE3B,IAAIA,KAAK,IAAI,SAAS,EAAE;MACtB,OAAOhI,SAAS,CAAC,KAAK,GAAGgI,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC;IAOA,IAAIA,KAAK,IAAI,UAAU,EAAE;MACvB,OAAO,CAAC;IACV;IACA,OAAOhI,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,IAAIgI,KAAK,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;EAClE;EAEA,CAACC,OAAOC,CAACtC,CAAC,EAAE;IACV,IAAIA,CAAC,GAAG,CAAC,EAAE;MACT,OAAO,CAAC,IAAI,CAAC,CAACqC,OAAO,CAAC,CAACrC,CAAC,CAAC;IAC3B;IACA,IAAIA,CAAC,GAAG,GAAG,EAAE;MACX,OAAO,CAAC,CAACA,CAAC,GAAG,EAAE,IAAI,GAAG,KAAK,CAAC;IAC9B;IACA,OAAOA,CAAC,GAAGE,QAAQ,CAAC,CAACQ,iBAAiB;EACxC;EAEA,CAAC6B,oBAAoBC,CAACC,gBAAgB,EAAEC,QAAQ,EAAEpZ,MAAM,EAAE;IAGxD,IACEmZ,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IACzBA,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IACzBA,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,EACzB;MACAnZ,MAAM,CAAC,CAAC,CAAC,GAAGoZ,QAAQ,CAAC,CAAC,CAAC;MACvBpZ,MAAM,CAAC,CAAC,CAAC,GAAGoZ,QAAQ,CAAC,CAAC,CAAC;MACvBpZ,MAAM,CAAC,CAAC,CAAC,GAAGoZ,QAAQ,CAAC,CAAC,CAAC;MACvB;IACF;IAMA,MAAMC,WAAW,GAAG,IAAI,CAAC,CAACN,OAAO,CAAC,CAAC,CAAC;IAEpC,MAAMO,KAAK,GAAGD,WAAW;IACzB,MAAME,KAAK,GAAG,IAAI,CAAC,CAACR,OAAO,CAACI,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEhD,MAAMK,KAAK,GAAGH,WAAW;IACzB,MAAMI,KAAK,GAAG,IAAI,CAAC,CAACV,OAAO,CAACI,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEhD,MAAMO,KAAK,GAAGL,WAAW;IACzB,MAAMM,KAAK,GAAG,IAAI,CAAC,CAACZ,OAAO,CAACI,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAEhD,MAAMS,OAAO,GAAG,CAAC,CAAC,GAAGN,KAAK,KAAK,CAAC,GAAGC,KAAK,CAAC;IACzC,MAAMM,QAAQ,GAAG,CAAC,GAAGD,OAAO;IAE5B,MAAME,OAAO,GAAG,CAAC,CAAC,GAAGN,KAAK,KAAK,CAAC,GAAGC,KAAK,CAAC;IACzC,MAAMM,QAAQ,GAAG,CAAC,GAAGD,OAAO;IAE5B,MAAME,OAAO,GAAG,CAAC,CAAC,GAAGN,KAAK,KAAK,CAAC,GAAGC,KAAK,CAAC;IACzC,MAAMM,QAAQ,GAAG,CAAC,GAAGD,OAAO;IAE5Bha,MAAM,CAAC,CAAC,CAAC,GAAGoZ,QAAQ,CAAC,CAAC,CAAC,GAAGQ,OAAO,GAAGC,QAAQ;IAC5C7Z,MAAM,CAAC,CAAC,CAAC,GAAGoZ,QAAQ,CAAC,CAAC,CAAC,GAAGU,OAAO,GAAGC,QAAQ;IAC5C/Z,MAAM,CAAC,CAAC,CAAC,GAAGoZ,QAAQ,CAAC,CAAC,CAAC,GAAGY,OAAO,GAAGC,QAAQ;EAC9C;EAEA,CAACC,yBAAyBC,CAAC9B,gBAAgB,EAAE+B,MAAM,EAAEpa,MAAM,EAAE;IAG3D,IAAIqY,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAIA,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;MAC1DrY,MAAM,CAAC,CAAC,CAAC,GAAGoa,MAAM,CAAC,CAAC,CAAC;MACrBpa,MAAM,CAAC,CAAC,CAAC,GAAGoa,MAAM,CAAC,CAAC,CAAC;MACrBpa,MAAM,CAAC,CAAC,CAAC,GAAGoa,MAAM,CAAC,CAAC,CAAC;MACrB;IACF;IAEA,MAAM9B,GAAG,GAAGtY,MAAM;IAClB,IAAI,CAAC,CAACiY,aAAa,CAACrB,QAAQ,CAAC,CAACC,qBAAqB,EAAEuD,MAAM,EAAE9B,GAAG,CAAC;IAEjE,MAAM+B,QAAQ,GAAGzD,QAAQ,CAAC,CAACK,mBAAmB;IAC9C,IAAI,CAAC,CAACkB,MAAM,CAACE,gBAAgB,EAAEC,GAAG,EAAE+B,QAAQ,CAAC;IAE7C,IAAI,CAAC,CAACpC,aAAa,CACjBrB,QAAQ,CAAC,CAACE,6BAA6B,EACvCuD,QAAQ,EACRra,MACF,CAAC;EACH;EAEA,CAACsa,wBAAwBC,CAAClC,gBAAgB,EAAE+B,MAAM,EAAEpa,MAAM,EAAE;IAC1D,MAAMsY,GAAG,GAAGtY,MAAM;IAClB,IAAI,CAAC,CAACiY,aAAa,CAACrB,QAAQ,CAAC,CAACC,qBAAqB,EAAEuD,MAAM,EAAE9B,GAAG,CAAC;IAEjE,MAAMkC,OAAO,GAAG5D,QAAQ,CAAC,CAACK,mBAAmB;IAC7C,IAAI,CAAC,CAACsB,KAAK,CAACF,gBAAgB,EAAEC,GAAG,EAAEkC,OAAO,CAAC;IAE3C,IAAI,CAAC,CAACvC,aAAa,CACjBrB,QAAQ,CAAC,CAACE,6BAA6B,EACvC0D,OAAO,EACPxa,MACF,CAAC;EACH;EAEA,CAACyV,KAAKC,CAAC1E,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAEyB,KAAK,EAAE;IAG9C,MAAMgC,CAAC,GAAG1F,SAAS,CAACE,GAAG,CAAC4B,SAAS,CAAC,GAAG4B,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACjD,MAAMiG,CAAC,GAAG3J,SAAS,CAACE,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG4B,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACrD,MAAMx2B,CAAC,GAAG8yB,SAAS,CAACE,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG4B,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAKrD,MAAMkG,GAAG,GAAGlE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAGA,CAAC,IAAI,IAAI,CAACa,EAAE;IACtC,MAAMsD,GAAG,GAAGF,CAAC,KAAK,CAAC,GAAG,CAAC,GAAGA,CAAC,IAAI,IAAI,CAACnD,EAAE;IACtC,MAAMsD,GAAG,GAAG58B,CAAC,KAAK,CAAC,GAAG,CAAC,GAAGA,CAAC,IAAI,IAAI,CAACu5B,EAAE;IAItC,MAAMn6B,CAAC,GAAG,IAAI,CAACo6B,GAAG,GAAGkD,GAAG,GAAG,IAAI,CAAC/C,GAAG,GAAGgD,GAAG,GAAG,IAAI,CAAC7C,GAAG,GAAG8C,GAAG;IAC1D,MAAMC,CAAC,GAAG,IAAI,CAACpD,GAAG,GAAGiD,GAAG,GAAG,IAAI,CAAC9C,GAAG,GAAG+C,GAAG,GAAG,IAAI,CAAC5C,GAAG,GAAG6C,GAAG;IAC1D,MAAME,CAAC,GAAG,IAAI,CAACpD,GAAG,GAAGgD,GAAG,GAAG,IAAI,CAAC7C,GAAG,GAAG8C,GAAG,GAAG,IAAI,CAAC3C,GAAG,GAAG4C,GAAG;IAK1D,MAAMG,GAAG,GAAGnE,QAAQ,CAAC,CAACM,kBAAkB;IACxC6D,GAAG,CAAC,CAAC,CAAC,GAAG39B,CAAC;IACV29B,GAAG,CAAC,CAAC,CAAC,GAAGF,CAAC;IACVE,GAAG,CAAC,CAAC,CAAC,GAAGD,CAAC;IACV,MAAM1B,QAAQ,GAAGxC,QAAQ,CAAC,CAACO,kBAAkB;IAE7C,IAAI,CAAC,CAAC+C,yBAAyB,CAAC,IAAI,CAACpE,UAAU,EAAEiF,GAAG,EAAE3B,QAAQ,CAAC;IAE/D,MAAM4B,SAAS,GAAGpE,QAAQ,CAAC,CAACM,kBAAkB;IAC9C,IAAI,CAAC,CAAC+B,oBAAoB,CAAC,IAAI,CAAClD,UAAU,EAAEqD,QAAQ,EAAE4B,SAAS,CAAC;IAEhE,MAAMC,OAAO,GAAGrE,QAAQ,CAAC,CAACO,kBAAkB;IAC5C,IAAI,CAAC,CAACmD,wBAAwB,CAC5B1D,QAAQ,CAAC,CAACI,sBAAsB,EAChCgE,SAAS,EACTC,OACF,CAAC;IAED,MAAMC,IAAI,GAAGtE,QAAQ,CAAC,CAACM,kBAAkB;IACzC,IAAI,CAAC,CAACe,aAAa,CAACrB,QAAQ,CAAC,CAACG,0BAA0B,EAAEkE,OAAO,EAAEC,IAAI,CAAC;IAGxE3lB,IAAI,CAACwd,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC6F,oBAAoB,CAACsC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;IAC5D3lB,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC6F,oBAAoB,CAACsC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;IAChE3lB,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC6F,oBAAoB,CAACsC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;EAClE;EAEArI,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAO3C,IAAI,CAAC,CAAC0C,KAAK,CAACzE,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE,CAAC,CAAC;EAClD;EAEAC,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IAOnE,MAAMmD,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAItB,IAAI,IAAI,CAAC,CAAC;IAEnC,KAAK,IAAI1pB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAE,EAAEzpB,CAAC,EAAE;MAC9B,IAAI,CAAC,CAACisB,KAAK,CAACzE,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAEyB,KAAK,CAAC;MACpD5B,SAAS,IAAI,CAAC;MACdG,UAAU,IAAI,CAAC,GAAG1B,OAAO;IAC3B;EACF;EAEA8B,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC,OAAS+B,WAAW,IAAI,CAAC,GAAG/B,OAAO,CAAC,GAAI,CAAC,GAAI,CAAC;EAChD;AACF;AAOA,MAAM8J,KAAK,SAAS3I,UAAU,CAAC;EAC7BnqB,WAAWA,CAACytB,UAAU,EAAEC,UAAU,EAAEqF,KAAK,EAAE;IACzC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAEf,IAAI,CAACtF,UAAU,EAAE;MACf,MAAM,IAAIhtB,WAAW,CACnB,mDACF,CAAC;IACH;IAEA,CAAC,IAAI,CAACmtB,EAAE,EAAE,IAAI,CAACC,EAAE,EAAE,IAAI,CAACC,EAAE,CAAC,GAAGL,UAAU;IACxC,CAAC,IAAI,CAACuF,IAAI,EAAE,IAAI,CAACC,IAAI,EAAE,IAAI,CAACC,IAAI,EAAE,IAAI,CAACC,IAAI,CAAC,GAAGJ,KAAK,IAAI,CACtD,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CACrB;IAID,CAAC,IAAI,CAAChF,EAAE,EAAE,IAAI,CAACC,EAAE,EAAE,IAAI,CAACC,EAAE,CAAC,GAAGP,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAGrD,IAAI,IAAI,CAACE,EAAE,GAAG,CAAC,IAAI,IAAI,CAACE,EAAE,GAAG,CAAC,IAAI,IAAI,CAACD,EAAE,KAAK,CAAC,EAAE;MAC/C,MAAM,IAAIptB,WAAW,CACnB,sDACF,CAAC;IACH;IAEA,IAAI,IAAI,CAACstB,EAAE,GAAG,CAAC,IAAI,IAAI,CAACC,EAAE,GAAG,CAAC,IAAI,IAAI,CAACC,EAAE,GAAG,CAAC,EAAE;MAC7ClxB,IAAI,CAAC,6CAA6C,CAAC;MACnD,IAAI,CAACgxB,EAAE,GAAG,IAAI,CAACC,EAAE,GAAG,IAAI,CAACC,EAAE,GAAG,CAAC;IACjC;IAEA,IAAI,IAAI,CAAC+E,IAAI,GAAG,IAAI,CAACC,IAAI,IAAI,IAAI,CAACC,IAAI,GAAG,IAAI,CAACC,IAAI,EAAE;MAClDp2B,IAAI,CAAC,yCAAyC,CAAC;MAC/C,IAAI,CAACi2B,IAAI,GAAG,CAAC,GAAG;MAChB,IAAI,CAACC,IAAI,GAAG,GAAG;MACf,IAAI,CAACC,IAAI,GAAG,CAAC,GAAG;MAChB,IAAI,CAACC,IAAI,GAAG,GAAG;IACjB;EACF;EAGA,CAACC,IAAIC,CAAC1qB,CAAC,EAAE;IACP,OAAOA,CAAC,IAAI,CAAC,GAAG,EAAE,GAAGA,CAAC,IAAI,CAAC,GAAI,GAAG,GAAG,GAAG,IAAKA,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;EAC1D;EAEA,CAAC+B,MAAM4oB,CAACl0B,KAAK,EAAEm0B,KAAK,EAAEC,IAAI,EAAEC,KAAK,EAAE;IACjC,OAAOD,IAAI,GAAIp0B,KAAK,IAAIq0B,KAAK,GAAGD,IAAI,CAAC,GAAID,KAAK;EAChD;EAGA,CAACnG,KAAKC,CAAC1E,GAAG,EAAE4B,SAAS,EAAEmJ,MAAM,EAAExmB,IAAI,EAAEwd,UAAU,EAAE;IAO/C,IAAIiJ,EAAE,GAAGhL,GAAG,CAAC4B,SAAS,CAAC;IACvB,IAAIqJ,EAAE,GAAGjL,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC;IAC3B,IAAIsJ,EAAE,GAAGlL,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC;IAC3B,IAAImJ,MAAM,KAAK,KAAK,EAAE;MACpBC,EAAE,GAAG,IAAI,CAAC,CAACjpB,MAAM,CAACipB,EAAE,EAAED,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC;MACrCE,EAAE,GAAG,IAAI,CAAC,CAAClpB,MAAM,CAACkpB,EAAE,EAAEF,MAAM,EAAE,IAAI,CAACV,IAAI,EAAE,IAAI,CAACC,IAAI,CAAC;MACnDY,EAAE,GAAG,IAAI,CAAC,CAACnpB,MAAM,CAACmpB,EAAE,EAAEH,MAAM,EAAE,IAAI,CAACR,IAAI,EAAE,IAAI,CAACC,IAAI,CAAC;IACrD;IAGA,IAAIS,EAAE,GAAG,IAAI,CAACX,IAAI,EAAE;MAClBW,EAAE,GAAG,IAAI,CAACX,IAAI;IAChB,CAAC,MAAM,IAAIW,EAAE,GAAG,IAAI,CAACZ,IAAI,EAAE;MACzBY,EAAE,GAAG,IAAI,CAACZ,IAAI;IAChB;IACA,IAAIa,EAAE,GAAG,IAAI,CAACV,IAAI,EAAE;MAClBU,EAAE,GAAG,IAAI,CAACV,IAAI;IAChB,CAAC,MAAM,IAAIU,EAAE,GAAG,IAAI,CAACX,IAAI,EAAE;MACzBW,EAAE,GAAG,IAAI,CAACX,IAAI;IAChB;IAGA,MAAMY,CAAC,GAAG,CAACH,EAAE,GAAG,EAAE,IAAI,GAAG;IACzB,MAAMtF,CAAC,GAAGyF,CAAC,GAAGF,EAAE,GAAG,GAAG;IACtB,MAAMG,CAAC,GAAGD,CAAC,GAAGD,EAAE,GAAG,GAAG;IAEtB,MAAM9+B,CAAC,GAAG,IAAI,CAAC64B,EAAE,GAAG,IAAI,CAAC,CAACwF,IAAI,CAAC/E,CAAC,CAAC;IACjC,MAAMmE,CAAC,GAAG,IAAI,CAAC3E,EAAE,GAAG,IAAI,CAAC,CAACuF,IAAI,CAACU,CAAC,CAAC;IACjC,MAAMrB,CAAC,GAAG,IAAI,CAAC3E,EAAE,GAAG,IAAI,CAAC,CAACsF,IAAI,CAACW,CAAC,CAAC;IAEjC,IAAIvvB,CAAC,EAAEC,CAAC,EAAEC,CAAC;IAGX,IAAI,IAAI,CAACopB,EAAE,GAAG,CAAC,EAAE;MAEftpB,CAAC,GAAGzP,CAAC,GAAG,MAAM,GAAGy9B,CAAC,GAAG,CAAC,KAAK,GAAGC,CAAC,GAAG,CAAC,MAAM;MACzChuB,CAAC,GAAG1P,CAAC,GAAG,CAAC,MAAM,GAAGy9B,CAAC,GAAG,KAAK,GAAGC,CAAC,GAAG,MAAM;MACxC/tB,CAAC,GAAG3P,CAAC,GAAG,KAAK,GAAGy9B,CAAC,GAAG,CAAC,KAAK,GAAGC,CAAC,GAAG,MAAM;IACzC,CAAC,MAAM;MAELjuB,CAAC,GAAGzP,CAAC,GAAG,MAAM,GAAGy9B,CAAC,GAAG,CAAC,MAAM,GAAGC,CAAC,GAAG,CAAC,MAAM;MAC1ChuB,CAAC,GAAG1P,CAAC,GAAG,CAAC,MAAM,GAAGy9B,CAAC,GAAG,MAAM,GAAGC,CAAC,GAAG,MAAM;MACzC/tB,CAAC,GAAG3P,CAAC,GAAG,MAAM,GAAGy9B,CAAC,GAAG,CAAC,KAAK,GAAGC,CAAC,GAAG,KAAK;IACzC;IAEAvlB,IAAI,CAACwd,UAAU,CAAC,GAAGrpB,IAAI,CAAC2G,IAAI,CAACxD,CAAC,CAAC,GAAG,GAAG;IACrC0I,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAGrpB,IAAI,CAAC2G,IAAI,CAACvD,CAAC,CAAC,GAAG,GAAG;IACzCyI,IAAI,CAACwd,UAAU,GAAG,CAAC,CAAC,GAAGrpB,IAAI,CAAC2G,IAAI,CAACtD,CAAC,CAAC,GAAG,GAAG;EAC3C;EAEA8lB,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAO3C,IAAI,CAAC,CAAC0C,KAAK,CAACzE,GAAG,EAAE4B,SAAS,EAAE,KAAK,EAAErd,IAAI,EAAEwd,UAAU,CAAC;EACtD;EAEAC,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IAOnE,MAAM0K,MAAM,GAAG,CAAC,CAAC,IAAI7I,IAAI,IAAI,CAAC;IAC9B,KAAK,IAAI1pB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGypB,KAAK,EAAEzpB,CAAC,EAAE,EAAE;MAC9B,IAAI,CAAC,CAACisB,KAAK,CAACzE,GAAG,EAAE4B,SAAS,EAAEmJ,MAAM,EAAExmB,IAAI,EAAEwd,UAAU,CAAC;MACrDH,SAAS,IAAI,CAAC;MACdG,UAAU,IAAI,CAAC,GAAG1B,OAAO;IAC3B;EACF;EAEA8B,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC,OAAS+B,WAAW,IAAI,CAAC,GAAG/B,OAAO,CAAC,GAAI,CAAC,GAAI,CAAC;EAChD;EAEAiC,eAAeA,CAACvgB,MAAM,EAAEwgB,GAAG,EAAE;IAG3B,OAAO,IAAI;EACb;EAEA,IAAIY,kBAAkBA,CAAA,EAAG;IACvB,OAAO7sB,MAAM,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC;EAClD;AACF;;;;;;;;;;;ACvwCA,MAAM+0B,IAAI,CAAC;EACT,OAAO,CAACC,WAAW,GAAG,IAAI;EAE1B,OAAOC,OAAO,GAAG,IAAI;EAErB,OAAOC,aAAa,GAAG,KAAK;EAE5B,OAAOC,WAAW,GAAG,IAAI;EAEzB,OAAOC,WAAW,GAAG,CAAC;EAEtB,OAAOC,WAAW,GAAG,CAAC;EAEtB,OAAOC,SAAS,GAAG,EAAE;EAErB,OAAOC,aAAa,GAAG,IAAI;EAE3B,WAAWC,YAAYA,CAAA,EAAG;IACxB,MAAM7O,KAAK,GAAG,IAAI,CAAC,CAACqO,WAAW;IAC/B,IAAIrO,KAAK,EAAE7O,UAAU,EAAE;MACrB,OAAO6O,KAAK;IACd;IACA,OAAQ,IAAI,CAAC,CAACqO,WAAW,GAAG,IAAIryB,UAAU,CAAC,IAAI,CAACsyB,OAAO,CAAC9xB,MAAM,CAAC;EACjE;AACF;AAEA,SAASsyB,WAAWA,CAAC1M,GAAG,EAAEvP,GAAG,EAAE;EAI7B,MAAM;IAAE0b,aAAa;IAAEC,WAAW;IAAEC,WAAW;IAAEC,WAAW;IAAEG;EAAa,CAAC,GAC1ET,IAAI;EACN,IAAIvb,GAAG,KAAK6b,WAAW,EAAE;IACvBF,WAAW,CAACljB,GAAG,CAACujB,YAAY,CAACjzB,QAAQ,CAACwmB,GAAG,EAAEA,GAAG,GAAGvP,GAAG,CAAC,EAAE4b,WAAW,CAAC;IACnE;EACF;EACA,IAAIF,aAAa,EAAE;IACjB,KAAK,IAAIhzB,CAAC,GAAG6mB,GAAG,EAAEnd,EAAE,GAAGmd,GAAG,GAAGvP,GAAG,EAAEiR,CAAC,GAAG2K,WAAW,EAAElzB,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,IAAI,CAAC,EAAEuoB,CAAC,IAAI,CAAC,EAAE;MACzE0K,WAAW,CAAC1K,CAAC,CAAC,GAAG+K,YAAY,CAACtzB,CAAC,CAAC;MAChCizB,WAAW,CAAC1K,CAAC,GAAG,CAAC,CAAC,GAAG+K,YAAY,CAACtzB,CAAC,GAAG,CAAC,CAAC;MACxCizB,WAAW,CAAC1K,CAAC,GAAG,CAAC,CAAC,GAAG+K,YAAY,CAACtzB,CAAC,GAAG,CAAC,CAAC;MACxCizB,WAAW,CAAC1K,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;IAC1B;EACF,CAAC,MAAM;IACL,KAAK,IAAIvoB,CAAC,GAAG6mB,GAAG,EAAEnd,EAAE,GAAGmd,GAAG,GAAGvP,GAAG,EAAEiR,CAAC,GAAG2K,WAAW,EAAElzB,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,IAAI,CAAC,EAAEuoB,CAAC,IAAI,CAAC,EAAE;MACzE0K,WAAW,CAAC1K,CAAC,CAAC,GAAG+K,YAAY,CAACtzB,CAAC,CAAC;MAChCizB,WAAW,CAAC1K,CAAC,GAAG,CAAC,CAAC,GAAG+K,YAAY,CAACtzB,CAAC,GAAG,CAAC,CAAC;MACxCizB,WAAW,CAAC1K,CAAC,GAAG,CAAC,CAAC,GAAG+K,YAAY,CAACtzB,CAAC,GAAG,CAAC,CAAC;IAC1C;EACF;AACF;AAEA,SAASwzB,QAAQA,CAAC3M,GAAG,EAAE;EACrB,MAAM;IAAEoM,WAAW;IAAEC,WAAW;IAAEI;EAAa,CAAC,GAAGT,IAAI;EACvDI,WAAW,CAACC,WAAW,CAAC,GAAGI,YAAY,CAACzM,GAAG,CAAC;EAC5CoM,WAAW,CAACC,WAAW,GAAG,CAAC,CAAC,GAAGI,YAAY,CAACzM,GAAG,GAAG,CAAC,CAAC;EACpDoM,WAAW,CAACC,WAAW,GAAG,CAAC,CAAC,GAAGI,YAAY,CAACzM,GAAG,GAAG,CAAC,CAAC;AACtD;AAEA,SAAS4M,WAAWA,CAAC5M,GAAG,EAAE;EACxB,MAAM;IAAEyM;EAAa,CAAC,GAAGT,IAAI;EAC7BA,IAAI,CAACO,SAAS,GAAGP,IAAI,CAACQ,aAAa,CACjCC,YAAY,CAACzM,GAAG,CAAC,EACjByM,YAAY,CAACzM,GAAG,GAAG,CAAC,CAAC,EACrByM,YAAY,CAACzM,GAAG,GAAG,CAAC,CACtB,CAAC;AACH;;;;;;;;;;;;;;AChFqE;AAM9D,MAAM6M,QAAQ,GAAGv1B,MAAM,CAACw1B,MAAM,CAAC;EAClCC,IAAI,EAAE,CAAC;EAAE,GAAG,EAAE,MAAM;EACpBC,KAAK,EAAE,CAAC;EAAE,GAAG,EAAE,OAAO;EACtBC,KAAK,EAAE,CAAC;EAAE,GAAG,EAAE,OAAO;EACtBC,KAAK,EAAE,CAAC;EAAE,GAAG,EAAE,OAAO;EACtBC,MAAM,EAAE,CAAC;EAAE,GAAG,EAAE,QAAQ;EACxBC,IAAI,EAAE,CAAC;EAAE,GAAG,EAAE;AAClB,CAAC,CAAC;AAKK,MAAMC,MAAM,GAAG/1B,MAAM,CAACw1B,MAAM,CAAC;EAChCQ,UAAU,EAAE,CAAC;EAAE,GAAG,EAAE,YAAY;EAChCC,oBAAoB,EAAE,CAAC;EAAE,GAAG,EAAE,sBAAsB;EACpDC,UAAU,EAAE,CAAC;EAAE,GAAG,EAAE,YAAY;EAChCC,oBAAoB,EAAE,CAAC;EAAE,GAAG,EAAE;AAClC,CAAC,CAAC;AASK,SAASC,kBAAkBA,CAACC,WAAW,EAAEhN,GAAG,EAAE;EACjD,MAAMiN,IAAI,GAAGC,iBAAiB,CAAClN,GAAG,EAAEmN,IAAI,CAACC,iBAAiB,CAAC;EAC3D,MAAMC,IAAI,GAAGC,eAAe;EAC5BH,IAAI,CAACJ,kBAAkB,CAACC,WAAW,EAAEC,IAAI,EAAEI,IAAI,CAAC;AACpD;AAaO,SAASE,iBAAiBA,CAACP,WAAW,EAAEQ,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,GAAG,EAAE;EACxET,IAAI,CAACI,iBAAiB,CAACP,WAAW,EAAEQ,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEC,GAAG,CAAC;AACpE;AAUO,SAASC,gBAAgBA,CAACb,WAAW,EAAEhN,GAAG,EAAE4N,GAAG,EAAE;EACpDT,IAAI,CAACU,gBAAgB,CAACb,WAAW,EAAEhN,GAAG,EAAE4N,GAAG,CAAC;AAChD;AAYO,SAASE,kBAAkBA,CAACd,WAAW,EAAEQ,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEE,GAAG,EAAE;EACnET,IAAI,CAACW,kBAAkB,CAACd,WAAW,EAAEQ,IAAI,EAAEC,IAAI,EAAEC,IAAI,EAAEE,GAAG,CAAC;AAC/D;AAQO,SAASG,qBAAqBA,CAACf,WAAW,EAAE;EAC/CG,IAAI,CAACY,qBAAqB,CAACf,WAAW,CAAC;AAC3C;AAWO,SAASgB,4BAA4BA,CAACC,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAE;EAC/D,MAAMlB,IAAI,GAAGC,iBAAiB,CAACe,GAAG,EAAEd,IAAI,CAACC,iBAAiB,CAAC;EAC3D,MAAMC,IAAI,GAAGC,eAAe;EAC5B,MAAMc,GAAG,GAAGjB,IAAI,CAACa,4BAA4B,CAACf,IAAI,EAAEI,IAAI,EAAEa,OAAO,EAAEC,MAAM,CAAC;EAC1E,OAAOC,GAAG,KAAK,CAAC;AACpB;AACA,SAASC,iBAAiBA,CAAA,EAAG;EACzB,MAAMC,OAAO,GAAG;IACZC,SAAS,EAAE,IAAI;IACfC,uCAAuC,EAAE,SAAAA,CAASC,IAAI,EAAEC,IAAI,EAAE;MAC1D,MAAM,IAAIj6B,KAAK,CAACk6B,kBAAkB,CAACF,IAAI,EAAEC,IAAI,CAAC,CAAC;IACnD,CAAC;IACDE,kCAAkC,EAAE,SAAAA,CAASH,IAAI,EAAEC,IAAI,EAAE;MACrD3C,WAAW,CAAC0C,IAAI,KAAK,CAAC,EAAEC,IAAI,KAAK,CAAC,CAAC;IACvC,CAAC;IACDG,+BAA+B,EAAE,SAAAA,CAASJ,IAAI,EAAE;MAC5CzC,QAAQ,CAACyC,IAAI,KAAK,CAAC,CAAC;IACxB,CAAC;IACDK,kCAAkC,EAAE,SAAAA,CAASL,IAAI,EAAE;MAC/CxC,WAAW,CAACwC,IAAI,KAAK,CAAC,CAAC;IAC3B,CAAC;IACDM,+BAA+B,EAAE,SAAAA,CAAA,EAAW;MACxC,MAAMC,KAAK,GAAG7B,IAAI,CAAC8B,qBAAqB;MACxC,MAAMlS,MAAM,GAAGiS,KAAK,CAACpT,IAAI,CAAC,CAAC,CAAC;MAC5BoT,KAAK,CAACzmB,GAAG,CAAC,CAAC,EAAErQ,SAAS,CAAC;MACvB82B,KAAK,CAACzmB,GAAG,CAACwU,MAAM,GAAG,CAAC,EAAE7kB,SAAS,CAAC;MAChC82B,KAAK,CAACzmB,GAAG,CAACwU,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC;MAC3BiS,KAAK,CAACzmB,GAAG,CAACwU,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC;MAC3BiS,KAAK,CAACzmB,GAAG,CAACwU,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC;IAChC;EACJ,CAAC;EACD,OAAO;IACHwR,SAAS,EAAE,IAAI;IACf,cAAc,EAAED;EACpB,CAAC;AACL;AAEA,SAASK,kBAAkBA,CAACtP,GAAG,EAAEvP,GAAG,EAAE;EAClCuP,GAAG,GAAGA,GAAG,KAAK,CAAC;EACf,OAAO6P,UAAU,CAAC7P,GAAG,EAAEvP,GAAG,CAAC;AAC/B;AAEA,IAAIqf,uBAAuB,GAAG,IAAI;AAClC,SAASC,oBAAoBA,CAAA,EAAG;EAC5B,IAAID,uBAAuB,KAAK,IAAI,IAAIA,uBAAuB,CAAC/gB,UAAU,KAAK,CAAC,EAAE;IAC9E+gB,uBAAuB,GAAG,IAAIl2B,UAAU,CAACk0B,IAAI,CAAC7P,MAAM,CAAC7jB,MAAM,CAAC;EAChE;EACA,OAAO01B,uBAAuB;AAClC;AAEA,SAASjC,iBAAiBA,CAACpoB,GAAG,EAAEuqB,MAAM,EAAE;EACpC,MAAMhQ,GAAG,GAAGgQ,MAAM,CAACvqB,GAAG,CAACxP,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;EAC3C85B,oBAAoB,CAAC,CAAC,CAAC7mB,GAAG,CAACzD,GAAG,EAAEua,GAAG,GAAG,CAAC,CAAC;EACxCiO,eAAe,GAAGxoB,GAAG,CAACxP,MAAM;EAC5B,OAAO+pB,GAAG;AACd;AAEA,IAAIiQ,iBAAiB,GAAG,IAAI1tB,WAAW,CAAC,OAAO,EAAE;EAAE2tB,SAAS,EAAE,IAAI;EAAE1tB,KAAK,EAAE;AAAK,CAAC,CAAC;AAClFytB,iBAAiB,CAACvtB,MAAM,CAAC,CAAC;AAC1B,MAAMytB,uBAAuB,GAAG,UAAU;AAC1C,IAAIC,eAAe,GAAG,CAAC;AACvB,SAASP,UAAUA,CAAC7P,GAAG,EAAEvP,GAAG,EAAE;EAC1B2f,eAAe,IAAI3f,GAAG;EACtB,IAAI2f,eAAe,IAAID,uBAAuB,EAAE;IAC5CF,iBAAiB,GAAG,IAAI1tB,WAAW,CAAC,OAAO,EAAE;MAAE2tB,SAAS,EAAE,IAAI;MAAE1tB,KAAK,EAAE;IAAK,CAAC,CAAC;IAC9EytB,iBAAiB,CAACvtB,MAAM,CAAC,CAAC;IAC1B0tB,eAAe,GAAG3f,GAAG;EACzB;EACA,OAAOwf,iBAAiB,CAACvtB,MAAM,CAACqtB,oBAAoB,CAAC,CAAC,CAACv2B,QAAQ,CAACwmB,GAAG,EAAEA,GAAG,GAAGvP,GAAG,CAAC,CAAC;AACpF;AAEA,IAAIwd,eAAe,GAAG,CAAC;AAEvB,IAAIoC,UAAU,EAAEvC,IAAI;AACpB,SAASwC,mBAAmBA,CAAC3W,QAAQ,EAAEC,MAAM,EAAE;EAC3CkU,IAAI,GAAGnU,QAAQ,CAACE,OAAO;EACvBwW,UAAU,GAAGzW,MAAM;EACnBkW,uBAAuB,GAAG,IAAI;EAC9BhC,IAAI,CAACyC,gBAAgB,CAAC,CAAC;EACvB,OAAOzC,IAAI;AACf;AAEA,eAAe0C,UAAUA,CAAC5W,MAAM,EAAEL,OAAO,EAAE;EACvC,IAAI,OAAOvT,QAAQ,KAAK,UAAU,IAAI4T,MAAM,YAAY5T,QAAQ,EAAE;IAC9D,IAAI,OAAOmT,WAAW,CAACsX,oBAAoB,KAAK,UAAU,EAAE;MACxD,IAAI;QACA,OAAO,MAAMtX,WAAW,CAACsX,oBAAoB,CAAC7W,MAAM,EAAEL,OAAO,CAAC;MAClE,CAAC,CAAC,OAAOvc,CAAC,EAAE;QACR,MAAM0zB,aAAa,GAAG9W,MAAM,CAACxK,EAAE,IAAIuhB,oBAAoB,CAAC/W,MAAM,CAACr1B,IAAI,CAAC;QAEpE,IAAImsC,aAAa,IAAI9W,MAAM,CAACgX,OAAO,CAACpsB,GAAG,CAAC,cAAc,CAAC,KAAK,kBAAkB,EAAE;UAC5EvP,OAAO,CAACC,IAAI,CAAC,mMAAmM,EAAE8H,CAAC,CAAC;QAExN,CAAC,MAAM;UAAE,MAAMA,CAAC;QAAE;MACtB;IACJ;IAEA,MAAMpE,KAAK,GAAG,MAAMghB,MAAM,CAAC7T,WAAW,CAAC,CAAC;IACxC,OAAO,MAAMoT,WAAW,CAACsG,WAAW,CAAC7mB,KAAK,EAAE2gB,OAAO,CAAC;EACxD,CAAC,MAAM;IACH,MAAMI,QAAQ,GAAG,MAAMR,WAAW,CAACsG,WAAW,CAAC7F,MAAM,EAAEL,OAAO,CAAC;IAE/D,IAAII,QAAQ,YAAYR,WAAW,CAAC0X,QAAQ,EAAE;MAC1C,OAAO;QAAElX,QAAQ;QAAEC;MAAO,CAAC;IAC/B,CAAC,MAAM;MACH,OAAOD,QAAQ;IACnB;EACJ;EAEA,SAASgX,oBAAoBA,CAACpsC,IAAI,EAAE;IAChC,QAAQA,IAAI;MACR,KAAK,OAAO;MAAE,KAAK,MAAM;MAAE,KAAK,SAAS;QAAE,OAAO,IAAI;IAC1D;IACA,OAAO,KAAK;EAChB;AACJ;AAEA,SAASusC,QAAQA,CAAClX,MAAM,EAAE;EACtB,IAAIkU,IAAI,KAAKj1B,SAAS,EAAE,OAAOi1B,IAAI;EAGnC,IAAIlU,MAAM,KAAK/gB,SAAS,EAAE;IACtB,IAAIvB,MAAM,CAACy5B,cAAc,CAACnX,MAAM,CAAC,KAAKtiB,MAAM,CAACS,SAAS,EAAE;MACpD,CAAC;QAAC6hB;MAAM,CAAC,GAAGA,MAAM;IACtB,CAAC,MAAM;MACH3kB,OAAO,CAACC,IAAI,CAAC,4EAA4E,CAAC;IAC9F;EACJ;EAEA,MAAMqkB,OAAO,GAAGyV,iBAAiB,CAAC,CAAC;EACnC,IAAI,EAAEpV,MAAM,YAAYT,WAAW,CAACrD,MAAM,CAAC,EAAE;IACzC8D,MAAM,GAAG,IAAIT,WAAW,CAACrD,MAAM,CAAC8D,MAAM,CAAC;EAC3C;EACA,MAAMD,QAAQ,GAAG,IAAIR,WAAW,CAAC0X,QAAQ,CAACjX,MAAM,EAAEL,OAAO,CAAC;EAC1D,OAAO+W,mBAAmB,CAAC3W,QAAQ,EAAEC,MAAM,CAAC;AAChD;AAEA,eAAeoX,UAAUA,CAACC,cAAc,EAAE;EACtC,IAAInD,IAAI,KAAKj1B,SAAS,EAAE,OAAOi1B,IAAI;EAGnC,IAAImD,cAAc,KAAKp4B,SAAS,EAAE;IAC9B,IAAIvB,MAAM,CAACy5B,cAAc,CAACE,cAAc,CAAC,KAAK35B,MAAM,CAACS,SAAS,EAAE;MAC5D,CAAC;QAACk5B;MAAc,CAAC,GAAGA,cAAc;IACtC,CAAC,MAAM;MACHh8B,OAAO,CAACC,IAAI,CAAC,2FAA2F,CAAC;IAC7G;EACJ;EAGA,MAAMqkB,OAAO,GAAGyV,iBAAiB,CAAC,CAAC;EAEnC,IAAI,OAAOiC,cAAc,KAAK,QAAQ,IAAK,OAAOC,OAAO,KAAK,UAAU,IAAID,cAAc,YAAYC,OAAQ,IAAK,OAAO76B,GAAG,KAAK,UAAU,IAAI46B,cAAc,YAAY56B,GAAI,EAAE;IAC5K46B,cAAc,GAAGzoB,KAAK,CAACyoB,cAAc,CAAC;EAC1C;EAEA,MAAM;IAAEtX,QAAQ;IAAEC;EAAO,CAAC,GAAG,MAAM4W,UAAU,CAAC,MAAMS,cAAc,EAAE1X,OAAO,CAAC;EAE5E,OAAO+W,mBAAmB,CAAC3W,QAAQ,EAAEC,MAAM,CAAC;AAChD;;;;;;;;;;;ACzOqC;AACkB;AACV;AACY;AAEzD,SAASuX,SAASA,CAAC37B,GAAG,EAAE;EAItB,MAAM47B,GAAG,GAAG,IAAIC,cAAc,CAAC,CAAC;EAChCD,GAAG,CAACE,IAAI,CAAC,KAAK,EAAE97B,GAAG,EAAE,KAAK,CAAC;EAC3B47B,GAAG,CAACG,YAAY,GAAG,aAAa;EAChCH,GAAG,CAACI,IAAI,CAAC,IAAI,CAAC;EACd,OAAOJ,GAAG,CAACjiB,QAAQ;AACrB;AAEA,MAAMsiB,aAAa,SAAStP,UAAU,CAAC;EACrC,CAACwL,WAAW;EAEZ,CAAC+D,YAAY;EAEb,OAAO,CAAChT,OAAO,GAAG,IAAI;EAEtB,OAAO,CAACE,OAAO,GAAG,IAAI;EAEtB,OAAO,CAAC+S,SAAS,GAAG,IAAI;EAExB35B,WAAWA,CAAC45B,UAAU,EAAE95B,IAAI,EAAEuqB,QAAQ,EAAE;IACtC,IAAI,CAACoP,aAAa,CAACI,QAAQ,EAAE;MAC3B,MAAM,IAAIz8B,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IAEA,KAAK,CAAC0C,IAAI,EAAEuqB,QAAQ,CAAC;IAErB,IAAIyP,MAAM;IACV,QAAQzP,QAAQ;MACd,KAAK,CAAC;QACJyP,MAAM,GAAGjF,QAAQ,CAACK,KAAK;QACvB,IAAI,CAAC,CAACwE,YAAY,GAAG,CAAC/Q,GAAG,EAAE4B,SAAS,EAAEgM,GAAG,KACvCC,gBAAgB,CAAC,IAAI,CAAC,CAACb,WAAW,EAAEhN,GAAG,CAAC4B,SAAS,CAAC,GAAG,GAAG,EAAEgM,GAAG,CAAC;QAChE;MACF,KAAK,CAAC;QACJuD,MAAM,GAAGjF,QAAQ,CAACE,IAAI;QACtB,IAAI,CAAC,CAAC2E,YAAY,GAAG,CAAC/Q,GAAG,EAAE4B,SAAS,EAAEgM,GAAG,KACvCE,kBAAkB,CAChB,IAAI,CAAC,CAACd,WAAW,EACjBhN,GAAG,CAAC4B,SAAS,CAAC,GAAG,GAAG,EACpB5B,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,EACxB5B,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,EACxBgM,GACF,CAAC;QACH;MACF,KAAK,CAAC;QACJuD,MAAM,GAAGjF,QAAQ,CAACO,IAAI;QACtB,IAAI,CAAC,CAACsE,YAAY,GAAG,CAAC/Q,GAAG,EAAE4B,SAAS,EAAEgM,GAAG,KACvCL,iBAAiB,CACf,IAAI,CAAC,CAACP,WAAW,EACjBhN,GAAG,CAAC4B,SAAS,CAAC,GAAG,GAAG,EACpB5B,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,EACxB5B,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,EACxB5B,GAAG,CAAC4B,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,EACxBgM,GACF,CAAC;QACH;MACF;QACE,MAAM,IAAIn5B,KAAK,CAAC,qCAAqCitB,QAAQ,EAAE,CAAC;IACpE;IACA,IAAI,CAAC,CAACsL,WAAW,GAAGgB,4BAA4B,CAC9CiD,UAAU,EACVE,MAAM,EACNzE,MAAM,CAACC,UACT,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAACK,WAAW,EAAE;MACtB,MAAM,IAAIv4B,KAAK,CAAC,kCAAkC,CAAC;IACrD;IACAq8B,aAAa,CAAC,CAACE,SAAS,KAAK,IAAII,oBAAoB,CAACpE,WAAW,IAAI;MACnEe,qBAAqB,CAACf,WAAW,CAAC;IACpC,CAAC,CAAC;IACF8D,aAAa,CAAC,CAACE,SAAS,CAACK,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAACrE,WAAW,CAAC;EAC5D;EAEAlL,SAASA,CAAC9B,GAAG,EAAE4B,SAAS,EAAE;IACxB,IAAI,CAAC,CAACmP,YAAY,CAAC/Q,GAAG,EAAE4B,SAAS,EAAY,IAAI,CAAC;IAClD,OAAOyJ,IAAI,CAACO,SAAS;EACvB;EAEA/J,UAAUA,CAAC7B,GAAG,EAAE4B,SAAS,EAAErd,IAAI,EAAEwd,UAAU,EAAE;IAC3CsJ,IAAI,CAACI,WAAW,GAAGlnB,IAAI;IACvB8mB,IAAI,CAACK,WAAW,GAAG3J,UAAU;IAC7BsJ,IAAI,CAACM,WAAW,GAAG,CAAC;IACpB,IAAI,CAAC,CAACoF,YAAY,CAAC/Q,GAAG,EAAE4B,SAAS,EAAY,KAAK,CAAC;IACnDyJ,IAAI,CAACI,WAAW,GAAG,IAAI;EACzB;EAEAzJ,YAAYA,CAAChC,GAAG,EAAE4B,SAAS,EAAEK,KAAK,EAAE1d,IAAI,EAAEwd,UAAU,EAAEG,IAAI,EAAE7B,OAAO,EAAE;IACnEL,GAAG,GAAGA,GAAG,CAACnnB,QAAQ,CAAC+oB,SAAS,EAAEA,SAAS,GAAGK,KAAK,GAAG,IAAI,CAACP,QAAQ,CAAC;IAChE,IAAIQ,IAAI,KAAK,CAAC,EAAE;MACd,MAAMsB,KAAK,GAAG,GAAG,IAAI,CAAC,CAAC,IAAItB,IAAI,IAAI,CAAC,CAAC;MACrC,KAAK,IAAI1pB,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG8d,GAAG,CAAC1qB,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;QAC5CwnB,GAAG,CAACxnB,CAAC,CAAC,IAAIgrB,KAAK;MACjB;IACF;IACA6H,IAAI,CAACG,aAAa,GAAGnL,OAAO,IAAI9b,IAAI,CAAC9K,MAAM,KAAKumB,GAAG,CAACvmB,MAAM;IAC1D4xB,IAAI,CAACI,WAAW,GAAGlnB,IAAI;IACvB8mB,IAAI,CAACK,WAAW,GAAG3J,UAAU;IAC7BsJ,IAAI,CAACM,WAAW,GAAG1J,KAAK,IAAI,CAAC,GAAG5B,OAAO,CAAC;IACxC0M,kBAAkB,CAAC,IAAI,CAAC,CAACC,WAAW,EAAEhN,GAAG,CAAC;IAC1CqL,IAAI,CAACG,aAAa,GAAG,KAAK;IAC1BH,IAAI,CAACI,WAAW,GAAG,IAAI;EACzB;EAEAtJ,eAAeA,CAACC,WAAW,EAAE/B,OAAO,EAAE;IACpC,OAAS+B,WAAW,GAAG,IAAI,CAACV,QAAQ,IAAK,CAAC,GAAGrB,OAAO,CAAC,GAAI,CAAC;EAC5D;EAEA,OAAOnC,UAAUA,CAAC;IAAEH,OAAO;IAAEC,cAAc;IAAEC;EAAQ,CAAC,EAAE;IACtD,IAAI,CAACD,cAAc,EAAE;MACnB,IAAI,CAAC,CAACD,OAAO,GAAG,KAAK;MACrB;IACF;IACA,IAAI,CAAC,CAACA,OAAO,GAAGA,OAAO;IACvB,IAAI,CAAC,CAACE,OAAO,GAAGA,OAAO;EACzB;EAEA,WAAWiT,QAAQA,CAAA,EAAG;IACpB,IAAIA,QAAQ,GAAG,KAAK;IACpB,IAAI,IAAI,CAAC,CAACnT,OAAO,EAAE;MACjB,IAAI,IAAI,CAAC,CAACE,OAAO,EAAE;QACjB,IAAI;UACF,IAAI,CAACqT,OAAO,GAAGnB,QAAQ,CAAC;YACtBlX,MAAM,EAAEuX,SAAS,CAAC,GAAG,IAAI,CAAC,CAACvS,OAAO,cAAc;UAClD,CAAC,CAAC;UACFiT,QAAQ,GAAG,CAAC,CAAC,IAAI,CAACI,OAAO;UACzBjG,IAAI,CAACE,OAAO,GAAG,IAAI,CAAC+F,OAAO,CAAChU,MAAM;UAClC+N,IAAI,CAACQ,aAAa,GAAGxwB,IAAI,CAACO,YAAY,CAACua,IAAI,CAAC9a,IAAI,CAAC;QACnD,CAAC,CAAC,OAAOgB,CAAC,EAAE;UACV9H,IAAI,CAAC,0BAA0B8H,CAAC,IAAI,CAAC;QACvC;MACF,CAAC,MAAM;QACL9H,IAAI,CAAC,gEAAgE,CAAC;MACxE;IACF;IAEA,OAAO+B,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE46B,QAAQ,CAAC;EAC3C;AACF;AAEA,MAAMK,cAAc,SAAST,aAAa,CAAC;EACzC,OAAO,CAACU,MAAM;EAEdn6B,WAAWA,CAAA,EAAG;IACZ,MAAM45B,UAAU,GAAG,IAAIh4B,UAAU,CAC/Bu3B,SAAS,CAAC,GAAGe,cAAc,CAAC,CAACC,MAAM,6BAA6B,CAClE,CAAC;IACD,KAAK,CAACP,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;EACpC;EAEA,OAAO/S,UAAUA,CAAC;IAAEsT;EAAO,CAAC,EAAE;IAC5B,IAAI,CAAC,CAACA,MAAM,GAAGA,MAAM;EACvB;EAEA,WAAWN,QAAQA,CAAA,EAAG;IACpB,IAAIA,QAAQ,GAAG,KAAK;IACpB,IAAIJ,aAAa,CAACI,QAAQ,EAAE;MAC1B,IAAI,IAAI,CAAC,CAACM,MAAM,EAAE;QAChBN,QAAQ,GAAG,IAAI;MACjB,CAAC,MAAM;QACL38B,IAAI,CAAC,gEAAgE,CAAC;MACxE;IACF;IAEA,OAAO+B,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE46B,QAAQ,CAAC;EAC3C;AACF;;;AC5KyB;AAC2C;AAClB;AACY;AACV;AACG;AAEvD,MAAMO,eAAe,CAAC;EACpB,OAAO97B,KAAKA,CAAC;IACX+7B,EAAE;IACFzqB,IAAI;IACJ0qB,SAAS,GAAG,IAAI;IAChBC,kBAAkB;IAClBC,qBAAqB;IACrBC,oBAAoB;IACpBC,gBAAgB,GAAG;EACrB,CAAC,EAAE;IASD,MAAM98B,OAAO,GAAG;MACdgS,IAAI;MACJ0qB,SAAS;MACTC,kBAAkB;MAClBC,qBAAqB;MACrBC;IACF,CAAC;IACD,IAAIE,MAAM,EAAEC,KAAK,EAAEC,QAAQ;IAG3B,IAAIR,EAAE,YAAY/pB,GAAG,EAAE;MACrBsqB,KAAK,GAAGP,EAAE;MAEV,MAAMS,QAAQ,GACZN,qBAAqB,CAACO,QAAQ,CAACH,KAAK,CAAC,IACrCH,oBAAoB,CAACM,QAAQ,CAACH,KAAK,CAAC;MACtC,IAAIE,QAAQ,EAAE;QACZ,OAAOA,QAAQ;MACjB;MACAT,EAAE,GAAGzqB,IAAI,CAACY,KAAK,CAAC6pB,EAAE,CAAC;IACrB;IACA,IAAIA,EAAE,YAAYlrB,IAAI,EAAE;MACtBwrB,MAAM,GAAGN,EAAE,CAACv6B,IAAI;MAEhB,MAAMg7B,QAAQ,GAAGL,oBAAoB,CAACO,SAAS,CAACL,MAAM,CAAC;MACvD,IAAIG,QAAQ,EAAE;QACZ,OAAOA,QAAQ;MACjB;IACF;IAEA,IAAI;MACFD,QAAQ,GAAG,IAAI,CAAC,CAACv8B,KAAK,CAAC+7B,EAAE,EAAEz8B,OAAO,CAAC;IACrC,CAAC,CAAC,OAAOgN,EAAE,EAAE;MACX,IAAI8vB,gBAAgB,IAAI,EAAE9vB,EAAE,YAAY4L,oBAAoB,CAAC,EAAE;QAC7D,OAAOuL,OAAO,CAACE,MAAM,CAACrX,EAAE,CAAC;MAC3B;MACA,MAAMA,EAAE;IACV;IAGA,IAAI+vB,MAAM,IAAIC,KAAK,EAAE;MACnBH,oBAAoB,CAACvpB,GAAG,CAACypB,MAAM,EAAEC,KAAK,EAAEC,QAAQ,CAAC;MAEjD,IAAID,KAAK,EAAE;QACTJ,qBAAqB,CAACtpB,GAAG,CAAc,IAAI,EAAE0pB,KAAK,EAAEC,QAAQ,CAAC;MAC/D;IACF;IACA,OAAOH,gBAAgB,GAAG3Y,OAAO,CAACC,OAAO,CAAC6Y,QAAQ,CAAC,GAAGA,QAAQ;EAChE;EAMA,OAAO,CAACI,QAAQC,CAACb,EAAE,EAAEz8B,OAAO,EAAE;IAC5B,MAAM;MAAE48B;IAAsB,CAAC,GAAG58B,OAAO;IACzC,IAAIg9B,KAAK;IAGT,IAAIP,EAAE,YAAY/pB,GAAG,EAAE;MACrBsqB,KAAK,GAAGP,EAAE;MAEV,MAAMS,QAAQ,GAAGN,qBAAqB,CAACO,QAAQ,CAACH,KAAK,CAAC;MACtD,IAAIE,QAAQ,EAAE;QACZ,OAAOA,QAAQ;MACjB;IACF;IACA,MAAMD,QAAQ,GAAG,IAAI,CAAC,CAACv8B,KAAK,CAAC+7B,EAAE,EAAEz8B,OAAO,CAAC;IAGzC,IAAIg9B,KAAK,EAAE;MACTJ,qBAAqB,CAACtpB,GAAG,CAAc,IAAI,EAAE0pB,KAAK,EAAEC,QAAQ,CAAC;IAC/D;IACA,OAAOA,QAAQ;EACjB;EAEA,OAAO,CAACv8B,KAAK68B,CAACd,EAAE,EAAEz8B,OAAO,EAAE;IACzB,MAAM;MAAEgS,IAAI;MAAE0qB,SAAS;MAAEC,kBAAkB;MAAEC;IAAsB,CAAC,GAClE58B,OAAO;IAETy8B,EAAE,GAAGzqB,IAAI,CAACwrB,UAAU,CAACf,EAAE,CAAC;IACxB,IAAIA,EAAE,YAAYlrB,IAAI,EAAE;MACtB,QAAQkrB,EAAE,CAACv6B,IAAI;QACb,KAAK,GAAG;QACR,KAAK,YAAY;UACf,OAAO,IAAI,CAACu7B,IAAI;QAClB,KAAK,KAAK;QACV,KAAK,WAAW;UACd,OAAO,IAAI,CAACC,GAAG;QACjB,KAAK,YAAY;UACf,OAAO,IAAI,CAACC,IAAI;QAClB,KAAK,MAAM;QACX,KAAK,YAAY;UACf,OAAO,IAAI,CAACC,IAAI;QAClB,KAAK,SAAS;UACZ,OAAO,IAAIhP,SAAS,CAAgB,IAAI,CAAC;QAC3C;UACE,IAAI8N,SAAS,YAAY/qB,IAAI,EAAE;YAC7B,MAAMksB,WAAW,GAAGnB,SAAS,CAAC9tB,GAAG,CAAC,YAAY,CAAC;YAC/C,IAAIivB,WAAW,YAAYlsB,IAAI,EAAE;cAC/B,MAAMmsB,WAAW,GAAGD,WAAW,CAACjvB,GAAG,CAAC6tB,EAAE,CAACv6B,IAAI,CAAC;cAC5C,IAAI47B,WAAW,EAAE;gBACf,IAAIA,WAAW,YAAYvsB,IAAI,EAAE;kBAC/B,OAAO,IAAI,CAAC,CAAC7Q,KAAK,CAACo9B,WAAW,EAAE99B,OAAO,CAAC;gBAC1C;gBACAy8B,EAAE,GAAGqB,WAAW;gBAChB;cACF;YACF;UACF;UAEAx+B,IAAI,CAAC,4BAA4Bm9B,EAAE,CAACv6B,IAAI,EAAE,CAAC;UAC3C,OAAO,IAAI,CAACu7B,IAAI;MACpB;IACF;IACA,IAAIn3B,KAAK,CAACiJ,OAAO,CAACktB,EAAE,CAAC,EAAE;MACrB,MAAMsB,IAAI,GAAG/rB,IAAI,CAACwrB,UAAU,CAACf,EAAE,CAAC,CAAC,CAAC,CAAC,CAACv6B,IAAI;MACxC,IAAI87B,MAAM,EAAEvR,QAAQ,EAAEoC,MAAM,EAAEgB,UAAU,EAAEC,UAAU,EAAEC,KAAK;MAE3D,QAAQgO,IAAI;QACV,KAAK,GAAG;QACR,KAAK,YAAY;UACf,OAAO,IAAI,CAACN,IAAI;QAClB,KAAK,KAAK;QACV,KAAK,WAAW;UACd,OAAO,IAAI,CAACC,GAAG;QACjB,KAAK,MAAM;QACX,KAAK,YAAY;UACf,OAAO,IAAI,CAACE,IAAI;QAClB,KAAK,SAAS;UACZI,MAAM,GAAGhsB,IAAI,CAACwrB,UAAU,CAACf,EAAE,CAAC,CAAC,CAAC,CAAC;UAC/B5M,UAAU,GAAGmO,MAAM,CAAClrB,QAAQ,CAAC,YAAY,CAAC;UAC1Cgd,UAAU,GAAGkO,MAAM,CAAClrB,QAAQ,CAAC,YAAY,CAAC;UAC1Cid,KAAK,GAAGiO,MAAM,CAACpvB,GAAG,CAAC,OAAO,CAAC;UAC3B,OAAO,IAAIghB,SAAS,CAACC,UAAU,EAAEC,UAAU,EAAEC,KAAK,CAAC;QACrD,KAAK,QAAQ;UACXiO,MAAM,GAAGhsB,IAAI,CAACwrB,UAAU,CAACf,EAAE,CAAC,CAAC,CAAC,CAAC;UAC/B5M,UAAU,GAAGmO,MAAM,CAAClrB,QAAQ,CAAC,YAAY,CAAC;UAC1Cgd,UAAU,GAAGkO,MAAM,CAAClrB,QAAQ,CAAC,YAAY,CAAC;UAC1Cid,KAAK,GAAGiO,MAAM,CAAClrB,QAAQ,CAAC,OAAO,CAAC;UAChC,MAAM7I,MAAM,GAAG+zB,MAAM,CAAClrB,QAAQ,CAAC,QAAQ,CAAC;UACxC,OAAO,IAAI6d,QAAQ,CAACd,UAAU,EAAEC,UAAU,EAAEC,KAAK,EAAE9lB,MAAM,CAAC;QAC5D,KAAK,UAAU;UACb,MAAMg0B,KAAK,GAAGxB,EAAE,CAAC,CAAC,CAAC,YAAY/pB,GAAG;UAClC,IAAIurB,KAAK,EAAE;YACT,MAAMf,QAAQ,GAAGN,qBAAqB,CAACO,QAAQ,CAACV,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,IAAIS,QAAQ,EAAE;cACZ,OAAOA,QAAQ;YACjB;UACF;UAEA,MAAM/kB,MAAM,GAAGnG,IAAI,CAACwrB,UAAU,CAACf,EAAE,CAAC,CAAC,CAAC,CAAC;UACrC,MAAMjoB,IAAI,GAAG2D,MAAM,CAAC3D,IAAI;UACxBiY,QAAQ,GAAGjY,IAAI,CAAC5F,GAAG,CAAC,GAAG,CAAC;UAExB,IAAIitB,aAAa,CAACI,QAAQ,EAAE;YAC1B,IAAI;cACF,MAAMiC,KAAK,GAAG,IAAIrC,aAAa,CAC7B1jB,MAAM,CAACxB,QAAQ,CAAC,CAAC,EACjB,UAAU,EACV8V,QACF,CAAC;cACD,IAAIwR,KAAK,EAAE;gBACTrB,qBAAqB,CAACtpB,GAAG,CAAc,IAAI,EAAEmpB,EAAE,CAAC,CAAC,CAAC,EAAEyB,KAAK,CAAC;cAC5D;cACA,OAAOA,KAAK;YACd,CAAC,CAAC,OAAOlxB,EAAE,EAAE;cACX,IAAIA,EAAE,YAAY4L,oBAAoB,EAAE;gBACtC,MAAM5L,EAAE;cACV;cACA1N,IAAI,CAAC,yBAAyBm9B,EAAE,CAAC,CAAC,CAAC,OAAOzvB,EAAE,IAAI,CAAC;YACnD;UACF;UAEA,MAAMmxB,MAAM,GAAG3pB,IAAI,CAACzB,MAAM,CAAC,WAAW,CAAC;UACvC,IAAIorB,MAAM,EAAE;YACV,MAAMC,KAAK,GAAG,IAAI,CAAC,CAACf,QAAQ,CAACc,MAAM,EAAEn+B,OAAO,CAAC;YAG7C,IAAIo+B,KAAK,CAAC3R,QAAQ,KAAKA,QAAQ,EAAE;cAC/B,OAAO2R,KAAK;YACd;YACA9+B,IAAI,CAAC,4DAA4D,CAAC;UACpE;UACA,IAAImtB,QAAQ,KAAK,CAAC,EAAE;YAClB,OAAO,IAAI,CAACgR,IAAI;UAClB,CAAC,MAAM,IAAIhR,QAAQ,KAAK,CAAC,EAAE;YACzB,OAAO,IAAI,CAACiR,GAAG;UACjB,CAAC,MAAM,IAAIjR,QAAQ,KAAK,CAAC,EAAE;YACzB,OAAO,IAAI,CAACmR,IAAI;UAClB;UACA;QACF,KAAK,SAAS;UACZ/O,MAAM,GAAG4N,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;UACtB,IAAI5N,MAAM,EAAE;YACVA,MAAM,GAAG,IAAI,CAAC,CAACwO,QAAQ,CAACxO,MAAM,EAAE7uB,OAAO,CAAC;UAC1C;UACA,OAAO,IAAI4uB,SAAS,CAACC,MAAM,CAAC;QAC9B,KAAK,GAAG;QACR,KAAK,SAAS;UACZA,MAAM,GAAG,IAAI,CAAC,CAACwO,QAAQ,CAACZ,EAAE,CAAC,CAAC,CAAC,EAAEz8B,OAAO,CAAC;UACvC,MAAMq+B,KAAK,GAAGxT,SAAS,CAAC7Y,IAAI,CAACwrB,UAAU,CAACf,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;UACvD,MAAM9jB,MAAM,GAAG3G,IAAI,CAACwrB,UAAU,CAACf,EAAE,CAAC,CAAC,CAAC,CAAC;UACrC,OAAO,IAAI3N,SAAS,CAACD,MAAM,EAAEwP,KAAK,EAAE1lB,MAAM,CAAC;QAC7C,KAAK,YAAY;QACjB,KAAK,SAAS;UACZ,MAAMzW,IAAI,GAAG8P,IAAI,CAACwrB,UAAU,CAACf,EAAE,CAAC,CAAC,CAAC,CAAC;UACnChQ,QAAQ,GAAGnmB,KAAK,CAACiJ,OAAO,CAACrN,IAAI,CAAC,GAAGA,IAAI,CAAC7B,MAAM,GAAG,CAAC;UAChDwuB,MAAM,GAAG,IAAI,CAAC,CAACwO,QAAQ,CAACZ,EAAE,CAAC,CAAC,CAAC,EAAEz8B,OAAO,CAAC;UACvC,MAAMquB,MAAM,GAAGsO,kBAAkB,CAAC1sB,MAAM,CAACwsB,EAAE,CAAC,CAAC,CAAC,CAAC;UAC/C,OAAO,IAAItO,WAAW,CAAC1B,QAAQ,EAAEoC,MAAM,EAAER,MAAM,CAAC;QAClD,KAAK,KAAK;UACR2P,MAAM,GAAGhsB,IAAI,CAACwrB,UAAU,CAACf,EAAE,CAAC,CAAC,CAAC,CAAC;UAC/B5M,UAAU,GAAGmO,MAAM,CAAClrB,QAAQ,CAAC,YAAY,CAAC;UAC1Cgd,UAAU,GAAGkO,MAAM,CAAClrB,QAAQ,CAAC,YAAY,CAAC;UAC1C,MAAMqiB,KAAK,GAAG6I,MAAM,CAAClrB,QAAQ,CAAC,OAAO,CAAC;UACtC,OAAO,IAAIoiB,KAAK,CAACrF,UAAU,EAAEC,UAAU,EAAEqF,KAAK,CAAC;QACjD;UAEE71B,IAAI,CAAC,oCAAoCy+B,IAAI,EAAE,CAAC;UAChD,OAAO,IAAI,CAACN,IAAI;MACpB;IACF;IAEAn+B,IAAI,CAAC,mCAAmCm9B,EAAE,EAAE,CAAC;IAC7C,OAAO,IAAI,CAACgB,IAAI;EAClB;EAEA,WAAWA,IAAIA,CAAA,EAAG;IAChB,OAAOp8B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI6tB,YAAY,CAAC,CAAC,CAAC;EACjD;EAEA,WAAWwO,GAAGA,CAAA,EAAG;IACf,OAAOr8B,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI+tB,WAAW,CAAC,CAAC,CAAC;EAC/C;EAEA,WAAWuO,IAAIA,CAAA,EAAG;IAChB,OAAOt8B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAIguB,YAAY,CAAC,CAAC,CAAC;EACjD;EAEA,WAAWuO,IAAIA,CAAA,EAAG;IAChB,IAAItB,cAAc,CAACL,QAAQ,EAAE;MAC3B,IAAI;QACF,OAAO56B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAIi7B,cAAc,CAAC,CAAC,CAAC;MACnD,CAAC,CAAC,MAAM;QACNh9B,IAAI,CAAC,2BAA2B,CAAC;MACnC;IACF;IACA,OAAO+B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAIkuB,YAAY,CAAC,CAAC,CAAC;EACjD;AACF;;;;;;;;;AC9RmD;AAEnD,SAAS+O,aAAaA,CAACN,MAAM,EAAE;EAC7B,QAAQA,MAAM,CAACrU,IAAI;IACjB,KAAKx2B,qBAAS,CAACC,cAAc;MAC3B,OAAOmrC,0BAA0B,CAACP,MAAM,CAAC;IAC3C,KAAK7qC,qBAAS,CAACE,SAAS;MACtB,OAAOmrC,gBAAgB,CAACR,MAAM,CAAC;EACnC;EAEA,OAAO,IAAI;AACb;AAEA,SAASO,0BAA0BA,CAAC;EAClCxT,GAAG;EACH0T,MAAM,GAAG,CAAC;EACVnvB,IAAI;EACJoQ,KAAK;EACLC,MAAM;EACN+e,aAAa,GAAG,UAAU;EAC1BC,aAAa,GAAG;AAClB,CAAC,EAAE;EACD,MAAMC,KAAK,GAAGn6B,uBAAW,CAACL,cAAc,GAAG,UAAU,GAAG,UAAU;EAClE,MAAM,CAACy6B,WAAW,EAAEC,UAAU,CAAC,GAAGH,aAAa,GAC3C,CAACD,aAAa,EAAEE,KAAK,CAAC,GACtB,CAACA,KAAK,EAAEF,aAAa,CAAC;EAC1B,MAAMK,aAAa,GAAGrf,KAAK,IAAI,CAAC;EAChC,MAAMsf,cAAc,GAAGtf,KAAK,GAAG,CAAC;EAChC,MAAMuf,OAAO,GAAGJ,WAAW,GAAGC,UAAU;EACxC,MAAMI,SAAS,GAAGnU,GAAG,CAAC1qB,MAAM;EAC5BiP,IAAI,GAAG,IAAI/K,WAAW,CAAC+K,IAAI,CAAC9K,MAAM,CAAC;EACnC,IAAIwpB,OAAO,GAAG,CAAC;EAEf,KAAK,IAAIzqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoc,MAAM,EAAE,EAAEpc,CAAC,EAAE;IAC/B,KACE,MAAMuG,GAAG,GAAG20B,MAAM,GAAGM,aAAa,EAClCN,MAAM,GAAG30B,GAAG,EACZ,EAAE20B,MAAM,EAAEzQ,OAAO,IAAI,CAAC,EACtB;MACA,MAAMmR,IAAI,GAAGpU,GAAG,CAAC0T,MAAM,CAAC;MACxBnvB,IAAI,CAAC0e,OAAO,CAAC,GAAG6Q,WAAW,GAAI,EAAGM,IAAI,IAAI,CAAC,GAAI,CAAC,CAAC,GAAGF,OAAQ;MAC5D3vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAG6Q,WAAW,GAAI,EAAGM,IAAI,IAAI,CAAC,GAAI,CAAC,CAAC,GAAGF,OAAQ;MAChE3vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAG6Q,WAAW,GAAI,EAAGM,IAAI,IAAI,CAAC,GAAI,CAAC,CAAC,GAAGF,OAAQ;MAChE3vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAG6Q,WAAW,GAAI,EAAGM,IAAI,IAAI,CAAC,GAAI,CAAC,CAAC,GAAGF,OAAQ;MAChE3vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAG6Q,WAAW,GAAI,EAAGM,IAAI,IAAI,CAAC,GAAI,CAAC,CAAC,GAAGF,OAAQ;MAChE3vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAG6Q,WAAW,GAAI,EAAGM,IAAI,IAAI,CAAC,GAAI,CAAC,CAAC,GAAGF,OAAQ;MAChE3vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAG6Q,WAAW,GAAI,EAAGM,IAAI,IAAI,CAAC,GAAI,CAAC,CAAC,GAAGF,OAAQ;MAChE3vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAG6Q,WAAW,GAAI,EAAEM,IAAI,GAAG,CAAC,CAAC,GAAGF,OAAQ;IAC3D;IACA,IAAID,cAAc,KAAK,CAAC,EAAE;MACxB;IACF;IACA,MAAMG,IAAI,GAAGV,MAAM,GAAGS,SAAS,GAAGnU,GAAG,CAAC0T,MAAM,EAAE,CAAC,GAAG,GAAG;IACrD,KAAK,IAAI3S,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkT,cAAc,EAAE,EAAElT,CAAC,EAAE,EAAEkC,OAAO,EAAE;MAClD1e,IAAI,CAAC0e,OAAO,CAAC,GAAG6Q,WAAW,GAAI,EAAGM,IAAI,IAAK,CAAC,GAAGrT,CAAE,GAAI,CAAC,CAAC,GAAGmT,OAAQ;IACpE;EACF;EAEA,OAAO;IAAER,MAAM;IAAEzQ;EAAQ,CAAC;AAC5B;AAEA,SAASwQ,gBAAgBA,CAAC;EACxBzT,GAAG;EACH0T,MAAM,GAAG,CAAC;EACVnvB,IAAI;EACJ0e,OAAO,GAAG,CAAC;EACXtO,KAAK;EACLC;AACF,CAAC,EAAE;EACD,IAAIpc,CAAC,GAAG,CAAC;EACT,MAAMsX,GAAG,GAAG6E,KAAK,GAAGC,MAAM,GAAG,CAAC;EAC9B,MAAMyf,KAAK,GAAGvkB,GAAG,IAAI,CAAC;EACtB,MAAMmR,KAAK,GAAG,IAAIznB,WAAW,CAACwmB,GAAG,CAACvmB,MAAM,EAAEi6B,MAAM,EAAEW,KAAK,CAAC;EACxD,MAAMC,SAAS,GAAG56B,uBAAW,CAACL,cAAc,GAAG,UAAU,GAAG,IAAI;EAEhE,IAAIK,uBAAW,CAACL,cAAc,EAAE;IAG9B,OAAOb,CAAC,GAAG67B,KAAK,GAAG,CAAC,EAAE77B,CAAC,IAAI,CAAC,EAAEyqB,OAAO,IAAI,CAAC,EAAE;MAC1C,MAAMsR,EAAE,GAAGtT,KAAK,CAACzoB,CAAC,CAAC;QACjBg8B,EAAE,GAAGvT,KAAK,CAACzoB,CAAC,GAAG,CAAC,CAAC;QACjBi8B,EAAE,GAAGxT,KAAK,CAACzoB,CAAC,GAAG,CAAC,CAAC;MAEnB+L,IAAI,CAAC0e,OAAO,CAAC,GAAGsR,EAAE,GAAGD,SAAS;MAC9B/vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAIsR,EAAE,KAAK,EAAE,GAAKC,EAAE,IAAI,CAAE,GAAGF,SAAS;MACvD/vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAIuR,EAAE,KAAK,EAAE,GAAKC,EAAE,IAAI,EAAG,GAAGH,SAAS;MACxD/vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAIwR,EAAE,KAAK,CAAC,GAAIH,SAAS;IAC5C;IAEA,KAAK,IAAIvT,CAAC,GAAGvoB,CAAC,GAAG,CAAC,EAAEk8B,EAAE,GAAGhB,MAAM,GAAG5jB,GAAG,EAAEiR,CAAC,GAAG2T,EAAE,EAAE3T,CAAC,IAAI,CAAC,EAAE;MACrDxc,IAAI,CAAC0e,OAAO,EAAE,CAAC,GACbjD,GAAG,CAACe,CAAC,CAAC,GAAIf,GAAG,CAACe,CAAC,GAAG,CAAC,CAAC,IAAI,CAAE,GAAIf,GAAG,CAACe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAG,GAAGuT,SAAS;IAC/D;EACF,CAAC,MAAM;IACL,OAAO97B,CAAC,GAAG67B,KAAK,GAAG,CAAC,EAAE77B,CAAC,IAAI,CAAC,EAAEyqB,OAAO,IAAI,CAAC,EAAE;MAC1C,MAAMsR,EAAE,GAAGtT,KAAK,CAACzoB,CAAC,CAAC;QACjBg8B,EAAE,GAAGvT,KAAK,CAACzoB,CAAC,GAAG,CAAC,CAAC;QACjBi8B,EAAE,GAAGxT,KAAK,CAACzoB,CAAC,GAAG,CAAC,CAAC;MAEnB+L,IAAI,CAAC0e,OAAO,CAAC,GAAGsR,EAAE,GAAGD,SAAS;MAC9B/vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAIsR,EAAE,IAAI,EAAE,GAAKC,EAAE,KAAK,CAAE,GAAGF,SAAS;MACvD/vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAIuR,EAAE,IAAI,EAAE,GAAKC,EAAE,KAAK,EAAG,GAAGH,SAAS;MACxD/vB,IAAI,CAAC0e,OAAO,GAAG,CAAC,CAAC,GAAIwR,EAAE,IAAI,CAAC,GAAIH,SAAS;IAC3C;IAEA,KAAK,IAAIvT,CAAC,GAAGvoB,CAAC,GAAG,CAAC,EAAEk8B,EAAE,GAAGhB,MAAM,GAAG5jB,GAAG,EAAEiR,CAAC,GAAG2T,EAAE,EAAE3T,CAAC,IAAI,CAAC,EAAE;MACrDxc,IAAI,CAAC0e,OAAO,EAAE,CAAC,GACZjD,GAAG,CAACe,CAAC,CAAC,IAAI,EAAE,GAAKf,GAAG,CAACe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAG,GAAIf,GAAG,CAACe,CAAC,GAAG,CAAC,CAAC,IAAI,CAAE,GAAGuT,SAAS;IACvE;EACF;EAEA,OAAO;IAAEZ,MAAM,EAAEA,MAAM,GAAG5jB,GAAG;IAAEmT;EAAQ,CAAC;AAC1C;AAEA,SAAS0R,UAAUA,CAAC3U,GAAG,EAAEzb,IAAI,EAAE;EAC7B,IAAI7K,WAAW,CAACL,cAAc,EAAE;IAC9B,KAAK,IAAIb,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG8d,GAAG,CAAC1qB,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;MAC5C+L,IAAI,CAAC/L,CAAC,CAAC,GAAIwnB,GAAG,CAACxnB,CAAC,CAAC,GAAG,OAAO,GAAI,UAAU;IAC3C;EACF,CAAC,MAAM;IACL,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAG8d,GAAG,CAAC1qB,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,EAAE,EAAE;MAC5C+L,IAAI,CAAC/L,CAAC,CAAC,GAAIwnB,GAAG,CAACxnB,CAAC,CAAC,GAAG,SAAS,GAAI,UAAU;IAC7C;EACF;AACF;;;;;;;;;;;;AC5HgE;AACR;AACT;AACO;AAEtD,MAAMo8B,SAAS,SAAS59B,aAAa,CAAC;EACpCK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,WAAW,CAAC;EACzB;AACF;AAEA,MAAMwgC,cAAc,SAAS79B,aAAa,CAAC;EACzCK,WAAWA,CAACH,OAAO,EAAE49B,SAAS,EAAE;IAC9B,KAAK,CAAC59B,OAAO,EAAE,gBAAgB,CAAC;IAChC,IAAI,CAAC49B,SAAS,GAAGA,SAAS;EAC5B;AACF;AAEA,MAAMC,cAAc,SAAS/9B,aAAa,CAAC;EACzCK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,gBAAgB,CAAC;EAC9B;AACF;AAgBA,MAAM2gC,SAAS,GAAG,IAAI/7B,UAAU,CAAC,CAC9B,CAAC,EACD,CAAC,EAAG,CAAC,EACN,EAAE,EAAG,CAAC,EAAG,CAAC,EACT,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACd,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAChB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAG,CAAC,EACzB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC9B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC1B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAClB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACd,EAAE,EAAE,EAAE,EAAE,EAAE,EACV,EAAE,EAAE,EAAE,EACN,EAAE,CACH,CAAC;AAEF,MAAMg8B,OAAO,GAAG,IAAI;AACpB,MAAMC,OAAO,GAAG,GAAG;AACnB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,QAAQ,GAAG,IAAI;AACrB,MAAMC,UAAU,GAAG,IAAI;AAEvB,SAASC,iBAAiBA,CAACC,WAAW,EAAEttB,MAAM,EAAE;EAC9C,IAAIwc,CAAC,GAAG,CAAC;IACPpsB,CAAC;IACDuoB,CAAC;IACDzrB,MAAM,GAAG,EAAE;EACb,OAAOA,MAAM,GAAG,CAAC,IAAI,CAACogC,WAAW,CAACpgC,MAAM,GAAG,CAAC,CAAC,EAAE;IAC7CA,MAAM,EAAE;EACV;EACA,MAAMiC,IAAI,GAAG,CAAC;IAAEo+B,QAAQ,EAAE,EAAE;IAAEC,KAAK,EAAE;EAAE,CAAC,CAAC;EACzC,IAAI54B,CAAC,GAAGzF,IAAI,CAAC,CAAC,CAAC;IACb6sB,CAAC;EACH,KAAK5rB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlD,MAAM,EAAEkD,CAAC,EAAE,EAAE;IAC3B,KAAKuoB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2U,WAAW,CAACl9B,CAAC,CAAC,EAAEuoB,CAAC,EAAE,EAAE;MACnC/jB,CAAC,GAAGzF,IAAI,CAACs+B,GAAG,CAAC,CAAC;MACd74B,CAAC,CAAC24B,QAAQ,CAAC34B,CAAC,CAAC44B,KAAK,CAAC,GAAGxtB,MAAM,CAACwc,CAAC,CAAC;MAC/B,OAAO5nB,CAAC,CAAC44B,KAAK,GAAG,CAAC,EAAE;QAClB54B,CAAC,GAAGzF,IAAI,CAACs+B,GAAG,CAAC,CAAC;MAChB;MACA74B,CAAC,CAAC44B,KAAK,EAAE;MACTr+B,IAAI,CAACuB,IAAI,CAACkE,CAAC,CAAC;MACZ,OAAOzF,IAAI,CAACjC,MAAM,IAAIkD,CAAC,EAAE;QACvBjB,IAAI,CAACuB,IAAI,CAAEsrB,CAAC,GAAG;UAAEuR,QAAQ,EAAE,EAAE;UAAEC,KAAK,EAAE;QAAE,CAAE,CAAC;QAC3C54B,CAAC,CAAC24B,QAAQ,CAAC34B,CAAC,CAAC44B,KAAK,CAAC,GAAGxR,CAAC,CAACuR,QAAQ;QAChC34B,CAAC,GAAGonB,CAAC;MACP;MACAQ,CAAC,EAAE;IACL;IACA,IAAIpsB,CAAC,GAAG,CAAC,GAAGlD,MAAM,EAAE;MAElBiC,IAAI,CAACuB,IAAI,CAAEsrB,CAAC,GAAG;QAAEuR,QAAQ,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAE,CAAE,CAAC;MAC3C54B,CAAC,CAAC24B,QAAQ,CAAC34B,CAAC,CAAC44B,KAAK,CAAC,GAAGxR,CAAC,CAACuR,QAAQ;MAChC34B,CAAC,GAAGonB,CAAC;IACP;EACF;EACA,OAAO7sB,IAAI,CAAC,CAAC,CAAC,CAACo+B,QAAQ;AACzB;AAEA,SAASG,oBAAoBA,CAACplB,SAAS,EAAEqlB,GAAG,EAAEC,GAAG,EAAE;EACjD,OAAO,EAAE,IAAI,CAACtlB,SAAS,CAACulB,aAAa,GAAG,CAAC,IAAIF,GAAG,GAAGC,GAAG,CAAC;AACzD;AAEA,SAASE,UAAUA,CACjB7nB,IAAI,EACJ8nB,IAAI,EACJpZ,MAAM,EACNqZ,KAAK,EACLC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,WAAW,EACXC,cAAc,EACdC,UAAU,EACVC,cAAc,GAAG,KAAK,EACtB;EACA,MAAMC,WAAW,GAAGR,KAAK,CAACQ,WAAW;EACrC,MAAMC,WAAW,GAAGT,KAAK,CAACS,WAAW;EAErC,MAAMC,WAAW,GAAG/Z,MAAM;EAC1B,IAAIga,QAAQ,GAAG,CAAC;IACdC,SAAS,GAAG,CAAC;EAEf,SAASC,OAAOA,CAAA,EAAG;IACjB,IAAID,SAAS,GAAG,CAAC,EAAE;MACjBA,SAAS,EAAE;MACX,OAAQD,QAAQ,IAAIC,SAAS,GAAI,CAAC;IACpC;IACAD,QAAQ,GAAG1oB,IAAI,CAAC0O,MAAM,EAAE,CAAC;IACzB,IAAIga,QAAQ,KAAK,IAAI,EAAE;MACrB,MAAMG,QAAQ,GAAG7oB,IAAI,CAAC0O,MAAM,EAAE,CAAC;MAC/B,IAAIma,QAAQ,EAAE;QACZ,IAAIA,QAAQ,KAAiB,IAAI,IAAIP,cAAc,EAAE;UACnD5Z,MAAM,IAAI,CAAC;UAEX,MAAM+X,SAAS,GAAGqB,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;UACxCA,MAAM,IAAI,CAAC;UACX,IAAI+X,SAAS,GAAG,CAAC,IAAIA,SAAS,KAAKsB,KAAK,CAACtB,SAAS,EAAE;YAClD,MAAM,IAAID,cAAc,CACtB,mDAAmD,EACnDC,SACF,CAAC;UACH;QACF,CAAC,MAAM,IAAIoC,QAAQ,KAAiB,IAAI,EAAE;UACxC,IAAIP,cAAc,EAAE;YAElB,MAAMQ,cAAc,GAAGC,QAAQ,IAAIhB,KAAK,CAACiB,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAMjE,IACEF,cAAc,GAAG,CAAC,IAClBz+B,IAAI,CAACmb,KAAK,CAACuiB,KAAK,CAACtB,SAAS,GAAGqC,cAAc,CAAC,IAAI,CAAC,EACjD;cACA,MAAM,IAAItC,cAAc,CACtB,qDAAqD,GACnD,oDAAoD,EACtDsC,cACF,CAAC;YACH;UACF;UACA,MAAM,IAAIpC,cAAc,CACtB,mDACF,CAAC;QACH;QACA,MAAM,IAAIH,SAAS,CACjB,qBAAqB,CAAEmC,QAAQ,IAAI,CAAC,GAAIG,QAAQ,EAAEx7B,QAAQ,CAAC,EAAE,CAAC,EAChE,CAAC;MACH;IAEF;IACAs7B,SAAS,GAAG,CAAC;IACb,OAAOD,QAAQ,KAAK,CAAC;EACvB;EAEA,SAASO,aAAaA,CAACC,IAAI,EAAE;IAC3B,IAAIC,IAAI,GAAGD,IAAI;IACf,OAAO,IAAI,EAAE;MACXC,IAAI,GAAGA,IAAI,CAACP,OAAO,CAAC,CAAC,CAAC;MACtB,QAAQ,OAAOO,IAAI;QACjB,KAAK,QAAQ;UACX,OAAOA,IAAI;QACb,KAAK,QAAQ;UACX;MACJ;MACA,MAAM,IAAI5C,SAAS,CAAC,0BAA0B,CAAC;IACjD;EACF;EAEA,SAAS6C,OAAOA,CAACniC,MAAM,EAAE;IACvB,IAAImG,CAAC,GAAG,CAAC;IACT,OAAOnG,MAAM,GAAG,CAAC,EAAE;MACjBmG,CAAC,GAAIA,CAAC,IAAI,CAAC,GAAIw7B,OAAO,CAAC,CAAC;MACxB3hC,MAAM,EAAE;IACV;IACA,OAAOmG,CAAC;EACV;EAEA,SAASi8B,gBAAgBA,CAACpiC,MAAM,EAAE;IAChC,IAAIA,MAAM,KAAK,CAAC,EAAE;MAChB,OAAO2hC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC;IACA,MAAMx7B,CAAC,GAAGg8B,OAAO,CAACniC,MAAM,CAAC;IACzB,IAAImG,CAAC,IAAI,CAAC,IAAKnG,MAAM,GAAG,CAAE,EAAE;MAC1B,OAAOmG,CAAC;IACV;IACA,OAAOA,CAAC,IAAI,CAAC,CAAC,IAAInG,MAAM,CAAC,GAAG,CAAC;EAC/B;EAEA,SAASqiC,cAAcA,CAACjnB,SAAS,EAAEknB,WAAW,EAAE;IAC9C,MAAM/2B,CAAC,GAAGy2B,aAAa,CAAC5mB,SAAS,CAACmnB,cAAc,CAAC;IACjD,MAAMC,IAAI,GAAGj3B,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG62B,gBAAgB,CAAC72B,CAAC,CAAC;IAC9C6P,SAAS,CAACqnB,SAAS,CAACH,WAAW,CAAC,GAAGlnB,SAAS,CAACsnB,IAAI,IAAIF,IAAI;IACzD,IAAIlT,CAAC,GAAG,CAAC;IACT,OAAOA,CAAC,GAAG,EAAE,EAAE;MACb,MAAMqT,EAAE,GAAGX,aAAa,CAAC5mB,SAAS,CAACwnB,cAAc,CAAC;MAClD,MAAMtyB,CAAC,GAAGqyB,EAAE,GAAG,EAAE;QACfp8B,CAAC,GAAGo8B,EAAE,IAAI,CAAC;MACb,IAAIryB,CAAC,KAAK,CAAC,EAAE;QACX,IAAI/J,CAAC,GAAG,EAAE,EAAE;UACV;QACF;QACA+oB,CAAC,IAAI,EAAE;QACP;MACF;MACAA,CAAC,IAAI/oB,CAAC;MACN,MAAMs8B,CAAC,GAAGnD,SAAS,CAACpQ,CAAC,CAAC;MACtBlU,SAAS,CAACqnB,SAAS,CAACH,WAAW,GAAGO,CAAC,CAAC,GAAGT,gBAAgB,CAAC9xB,CAAC,CAAC;MAC1Dgf,CAAC,EAAE;IACL;EACF;EAEA,SAASwT,aAAaA,CAAC1nB,SAAS,EAAEknB,WAAW,EAAE;IAC7C,MAAM/2B,CAAC,GAAGy2B,aAAa,CAAC5mB,SAAS,CAACmnB,cAAc,CAAC;IACjD,MAAMC,IAAI,GAAGj3B,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG62B,gBAAgB,CAAC72B,CAAC,CAAC,IAAI61B,UAAU;IAC5DhmB,SAAS,CAACqnB,SAAS,CAACH,WAAW,CAAC,GAAGlnB,SAAS,CAACsnB,IAAI,IAAIF,IAAI;EAC3D;EAEA,SAASO,kBAAkBA,CAAC3nB,SAAS,EAAEknB,WAAW,EAAE;IAClDlnB,SAAS,CAACqnB,SAAS,CAACH,WAAW,CAAC,IAAIX,OAAO,CAAC,CAAC,IAAIP,UAAU;EAC7D;EAEA,IAAI4B,MAAM,GAAG,CAAC;EACd,SAASC,aAAaA,CAAC7nB,SAAS,EAAEknB,WAAW,EAAE;IAC7C,IAAIU,MAAM,GAAG,CAAC,EAAE;MACdA,MAAM,EAAE;MACR;IACF;IACA,IAAI1T,CAAC,GAAG2R,aAAa;IACrB,MAAMl6B,CAAC,GAAGm6B,WAAW;IACrB,OAAO5R,CAAC,IAAIvoB,CAAC,EAAE;MACb,MAAM47B,EAAE,GAAGX,aAAa,CAAC5mB,SAAS,CAACwnB,cAAc,CAAC;MAClD,MAAMtyB,CAAC,GAAGqyB,EAAE,GAAG,EAAE;QACfp8B,CAAC,GAAGo8B,EAAE,IAAI,CAAC;MACb,IAAIryB,CAAC,KAAK,CAAC,EAAE;QACX,IAAI/J,CAAC,GAAG,EAAE,EAAE;UACVy8B,MAAM,GAAGb,OAAO,CAAC57B,CAAC,CAAC,IAAI,CAAC,IAAIA,CAAC,CAAC,GAAG,CAAC;UAClC;QACF;QACA+oB,CAAC,IAAI,EAAE;QACP;MACF;MACAA,CAAC,IAAI/oB,CAAC;MACN,MAAMs8B,CAAC,GAAGnD,SAAS,CAACpQ,CAAC,CAAC;MACtBlU,SAAS,CAACqnB,SAAS,CAACH,WAAW,GAAGO,CAAC,CAAC,GAClCT,gBAAgB,CAAC9xB,CAAC,CAAC,IAAI,CAAC,IAAI8wB,UAAU,CAAC;MACzC9R,CAAC,EAAE;IACL;EACF;EAEA,IAAI4T,iBAAiB,GAAG,CAAC;IACvBC,qBAAqB;EACvB,SAASC,kBAAkBA,CAAChoB,SAAS,EAAEknB,WAAW,EAAE;IAClD,IAAIhT,CAAC,GAAG2R,aAAa;IACrB,MAAMl6B,CAAC,GAAGm6B,WAAW;IACrB,IAAI36B,CAAC,GAAG,CAAC;IACT,IAAI+J,CAAC;IACL,IAAIqyB,EAAE;IACN,OAAOrT,CAAC,IAAIvoB,CAAC,EAAE;MACb,MAAMs8B,OAAO,GAAGf,WAAW,GAAG5C,SAAS,CAACpQ,CAAC,CAAC;MAC1C,MAAMgU,IAAI,GAAGloB,SAAS,CAACqnB,SAAS,CAACY,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;MACtD,QAAQH,iBAAiB;QACvB,KAAK,CAAC;UACJP,EAAE,GAAGX,aAAa,CAAC5mB,SAAS,CAACwnB,cAAc,CAAC;UAC5CtyB,CAAC,GAAGqyB,EAAE,GAAG,EAAE;UACXp8B,CAAC,GAAGo8B,EAAE,IAAI,CAAC;UACX,IAAIryB,CAAC,KAAK,CAAC,EAAE;YACX,IAAI/J,CAAC,GAAG,EAAE,EAAE;cACVy8B,MAAM,GAAGb,OAAO,CAAC57B,CAAC,CAAC,IAAI,CAAC,IAAIA,CAAC,CAAC;cAC9B28B,iBAAiB,GAAG,CAAC;YACvB,CAAC,MAAM;cACL38B,CAAC,GAAG,EAAE;cACN28B,iBAAiB,GAAG,CAAC;YACvB;UACF,CAAC,MAAM;YACL,IAAI5yB,CAAC,KAAK,CAAC,EAAE;cACX,MAAM,IAAIgvB,SAAS,CAAC,sBAAsB,CAAC;YAC7C;YACA6D,qBAAqB,GAAGf,gBAAgB,CAAC9xB,CAAC,CAAC;YAC3C4yB,iBAAiB,GAAG38B,CAAC,GAAG,CAAC,GAAG,CAAC;UAC/B;UACA;QACF,KAAK,CAAC;QACN,KAAK,CAAC;UACJ,IAAI6U,SAAS,CAACqnB,SAAS,CAACY,OAAO,CAAC,EAAE;YAChCjoB,SAAS,CAACqnB,SAAS,CAACY,OAAO,CAAC,IAAIC,IAAI,IAAI3B,OAAO,CAAC,CAAC,IAAIP,UAAU,CAAC;UAClE,CAAC,MAAM;YACL76B,CAAC,EAAE;YACH,IAAIA,CAAC,KAAK,CAAC,EAAE;cACX28B,iBAAiB,GAAGA,iBAAiB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;YACrD;UACF;UACA;QACF,KAAK,CAAC;UACJ,IAAI9nB,SAAS,CAACqnB,SAAS,CAACY,OAAO,CAAC,EAAE;YAChCjoB,SAAS,CAACqnB,SAAS,CAACY,OAAO,CAAC,IAAIC,IAAI,IAAI3B,OAAO,CAAC,CAAC,IAAIP,UAAU,CAAC;UAClE,CAAC,MAAM;YACLhmB,SAAS,CAACqnB,SAAS,CAACY,OAAO,CAAC,GAAGF,qBAAqB,IAAI/B,UAAU;YAClE8B,iBAAiB,GAAG,CAAC;UACvB;UACA;QACF,KAAK,CAAC;UACJ,IAAI9nB,SAAS,CAACqnB,SAAS,CAACY,OAAO,CAAC,EAAE;YAChCjoB,SAAS,CAACqnB,SAAS,CAACY,OAAO,CAAC,IAAIC,IAAI,IAAI3B,OAAO,CAAC,CAAC,IAAIP,UAAU,CAAC;UAClE;UACA;MACJ;MACA9R,CAAC,EAAE;IACL;IACA,IAAI4T,iBAAiB,KAAK,CAAC,EAAE;MAC3BF,MAAM,EAAE;MACR,IAAIA,MAAM,KAAK,CAAC,EAAE;QAChBE,iBAAiB,GAAG,CAAC;MACvB;IACF;EACF;EAEA,IAAIpB,QAAQ,GAAG,CAAC;EAChB,SAASyB,SAASA,CAACnoB,SAAS,EAAE3O,MAAM,EAAE+2B,GAAG,EAAE/C,GAAG,EAAEC,GAAG,EAAE;IACnD,MAAM+C,MAAM,GAAID,GAAG,GAAGlC,WAAW,GAAI,CAAC;IACtC,MAAMoC,MAAM,GAAGF,GAAG,GAAGlC,WAAW;IAChCQ,QAAQ,GAAG2B,MAAM,GAAGroB,SAAS,CAACxF,CAAC,GAAG6qB,GAAG;IACrC,MAAMkD,QAAQ,GAAGD,MAAM,GAAGtoB,SAAS,CAAC8M,CAAC,GAAGwY,GAAG;IAC3C,MAAM4B,WAAW,GAAG9B,oBAAoB,CAACplB,SAAS,EAAE0mB,QAAQ,EAAE6B,QAAQ,CAAC;IACvEl3B,MAAM,CAAC2O,SAAS,EAAEknB,WAAW,CAAC;EAChC;EAEA,SAASsB,WAAWA,CAACxoB,SAAS,EAAE3O,MAAM,EAAE+2B,GAAG,EAAE;IAC3C1B,QAAQ,GAAI0B,GAAG,GAAGpoB,SAAS,CAACulB,aAAa,GAAI,CAAC;IAC9C,MAAMgD,QAAQ,GAAGH,GAAG,GAAGpoB,SAAS,CAACulB,aAAa;IAC9C,MAAM2B,WAAW,GAAG9B,oBAAoB,CAACplB,SAAS,EAAE0mB,QAAQ,EAAE6B,QAAQ,CAAC;IACvEl3B,MAAM,CAAC2O,SAAS,EAAEknB,WAAW,CAAC;EAChC;EAEA,MAAMuB,gBAAgB,GAAG9C,UAAU,CAAC/gC,MAAM;EAC1C,IAAIob,SAAS,EAAElY,CAAC,EAAEuoB,CAAC,EAAE6D,CAAC,EAAEnpB,CAAC;EACzB,IAAI29B,QAAQ;EACZ,IAAIvC,WAAW,EAAE;IACf,IAAIN,aAAa,KAAK,CAAC,EAAE;MACvB6C,QAAQ,GAAG3C,cAAc,KAAK,CAAC,GAAG2B,aAAa,GAAGC,kBAAkB;IACtE,CAAC,MAAM;MACLe,QAAQ,GAAG3C,cAAc,KAAK,CAAC,GAAG8B,aAAa,GAAGG,kBAAkB;IACtE;EACF,CAAC,MAAM;IACLU,QAAQ,GAAGzB,cAAc;EAC3B;EAEA,IAAImB,GAAG,GAAG,CAAC;IACTO,UAAU;EACZ,MAAMC,WAAW,GACfH,gBAAgB,KAAK,CAAC,GAClB9C,UAAU,CAAC,CAAC,CAAC,CAACJ,aAAa,GAAGI,UAAU,CAAC,CAAC,CAAC,CAACkD,eAAe,GAC3D3C,WAAW,GAAGR,KAAK,CAACoD,aAAa;EAEvC,IAAIhc,CAAC,EAAEtS,CAAC;EACR,OAAO4tB,GAAG,IAAIQ,WAAW,EAAE;IAEzB,MAAMG,SAAS,GAAGnD,aAAa,GAC3B59B,IAAI,CAACC,GAAG,CAAC2gC,WAAW,GAAGR,GAAG,EAAExC,aAAa,CAAC,GAC1CgD,WAAW;IAMf,IAAIG,SAAS,GAAG,CAAC,EAAE;MACjB,KAAKjhC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2gC,gBAAgB,EAAE3gC,CAAC,EAAE,EAAE;QACrC69B,UAAU,CAAC79B,CAAC,CAAC,CAACw/B,IAAI,GAAG,CAAC;MACxB;MACAM,MAAM,GAAG,CAAC;MAEV,IAAIa,gBAAgB,KAAK,CAAC,EAAE;QAC1BzoB,SAAS,GAAG2lB,UAAU,CAAC,CAAC,CAAC;QACzB,KAAK56B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg+B,SAAS,EAAEh+B,CAAC,EAAE,EAAE;UAC9By9B,WAAW,CAACxoB,SAAS,EAAE0oB,QAAQ,EAAEN,GAAG,CAAC;UACrCA,GAAG,EAAE;QACP;MACF,CAAC,MAAM;QACL,KAAKr9B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGg+B,SAAS,EAAEh+B,CAAC,EAAE,EAAE;UAC9B,KAAKjD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2gC,gBAAgB,EAAE3gC,CAAC,EAAE,EAAE;YACrCkY,SAAS,GAAG2lB,UAAU,CAAC79B,CAAC,CAAC;YACzBglB,CAAC,GAAG9M,SAAS,CAAC8M,CAAC;YACftS,CAAC,GAAGwF,SAAS,CAACxF,CAAC;YACf,KAAK6V,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG7V,CAAC,EAAE6V,CAAC,EAAE,EAAE;cACtB,KAAK6D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGpH,CAAC,EAAEoH,CAAC,EAAE,EAAE;gBACtBiU,SAAS,CAACnoB,SAAS,EAAE0oB,QAAQ,EAAEN,GAAG,EAAE/X,CAAC,EAAE6D,CAAC,CAAC;cAC3C;YACF;UACF;UACAkU,GAAG,EAAE;QACP;MACF;IACF;IAGA9B,SAAS,GAAG,CAAC;IACbqC,UAAU,GAAGK,kBAAkB,CAACrrB,IAAI,EAAE8nB,IAAI,EAAEpZ,MAAM,CAAC;IACnD,IAAI,CAACsc,UAAU,EAAE;MACf;IACF;IACA,IAAIA,UAAU,CAACM,OAAO,EAAE;MAGtB,MAAMC,UAAU,GAAGH,SAAS,GAAG,CAAC,GAAG,YAAY,GAAG,WAAW;MAC7DllC,IAAI,CACF,gBAAgBqlC,UAAU,iCAAiCP,UAAU,CAACM,OAAO,EAC/E,CAAC;MACD5c,MAAM,GAAGsc,UAAU,CAACtc,MAAM;IAC5B;IACA,IAAIsc,UAAU,CAACQ,MAAM,IAAI,MAAM,IAAIR,UAAU,CAACQ,MAAM,IAAI,MAAM,EAAE;MAE9D9c,MAAM,IAAI,CAAC;IACb,CAAC,MAAM;MACL;IACF;EACF;EAEA,OAAOA,MAAM,GAAG+Z,WAAW;AAC7B;AAOA,SAASgD,kBAAkBA,CAACppB,SAAS,EAAEqpB,iBAAiB,EAAE/8B,CAAC,EAAE;EAC3D,MAAMg9B,EAAE,GAAGtpB,SAAS,CAACupB,iBAAiB;IACpClC,SAAS,GAAGrnB,SAAS,CAACqnB,SAAS;EACjC,IAAImC,EAAE,EAAE5uB,EAAE,EAAEC,EAAE,EAAE4uB,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE;EAClC,IAAIr9B,EAAE,EAAEC,EAAE,EAAEwG,EAAE,EAAE62B,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE;EAClC,IAAI/5B,CAAC;EAEL,IAAI,CAACm5B,EAAE,EAAE;IACP,MAAM,IAAIpF,SAAS,CAAC,sCAAsC,CAAC;EAC7D;EAGA,KAAK,IAAImB,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG,EAAE,EAAEA,GAAG,IAAI,CAAC,EAAE;IAEpC74B,EAAE,GAAG66B,SAAS,CAACgC,iBAAiB,GAAGhE,GAAG,CAAC;IACvC54B,EAAE,GAAG46B,SAAS,CAACgC,iBAAiB,GAAGhE,GAAG,GAAG,CAAC,CAAC;IAC3CpyB,EAAE,GAAGo0B,SAAS,CAACgC,iBAAiB,GAAGhE,GAAG,GAAG,CAAC,CAAC;IAC3CyE,EAAE,GAAGzC,SAAS,CAACgC,iBAAiB,GAAGhE,GAAG,GAAG,CAAC,CAAC;IAC3C0E,EAAE,GAAG1C,SAAS,CAACgC,iBAAiB,GAAGhE,GAAG,GAAG,CAAC,CAAC;IAC3C2E,EAAE,GAAG3C,SAAS,CAACgC,iBAAiB,GAAGhE,GAAG,GAAG,CAAC,CAAC;IAC3C4E,EAAE,GAAG5C,SAAS,CAACgC,iBAAiB,GAAGhE,GAAG,GAAG,CAAC,CAAC;IAC3C6E,EAAE,GAAG7C,SAAS,CAACgC,iBAAiB,GAAGhE,GAAG,GAAG,CAAC,CAAC;IAG3C74B,EAAE,IAAI88B,EAAE,CAACjE,GAAG,CAAC;IAGb,IAAI,CAAC54B,EAAE,GAAGwG,EAAE,GAAG62B,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,MAAM,CAAC,EAAE;MAC5C/5B,CAAC,GAAI00B,QAAQ,GAAGr4B,EAAE,GAAG,GAAG,IAAK,EAAE;MAC/BF,CAAC,CAAC+4B,GAAG,CAAC,GAAGl1B,CAAC;MACV7D,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGl1B,CAAC;MACd7D,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGl1B,CAAC;MACd7D,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGl1B,CAAC;MACd7D,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGl1B,CAAC;MACd7D,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGl1B,CAAC;MACd7D,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGl1B,CAAC;MACd7D,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGl1B,CAAC;MACd;IACF;IAEA1D,EAAE,IAAI68B,EAAE,CAACjE,GAAG,GAAG,CAAC,CAAC;IACjBpyB,EAAE,IAAIq2B,EAAE,CAACjE,GAAG,GAAG,CAAC,CAAC;IACjByE,EAAE,IAAIR,EAAE,CAACjE,GAAG,GAAG,CAAC,CAAC;IACjB0E,EAAE,IAAIT,EAAE,CAACjE,GAAG,GAAG,CAAC,CAAC;IACjB2E,EAAE,IAAIV,EAAE,CAACjE,GAAG,GAAG,CAAC,CAAC;IACjB4E,EAAE,IAAIX,EAAE,CAACjE,GAAG,GAAG,CAAC,CAAC;IACjB6E,EAAE,IAAIZ,EAAE,CAACjE,GAAG,GAAG,CAAC,CAAC;IAGjBmE,EAAE,GAAI3E,QAAQ,GAAGr4B,EAAE,GAAG,GAAG,IAAK,CAAC;IAC/BoO,EAAE,GAAIiqB,QAAQ,GAAGkF,EAAE,GAAG,GAAG,IAAK,CAAC;IAC/BlvB,EAAE,GAAG5H,EAAE;IACPw2B,EAAE,GAAGQ,EAAE;IACPP,EAAE,GAAI5E,UAAU,IAAIr4B,EAAE,GAAGy9B,EAAE,CAAC,GAAG,GAAG,IAAK,CAAC;IACxCL,EAAE,GAAI/E,UAAU,IAAIr4B,EAAE,GAAGy9B,EAAE,CAAC,GAAG,GAAG,IAAK,CAAC;IACxCP,EAAE,GAAGG,EAAE,IAAI,CAAC;IACZF,EAAE,GAAGI,EAAE,IAAI,CAAC;IAGZR,EAAE,GAAIA,EAAE,GAAG5uB,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAG4uB,EAAE,GAAG5uB,EAAE;IACZzK,CAAC,GAAI0K,EAAE,GAAG+pB,OAAO,GAAG6E,EAAE,GAAG9E,OAAO,GAAG,GAAG,IAAK,CAAC;IAC5C9pB,EAAE,GAAIA,EAAE,GAAG8pB,OAAO,GAAG8E,EAAE,GAAG7E,OAAO,GAAG,GAAG,IAAK,CAAC;IAC7C6E,EAAE,GAAGt5B,CAAC;IACNu5B,EAAE,GAAIA,EAAE,GAAGE,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGF,EAAE,GAAGE,EAAE;IACZC,EAAE,GAAIA,EAAE,GAAGF,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGE,EAAE,GAAGF,EAAE;IAGZH,EAAE,GAAIA,EAAE,GAAGC,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGD,EAAE,GAAGC,EAAE;IACZ7uB,EAAE,GAAIA,EAAE,GAAGC,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGD,EAAE,GAAGC,EAAE;IACZ1K,CAAC,GAAIu5B,EAAE,GAAGhF,OAAO,GAAGmF,EAAE,GAAGpF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9CiF,EAAE,GAAIA,EAAE,GAAGjF,OAAO,GAAGoF,EAAE,GAAGnF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/CmF,EAAE,GAAG15B,CAAC;IACNA,CAAC,GAAIw5B,EAAE,GAAGnF,OAAO,GAAGoF,EAAE,GAAGrF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9CoF,EAAE,GAAIA,EAAE,GAAGpF,OAAO,GAAGqF,EAAE,GAAGpF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/CoF,EAAE,GAAGz5B,CAAC;IAGN7D,CAAC,CAAC+4B,GAAG,CAAC,GAAGmE,EAAE,GAAGK,EAAE;IAChBv9B,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGmE,EAAE,GAAGK,EAAE;IACpBv9B,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGzqB,EAAE,GAAGgvB,EAAE;IACpBt9B,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGzqB,EAAE,GAAGgvB,EAAE;IACpBt9B,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGxqB,EAAE,GAAG8uB,EAAE;IACpBr9B,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGxqB,EAAE,GAAG8uB,EAAE;IACpBr9B,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGoE,EAAE,GAAGC,EAAE;IACpBp9B,CAAC,CAAC+4B,GAAG,GAAG,CAAC,CAAC,GAAGoE,EAAE,GAAGC,EAAE;EACtB;EAGA,KAAK,IAAIpE,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG,CAAC,EAAE,EAAEA,GAAG,EAAE;IAChC94B,EAAE,GAAGF,CAAC,CAACg5B,GAAG,CAAC;IACX74B,EAAE,GAAGH,CAAC,CAACg5B,GAAG,GAAG,CAAC,CAAC;IACfryB,EAAE,GAAG3G,CAAC,CAACg5B,GAAG,GAAG,EAAE,CAAC;IAChBwE,EAAE,GAAGx9B,CAAC,CAACg5B,GAAG,GAAG,EAAE,CAAC;IAChByE,EAAE,GAAGz9B,CAAC,CAACg5B,GAAG,GAAG,EAAE,CAAC;IAChB0E,EAAE,GAAG19B,CAAC,CAACg5B,GAAG,GAAG,EAAE,CAAC;IAChB2E,EAAE,GAAG39B,CAAC,CAACg5B,GAAG,GAAG,EAAE,CAAC;IAChB4E,EAAE,GAAG59B,CAAC,CAACg5B,GAAG,GAAG,EAAE,CAAC;IAGhB,IAAI,CAAC74B,EAAE,GAAGwG,EAAE,GAAG62B,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,GAAGC,EAAE,MAAM,CAAC,EAAE;MAC5C/5B,CAAC,GAAI00B,QAAQ,GAAGr4B,EAAE,GAAG,IAAI,IAAK,EAAE;MAEhC,IAAI2D,CAAC,GAAG,CAAC,IAAI,EAAE;QACbA,CAAC,GAAG,CAAC;MACP,CAAC,MAAM,IAAIA,CAAC,IAAI,IAAI,EAAE;QACpBA,CAAC,GAAG,GAAG;MACT,CAAC,MAAM;QACLA,CAAC,GAAIA,CAAC,GAAG,IAAI,IAAK,CAAC;MACrB;MACAk3B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,CAAC,GAAGn1B,CAAC;MACtCk3B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,CAAC,CAAC,GAAGn1B,CAAC;MAC1Ck3B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAGn1B,CAAC;MAC3Ck3B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAGn1B,CAAC;MAC3Ck3B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAGn1B,CAAC;MAC3Ck3B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAGn1B,CAAC;MAC3Ck3B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAGn1B,CAAC;MAC3Ck3B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAGn1B,CAAC;MAC3C;IACF;IAGAq5B,EAAE,GAAI3E,QAAQ,GAAGr4B,EAAE,GAAG,IAAI,IAAK,EAAE;IACjCoO,EAAE,GAAIiqB,QAAQ,GAAGkF,EAAE,GAAG,IAAI,IAAK,EAAE;IACjClvB,EAAE,GAAG5H,EAAE;IACPw2B,EAAE,GAAGQ,EAAE;IACPP,EAAE,GAAI5E,UAAU,IAAIr4B,EAAE,GAAGy9B,EAAE,CAAC,GAAG,IAAI,IAAK,EAAE;IAC1CL,EAAE,GAAI/E,UAAU,IAAIr4B,EAAE,GAAGy9B,EAAE,CAAC,GAAG,IAAI,IAAK,EAAE;IAC1CP,EAAE,GAAGG,EAAE;IACPF,EAAE,GAAGI,EAAE;IAKPR,EAAE,GAAG,CAAEA,EAAE,GAAG5uB,EAAE,GAAG,CAAC,IAAK,CAAC,IAAI,IAAI;IAChCA,EAAE,GAAG4uB,EAAE,GAAG5uB,EAAE;IACZzK,CAAC,GAAI0K,EAAE,GAAG+pB,OAAO,GAAG6E,EAAE,GAAG9E,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9C9pB,EAAE,GAAIA,EAAE,GAAG8pB,OAAO,GAAG8E,EAAE,GAAG7E,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/C6E,EAAE,GAAGt5B,CAAC;IACNu5B,EAAE,GAAIA,EAAE,GAAGE,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGF,EAAE,GAAGE,EAAE;IACZC,EAAE,GAAIA,EAAE,GAAGF,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGE,EAAE,GAAGF,EAAE;IAGZH,EAAE,GAAIA,EAAE,GAAGC,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGD,EAAE,GAAGC,EAAE;IACZ7uB,EAAE,GAAIA,EAAE,GAAGC,EAAE,GAAG,CAAC,IAAK,CAAC;IACvBA,EAAE,GAAGD,EAAE,GAAGC,EAAE;IACZ1K,CAAC,GAAIu5B,EAAE,GAAGhF,OAAO,GAAGmF,EAAE,GAAGpF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9CiF,EAAE,GAAIA,EAAE,GAAGjF,OAAO,GAAGoF,EAAE,GAAGnF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/CmF,EAAE,GAAG15B,CAAC;IACNA,CAAC,GAAIw5B,EAAE,GAAGnF,OAAO,GAAGoF,EAAE,GAAGrF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC9CoF,EAAE,GAAIA,EAAE,GAAGpF,OAAO,GAAGqF,EAAE,GAAGpF,OAAO,GAAG,IAAI,IAAK,EAAE;IAC/CoF,EAAE,GAAGz5B,CAAC;IAGN3D,EAAE,GAAGg9B,EAAE,GAAGK,EAAE;IACZK,EAAE,GAAGV,EAAE,GAAGK,EAAE;IACZp9B,EAAE,GAAGmO,EAAE,GAAGgvB,EAAE;IACZK,EAAE,GAAGrvB,EAAE,GAAGgvB,EAAE;IACZ32B,EAAE,GAAG4H,EAAE,GAAG8uB,EAAE;IACZK,EAAE,GAAGnvB,EAAE,GAAG8uB,EAAE;IACZG,EAAE,GAAGL,EAAE,GAAGC,EAAE;IACZK,EAAE,GAAGN,EAAE,GAAGC,EAAE;IAGZ,IAAIl9B,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIC,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIwG,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAI62B,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIC,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIC,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIC,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IACA,IAAIC,EAAE,GAAG,EAAE,EAAE;MACXA,EAAE,GAAG,CAAC;IACR,CAAC,MAAM,IAAIA,EAAE,IAAI,IAAI,EAAE;MACrBA,EAAE,GAAG,GAAG;IACV,CAAC,MAAM;MACLA,EAAE,KAAK,CAAC;IACV;IAGA7C,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,CAAC,GAAG94B,EAAE;IACvC66B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,CAAC,CAAC,GAAG74B,EAAE;IAC3C46B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAGryB,EAAE;IAC5Co0B,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAGwE,EAAE;IAC5CzC,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAGyE,EAAE;IAC5C1C,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAG0E,EAAE;IAC5C3C,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAG2E,EAAE;IAC5C5C,SAAS,CAACgC,iBAAiB,GAAG/D,GAAG,GAAG,EAAE,CAAC,GAAG4E,EAAE;EAC9C;AACF;AAEA,SAASC,kBAAkBA,CAACzE,KAAK,EAAE1lB,SAAS,EAAE;EAC5C,MAAMulB,aAAa,GAAGvlB,SAAS,CAACulB,aAAa;EAC7C,MAAMsD,eAAe,GAAG7oB,SAAS,CAAC6oB,eAAe;EACjD,MAAMuB,iBAAiB,GAAG,IAAIrjB,UAAU,CAAC,EAAE,CAAC;EAE5C,KAAK,IAAI2f,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGmC,eAAe,EAAEnC,QAAQ,EAAE,EAAE;IAC7D,KAAK,IAAI6B,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGhD,aAAa,EAAEgD,QAAQ,EAAE,EAAE;MAC3D,MAAMlc,MAAM,GAAG+Y,oBAAoB,CAACplB,SAAS,EAAE0mB,QAAQ,EAAE6B,QAAQ,CAAC;MAClEa,kBAAkB,CAACppB,SAAS,EAAEqM,MAAM,EAAE+d,iBAAiB,CAAC;IAC1D;EACF;EACA,OAAOpqB,SAAS,CAACqnB,SAAS;AAC5B;AAEA,SAAS2B,kBAAkBA,CAACrrB,IAAI,EAAE8nB,IAAI,EAAE4E,UAAU,EAAEC,QAAQ,GAAGD,UAAU,EAAE;EACzE,MAAME,MAAM,GAAG5sB,IAAI,CAAC/Y,MAAM,GAAG,CAAC;EAC9B,IAAI4lC,MAAM,GAAGF,QAAQ,GAAGD,UAAU,GAAGC,QAAQ,GAAGD,UAAU;EAE1D,IAAIA,UAAU,IAAIE,MAAM,EAAE;IACxB,OAAO,IAAI;EACb;EACA,MAAME,aAAa,GAAGhF,IAAI,CAAC5pB,SAAS,CAACwuB,UAAU,CAAC;EAChD,IAAII,aAAa,IAAI,MAAM,IAAIA,aAAa,IAAI,MAAM,EAAE;IACtD,OAAO;MACLxB,OAAO,EAAE,IAAI;MACbE,MAAM,EAAEsB,aAAa;MACrBpe,MAAM,EAAEge;IACV,CAAC;EACH;EACA,IAAIK,SAAS,GAAGjF,IAAI,CAAC5pB,SAAS,CAAC2uB,MAAM,CAAC;EACtC,OAAO,EAAEE,SAAS,IAAI,MAAM,IAAIA,SAAS,IAAI,MAAM,CAAC,EAAE;IACpD,IAAI,EAAEF,MAAM,IAAID,MAAM,EAAE;MACtB,OAAO,IAAI;IACb;IACAG,SAAS,GAAGjF,IAAI,CAAC5pB,SAAS,CAAC2uB,MAAM,CAAC;EACpC;EACA,OAAO;IACLvB,OAAO,EAAEwB,aAAa,CAACz/B,QAAQ,CAAC,EAAE,CAAC;IACnCm+B,MAAM,EAAEuB,SAAS;IACjBre,MAAM,EAAEme;EACV,CAAC;AACH;AAEA,SAASG,iBAAiBA,CAACjF,KAAK,EAAE;EAChC,MAAMQ,WAAW,GAAGl+B,IAAI,CAACoc,IAAI,CAACshB,KAAK,CAACkF,cAAc,GAAG,CAAC,GAAGlF,KAAK,CAACmF,IAAI,CAAC;EACpE,MAAM/B,aAAa,GAAG9gC,IAAI,CAACoc,IAAI,CAACshB,KAAK,CAACtB,SAAS,GAAG,CAAC,GAAGsB,KAAK,CAACoF,IAAI,CAAC;EACjE,KAAK,MAAM9qB,SAAS,IAAI0lB,KAAK,CAACC,UAAU,EAAE;IACxC,MAAMJ,aAAa,GAAGv9B,IAAI,CAACoc,IAAI,CAC5Bpc,IAAI,CAACoc,IAAI,CAACshB,KAAK,CAACkF,cAAc,GAAG,CAAC,CAAC,GAAG5qB,SAAS,CAAC8M,CAAC,GAAI4Y,KAAK,CAACmF,IAC9D,CAAC;IACD,MAAMhC,eAAe,GAAG7gC,IAAI,CAACoc,IAAI,CAC9Bpc,IAAI,CAACoc,IAAI,CAACshB,KAAK,CAACtB,SAAS,GAAG,CAAC,CAAC,GAAGpkB,SAAS,CAACxF,CAAC,GAAIkrB,KAAK,CAACoF,IACzD,CAAC;IACD,MAAMC,mBAAmB,GAAG7E,WAAW,GAAGlmB,SAAS,CAAC8M,CAAC;IACrD,MAAMke,qBAAqB,GAAGlC,aAAa,GAAG9oB,SAAS,CAACxF,CAAC;IAEzD,MAAMywB,gBAAgB,GACpB,EAAE,GAAGD,qBAAqB,IAAID,mBAAmB,GAAG,CAAC,CAAC;IACxD/qB,SAAS,CAACqnB,SAAS,GAAG,IAAItgB,UAAU,CAACkkB,gBAAgB,CAAC;IACtDjrB,SAAS,CAACulB,aAAa,GAAGA,aAAa;IACvCvlB,SAAS,CAAC6oB,eAAe,GAAGA,eAAe;EAC7C;EACAnD,KAAK,CAACQ,WAAW,GAAGA,WAAW;EAC/BR,KAAK,CAACoD,aAAa,GAAGA,aAAa;AACrC;AAEA,SAASoC,aAAaA,CAACvtB,IAAI,EAAE8nB,IAAI,EAAEpZ,MAAM,EAAE;EACzC,MAAMznB,MAAM,GAAG6gC,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;EACrCA,MAAM,IAAI,CAAC;EACX,IAAI8e,SAAS,GAAG9e,MAAM,GAAGznB,MAAM,GAAG,CAAC;EAEnC,MAAM+jC,UAAU,GAAGK,kBAAkB,CAACrrB,IAAI,EAAE8nB,IAAI,EAAE0F,SAAS,EAAE9e,MAAM,CAAC;EACpE,IAAIsc,UAAU,EAAEM,OAAO,EAAE;IACvBplC,IAAI,CACF,uDAAuD,GACrD8kC,UAAU,CAACM,OACf,CAAC;IACDkC,SAAS,GAAGxC,UAAU,CAACtc,MAAM;EAC/B;EAEA,MAAME,KAAK,GAAG5O,IAAI,CAACxV,QAAQ,CAACkkB,MAAM,EAAE8e,SAAS,CAAC;EAC9C,OAAO;IACLC,OAAO,EAAE7e,KAAK;IACd8e,SAAS,EAAEhf,MAAM;IACjBif,SAAS,EAAEjf,MAAM,GAAGE,KAAK,CAAC3nB;EAC5B,CAAC;AACH;AAEA,SAAS2mC,QAAQA,CAAC5tB,IAAI,EAAE8nB,IAAI,EAAEpZ,MAAM,EAAE;EACpC,MAAMznB,MAAM,GAAG6gC,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;EACrCA,MAAM,IAAI,CAAC;EACX,MAAM8e,SAAS,GAAG9e,MAAM,GAAGznB,MAAM,GAAG,CAAC;EAErC,MAAM+jC,UAAU,GAAGK,kBAAkB,CAACrrB,IAAI,EAAE8nB,IAAI,EAAE0F,SAAS,EAAE9e,MAAM,CAAC;EACpE,IAAIsc,UAAU,EAAEM,OAAO,EAAE;IACvB,OAAON,UAAU,CAACtc,MAAM;EAC1B;EACA,OAAO8e,SAAS;AAClB;AAEA,MAAMK,SAAS,CAAC;EACd7kC,WAAWA,CAAC;IAAE8kC,eAAe,GAAG,IAAI;IAAEC,cAAc,GAAG,CAAC;EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;IAChE,IAAI,CAACC,gBAAgB,GAAGF,eAAe;IACvC,IAAI,CAACG,eAAe,GAAGF,cAAc;EACvC;EAEA,OAAOG,kBAAkBA,CAACluB,IAAI,EAAE+tB,cAAc,GAAG,CAAC,CAAC,EAAE;IACnD,MAAMjG,IAAI,GAAG,IAAIqG,QAAQ,CAACnuB,IAAI,CAAC5U,MAAM,EAAE4U,IAAI,CAACouB,UAAU,EAAEpuB,IAAI,CAACD,UAAU,CAAC;IACxE,IAAIsuB,WAAW,GAAG,IAAI;IACtB,IAAI3f,MAAM,GAAG,CAAC;IACd,IAAI4f,aAAa,GAAG,IAAI;IACxB,IAAItD,UAAU,GAAGlD,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;IACvCA,MAAM,IAAI,CAAC;IACX,IAAIsc,UAAU,KAAkC,MAAM,EAAE;MACtD,MAAM,IAAIzE,SAAS,CAAC,eAAe,CAAC;IACtC;IACAyE,UAAU,GAAGlD,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;IACnCA,MAAM,IAAI,CAAC;IAEX6f,UAAU,EAAE,OAAOvD,UAAU,KAAgC,MAAM,EAAE;MACnE,QAAQA,UAAU;QAChB,KAAK,MAAM;UAGT,MAAM;YAAEyC,OAAO;YAAEC,SAAS;YAAEC;UAAU,CAAC,GAAGJ,aAAa,CACrDvtB,IAAI,EACJ8nB,IAAI,EACJpZ,MACF,CAAC;UACDA,MAAM,GAAGif,SAAS;UAGlB,IACEF,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAChBA,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAChB;YACA,IAAIY,WAAW,EAAE;cACf,MAAM,IAAI9H,SAAS,CAAC,8BAA8B,CAAC;YACrD;YAGA8H,WAAW,GAAG;cAAEG,SAAS,EAAEd,SAAS,GAAG,CAAC;cAAEe,OAAO,EAAEd;YAAU,CAAC;UAChE;UACA3C,UAAU,GAAGlD,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;UACnCA,MAAM,IAAI,CAAC;UACX;QACF,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;UAKT4f,aAAa,GAAGtuB,IAAI,CAAC0O,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;UAC9C,MAAM6f,UAAU;QAClB,KAAK,MAAM;UACT,IAAIvuB,IAAI,CAAC0O,MAAM,CAAC,KAAK,IAAI,EAAE;YAEzBA,MAAM,EAAE;UACV;UACA;MACJ;MACAA,MAAM,GAAGkf,QAAQ,CAAC5tB,IAAI,EAAE8nB,IAAI,EAAEpZ,MAAM,CAAC;MACrCsc,UAAU,GAAGlD,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;MACnCA,MAAM,IAAI,CAAC;IACb;IACA,IAAI4f,aAAa,KAAK,CAAC,EAAE;MACvB,OAAO,IAAI;IACb;IACA,IAAIA,aAAa,KAAK,CAAC,IAAIP,cAAc,KAAK,CAAC,EAAE;MAC/C,OAAO,IAAI;IACb;IACA,OAAOM,WAAW,IAAI,CAAC,CAAC;EAC1B;EAEA/mC,KAAKA,CAAC0Y,IAAI,EAAE;IAAE0uB,YAAY,GAAG;EAAK,CAAC,GAAG,CAAC,CAAC,EAAE;IACxC,MAAM5G,IAAI,GAAG,IAAIqG,QAAQ,CAACnuB,IAAI,CAAC5U,MAAM,EAAE4U,IAAI,CAACouB,UAAU,EAAEpuB,IAAI,CAACD,UAAU,CAAC;IACxE,MAAM4uB,SAAS,GAAG3uB,IAAI,CAAC/Y,MAAM,GAAG,CAAC;IACjC,IAAIynB,MAAM,GAAG,CAAC;IACd,IAAIkgB,IAAI,GAAG,IAAI;IACf,IAAIC,KAAK,GAAG,IAAI;IAChB,IAAI9G,KAAK,EAAEE,aAAa;IACxB,IAAI6G,aAAa,GAAG,CAAC;IACrB,MAAMC,kBAAkB,GAAG,EAAE;IAC7B,MAAMC,eAAe,GAAG,EAAE;MACxBC,eAAe,GAAG,EAAE;IAEtB,IAAIjE,UAAU,GAAGlD,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;IACvCA,MAAM,IAAI,CAAC;IACX,IAAIsc,UAAU,KAAkC,MAAM,EAAE;MACtD,MAAM,IAAIzE,SAAS,CAAC,eAAe,CAAC;IACtC;IACAyE,UAAU,GAAGlD,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;IACnCA,MAAM,IAAI,CAAC;IAEX6f,UAAU,EAAE,OAAOvD,UAAU,KAAgC,MAAM,EAAE;MACnE,IAAI7gC,CAAC,EAAEuoB,CAAC,EAAEwc,CAAC;MACX,QAAQlE,UAAU;QAChB,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;UACT,MAAM;YAAEyC,OAAO;YAAEE;UAAU,CAAC,GAAGJ,aAAa,CAACvtB,IAAI,EAAE8nB,IAAI,EAAEpZ,MAAM,CAAC;UAChEA,MAAM,GAAGif,SAAS;UAElB,IAAI3C,UAAU,KAAK,MAAM,EAAE;YAEzB,IACEyC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAChB;cACAmB,IAAI,GAAG;gBACLO,OAAO,EAAE;kBAAEC,KAAK,EAAE3B,OAAO,CAAC,CAAC,CAAC;kBAAE4B,KAAK,EAAE5B,OAAO,CAAC,CAAC;gBAAE,CAAC;gBACjD6B,YAAY,EAAE7B,OAAO,CAAC,CAAC,CAAC;gBACxB8B,QAAQ,EAAG9B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAC;gBACxC+B,QAAQ,EAAG/B,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,EAAE,CAAC;gBAC1CgC,UAAU,EAAEhC,OAAO,CAAC,EAAE,CAAC;gBACvBiC,WAAW,EAAEjC,OAAO,CAAC,EAAE,CAAC;gBACxBkC,SAAS,EAAElC,OAAO,CAACjjC,QAAQ,CACzB,EAAE,EACF,EAAE,GAAG,CAAC,GAAGijC,OAAO,CAAC,EAAE,CAAC,GAAGA,OAAO,CAAC,EAAE,CACnC;cACF,CAAC;YACH;UACF;UAEA,IAAIzC,UAAU,KAAK,MAAM,EAAE;YAEzB,IACEyC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,IACnBA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EACnB;cACAoB,KAAK,GAAG;gBACNM,OAAO,EAAG1B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAC;gBACvCmC,MAAM,EAAGnC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,CAAC,CAAC;gBACtCoC,MAAM,EAAGpC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAIA,OAAO,CAAC,EAAE,CAAC;gBACvCqC,aAAa,EAAErC,OAAO,CAAC,EAAE;cAC3B,CAAC;YACH;UACF;UACA;QAEF,KAAK,MAAM;UACT,MAAMsC,wBAAwB,GAAGjI,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;UACvDA,MAAM,IAAI,CAAC;UACX,MAAMshB,qBAAqB,GAAGD,wBAAwB,GAAGrhB,MAAM,GAAG,CAAC;UACnE,IAAIob,CAAC;UACL,OAAOpb,MAAM,GAAGshB,qBAAqB,EAAE;YACrC,MAAMC,qBAAqB,GAAGjwB,IAAI,CAAC0O,MAAM,EAAE,CAAC;YAC5C,MAAMwhB,SAAS,GAAG,IAAI7mB,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI4mB,qBAAqB,IAAI,CAAC,KAAK,CAAC,EAAE;cAEpC,KAAKvd,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;gBACvBoX,CAAC,GAAGnD,SAAS,CAACjU,CAAC,CAAC;gBAChBwd,SAAS,CAACpG,CAAC,CAAC,GAAG9pB,IAAI,CAAC0O,MAAM,EAAE,CAAC;cAC/B;YACF,CAAC,MAAM,IAAIuhB,qBAAqB,IAAI,CAAC,KAAK,CAAC,EAAE;cAE3C,KAAKvd,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;gBACvBoX,CAAC,GAAGnD,SAAS,CAACjU,CAAC,CAAC;gBAChBwd,SAAS,CAACpG,CAAC,CAAC,GAAGhC,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;gBACrCA,MAAM,IAAI,CAAC;cACb;YACF,CAAC,MAAM;cACL,MAAM,IAAI6X,SAAS,CAAC,0BAA0B,CAAC;YACjD;YACAwI,kBAAkB,CAACkB,qBAAqB,GAAG,EAAE,CAAC,GAAGC,SAAS;UAC5D;UACA;QAEF,KAAK,MAAM;QACX,KAAK,MAAM;QACX,KAAK,MAAM;UACT,IAAInI,KAAK,EAAE;YACT,MAAM,IAAIxB,SAAS,CAAC,mCAAmC,CAAC;UAC1D;UACA7X,MAAM,IAAI,CAAC;UAEXqZ,KAAK,GAAG,CAAC,CAAC;UACVA,KAAK,CAACoI,QAAQ,GAAGnF,UAAU,KAAK,MAAM;UACtCjD,KAAK,CAACS,WAAW,GAAGwC,UAAU,KAAK,MAAM;UACzCjD,KAAK,CAACiB,SAAS,GAAGhpB,IAAI,CAAC0O,MAAM,EAAE,CAAC;UAChC,MAAM0hB,YAAY,GAAGtI,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;UAC3CA,MAAM,IAAI,CAAC;UACXqZ,KAAK,CAACtB,SAAS,GAAGiI,YAAY,IAAI0B,YAAY;UAC9CrI,KAAK,CAACkF,cAAc,GAAGnF,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;UAC7CA,MAAM,IAAI,CAAC;UACXqZ,KAAK,CAACC,UAAU,GAAG,EAAE;UACrBD,KAAK,CAACsI,YAAY,GAAG,CAAC,CAAC;UACvB,MAAMC,eAAe,GAAGtwB,IAAI,CAAC0O,MAAM,EAAE,CAAC;UACtC,IAAIwe,IAAI,GAAG,CAAC;YACVC,IAAI,GAAG,CAAC;UACV,KAAKhjC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmmC,eAAe,EAAEnmC,CAAC,EAAE,EAAE;YACpC,MAAMomC,WAAW,GAAGvwB,IAAI,CAAC0O,MAAM,CAAC;YAChC,MAAMS,CAAC,GAAGnP,IAAI,CAAC0O,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;YAC/B,MAAM7R,CAAC,GAAGmD,IAAI,CAAC0O,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE;YAC/B,IAAIwe,IAAI,GAAG/d,CAAC,EAAE;cACZ+d,IAAI,GAAG/d,CAAC;YACV;YACA,IAAIge,IAAI,GAAGtwB,CAAC,EAAE;cACZswB,IAAI,GAAGtwB,CAAC;YACV;YACA,MAAM2zB,GAAG,GAAGxwB,IAAI,CAAC0O,MAAM,GAAG,CAAC,CAAC;YAC5BwgB,CAAC,GAAGnH,KAAK,CAACC,UAAU,CAACv9B,IAAI,CAAC;cACxB0kB,CAAC;cACDtS,CAAC;cACD4zB,cAAc,EAAED,GAAG;cACnB5E,iBAAiB,EAAE;YACrB,CAAC,CAAC;YACF7D,KAAK,CAACsI,YAAY,CAACE,WAAW,CAAC,GAAGrB,CAAC,GAAG,CAAC;YACvCxgB,MAAM,IAAI,CAAC;UACb;UACAqZ,KAAK,CAACmF,IAAI,GAAGA,IAAI;UACjBnF,KAAK,CAACoF,IAAI,GAAGA,IAAI;UACjBH,iBAAiB,CAACjF,KAAK,CAAC;UACxB;QAEF,KAAK,MAAM;UACT,MAAM2I,aAAa,GAAG5I,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;UAC5CA,MAAM,IAAI,CAAC;UACX,KAAKvkB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGumC,aAAa,GAAI;YAC/B,MAAMC,gBAAgB,GAAG3wB,IAAI,CAAC0O,MAAM,EAAE,CAAC;YACvC,MAAM2Y,WAAW,GAAG,IAAIz8B,UAAU,CAAC,EAAE,CAAC;YACtC,IAAIgmC,aAAa,GAAG,CAAC;YACrB,KAAKle,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAEhE,MAAM,EAAE,EAAE;cACjCkiB,aAAa,IAAIvJ,WAAW,CAAC3U,CAAC,CAAC,GAAG1S,IAAI,CAAC0O,MAAM,CAAC;YAChD;YACA,MAAMmiB,aAAa,GAAG,IAAIjmC,UAAU,CAACgmC,aAAa,CAAC;YACnD,KAAKle,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGke,aAAa,EAAEle,CAAC,EAAE,EAAEhE,MAAM,EAAE,EAAE;cAC5CmiB,aAAa,CAACne,CAAC,CAAC,GAAG1S,IAAI,CAAC0O,MAAM,CAAC;YACjC;YACAvkB,CAAC,IAAI,EAAE,GAAGymC,aAAa;YAEvB,CAACD,gBAAgB,IAAI,CAAC,KAAK,CAAC,GAAG1B,eAAe,GAAGD,eAAe,EAC9D2B,gBAAgB,GAAG,EAAE,CACtB,GAAGvJ,iBAAiB,CAACC,WAAW,EAAEwJ,aAAa,CAAC;UACnD;UACA;QAEF,KAAK,MAAM;UACTniB,MAAM,IAAI,CAAC;UAEXuZ,aAAa,GAAGH,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;UACtCA,MAAM,IAAI,CAAC;UACX;QAEF,KAAK,MAAM;UAKT,MAAM4Z,cAAc,GAAG,EAAEwG,aAAa,KAAK,CAAC,IAAI,CAACJ,YAAY;UAE7DhgB,MAAM,IAAI,CAAC;UAEX,MAAMoiB,cAAc,GAAG9wB,IAAI,CAAC0O,MAAM,EAAE,CAAC;YACnCsZ,UAAU,GAAG,EAAE;UACjB,KAAK79B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2mC,cAAc,EAAE3mC,CAAC,EAAE,EAAE;YACnC,MAAMo9B,KAAK,GAAGvnB,IAAI,CAAC0O,MAAM,EAAE,CAAC;YAC5B,MAAMqiB,cAAc,GAAGhJ,KAAK,CAACsI,YAAY,CAAC9I,KAAK,CAAC;YAChD,MAAMllB,SAAS,GAAG0lB,KAAK,CAACC,UAAU,CAAC+I,cAAc,CAAC;YAClD1uB,SAAS,CAACklB,KAAK,GAAGA,KAAK;YACvB,MAAMyJ,SAAS,GAAGhxB,IAAI,CAAC0O,MAAM,EAAE,CAAC;YAChCrM,SAAS,CAACmnB,cAAc,GAAGyF,eAAe,CAAC+B,SAAS,IAAI,CAAC,CAAC;YAC1D3uB,SAAS,CAACwnB,cAAc,GAAGmF,eAAe,CAACgC,SAAS,GAAG,EAAE,CAAC;YAC1DhJ,UAAU,CAACv9B,IAAI,CAAC4X,SAAS,CAAC;UAC5B;UACA,MAAM6lB,aAAa,GAAGloB,IAAI,CAAC0O,MAAM,EAAE,CAAC;YAClCyZ,WAAW,GAAGnoB,IAAI,CAAC0O,MAAM,EAAE,CAAC;YAC5BuiB,uBAAuB,GAAGjxB,IAAI,CAAC0O,MAAM,EAAE,CAAC;UAC1C,IAAI;YACF,MAAMwiB,SAAS,GAAGrJ,UAAU,CAC1B7nB,IAAI,EACJ8nB,IAAI,EACJpZ,MAAM,EACNqZ,KAAK,EACLC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,WAAW,EACX8I,uBAAuB,IAAI,CAAC,EAC5BA,uBAAuB,GAAG,EAAE,EAC5B3I,cACF,CAAC;YACD5Z,MAAM,IAAIwiB,SAAS;UACrB,CAAC,CAAC,OAAOt9B,EAAE,EAAE;YACX,IAAIA,EAAE,YAAY4yB,cAAc,EAAE;cAChCtgC,IAAI,CAAC,GAAG0N,EAAE,CAAC/K,OAAO,4CAA4C,CAAC;cAC/D,OAAO,IAAI,CAACvB,KAAK,CAAC0Y,IAAI,EAAE;gBAAE0uB,YAAY,EAAE96B,EAAE,CAAC6yB;cAAU,CAAC,CAAC;YACzD,CAAC,MAAM,IAAI7yB,EAAE,YAAY8yB,cAAc,EAAE;cACvCxgC,IAAI,CAAC,GAAG0N,EAAE,CAAC/K,OAAO,0CAA0C,CAAC;cAC7D,MAAM0lC,UAAU;YAClB;YACA,MAAM36B,EAAE;UACV;UACA;QAEF,KAAK,MAAM;UAET8a,MAAM,IAAI,CAAC;UACX;QAEF,KAAK,MAAM;UACT,IAAI1O,IAAI,CAAC0O,MAAM,CAAC,KAAK,IAAI,EAAE;YAEzBA,MAAM,EAAE;UACV;UACA;QAEF;UAIE,MAAMyiB,cAAc,GAAG9F,kBAAkB,CACvCrrB,IAAI,EACJ8nB,IAAI,EACepZ,MAAM,GAAG,CAAC,EACZA,MAAM,GAAG,CAC5B,CAAC;UACD,IAAIyiB,cAAc,EAAE7F,OAAO,EAAE;YAC3BplC,IAAI,CACF,wDAAwD,GACtDirC,cAAc,CAAC7F,OACnB,CAAC;YACD5c,MAAM,GAAGyiB,cAAc,CAACziB,MAAM;YAC9B;UACF;UACA,IAAI,CAACyiB,cAAc,IAAIziB,MAAM,IAAIigB,SAAS,EAAE;YAC1CzoC,IAAI,CACF,sDAAsD,GACpD,yCACJ,CAAC;YACD,MAAMqoC,UAAU;UAClB;UACA,MAAM,IAAIhI,SAAS,CACjB,oCAAoC,GAAGyE,UAAU,CAAC39B,QAAQ,CAAC,EAAE,CAC/D,CAAC;MACL;MAEA,IAAIqhB,MAAM,GAAGigB,SAAS,EAAE;QACtB3D,UAAU,GAAGlD,IAAI,CAAC5pB,SAAS,CAACwQ,MAAM,CAAC;QACnCA,MAAM,IAAI,CAAC;MACb,CAAC,MAAM;QACLsc,UAAU,GAAG,CAAC;MAChB;IACF;IAEA,IAAI,CAACjD,KAAK,EAAE;MACV,MAAM,IAAIxB,SAAS,CAAC,wCAAwC,CAAC;IAC/D;IACA,IAAI,CAACjgB,KAAK,GAAGyhB,KAAK,CAACkF,cAAc;IACjC,IAAI,CAAC1mB,MAAM,GAAGwhB,KAAK,CAACtB,SAAS;IAC7B,IAAI,CAACmI,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC7G,UAAU,GAAG,EAAE;IACpB,KAAK,MAAM3lB,SAAS,IAAI0lB,KAAK,CAACC,UAAU,EAAE;MAIxC,MAAM4D,iBAAiB,GAAGmD,kBAAkB,CAAC1sB,SAAS,CAACouB,cAAc,CAAC;MACtE,IAAI7E,iBAAiB,EAAE;QACrBvpB,SAAS,CAACupB,iBAAiB,GAAGA,iBAAiB;MACjD;MAEA,IAAI,CAAC5D,UAAU,CAACv9B,IAAI,CAAC;QACnB88B,KAAK,EAAEllB,SAAS,CAACklB,KAAK;QACtB93B,MAAM,EAAE+8B,kBAAkB,CAACzE,KAAK,EAAE1lB,SAAS,CAAC;QAC5C+uB,MAAM,EAAE/uB,SAAS,CAAC8M,CAAC,GAAG4Y,KAAK,CAACmF,IAAI;QAChCmE,MAAM,EAAEhvB,SAAS,CAACxF,CAAC,GAAGkrB,KAAK,CAACoF,IAAI;QAChCvF,aAAa,EAAEvlB,SAAS,CAACulB,aAAa;QACtCsD,eAAe,EAAE7oB,SAAS,CAAC6oB;MAC7B,CAAC,CAAC;IACJ;IACA,IAAI,CAACoD,aAAa,GAAG,IAAI,CAACtG,UAAU,CAAC/gC,MAAM;IAC3C,OAAO4C,SAAS;EAClB;EAEAynC,uBAAuBA,CAAChrB,KAAK,EAAEC,MAAM,EAAEgrB,WAAW,GAAG,KAAK,EAAE;IAC1D,MAAMH,MAAM,GAAG,IAAI,CAAC9qB,KAAK,GAAGA,KAAK;MAC/B+qB,MAAM,GAAG,IAAI,CAAC9qB,MAAM,GAAGA,MAAM;IAE/B,IAAIlE,SAAS,EAAEmvB,eAAe,EAAEC,eAAe,EAAEC,iBAAiB;IAClE,IAAI//B,CAAC,EAAEC,CAAC,EAAEzH,CAAC,EAAEuoB,CAAC,EAAE6D,CAAC;IACjB,IAAIgR,KAAK;IACT,IAAI7Y,MAAM,GAAG,CAAC;IACd,IAAIjf,MAAM;IACV,MAAM6+B,aAAa,GAAG,IAAI,CAACtG,UAAU,CAAC/gC,MAAM;IAC5C,MAAM6Y,UAAU,GAAGwG,KAAK,GAAGC,MAAM,GAAG+nB,aAAa;IACjD,MAAMtuB,IAAI,GAAG,IAAIoO,iBAAiB,CAACtO,UAAU,CAAC;IAC9C,MAAM6xB,iBAAiB,GAAG,IAAIxmC,WAAW,CAACmb,KAAK,CAAC;IAChD,MAAMsrB,QAAQ,GAAG,UAAU;IAC3B,IAAIC,mBAAmB;IAEvB,KAAK1nC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmkC,aAAa,EAAEnkC,CAAC,EAAE,EAAE;MAClCkY,SAAS,GAAG,IAAI,CAAC2lB,UAAU,CAAC79B,CAAC,CAAC;MAC9BqnC,eAAe,GAAGnvB,SAAS,CAAC+uB,MAAM,GAAGA,MAAM;MAC3CK,eAAe,GAAGpvB,SAAS,CAACgvB,MAAM,GAAGA,MAAM;MAC3C3iB,MAAM,GAAGvkB,CAAC;MACVsF,MAAM,GAAG4S,SAAS,CAAC5S,MAAM;MACzBiiC,iBAAiB,GAAIrvB,SAAS,CAACulB,aAAa,GAAG,CAAC,IAAK,CAAC;MAGtD,IAAI4J,eAAe,KAAKK,mBAAmB,EAAE;QAC3C,KAAKlgC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2U,KAAK,EAAE3U,CAAC,EAAE,EAAE;UAC1B+gB,CAAC,GAAG,CAAC,GAAI/gB,CAAC,GAAG6/B,eAAgB;UAC7BG,iBAAiB,CAAChgC,CAAC,CAAC,GAAI,CAAC+gB,CAAC,GAAGkf,QAAQ,KAAK,CAAC,GAAKlf,CAAC,GAAG,CAAE;QACxD;QACAmf,mBAAmB,GAAGL,eAAe;MACvC;MAEA,KAAK5/B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2U,MAAM,EAAE3U,CAAC,EAAE,EAAE;QAC3B8gB,CAAC,GAAG,CAAC,GAAI9gB,CAAC,GAAG6/B,eAAgB;QAC7BlK,KAAK,GAAImK,iBAAiB,IAAIhf,CAAC,GAAGkf,QAAQ,CAAC,GAAK,CAAClf,CAAC,GAAG,CAAC,KAAK,CAAE;QAC7D,KAAK/gB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2U,KAAK,EAAE3U,CAAC,EAAE,EAAE;UAC1BqO,IAAI,CAAC0O,MAAM,CAAC,GAAGjf,MAAM,CAAC83B,KAAK,GAAGoK,iBAAiB,CAAChgC,CAAC,CAAC,CAAC;UACnD+c,MAAM,IAAI4f,aAAa;QACzB;MACF;IACF;IAGA,IAAIluC,SAAS,GAAG,IAAI,CAAC4tC,gBAAgB;IAarC,IAAI,CAACuD,WAAW,IAAIjD,aAAa,KAAK,CAAC,IAAI,CAACluC,SAAS,EAAE;MACrDA,SAAS,GAAG,IAAIkpB,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1E;IAEA,IAAIlpB,SAAS,EAAE;MACb,KAAK+J,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2V,UAAU,GAAI;QAC5B,KAAK4S,CAAC,GAAG,CAAC,EAAE6D,CAAC,GAAG,CAAC,EAAE7D,CAAC,GAAG4b,aAAa,EAAE5b,CAAC,EAAE,EAAEvoB,CAAC,EAAE,EAAEosB,CAAC,IAAI,CAAC,EAAE;UACtDvW,IAAI,CAAC7V,CAAC,CAAC,GAAG,CAAE6V,IAAI,CAAC7V,CAAC,CAAC,GAAG/J,SAAS,CAACm2B,CAAC,CAAC,IAAK,CAAC,IAAIn2B,SAAS,CAACm2B,CAAC,GAAG,CAAC,CAAC;QAC9D;MACF;IACF;IACA,OAAOvW,IAAI;EACb;EAEA,IAAI8xB,wBAAwBA,CAAA,EAAG;IAC7B,IAAI,IAAI,CAACjD,KAAK,EAAE;MAEd,OAAO,CAAC,CAAC,IAAI,CAACA,KAAK,CAACiB,aAAa;IACnC;IACA,IAAI,IAAI,CAACxB,aAAa,KAAK,CAAC,EAAE;MAC5B,IAAI,IAAI,CAACL,eAAe,KAAK,CAAC,EAAE;QAI9B,OAAO,KAAK;MACd,CAAC,MAAM,IACL,IAAI,CAACjG,UAAU,CAAC,CAAC,CAAC,CAACT,KAAK,KAAiB,IAAI,IAC7C,IAAI,CAACS,UAAU,CAAC,CAAC,CAAC,CAACT,KAAK,KAAiB,IAAI,IAC7C,IAAI,CAACS,UAAU,CAAC,CAAC,CAAC,CAACT,KAAK,KAAiB,IAAI,EAC7C;QAGA,OAAO,KAAK;MACd;MACA,OAAO,IAAI;IACb;IAEA,IAAI,IAAI,CAAC0G,eAAe,KAAK,CAAC,EAAE;MAI9B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEA8D,gBAAgBA,CAAC/xB,IAAI,EAAE;IACrB,IAAIwb,CAAC,EAAEwW,EAAE,EAAEC,EAAE;IACb,KAAK,IAAI9nC,CAAC,GAAG,CAAC,EAAElD,MAAM,GAAG+Y,IAAI,CAAC/Y,MAAM,EAAEkD,CAAC,GAAGlD,MAAM,EAAEkD,CAAC,IAAI,CAAC,EAAE;MACxDqxB,CAAC,GAAGxb,IAAI,CAAC7V,CAAC,CAAC;MACX6nC,EAAE,GAAGhyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC;MAChB8nC,EAAE,GAAGjyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC;MAChB6V,IAAI,CAAC7V,CAAC,CAAC,GAAGqxB,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGyW,EAAE;MAClCjyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC,GAAGqxB,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGwW,EAAE,GAAG,KAAK,GAAGC,EAAE;MACnDjyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC,GAAGqxB,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGwW,EAAE;IACxC;IACA,OAAOhyB,IAAI;EACb;EAEAkyB,iBAAiBA,CAAClyB,IAAI,EAAE4H,GAAG,EAAE;IAC3B,KAAK,IAAIzd,CAAC,GAAG,CAAC,EAAEuoB,CAAC,GAAG,CAAC,EAAEzrB,MAAM,GAAG+Y,IAAI,CAAC/Y,MAAM,EAAEkD,CAAC,GAAGlD,MAAM,EAAEkD,CAAC,IAAI,CAAC,EAAEuoB,CAAC,IAAI,CAAC,EAAE;MACvE,MAAM8I,CAAC,GAAGxb,IAAI,CAAC7V,CAAC,CAAC;MACjB,MAAM6nC,EAAE,GAAGhyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC;MACtB,MAAM8nC,EAAE,GAAGjyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC;MACtByd,GAAG,CAAC8K,CAAC,CAAC,GAAG8I,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGyW,EAAE;MACjCrqB,GAAG,CAAC8K,CAAC,GAAG,CAAC,CAAC,GAAG8I,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGwW,EAAE,GAAG,KAAK,GAAGC,EAAE;MAClDrqB,GAAG,CAAC8K,CAAC,GAAG,CAAC,CAAC,GAAG8I,CAAC,GAAG,OAAO,GAAG,KAAK,GAAGwW,EAAE;MACrCpqB,GAAG,CAAC8K,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;IAClB;IACA,OAAO9K,GAAG;EACZ;EAEAuqB,iBAAiBA,CAACnyB,IAAI,EAAE;IACtB,IAAI,CAACoyB,kBAAkB,CAACpyB,IAAI,CAAC;IAC7B,OAAO,IAAI,CAACqyB,iBAAiB,CAACryB,IAAI,CAAC;EACrC;EAEAsyB,kBAAkBA,CAACtyB,IAAI,EAAE;IACvB,IAAI,CAACoyB,kBAAkB,CAACpyB,IAAI,CAAC;IAC7B,OAAO,IAAI,CAACuyB,kBAAkB,CAACvyB,IAAI,CAAC;EACtC;EAEAoyB,kBAAkBA,CAACpyB,IAAI,EAAE;IACvB,IAAIwb,CAAC,EAAEwW,EAAE,EAAEC,EAAE;IACb,KAAK,IAAI9nC,CAAC,GAAG,CAAC,EAAElD,MAAM,GAAG+Y,IAAI,CAAC/Y,MAAM,EAAEkD,CAAC,GAAGlD,MAAM,EAAEkD,CAAC,IAAI,CAAC,EAAE;MACxDqxB,CAAC,GAAGxb,IAAI,CAAC7V,CAAC,CAAC;MACX6nC,EAAE,GAAGhyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC;MAChB8nC,EAAE,GAAGjyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC;MAChB6V,IAAI,CAAC7V,CAAC,CAAC,GAAG,OAAO,GAAGqxB,CAAC,GAAG,KAAK,GAAGyW,EAAE;MAClCjyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAGqxB,CAAC,GAAG,KAAK,GAAGwW,EAAE,GAAG,KAAK,GAAGC,EAAE;MACnDjyB,IAAI,CAAC7V,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAGqxB,CAAC,GAAG,KAAK,GAAGwW,EAAE;IAExC;IACA,OAAOhyB,IAAI;EACb;EAEAqyB,iBAAiBA,CAACryB,IAAI,EAAE;IACtB,MAAM4T,KAAK,GAAG5T,IAAI,CAAC/Y,MAAM,GAAG,CAAC;IAC7Bm8B,eAAe,CAACoB,IAAI,CAAC7Q,YAAY,CAAC3T,IAAI,EAAE,CAAC,EAAE4T,KAAK,EAAE5T,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,OAAOA,IAAI,CAACxV,QAAQ,CAAC,CAAC,EAAEopB,KAAK,GAAG,CAAC,CAAC;EACpC;EAEA2e,kBAAkBA,CAACvyB,IAAI,EAAE;IACvBojB,eAAe,CAACoB,IAAI,CAAC7Q,YAAY,CAAC3T,IAAI,EAAE,CAAC,EAAEA,IAAI,CAAC/Y,MAAM,GAAG,CAAC,EAAE+Y,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAE1E,IAAIojB,eAAe,CAACoB,IAAI,YAAYrO,YAAY,EAAE;MAEhD,KAAK,IAAIhsB,CAAC,GAAG,CAAC,EAAE0J,EAAE,GAAGmM,IAAI,CAAC/Y,MAAM,EAAEkD,CAAC,GAAG0J,EAAE,EAAE1J,CAAC,IAAI,CAAC,EAAE;QAChD6V,IAAI,CAAC7V,CAAC,CAAC,GAAG,GAAG;MACf;IACF;IACA,OAAO6V,IAAI;EACb;EAEAwyB,OAAOA,CAAC;IACNlsB,KAAK;IACLC,MAAM;IACNksB,SAAS,GAAG,KAAK;IACjBC,QAAQ,GAAG,KAAK;IAChBnB,WAAW,GAAG;EAChB,CAAC,EAAE;IAOD,IAAI,IAAI,CAACjD,aAAa,GAAG,CAAC,EAAE;MAC1B,MAAM,IAAI/H,SAAS,CAAC,wBAAwB,CAAC;IAC/C;IAEA,MAAMvmB,IAAI,GAAG,IAAI,CAACsxB,uBAAuB,CAAChrB,KAAK,EAAEC,MAAM,EAAEgrB,WAAW,CAAC;IAErE,IAAI,IAAI,CAACjD,aAAa,KAAK,CAAC,KAAKmE,SAAS,IAAIC,QAAQ,CAAC,EAAE;MACvD,MAAMjxB,GAAG,GAAGzB,IAAI,CAAC/Y,MAAM,IAAIwrC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;MAC7C,MAAME,QAAQ,GAAG,IAAIvkB,iBAAiB,CAAC3M,GAAG,CAAC;MAC3C,IAAIiN,MAAM,GAAG,CAAC;MACd,IAAI+jB,SAAS,EAAE;QACbnM,UAAU,CAACtmB,IAAI,EAAE,IAAI7U,WAAW,CAACwnC,QAAQ,CAACvnC,MAAM,CAAC,CAAC;MACpD,CAAC,MAAM;QACL,KAAK,MAAMwnC,SAAS,IAAI5yB,IAAI,EAAE;UAC5B2yB,QAAQ,CAACjkB,MAAM,EAAE,CAAC,GAAGkkB,SAAS;UAC9BD,QAAQ,CAACjkB,MAAM,EAAE,CAAC,GAAGkkB,SAAS;UAC9BD,QAAQ,CAACjkB,MAAM,EAAE,CAAC,GAAGkkB,SAAS;QAChC;MACF;MACA,OAAOD,QAAQ;IACjB,CAAC,MAAM,IAAI,IAAI,CAACrE,aAAa,KAAK,CAAC,IAAI,IAAI,CAACwD,wBAAwB,EAAE;MACpE,IAAIW,SAAS,EAAE;QACb,MAAME,QAAQ,GAAG,IAAIvkB,iBAAiB,CAAEpO,IAAI,CAAC/Y,MAAM,GAAG,CAAC,GAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,CAACirC,iBAAiB,CAAClyB,IAAI,EAAE2yB,QAAQ,CAAC;MAC/C;MACA,OAAO,IAAI,CAACZ,gBAAgB,CAAC/xB,IAAI,CAAC;IACpC,CAAC,MAAM,IAAI,IAAI,CAACsuB,aAAa,KAAK,CAAC,EAAE;MACnC,IAAI,IAAI,CAACwD,wBAAwB,EAAE;QACjC,IAAIW,SAAS,EAAE;UACb,OAAO,IAAI,CAACH,kBAAkB,CAACtyB,IAAI,CAAC;QACtC;QACA,IAAI0yB,QAAQ,EAAE;UACZ,OAAO,IAAI,CAACP,iBAAiB,CAACnyB,IAAI,CAAC;QACrC;QACA,OAAO,IAAI,CAACoyB,kBAAkB,CAACpyB,IAAI,CAAC;MACtC,CAAC,MAAM,IAAIyyB,SAAS,EAAE;QACpB,OAAO,IAAI,CAACF,kBAAkB,CAACvyB,IAAI,CAAC;MACtC,CAAC,MAAM,IAAI0yB,QAAQ,EAAE;QACnB,OAAO,IAAI,CAACL,iBAAiB,CAACryB,IAAI,CAAC;MACrC;IACF;IACA,OAAOA,IAAI;EACb;AACF;;;;;;;;;;;;;;;ACv5CA,eAAe6yB,QAAQA,CAACjsB,SAAS,GAAC,CAAC,CAAC,EAAC;EAAC,IAAIC,SAAS;EAAC,IAAIC,MAAM,GAACF,SAAS;EAAC,IAAIG,kBAAkB,GAAC,IAAI;EAAC,IAAIC,qBAAqB,GAAC,KAAK;EAAC,IAAIC,UAAU,GAAC,EAAE;EAAC,IAAIC,WAAW,GAAC,gBAAgB;EAAC,IAAIC,KAAK,GAACA,CAAC5d,MAAM,EAAC6d,OAAO,KAAG;IAAC,MAAMA,OAAO;EAAA,CAAC;EAAC,IAAIC,WAAW,GAACC,MAAM,CAACC,IAAI,CAAC/gB,GAAG;EAAC,IAAIghB,eAAe,GAAC,EAAE;EAAkI,IAAIC,SAAS,EAACC,UAAU;EAAC,IAAGX,kBAAkB,IAAEC,qBAAqB,EAAC;IAAC,IAAG;MAACQ,eAAe,GAAC,IAAIngB,GAAG,CAAC,GAAG,EAACggB,WAAW,CAAC,CAAC1f,IAAI;IAAA,CAAC,OAAK,CAAC;IAAE8f,SAAS,GAAC,MAAMjhB,GAAG,IAAE;MAAC,IAAI2Z,QAAQ,GAAC,MAAM3G,KAAK,CAAChT,GAAG,EAAC;QAACmhB,WAAW,EAAC;MAAa,CAAC,CAAC;MAAC,IAAGxH,QAAQ,CAACC,EAAE,EAAC;QAAC,OAAOD,QAAQ,CAACpJ,WAAW,CAAC,CAAC;MAAA;MAAC,MAAM,IAAI3Q,KAAK,CAAC+Z,QAAQ,CAAC5W,MAAM,GAAC,KAAK,GAAC4W,QAAQ,CAAC3Z,GAAG,CAAC;IAAA,CAAC;EAAC,CAAC,MAAI,CAAC;EAAC,IAAIohB,GAAG,GAAC3hB,OAAO,CAAC4hB,GAAG,CAACC,IAAI,CAAC7hB,OAAO,CAAC;EAAC,IAAI8hB,GAAG,GAAC9hB,OAAO,CAAC+hB,KAAK,CAACF,IAAI,CAAC7hB,OAAO,CAAC;EAAC,IAAIgiB,UAAU;EAAC,IAAIC,KAAK,GAAC,KAAK;EAAC,IAAIC,UAAU;EAAC,MAAM2qB,YAAY;EAAE,MAAMC,cAAc,SAASD,YAAY;EAAE,IAAI1qB,mBAAmB,EAACC,kBAAkB;EAAC,IAAIW,kBAAkB,GAAC,KAAK;EAAC,SAASC,iBAAiBA,CAAA,EAAE;IAAC,IAAIvb,CAAC,GAACwb,UAAU,CAAC9d,MAAM;IAACkd,KAAK,GAAC,IAAIa,SAAS,CAACzb,CAAC,CAAC;IAAC8a,MAAM,GAAC,IAAIY,UAAU,CAAC1b,CAAC,CAAC;IAAC6a,MAAM,GAAC,IAAI3d,UAAU,CAAC8C,CAAC,CAAC;IAAC+a,OAAO,GAAC,IAAIY,WAAW,CAAC3b,CAAC,CAAC;IAACgb,MAAM,GAAC,IAAIY,UAAU,CAAC5b,CAAC,CAAC;IAACib,OAAO,GAAC,IAAIxd,WAAW,CAACuC,CAAC,CAAC;IAACkb,OAAO,GAAC,IAAIjzB,YAAY,CAAC+X,CAAC,CAAC;IAACmb,OAAO,GAAC,IAAIU,YAAY,CAAC7b,CAAC,CAAC;IAACob,MAAM,GAAC,IAAIlH,aAAa,CAAClU,CAAC,CAAC;IAACqb,OAAO,GAAC,IAAIlH,cAAc,CAACnU,CAAC,CAAC;EAAA;EAAC,SAAS8b,MAAMA,CAAA,EAAE;IAAC,IAAG1C,MAAM,CAAC,QAAQ,CAAC,EAAC;MAAC,IAAG,OAAOA,MAAM,CAAC,QAAQ,CAAC,IAAE,UAAU,EAACA,MAAM,CAAC,QAAQ,CAAC,GAAC,CAACA,MAAM,CAAC,QAAQ,CAAC,CAAC;MAAC,OAAMA,MAAM,CAAC,QAAQ,CAAC,CAAC7f,MAAM,EAAC;QAACwiB,WAAW,CAAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC4C,KAAK,CAAC,CAAC,CAAC;MAAA;IAAC;IAACC,oBAAoB,CAACC,SAAS,CAAC;EAAA;EAAC,SAASC,WAAWA,CAAA,EAAE;IAACb,kBAAkB,GAAC,IAAI;IAACc,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;EAAA;EAAC,SAASC,OAAOA,CAAA,EAAE;IAAC,IAAGjD,MAAM,CAAC,SAAS,CAAC,EAAC;MAAC,IAAG,OAAOA,MAAM,CAAC,SAAS,CAAC,IAAE,UAAU,EAACA,MAAM,CAAC,SAAS,CAAC,GAAC,CAACA,MAAM,CAAC,SAAS,CAAC,CAAC;MAAC,OAAMA,MAAM,CAAC,SAAS,CAAC,CAAC7f,MAAM,EAAC;QAAC+iB,YAAY,CAAClD,MAAM,CAAC,SAAS,CAAC,CAAC4C,KAAK,CAAC,CAAC,CAAC;MAAA;IAAC;IAACC,oBAAoB,CAACM,UAAU,CAAC;EAAA;EAAC,SAASxS,KAAKA,CAACyS,IAAI,EAAC;IAACpD,MAAM,CAAC,SAAS,CAAC,GAAGoD,IAAI,CAAC;IAACA,IAAI,GAAC,WAAWA,IAAI,GAAG;IAACnC,GAAG,CAACmC,IAAI,CAAC;IAAChC,KAAK,GAAC,IAAI;IAACgC,IAAI,IAAE,0CAA0C;IAAC,IAAIlc,CAAC,GAAC,IAAImc,WAAW,CAACC,YAAY,CAACF,IAAI,CAAC;IAAC7B,kBAAkB,GAAGra,CAAC,CAAC;IAAC,MAAMA,CAAC;EAAA;EAAC,IAAIqc,cAAc;EAA0pC,SAASC,cAAcA,CAAA,EAAE;IAAC,IAAIC,OAAO,GAAC;MAAC1c,CAAC,EAAC2c;IAAW,CAAC;IAAC,OAAOD,OAAO;EAAA;EAAC,eAAeE,UAAUA,CAAA,EAAE;IAAC,SAASC,eAAeA,CAACC,QAAQ,EAACC,MAAM,EAAC;MAACd,WAAW,GAACa,QAAQ,CAACE,OAAO;MAACC,iBAAiB,CAAChB,WAAW,CAAC;MAACb,iBAAiB,CAAC,CAAC;MAAC,OAAOa,WAAW;IAAA;IAAwF,IAAI/jB,IAAI,GAACukB,cAAc,CAAC,CAAC;IAA+B,OAAO,IAAIS,OAAO,CAAC,CAACC,OAAO,EAACC,MAAM,KAAG;MAACnE,MAAM,CAAC,iBAAiB,CAAC,CAAC/gB,IAAI,EAAC,CAACmlB,IAAI,EAACC,GAAG,KAAG;QAACH,OAAO,CAACN,eAAe,CAACQ,IAAI,EAACC,GAAG,CAAC,CAAC;MAAA,CAAC,CAAC;IAAA,CAAC,CAAC;EAAkK;EAAC,MAAMC,UAAU;IAACtiB,IAAI,GAAC,YAAY;IAACE,WAAWA,CAACO,MAAM,EAAC;MAAC,IAAI,CAACV,OAAO,GAAC,gCAAgCU,MAAM,GAAG;MAAC,IAAI,CAACA,MAAM,GAACA,MAAM;IAAA;EAAC;EAAC,IAAIif,MAAM;EAAC,IAAIE,MAAM;EAAC,IAAII,MAAM;EAAC,IAAIR,KAAK;EAAC,IAAIM,OAAO;EAAC,IAAIC,OAAO;EAAC,IAAIJ,OAAO;EAAC,IAAIE,OAAO;EAAC,IAAII,OAAO;EAAC,IAAIR,MAAM;EAAC,IAAIoB,oBAAoB,GAAC0B,SAAS,IAAE;IAAC,OAAMA,SAAS,CAACpkB,MAAM,GAAC,CAAC,EAAC;MAACokB,SAAS,CAAC3B,KAAK,CAAC,CAAC,CAAC5C,MAAM,CAAC;IAAA;EAAC,CAAC;EAAC,IAAImD,UAAU,GAAC,EAAE;EAAC,IAAID,YAAY,GAACsB,EAAE,IAAErB,UAAU,CAACxf,IAAI,CAAC6gB,EAAE,CAAC;EAAC,IAAI1B,SAAS,GAAC,EAAE;EAAC,IAAIH,WAAW,GAAC6B,EAAE,IAAE1B,SAAS,CAACnf,IAAI,CAAC6gB,EAAE,CAAC;EAAC,IAAIC,aAAa,GAAC,IAAI;EAAC,IAAIC,UAAU,GAACA,CAAA,KAAI/T,KAAK,CAAC,EAAE,CAAC;EAAC,IAAIgU,uBAAuB,GAAC,CAAC;EAAC,IAAIC,oCAAoC,GAACA,CAAA,KAAI;IAACH,aAAa,GAAC,KAAK;IAACE,uBAAuB,GAAC,CAAC;EAAA,CAAC;EAAC,IAAIE,MAAM,GAAC,CAAC,CAAC;EAAC,IAAIC,eAAe,GAAC5d,CAAC,IAAE;IAAC,IAAGA,CAAC,YAAYod,UAAU,IAAEpd,CAAC,IAAE,QAAQ,EAAC;MAAC,OAAOma,UAAU;IAAA;IAAChB,KAAK,CAAC,CAAC,EAACnZ,CAAC,CAAC;EAAA,CAAC;EAAC,IAAI6d,gBAAgB,GAACA,CAAA,KAAIN,aAAa,IAAEE,uBAAuB,GAAC,CAAC;EAAC,IAAIK,UAAU,GAAC5iB,IAAI,IAAE;IAACif,UAAU,GAACjf,IAAI;IAAC,IAAG,CAAC2iB,gBAAgB,CAAC,CAAC,EAAC;MAAC/E,MAAM,CAAC,QAAQ,CAAC,GAAG5d,IAAI,CAAC;MAACgf,KAAK,GAAC,IAAI;IAAA;IAACf,KAAK,CAACje,IAAI,EAAC,IAAIkiB,UAAU,CAACliB,IAAI,CAAC,CAAC;EAAA,CAAC;EAAC,IAAI6iB,MAAM,GAACA,CAACxiB,MAAM,EAACyiB,QAAQ,KAAG;IAAC7D,UAAU,GAAC5e,MAAM;IAACuiB,UAAU,CAACviB,MAAM,CAAC;EAAA,CAAC;EAAC,IAAI0iB,KAAK,GAACF,MAAM;EAAC,IAAIG,SAAS,GAACA,CAAA,KAAI;IAAC,IAAG,CAACL,gBAAgB,CAAC,CAAC,EAAC;MAAC,IAAG;QAACI,KAAK,CAAC9D,UAAU,CAAC;MAAA,CAAC,QAAMna,CAAC,EAAC;QAAC4d,eAAe,CAAC5d,CAAC,CAAC;MAAA;IAAC;EAAC,CAAC;EAAC,IAAIme,gBAAgB,GAACC,IAAI,IAAE;IAAC,IAAGlE,KAAK,EAAC;MAAC;IAAM;IAAC,IAAG;MAAC,OAAOkE,IAAI,CAAC,CAAC;IAAA,CAAC,QAAMpe,CAAC,EAAC;MAAC4d,eAAe,CAAC5d,CAAC,CAAC;IAAA,CAAC,SAAO;MAACke,SAAS,CAAC,CAAC;IAAA;EAAC,CAAC;EAAC,IAAIG,mBAAmB,GAACA,CAAA,KAAIC,WAAW,CAACC,GAAG,CAAC,CAAC;EAAC,IAAIC,cAAc,GAACA,CAACC,KAAK,EAACC,UAAU,KAAG;IAAC,IAAGf,MAAM,CAACc,KAAK,CAAC,EAAC;MAACE,YAAY,CAAChB,MAAM,CAACc,KAAK,CAAC,CAACG,EAAE,CAAC;MAAC,OAAOjB,MAAM,CAACc,KAAK,CAAC;IAAA;IAAC,IAAG,CAACC,UAAU,EAAC,OAAO,CAAC;IAAC,IAAIE,EAAE,GAACC,UAAU,CAAC,MAAI;MAAC,OAAOlB,MAAM,CAACc,KAAK,CAAC;MAACN,gBAAgB,CAAC,MAAIW,oBAAoB,CAACL,KAAK,EAACJ,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAAA,CAAC,EAACK,UAAU,CAAC;IAACf,MAAM,CAACc,KAAK,CAAC,GAAC;MAACG,EAAE;MAACF;IAAU,CAAC;IAAC,OAAO,CAAC;EAAA,CAAC;EAAC,SAASsmB,cAAcA,CAACC,SAAS,EAACC,SAAS,EAAC;IAACD,SAAS,KAAG,CAAC;IAAC,MAAMjmB,SAAS,GAAClG,MAAM,CAACkG,SAAS,GAAC,IAAIoB,iBAAiB,CAAC8kB,SAAS,CAAC;IAAC,MAAMC,KAAK,GAACzqB,MAAM,CAACle,QAAQ,CAACyoC,SAAS,EAACA,SAAS,GAACC,SAAS,CAAC;IAAClmB,SAAS,CAAC9S,GAAG,CAACi5B,KAAK,CAAC;EAAA;EAAC,SAASC,cAAcA,CAACC,SAAS,EAACJ,SAAS,EAACK,SAAS,EAACJ,SAAS,EAAC;IAACG,SAAS,KAAG,CAAC;IAACJ,SAAS,KAAG,CAAC;IAACK,SAAS,KAAG,CAAC;IAAC,MAAMtmB,SAAS,GAAClG,MAAM,CAACkG,SAAS,GAAC,IAAIoB,iBAAiB,CAAC8kB,SAAS,GAAC,CAAC,CAAC;IAAC,MAAMK,KAAK,GAAC7qB,MAAM,CAACle,QAAQ,CAAC6oC,SAAS,EAACA,SAAS,GAACH,SAAS,CAAC;IAAC,MAAMC,KAAK,GAACzqB,MAAM,CAACle,QAAQ,CAACyoC,SAAS,EAACA,SAAS,GAACC,SAAS,CAAC;IAAC,MAAMM,KAAK,GAAC9qB,MAAM,CAACle,QAAQ,CAAC8oC,SAAS,EAACA,SAAS,GAACJ,SAAS,CAAC;IAAC,KAAI,IAAI/oC,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC+oC,SAAS,EAAC/oC,CAAC,EAAE,EAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,CAAC,GAACopC,KAAK,CAACppC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACgpC,KAAK,CAAChpC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACqpC,KAAK,CAACrpC,CAAC,CAAC;IAAA;EAAC;EAAC,SAASspC,cAAcA,CAACJ,SAAS,EAACJ,SAAS,EAACK,SAAS,EAACI,SAAS,EAACR,SAAS,EAAC;IAACG,SAAS,KAAG,CAAC;IAACJ,SAAS,KAAG,CAAC;IAACK,SAAS,KAAG,CAAC;IAACI,SAAS,KAAG,CAAC;IAAC,MAAM1mB,SAAS,GAAClG,MAAM,CAACkG,SAAS,GAAC,IAAIoB,iBAAiB,CAAC8kB,SAAS,GAAC,CAAC,CAAC;IAAC,MAAMK,KAAK,GAAC7qB,MAAM,CAACle,QAAQ,CAAC6oC,SAAS,EAACA,SAAS,GAACH,SAAS,CAAC;IAAC,MAAMC,KAAK,GAACzqB,MAAM,CAACle,QAAQ,CAACyoC,SAAS,EAACA,SAAS,GAACC,SAAS,CAAC;IAAC,MAAMM,KAAK,GAAC9qB,MAAM,CAACle,QAAQ,CAAC8oC,SAAS,EAACA,SAAS,GAACJ,SAAS,CAAC;IAAC,MAAMS,KAAK,GAACjrB,MAAM,CAACle,QAAQ,CAACkpC,SAAS,EAACA,SAAS,GAACR,SAAS,CAAC;IAAC,KAAI,IAAI/oC,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC+oC,SAAS,EAAC/oC,CAAC,EAAE,EAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,CAAC,GAACopC,KAAK,CAACppC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACgpC,KAAK,CAAChpC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACqpC,KAAK,CAACrpC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACwpC,KAAK,CAACxpC,CAAC,CAAC;IAAA;EAAC;EAAC,IAAI8iB,UAAU,GAACA,CAAA,KAAI,UAAU;EAAC,IAAIC,WAAW,GAACA,CAACnU,IAAI,EAACoU,SAAS,KAAG9iB,IAAI,CAACoc,IAAI,CAAC1N,IAAI,GAACoU,SAAS,CAAC,GAACA,SAAS;EAAC,IAAIC,UAAU,GAACrU,IAAI,IAAE;IAAC,IAAIsU,WAAW,GAACnE,UAAU,CAAC9d,MAAM,CAAC2U,UAAU;IAAC,IAAIuN,KAAK,GAAC,CAACvU,IAAI,GAACsU,WAAW,GAAC,KAAK,IAAE,KAAK,GAAC,CAAC;IAAC,IAAG;MAACnE,UAAU,CAACqE,IAAI,CAACD,KAAK,CAAC;MAACrE,iBAAiB,CAAC,CAAC;MAAC,OAAO,CAAC;IAAA,CAAC,QAAMjb,CAAC,EAAC,CAAC;EAAC,CAAC;EAAC,IAAIwf,uBAAuB,GAACC,aAAa,IAAE;IAAC,IAAIC,OAAO,GAACnF,MAAM,CAACthB,MAAM;IAACwmB,aAAa,MAAI,CAAC;IAAC,IAAIE,WAAW,GAACV,UAAU,CAAC,CAAC;IAAC,IAAGQ,aAAa,GAACE,WAAW,EAAC;MAAC,OAAO,KAAK;IAAA;IAAC,KAAI,IAAIC,OAAO,GAAC,CAAC,EAACA,OAAO,IAAE,CAAC,EAACA,OAAO,IAAE,CAAC,EAAC;MAAC,IAAIC,iBAAiB,GAACH,OAAO,IAAE,CAAC,GAAC,EAAE,GAACE,OAAO,CAAC;MAACC,iBAAiB,GAACxjB,IAAI,CAACC,GAAG,CAACujB,iBAAiB,EAACJ,aAAa,GAAC,SAAS,CAAC;MAAC,IAAIK,OAAO,GAACzjB,IAAI,CAACC,GAAG,CAACqjB,WAAW,EAACT,WAAW,CAAC7iB,IAAI,CAACqG,GAAG,CAAC+c,aAAa,EAACI,iBAAiB,CAAC,EAAC,KAAK,CAAC,CAAC;MAAC,IAAIE,WAAW,GAACX,UAAU,CAACU,OAAO,CAAC;MAAC,IAAGC,WAAW,EAAC;QAAC,OAAO,IAAI;MAAA;IAAC;IAAC,OAAO,KAAK;EAAA,CAAC;EAAC,IAAI6lB,GAAG,GAAC,CAAC,CAAC;EAAC,IAAIC,iBAAiB,GAACA,CAAA,KAAI3sB,WAAW,IAAE,gBAAgB;EAAC,IAAI4sB,aAAa,GAACA,CAAA,KAAI;IAAC,IAAG,CAACA,aAAa,CAACC,OAAO,EAAC;MAAC,IAAIC,IAAI,GAAC,CAACxnC,UAAU,CAACR,SAAS,EAAEioC,QAAQ,IAAE,GAAG,EAAEC,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC,GAAC,QAAQ;MAAC,IAAIC,GAAG,GAAC;QAACC,IAAI,EAAC,UAAU;QAACC,OAAO,EAAC,UAAU;QAACC,IAAI,EAAC,GAAG;QAACC,GAAG,EAAC,GAAG;QAACC,IAAI,EAAC,gBAAgB;QAACC,IAAI,EAACT,IAAI;QAAC3+B,CAAC,EAACw+B,iBAAiB,CAAC;MAAC,CAAC;MAAC,KAAI,IAAIliC,CAAC,IAAIiiC,GAAG,EAAC;QAAC,IAAGA,GAAG,CAACjiC,CAAC,CAAC,KAAG9H,SAAS,EAAC,OAAOsqC,GAAG,CAACxiC,CAAC,CAAC,CAAC,KAAKwiC,GAAG,CAACxiC,CAAC,CAAC,GAACiiC,GAAG,CAACjiC,CAAC,CAAC;MAAA;MAAC,IAAIoiC,OAAO,GAAC,EAAE;MAAC,KAAI,IAAIpiC,CAAC,IAAIwiC,GAAG,EAAC;QAACJ,OAAO,CAACtpC,IAAI,CAAC,GAAGkH,CAAC,IAAIwiC,GAAG,CAACxiC,CAAC,CAAC,EAAE,CAAC;MAAA;MAACmiC,aAAa,CAACC,OAAO,GAACA,OAAO;IAAA;IAAC,OAAOD,aAAa,CAACC,OAAO;EAAA,CAAC;EAAC,IAAIW,iBAAiB,GAACA,CAAC5sC,GAAG,EAAC6sC,IAAI,EAACC,MAAM,EAACC,eAAe,KAAG;IAAC,IAAG,EAAEA,eAAe,GAAC,CAAC,CAAC,EAAC,OAAO,CAAC;IAAC,IAAIC,QAAQ,GAACF,MAAM;IAAC,IAAIG,MAAM,GAACH,MAAM,GAACC,eAAe,GAAC,CAAC;IAAC,KAAI,IAAI1qC,CAAC,GAAC,CAAC,EAACA,CAAC,GAACrC,GAAG,CAACb,MAAM,EAAC,EAAEkD,CAAC,EAAC;MAAC,IAAI6qC,CAAC,GAACltC,GAAG,CAAC6b,WAAW,CAACxZ,CAAC,CAAC;MAAC,IAAG6qC,CAAC,IAAE,GAAG,EAAC;QAAC,IAAGJ,MAAM,IAAEG,MAAM,EAAC;QAAMJ,IAAI,CAACC,MAAM,EAAE,CAAC,GAACI,CAAC;MAAA,CAAC,MAAK,IAAGA,CAAC,IAAE,IAAI,EAAC;QAAC,IAAGJ,MAAM,GAAC,CAAC,IAAEG,MAAM,EAAC;QAAMJ,IAAI,CAACC,MAAM,EAAE,CAAC,GAAC,GAAG,GAACI,CAAC,IAAE,CAAC;QAACL,IAAI,CAACC,MAAM,EAAE,CAAC,GAAC,GAAG,GAACI,CAAC,GAAC,EAAE;MAAA,CAAC,MAAK,IAAGA,CAAC,IAAE,KAAK,EAAC;QAAC,IAAGJ,MAAM,GAAC,CAAC,IAAEG,MAAM,EAAC;QAAMJ,IAAI,CAACC,MAAM,EAAE,CAAC,GAAC,GAAG,GAACI,CAAC,IAAE,EAAE;QAACL,IAAI,CAACC,MAAM,EAAE,CAAC,GAAC,GAAG,GAACI,CAAC,IAAE,CAAC,GAAC,EAAE;QAACL,IAAI,CAACC,MAAM,EAAE,CAAC,GAAC,GAAG,GAACI,CAAC,GAAC,EAAE;MAAA,CAAC,MAAI;QAAC,IAAGJ,MAAM,GAAC,CAAC,IAAEG,MAAM,EAAC;QAAMJ,IAAI,CAACC,MAAM,EAAE,CAAC,GAAC,GAAG,GAACI,CAAC,IAAE,EAAE;QAACL,IAAI,CAACC,MAAM,EAAE,CAAC,GAAC,GAAG,GAACI,CAAC,IAAE,EAAE,GAAC,EAAE;QAACL,IAAI,CAACC,MAAM,EAAE,CAAC,GAAC,GAAG,GAACI,CAAC,IAAE,CAAC,GAAC,EAAE;QAACL,IAAI,CAACC,MAAM,EAAE,CAAC,GAAC,GAAG,GAACI,CAAC,GAAC,EAAE;QAAC7qC,CAAC,EAAE;MAAA;IAAC;IAACwqC,IAAI,CAACC,MAAM,CAAC,GAAC,CAAC;IAAC,OAAOA,MAAM,GAACE,QAAQ;EAAA,CAAC;EAAC,IAAIG,YAAY,GAACA,CAACntC,GAAG,EAACotC,MAAM,EAACL,eAAe,KAAGH,iBAAiB,CAAC5sC,GAAG,EAACygB,MAAM,EAAC2sB,MAAM,EAACL,eAAe,CAAC;EAAC,IAAIM,YAAY,GAACA,CAACC,SAAS,EAACC,WAAW,KAAG;IAAC,IAAIC,OAAO,GAAC,CAAC;IAAC,IAAIC,IAAI,GAAC,CAAC;IAAC,KAAI,IAAIC,MAAM,IAAI1B,aAAa,CAAC,CAAC,EAAC;MAAC,IAAI9iB,GAAG,GAACqkB,WAAW,GAACC,OAAO;MAAC3sB,OAAO,CAACysB,SAAS,GAACG,IAAI,IAAE,CAAC,CAAC,GAACvkB,GAAG;MAACskB,OAAO,IAAEL,YAAY,CAACO,MAAM,EAACxkB,GAAG,EAACv7B,QAAQ,CAAC,GAAC,CAAC;MAAC8/C,IAAI,IAAE,CAAC;IAAA;IAAC,OAAO,CAAC;EAAA,CAAC;EAAC,IAAIE,eAAe,GAAC3tC,GAAG,IAAE;IAAC,IAAI2Z,GAAG,GAAC,CAAC;IAAC,KAAI,IAAItX,CAAC,GAAC,CAAC,EAACA,CAAC,GAACrC,GAAG,CAACb,MAAM,EAAC,EAAEkD,CAAC,EAAC;MAAC,IAAI2D,CAAC,GAAChG,GAAG,CAAC+C,UAAU,CAACV,CAAC,CAAC;MAAC,IAAG2D,CAAC,IAAE,GAAG,EAAC;QAAC2T,GAAG,EAAE;MAAA,CAAC,MAAK,IAAG3T,CAAC,IAAE,IAAI,EAAC;QAAC2T,GAAG,IAAE,CAAC;MAAA,CAAC,MAAK,IAAG3T,CAAC,IAAE,KAAK,IAAEA,CAAC,IAAE,KAAK,EAAC;QAAC2T,GAAG,IAAE,CAAC;QAAC,EAAEtX,CAAC;MAAA,CAAC,MAAI;QAACsX,GAAG,IAAE,CAAC;MAAA;IAAC;IAAC,OAAOA,GAAG;EAAA,CAAC;EAAC,IAAIi0B,kBAAkB,GAACA,CAACC,cAAc,EAACC,iBAAiB,KAAG;IAAC,IAAI7B,OAAO,GAACD,aAAa,CAAC,CAAC;IAACnrB,OAAO,CAACgtB,cAAc,IAAE,CAAC,CAAC,GAAC5B,OAAO,CAAC9sC,MAAM;IAAC,IAAIquC,OAAO,GAAC,CAAC;IAAC,KAAI,IAAIE,MAAM,IAAIzB,OAAO,EAAC;MAACuB,OAAO,IAAEG,eAAe,CAACD,MAAM,CAAC,GAAC,CAAC;IAAA;IAAC7sB,OAAO,CAACitB,iBAAiB,IAAE,CAAC,CAAC,GAACN,OAAO;IAAC,OAAO,CAAC;EAAA,CAAC;EAAC,IAAIO,SAAS,GAAC,gBAAgB;EAAC,IAAIC,SAAS,GAAC,CAAC,gBAAgB;EAAC,IAAIC,kBAAkB,GAACr6B,GAAG,IAAEA,GAAG,GAACo6B,SAAS,IAAEp6B,GAAG,GAACm6B,SAAS,GAACG,GAAG,GAACpwC,MAAM,CAAC8V,GAAG,CAAC;EAAC,SAASu6B,QAAQA,CAACC,EAAE,EAACxnB,MAAM,EAACynB,MAAM,EAACxI,SAAS,EAAC;IAACjf,MAAM,GAACqnB,kBAAkB,CAACrnB,MAAM,CAAC;IAAC,OAAO,EAAE;EAAA;EAAC,IAAI0nB,gBAAgB,GAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC;EAAC,IAAIC,WAAW,GAAC7pC,UAAU,CAAC+G,WAAW,IAAE,IAAIA,WAAW,CAAD,CAAC;EAAC,IAAI+iC,aAAa,GAACA,CAACC,WAAW,EAACC,GAAG,EAACC,cAAc,EAACC,SAAS,KAAG;IAAC,IAAIC,MAAM,GAACH,GAAG,GAACC,cAAc;IAAC,IAAGC,SAAS,EAAC,OAAOC,MAAM;IAAC,OAAMJ,WAAW,CAACC,GAAG,CAAC,IAAE,EAAEA,GAAG,IAAEG,MAAM,CAAC,EAAC,EAAEH,GAAG;IAAC,OAAOA,GAAG;EAAA,CAAC;EAAC,IAAII,iBAAiB,GAACA,CAACL,WAAW,EAACC,GAAG,GAAC,CAAC,EAACC,cAAc,EAACC,SAAS,KAAG;IAAC,IAAIG,MAAM,GAACP,aAAa,CAACC,WAAW,EAACC,GAAG,EAACC,cAAc,EAACC,SAAS,CAAC;IAAC,IAAGG,MAAM,GAACL,GAAG,GAAC,EAAE,IAAED,WAAW,CAACnrC,MAAM,IAAEirC,WAAW,EAAC;MAAC,OAAOA,WAAW,CAAC3iC,MAAM,CAAC6iC,WAAW,CAAC/rC,QAAQ,CAACgsC,GAAG,EAACK,MAAM,CAAC,CAAC;IAAA;IAAC,IAAI/uC,GAAG,GAAC,EAAE;IAAC,OAAM0uC,GAAG,GAACK,MAAM,EAAC;MAAC,IAAIC,EAAE,GAACP,WAAW,CAACC,GAAG,EAAE,CAAC;MAAC,IAAG,EAAEM,EAAE,GAAC,GAAG,CAAC,EAAC;QAAChvC,GAAG,IAAEiC,MAAM,CAACC,YAAY,CAAC8sC,EAAE,CAAC;QAAC;MAAQ;MAAC,IAAIC,EAAE,GAACR,WAAW,CAACC,GAAG,EAAE,CAAC,GAAC,EAAE;MAAC,IAAG,CAACM,EAAE,GAAC,GAAG,KAAG,GAAG,EAAC;QAAChvC,GAAG,IAAEiC,MAAM,CAACC,YAAY,CAAC,CAAC8sC,EAAE,GAAC,EAAE,KAAG,CAAC,GAACC,EAAE,CAAC;QAAC;MAAQ;MAAC,IAAIC,EAAE,GAACT,WAAW,CAACC,GAAG,EAAE,CAAC,GAAC,EAAE;MAAC,IAAG,CAACM,EAAE,GAAC,GAAG,KAAG,GAAG,EAAC;QAACA,EAAE,GAAC,CAACA,EAAE,GAAC,EAAE,KAAG,EAAE,GAACC,EAAE,IAAE,CAAC,GAACC,EAAE;MAAA,CAAC,MAAI;QAACF,EAAE,GAAC,CAACA,EAAE,GAAC,CAAC,KAAG,EAAE,GAACC,EAAE,IAAE,EAAE,GAACC,EAAE,IAAE,CAAC,GAACT,WAAW,CAACC,GAAG,EAAE,CAAC,GAAC,EAAE;MAAA;MAAC,IAAGM,EAAE,GAAC,KAAK,EAAC;QAAChvC,GAAG,IAAEiC,MAAM,CAACC,YAAY,CAAC8sC,EAAE,CAAC;MAAA,CAAC,MAAI;QAAC,IAAIv1B,EAAE,GAACu1B,EAAE,GAAC,KAAK;QAAChvC,GAAG,IAAEiC,MAAM,CAACC,YAAY,CAAC,KAAK,GAACuX,EAAE,IAAE,EAAE,EAAC,KAAK,GAACA,EAAE,GAAC,IAAI,CAAC;MAAA;IAAC;IAAC,OAAOzZ,GAAG;EAAA,CAAC;EAAC,IAAImvC,SAAS,GAACA,CAACl4B,MAAM,EAACm4B,IAAI,KAAG;IAAC,IAAI9rC,MAAM,GAACgrC,gBAAgB,CAACr3B,MAAM,CAAC;IAAC,IAAGm4B,IAAI,KAAG,CAAC,IAAEA,IAAI,KAAG,EAAE,EAAC;MAAC,CAACn4B,MAAM,KAAG,CAAC,GAAC6I,GAAG,GAACG,GAAG,EAAE6uB,iBAAiB,CAACxrC,MAAM,CAAC,CAAC;MAACA,MAAM,CAACnE,MAAM,GAAC,CAAC;IAAA,CAAC,MAAI;MAACmE,MAAM,CAACX,IAAI,CAACysC,IAAI,CAAC;IAAA;EAAC,CAAC;EAAC,IAAIC,YAAY,GAACA,CAACnmB,GAAG,EAACylB,cAAc,EAACC,SAAS,KAAG1lB,GAAG,GAAC4lB,iBAAiB,CAACruB,MAAM,EAACyI,GAAG,EAACylB,cAAc,EAACC,SAAS,CAAC,GAAC,EAAE;EAAC,IAAIU,SAAS,GAACA,CAAClB,EAAE,EAACmB,GAAG,EAACC,MAAM,EAACC,IAAI,KAAG;IAAC,IAAI77B,GAAG,GAAC,CAAC;IAAC,KAAI,IAAIvR,CAAC,GAAC,CAAC,EAACA,CAAC,GAACmtC,MAAM,EAACntC,CAAC,EAAE,EAAC;MAAC,IAAI6mB,GAAG,GAACrI,OAAO,CAAC0uB,GAAG,IAAE,CAAC,CAAC;MAAC,IAAI51B,GAAG,GAACkH,OAAO,CAAC0uB,GAAG,GAAC,CAAC,IAAE,CAAC,CAAC;MAACA,GAAG,IAAE,CAAC;MAAC,KAAI,IAAI3kB,CAAC,GAAC,CAAC,EAACA,CAAC,GAACjR,GAAG,EAACiR,CAAC,EAAE,EAAC;QAACukB,SAAS,CAACf,EAAE,EAAC3tB,MAAM,CAACyI,GAAG,GAAC0B,CAAC,CAAC,CAAC;MAAA;MAAChX,GAAG,IAAE+F,GAAG;IAAA;IAACkH,OAAO,CAAC4uB,IAAI,IAAE,CAAC,CAAC,GAAC77B,GAAG;IAAC,OAAO,CAAC;EAAA,CAAC;EAAC,SAAS87B,aAAaA,CAACvE,SAAS,EAACC,SAAS,EAAC;IAACD,SAAS,KAAG,CAAC;IAAC,MAAMjmB,SAAS,GAAClG,MAAM,CAACkG,SAAS,GAAC,IAAIoB,iBAAiB,CAAC8kB,SAAS,GAAC,CAAC,CAAC;IAAC,MAAMC,KAAK,GAACzqB,MAAM,CAACle,QAAQ,CAACyoC,SAAS,EAACA,SAAS,GAACC,SAAS,CAAC;IAAC,KAAI,IAAI/oC,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC+oC,SAAS,EAAC/oC,CAAC,EAAE,EAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,CAAC,GAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACgpC,KAAK,CAAChpC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAAC,GAAG;IAAA;EAAC;EAAC,SAASstC,cAAcA,CAACxE,SAAS,EAACS,SAAS,EAACR,SAAS,EAAC;IAACD,SAAS,KAAG,CAAC;IAACS,SAAS,KAAG,CAAC;IAAC,MAAM1mB,SAAS,GAAClG,MAAM,CAACkG,SAAS,GAAC,IAAIoB,iBAAiB,CAAC8kB,SAAS,GAAC,CAAC,CAAC;IAAC,MAAMC,KAAK,GAACzqB,MAAM,CAACle,QAAQ,CAACyoC,SAAS,EAACA,SAAS,GAACC,SAAS,CAAC;IAAC,MAAMS,KAAK,GAACjrB,MAAM,CAACle,QAAQ,CAACkpC,SAAS,EAACA,SAAS,GAACR,SAAS,CAAC;IAAC,KAAI,IAAI/oC,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC+oC,SAAS,EAAC/oC,CAAC,EAAE,EAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,CAAC,GAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACgpC,KAAK,CAAChpC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACwpC,KAAK,CAACxpC,CAAC,CAAC;IAAA;EAAC;EAAC,SAASutC,eAAeA,CAACC,WAAW,EAAC;IAAC,MAAM9uC,OAAO,GAACsuC,YAAY,CAACQ,WAAW,CAAC;IAAC,CAAC7wB,MAAM,CAAC5gB,IAAI,IAAED,OAAO,CAACC,IAAI,EAAE,aAAa2C,OAAO,EAAE,CAAC;EAAA;EAAC,SAAS+uC,YAAYA,CAACvE,SAAS,EAACJ,SAAS,EAACK,SAAS,EAACJ,SAAS,EAAC;IAACG,SAAS,KAAG,CAAC;IAACJ,SAAS,KAAG,CAAC;IAACK,SAAS,KAAG,CAAC;IAAC,MAAMtmB,SAAS,GAAClG,MAAM,CAACkG,SAAS,GAAC,IAAIoB,iBAAiB,CAAC8kB,SAAS,GAAC,CAAC,CAAC;IAAC,MAAMK,KAAK,GAAC7qB,MAAM,CAACle,QAAQ,CAAC6oC,SAAS,EAACA,SAAS,GAACH,SAAS,CAAC;IAAC,MAAMC,KAAK,GAACzqB,MAAM,CAACle,QAAQ,CAACyoC,SAAS,EAACA,SAAS,GAACC,SAAS,CAAC;IAAC,MAAMM,KAAK,GAAC9qB,MAAM,CAACle,QAAQ,CAAC8oC,SAAS,EAACA,SAAS,GAACJ,SAAS,CAAC;IAAC,KAAI,IAAI/oC,CAAC,GAAC,CAAC,EAACA,CAAC,GAAC+oC,SAAS,EAAC/oC,CAAC,EAAE,EAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,CAAC,GAACopC,KAAK,CAACppC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACgpC,KAAK,CAAChpC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAACqpC,KAAK,CAACrpC,CAAC,CAAC;MAAC6iB,SAAS,CAAC,CAAC,GAAC7iB,CAAC,GAAC,CAAC,CAAC,GAAC,GAAG;IAAA;EAAC;EAAC,SAAS0tC,kBAAkBA,CAACF,WAAW,EAAC;IAAC,MAAM9uC,OAAO,GAACsuC,YAAY,CAACQ,WAAW,CAAC;IAAC,IAAG,CAAC7wB,MAAM,CAACgxB,aAAa,EAAC;MAAChxB,MAAM,CAACgxB,aAAa,GAACjvC,OAAO;IAAA,CAAC,MAAI;MAACie,MAAM,CAACgxB,aAAa,IAAE,IAAI,GAACjvC,OAAO;IAAA;EAAC;EAAC,IAAI8lB,kBAAkB,GAACA,CAACC,KAAK,EAACxjB,MAAM,KAAG;IAACkd,KAAK,CAACpO,GAAG,CAAC0U,KAAK,EAACxjB,MAAM,CAAC;EAAA,CAAC;EAAE,IAAG0b,MAAM,CAAC,eAAe,CAAC,EAACyE,aAAa,GAACzE,MAAM,CAAC,eAAe,CAAC;EAAC,IAAGA,MAAM,CAAC,OAAO,CAAC,EAACc,GAAG,GAACd,MAAM,CAAC,OAAO,CAAC;EAAC,IAAGA,MAAM,CAAC,UAAU,CAAC,EAACiB,GAAG,GAACjB,MAAM,CAAC,UAAU,CAAC;EAAC,IAAGA,MAAM,CAAC,YAAY,CAAC,EAACmB,UAAU,GAACnB,MAAM,CAAC,YAAY,CAAC;EAAC,IAAGA,MAAM,CAAC,WAAW,CAAC,EAACG,UAAU,GAACH,MAAM,CAAC,WAAW,CAAC;EAAC,IAAGA,MAAM,CAAC,aAAa,CAAC,EAACI,WAAW,GAACJ,MAAM,CAAC,aAAa,CAAC;EAAC,IAAGA,MAAM,CAAC,SAAS,CAAC,EAAC;IAAC,IAAG,OAAOA,MAAM,CAAC,SAAS,CAAC,IAAE,UAAU,EAACA,MAAM,CAAC,SAAS,CAAC,GAAC,CAACA,MAAM,CAAC,SAAS,CAAC,CAAC;IAAC,OAAMA,MAAM,CAAC,SAAS,CAAC,CAAC7f,MAAM,GAAC,CAAC,EAAC;MAAC6f,MAAM,CAAC,SAAS,CAAC,CAAC4C,KAAK,CAAC,CAAC,CAAC,CAAC;IAAA;EAAC;EAAE5C,MAAM,CAAC,oBAAoB,CAAC,GAAC6H,kBAAkB;EAAC,IAAIE,OAAO,EAACC,KAAK,EAACipB,WAAW,EAACjrB,oBAAoB,EAACmC,MAAM,EAACC,yBAAyB,EAAChG,UAAU;EAAC,SAAS4B,iBAAiBA,CAAChB,WAAW,EAAC;IAAC+E,OAAO,GAAC/H,MAAM,CAAC,SAAS,CAAC,GAACgD,WAAW,CAAC,GAAG,CAAC;IAACgF,KAAK,GAAChI,MAAM,CAAC,OAAO,CAAC,GAACgD,WAAW,CAAC,GAAG,CAAC;IAACiuB,WAAW,GAACjxB,MAAM,CAAC,aAAa,CAAC,GAACgD,WAAW,CAAC,GAAG,CAAC;IAACgD,oBAAoB,GAAChD,WAAW,CAAC,GAAG,CAAC;IAACmF,MAAM,GAAC/F,UAAU,GAACY,WAAW,CAAC,GAAG,CAAC;IAACoF,yBAAyB,GAACpF,WAAW,CAAC,2BAA2B,CAAC;EAAA;EAAC,IAAIU,WAAW,GAAC;IAAChc,CAAC,EAACgd,UAAU;IAAC0jB,CAAC,EAACxjB,oCAAoC;IAACvhB,CAAC,EAACqiB,cAAc;IAACve,CAAC,EAAC+kC,cAAc;IAAChlC,CAAC,EAAColC,cAAc;IAACrlC,CAAC,EAAC0lC,cAAc;IAAC/gB,CAAC,EAAClF,uBAAuB;IAACwqB,CAAC,EAAC7C,YAAY;IAACxmC,CAAC,EAAC+mC,kBAAkB;IAACtoC,CAAC,EAAC6oC,QAAQ;IAACvoC,CAAC,EAAC0pC,SAAS;IAACrhB,CAAC,EAACyhB,aAAa;IAACroB,CAAC,EAACsoB,cAAc;IAAC3pC,CAAC,EAAC4pC,eAAe;IAACnhB,CAAC,EAACzK,UAAU;IAACre,CAAC,EAACmqC,YAAY;IAAC/pC,CAAC,EAACgqC;EAAkB,CAAC;EAAC,SAASzoB,GAAGA,CAAA,EAAE;IAAC5F,MAAM,CAAC,CAAC;IAAC,SAAS6F,KAAKA,CAAA,EAAE;MAACvI,MAAM,CAAC,WAAW,CAAC,GAAC,IAAI;MAAC,IAAGoB,KAAK,EAAC;MAAO2B,WAAW,CAAC,CAAC;MAACzB,mBAAmB,GAAGtB,MAAM,CAAC;MAACA,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC;MAACiD,OAAO,CAAC,CAAC;IAAA;IAAC,IAAGjD,MAAM,CAAC,WAAW,CAAC,EAAC;MAACA,MAAM,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;MAAC+F,UAAU,CAAC,MAAI;QAACA,UAAU,CAAC,MAAI/F,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;QAACuI,KAAK,CAAC,CAAC;MAAA,CAAC,EAAC,CAAC,CAAC;IAAA,CAAC,MAAI;MAACA,KAAK,CAAC,CAAC;IAAA;EAAC;EAAC,IAAIvF,WAAW;EAACA,WAAW,GAAC,MAAOW,UAAU,CAAC,CAAE;EAAC2E,GAAG,CAAC,CAAC;EAAC,IAAGpG,kBAAkB,EAAC;IAACnC,SAAS,GAACC,MAAM;EAAA,CAAC,MAAI;IAACD,SAAS,GAAC,IAAIkE,OAAO,CAAC,CAACC,OAAO,EAACC,MAAM,KAAG;MAAC7C,mBAAmB,GAAC4C,OAAO;MAAC3C,kBAAkB,GAAC4C,MAAM;IAAA,CAAC,CAAC;EAAA;EAC1ic,OAAOpE,SAAS;AAAA;AAAC,+CAAegsB,QAAQ,E;;;;;;;;;;ACaK;AACI;AAElD,MAAMoF,MAAM,SAAS96B,UAAU,CAAC;EAC9BnU,WAAWA,CAAC+N,WAAW,EAAE6H,KAAK,EAAE3X,MAAM,EAAEmU,IAAI,EAAE;IAC5C,KAAK,CAAC,CAAC;IAEP,IAAI,CAACxR,KAAK,GACRmN,WAAW,YAAYnM,UAAU,GAC7BmM,WAAW,GACX,IAAInM,UAAU,CAACmM,WAAW,CAAC;IACjC,IAAI,CAAC6H,KAAK,GAAGA,KAAK,IAAI,CAAC;IACvB,IAAI,CAAChQ,GAAG,GAAG,IAAI,CAACgQ,KAAK;IACrB,IAAI,CAACN,GAAG,GAAGM,KAAK,GAAG3X,MAAM,IAAI,IAAI,CAAC2C,KAAK,CAAC3C,MAAM;IAC9C,IAAI,CAACmU,IAAI,GAAGA,IAAI;EAClB;EAEA,IAAInU,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACqX,GAAG,GAAG,IAAI,CAACM,KAAK;EAC9B;EAEA,IAAIxB,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACnW,MAAM,KAAK,CAAC;EAC1B;EAEAqW,OAAOA,CAAA,EAAG;IACR,IAAI,IAAI,CAAC1O,GAAG,IAAI,IAAI,CAAC0P,GAAG,EAAE;MACxB,OAAO,CAAC,CAAC;IACX;IACA,OAAO,IAAI,CAAC1U,KAAK,CAAC,IAAI,CAACgF,GAAG,EAAE,CAAC;EAC/B;EAEA2O,QAAQA,CAACtW,MAAM,EAAE;IACf,MAAM2C,KAAK,GAAG,IAAI,CAACA,KAAK;IACxB,MAAMgF,GAAG,GAAG,IAAI,CAACA,GAAG;IACpB,MAAMspC,MAAM,GAAG,IAAI,CAAC55B,GAAG;IAEvB,IAAI,CAACrX,MAAM,EAAE;MACX,IAAI,CAAC2H,GAAG,GAAGspC,MAAM;MACjB,OAAOtuC,KAAK,CAACY,QAAQ,CAACoE,GAAG,EAAEspC,MAAM,CAAC;IACpC;IACA,IAAI55B,GAAG,GAAG1P,GAAG,GAAG3H,MAAM;IACtB,IAAIqX,GAAG,GAAG45B,MAAM,EAAE;MAChB55B,GAAG,GAAG45B,MAAM;IACd;IACA,IAAI,CAACtpC,GAAG,GAAG0P,GAAG;IACd,OAAO1U,KAAK,CAACY,QAAQ,CAACoE,GAAG,EAAE0P,GAAG,CAAC;EACjC;EAEAF,YAAYA,CAACC,KAAK,EAAEC,GAAG,EAAE;IACvB,IAAID,KAAK,GAAG,CAAC,EAAE;MACbA,KAAK,GAAG,CAAC;IACX;IACA,IAAIC,GAAG,GAAG,IAAI,CAACA,GAAG,EAAE;MAClBA,GAAG,GAAG,IAAI,CAACA,GAAG;IAChB;IACA,OAAO,IAAI,CAAC1U,KAAK,CAACY,QAAQ,CAAC6T,KAAK,EAAEC,GAAG,CAAC;EACxC;EAEAG,KAAKA,CAAA,EAAG;IACN,IAAI,CAAC7P,GAAG,GAAG,IAAI,CAACgQ,KAAK;EACvB;EAEAF,SAASA,CAAA,EAAG;IACV,IAAI,CAACE,KAAK,GAAG,IAAI,CAAChQ,GAAG;EACvB;EAEA+P,aAAaA,CAACC,KAAK,EAAE3X,MAAM,EAAEmU,IAAI,GAAG,IAAI,EAAE;IACxC,OAAO,IAAI68B,MAAM,CAAC,IAAI,CAACruC,KAAK,CAACwB,MAAM,EAAEwT,KAAK,EAAE3X,MAAM,EAAEmU,IAAI,CAAC;EAC3D;EAEAI,KAAKA,CAAA,EAAG;IACN,OAAO,IAAIy8B,MAAM,CACf,IAAI,CAACruC,KAAK,CAACwB,MAAM,EACjB,IAAI,CAACwT,KAAK,EACV,IAAI,CAACN,GAAG,GAAG,IAAI,CAACM,KAAK,EACrB,IAAI,CAACxD,IAAI,CAACI,KAAK,CAAC,CAClB,CAAC;EACH;AACF;AAEA,MAAM28B,YAAY,SAASF,MAAM,CAAC;EAChCjvC,WAAWA,CAAClB,GAAG,EAAE;IACf,KAAK,CAAC6C,aAAa,CAAC7C,GAAG,CAAC,CAAC;EAC3B;AACF;AAEA,MAAMswC,UAAU,SAASH,MAAM,CAAC;EAC9BjvC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,IAAI4B,UAAU,CAAC,CAAC,CAAC,CAAC;EAC1B;AACF;;;;;;;;AC3FwD;AACN;AACS;AACtB;AAErC,MAAMytC,QAAQ,SAAS1vC,aAAa,CAAC;EACnCK,WAAWA,CAAChD,GAAG,EAAE;IACf,KAAK,CAACA,GAAG,EAAE,UAAU,CAAC;EACxB;AACF;AAEA,MAAMsyC,QAAQ,CAAC;EACb,OAAO,CAACltC,MAAM,GAAG,IAAI;EAErB,OAAO,CAACokB,OAAO,GAAG,IAAI;EAEtB,OAAO,CAACC,aAAa,GAAG,IAAI;EAE5B,OAAO,CAACC,OAAO,GAAG,IAAI;EAEtB,OAAO,CAACC,cAAc,GAAG,IAAI;EAE7B,OAAO,CAACC,OAAO,GAAG,IAAI;EAEtB,OAAOC,UAAUA,CAAC;IAAEL,OAAO;IAAEE,OAAO;IAAEC,cAAc;IAAEC;EAAQ,CAAC,EAAE;IAC/D,IAAI,CAAC,CAACF,OAAO,GAAGA,OAAO;IACvB,IAAI,CAAC,CAACC,cAAc,GAAGA,cAAc;IACrC,IAAI,CAAC,CAACC,OAAO,GAAGA,OAAO;IAEvB,IAAI,CAACD,cAAc,EAAE;MACnB,IAAI,CAAC,CAACH,OAAO,GAAGA,OAAO;IACzB;EACF;EAEA,aAAa,CAACM,WAAWC,CAACC,gBAAgB,EAAE;IAC1C,MAAM7N,IAAI,GAGJ,GAAG,IAAI,CAAC,CAACyN,OAAO,6BAA6B;IAEnD,IAAIjF,QAAQ,GAAG,IAAI;IACnB,IAAI;MACF,MAAMQ,GAAG,GAAG;MAAA;MAAA;MAEOhJ,IAAI,CAAE;MACzBwI,QAAQ,GAAGQ,GAAG,CAAC8E,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,OAAOjiB,CAAC,EAAE;MACV9H,IAAI,CAAC,yBAAyB8H,CAAC,EAAE,CAAC;IACpC;IACAgiB,gBAAgB,CAACrF,QAAQ,CAAC;EAC5B;EAEA,aAAa,CAACuF,eAAeC,CAACH,gBAAgB,EAAEzF,OAAO,EAAE6F,eAAe,EAAE;IACxE,MAAMC,QAAQ,GAAG,eAAe;IAChC,IAAI;MACF,IAAI,CAAC,IAAI,CAAC,CAACjlB,MAAM,EAAE;QACjB,IAAI,IAAI,CAAC,CAACukB,cAAc,EAAE;UACxB,IAAI,CAAC,CAACvkB,MAAM,GAAG,MAAM8U,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC0P,OAAO,GAAGS,QAAQ,EAAE,CAAC;QACrE,CAAC,MAAM;UAIL,IAAI,CAAC,CAACjlB,MAAM,GAAG,MAAM,IAAI,CAAC,CAACokB,OAAO,CAACc,eAAe,CAChD,iBAAiB,EACjB;YAAEC,IAAI,EAAE,SAAS;YAAEF;UAAS,CAC9B,CAAC;QACH;MACF;MACA,MAAMG,OAAO,GAAG,MAAMrG,WAAW,CAACsG,WAAW,CAAC,IAAI,CAAC,CAACrlB,MAAM,EAAEmf,OAAO,CAAC;MACpE,OAAO6F,eAAe,CAACI,OAAO,CAAC7F,QAAQ,CAAC;IAC1C,CAAC,CAAC,OAAOjT,MAAM,EAAE;MACfxR,IAAI,CAAC,6BAA6BwR,MAAM,EAAE,CAAC;MAE3C,IAAI,CAAC,CAACoY,WAAW,CAACE,gBAAgB,CAAC;MACnC,OAAO,IAAI;IACb,CAAC,SAAS;MACR,IAAI,CAAC,CAACR,OAAO,GAAG,IAAI;IACtB;EACF;EAEA,aAAa9b,MAAMA,CACjB9J,KAAK,EACL;IACE0kC,aAAa,GAAG,CAAC;IACjBiK,iBAAiB,GAAG,KAAK;IACzBC,WAAW,GAAG,KAAK;IACnBC,WAAW,GAAG;EAChB,CAAC,GAAG,CAAC,CAAC,EACN;IACA,IAAI,CAAC,IAAI,CAAC,CAAChpB,aAAa,EAAE;MACxB,MAAM;QAAEmB,OAAO;QAAE5F;MAAQ,CAAC,GAAGD,OAAO,CAAC8F,aAAa,CAAC,CAAC;MACpD,MAAMC,QAAQ,GAAG,CAACF,OAAO,CAAC;MAC1B,IAAI,CAAC,IAAI,CAAC,CAAClB,OAAO,EAAE;QAClB,IAAI,CAAC,CAACI,WAAW,CAAC9E,OAAO,CAAC;MAC5B,CAAC,MAAM;QACL8F,QAAQ,CAACrmB,IAAI,CACXooC,QAAQ,CAAC;UACP3sC,IAAI;UACJgqB,eAAe,EAAE,IAAI,CAAC,CAACA,eAAe,CAACpI,IAAI,CAAC,IAAI,EAAEkD,OAAO;QAC3D,CAAC,CACH,CAAC;MACH;MACA,IAAI,CAAC,CAACyE,aAAa,GAAG1E,OAAO,CAACgG,IAAI,CAACD,QAAQ,CAAC;IAC9C;IACA,MAAMlG,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC6E,aAAa;IAExC,IAAI,CAAC7E,MAAM,EAAE;MACX,MAAM,IAAIytB,QAAQ,CAAC,+BAA+B,CAAC;IACrD;IACA,IAAIrnB,GAAG;IAEP,IAAI;MACF,MAAMjY,IAAI,GAAGnP,KAAK,CAAC3C,MAAM;MACzB+pB,GAAG,GAAGpG,MAAM,CAACiE,OAAO,CAAC9V,IAAI,CAAC;MAC1B6R,MAAM,CAAC+D,kBAAkB,CAAC/kB,KAAK,EAAEonB,GAAG,CAAC;MACrC,MAAM+O,GAAG,GAAGnV,MAAM,CAACmtB,WAAW,CAC5B/mB,GAAG,EACHjY,IAAI,EACJu1B,aAAa,GAAG,CAAC,GAAGA,aAAa,GAAG,CAAC,EACrC,CAAC,CAACiK,iBAAiB,EACnB,CAAC,CAACC,WAAW,EACbC,WACF,CAAC;MACD,IAAI1Y,GAAG,EAAE;QACP,MAAM;UAAE+X;QAAc,CAAC,GAAGltB,MAAM;QAChC,IAAIktB,aAAa,EAAE;UACjB,OAAOltB,MAAM,CAACktB,aAAa;UAC3B,MAAM,IAAIO,QAAQ,CAACP,aAAa,CAAC;QACnC;QACA,MAAM,IAAIO,QAAQ,CAAC,eAAe,CAAC;MACrC;MACA,MAAM;QAAErrB;MAAU,CAAC,GAAGpC,MAAM;MAC5BA,MAAM,CAACoC,SAAS,GAAG,IAAI;MAEvB,OAAOA,SAAS;IAClB,CAAC,SAAS;MACR,IAAIgE,GAAG,EAAE;QACPpG,MAAM,CAACkE,KAAK,CAACkC,GAAG,CAAC;MACnB;IACF;EACF;EAEA,OAAOQ,OAAOA,CAAA,EAAG;IACf,IAAI,CAAC,CAAC/B,aAAa,GAAG,IAAI;EAC5B;EAEA,OAAOipB,oBAAoBA,CAAC35B,MAAM,EAAE;IAEhC,IAAIA,MAAM,YAAYxE,WAAW,IAAIA,WAAW,CAACC,MAAM,CAACuE,MAAM,CAAC,EAAE;MAC/DA,MAAM,GAAG,IAAIk5B,MAAM,CAACl5B,MAAM,CAAC;IAC7B,CAAC,MAAM;MACL,MAAM,IAAIs5B,QAAQ,CAAC,4CAA4C,CAAC;IAClE;IAIF,IAAIM,OAAO,GAAG55B,MAAM,CAACzB,OAAO,CAAC,CAAC;IAC9B,OAAOq7B,OAAO,IAAI,CAAC,EAAE;MACnB,MAAMC,OAAO,GAAGD,OAAO;MACvBA,OAAO,GAAG55B,MAAM,CAACzB,OAAO,CAAC,CAAC;MAC1B,MAAMpU,IAAI,GAAI0vC,OAAO,IAAI,CAAC,GAAID,OAAO;MAErC,IAAIzvC,IAAI,KAAK,MAAM,EAAE;QACnB6V,MAAM,CAACP,IAAI,CAAC,CAAC,CAAC;QACd,MAAMq6B,IAAI,GAAG95B,MAAM,CAACZ,QAAQ,CAAC,CAAC,KAAK,CAAC;QACpC,MAAM26B,IAAI,GAAG/5B,MAAM,CAACZ,QAAQ,CAAC,CAAC,KAAK,CAAC;QACpC,MAAM46B,KAAK,GAAGh6B,MAAM,CAACZ,QAAQ,CAAC,CAAC,KAAK,CAAC;QACrC,MAAM66B,KAAK,GAAGj6B,MAAM,CAACZ,QAAQ,CAAC,CAAC,KAAK,CAAC;QACrCY,MAAM,CAACP,IAAI,CAAC,EAAE,CAAC;QACf,MAAMy6B,IAAI,GAAGl6B,MAAM,CAACb,SAAS,CAAC,CAAC;QAC/B,OAAO;UACLoI,KAAK,EAAEuyB,IAAI,GAAGE,KAAK;UACnBxyB,MAAM,EAAEuyB,IAAI,GAAGE,KAAK;UAEpBE,gBAAgB,EAAE,CAAC;UACnB5I,eAAe,EAAE2I;QACnB,CAAC;MACH;IACF;IACA,MAAM,IAAIZ,QAAQ,CAAC,oCAAoC,CAAC;EAC1D;AACF;;;ACjL0B;AAIQ;AACmB;AACF;AAEnD7rC,UAAU,CAAC4sC,kBAAkB,GAAG;EAC9BtzC,iBAAiB;EACjBwpB,UAAU;EACV6pB,UAAU;EACV5S,SAAS;EACTsH,SAAS;EACTwK,QAAQ;EACRC,QAAQ;EACR5yC,iBAAiB;EACjBtG,cAAcA,EAAAA,cAAAA;AAChB,CAAC","sources":["webpack://pdf.js/./node_modules/core-js/internals/a-callable.js","webpack://pdf.js/./node_modules/core-js/internals/a-possible-prototype.js","webpack://pdf.js/./node_modules/core-js/internals/a-set.js","webpack://pdf.js/./node_modules/core-js/internals/a-string.js","webpack://pdf.js/./node_modules/core-js/internals/add-to-unscopables.js","webpack://pdf.js/./node_modules/core-js/internals/an-instance.js","webpack://pdf.js/./node_modules/core-js/internals/an-object-or-undefined.js","webpack://pdf.js/./node_modules/core-js/internals/an-object.js","webpack://pdf.js/./node_modules/core-js/internals/an-uint8-array.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-byte-length.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-is-detached.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-not-detached.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-transfer.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdf.js/./node_modules/core-js/internals/array-includes.js","webpack://pdf.js/./node_modules/core-js/internals/array-set-length.js","webpack://pdf.js/./node_modules/core-js/internals/base64-map.js","webpack://pdf.js/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdf.js/./node_modules/core-js/internals/classof-raw.js","webpack://pdf.js/./node_modules/core-js/internals/classof.js","webpack://pdf.js/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdf.js/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdf.js/./node_modules/core-js/internals/create-iter-result-object.js","webpack://pdf.js/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdf.js/./node_modules/core-js/internals/create-property-descriptor.js","webpack://pdf.js/./node_modules/core-js/internals/create-property.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-ins.js","webpack://pdf.js/./node_modules/core-js/internals/define-global-property.js","webpack://pdf.js/./node_modules/core-js/internals/descriptors.js","webpack://pdf.js/./node_modules/core-js/internals/detach-transferable.js","webpack://pdf.js/./node_modules/core-js/internals/document-create-element.js","webpack://pdf.js/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://pdf.js/./node_modules/core-js/internals/enum-bug-keys.js","webpack://pdf.js/./node_modules/core-js/internals/environment-is-node.js","webpack://pdf.js/./node_modules/core-js/internals/environment-user-agent.js","webpack://pdf.js/./node_modules/core-js/internals/environment-v8-version.js","webpack://pdf.js/./node_modules/core-js/internals/environment.js","webpack://pdf.js/./node_modules/core-js/internals/export.js","webpack://pdf.js/./node_modules/core-js/internals/fails.js","webpack://pdf.js/./node_modules/core-js/internals/function-bind-context.js","webpack://pdf.js/./node_modules/core-js/internals/function-bind-native.js","webpack://pdf.js/./node_modules/core-js/internals/function-call.js","webpack://pdf.js/./node_modules/core-js/internals/function-name.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this.js","webpack://pdf.js/./node_modules/core-js/internals/get-alphabet-option.js","webpack://pdf.js/./node_modules/core-js/internals/get-built-in-node-module.js","webpack://pdf.js/./node_modules/core-js/internals/get-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator-direct.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator-method.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator.js","webpack://pdf.js/./node_modules/core-js/internals/get-method.js","webpack://pdf.js/./node_modules/core-js/internals/get-set-record.js","webpack://pdf.js/./node_modules/core-js/internals/global-this.js","webpack://pdf.js/./node_modules/core-js/internals/has-own-property.js","webpack://pdf.js/./node_modules/core-js/internals/hidden-keys.js","webpack://pdf.js/./node_modules/core-js/internals/html.js","webpack://pdf.js/./node_modules/core-js/internals/ie8-dom-define.js","webpack://pdf.js/./node_modules/core-js/internals/indexed-object.js","webpack://pdf.js/./node_modules/core-js/internals/inspect-source.js","webpack://pdf.js/./node_modules/core-js/internals/internal-state.js","webpack://pdf.js/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdf.js/./node_modules/core-js/internals/is-array.js","webpack://pdf.js/./node_modules/core-js/internals/is-big-int-array.js","webpack://pdf.js/./node_modules/core-js/internals/is-callable.js","webpack://pdf.js/./node_modules/core-js/internals/is-forced.js","webpack://pdf.js/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://pdf.js/./node_modules/core-js/internals/is-object.js","webpack://pdf.js/./node_modules/core-js/internals/is-possible-prototype.js","webpack://pdf.js/./node_modules/core-js/internals/is-pure.js","webpack://pdf.js/./node_modules/core-js/internals/is-symbol.js","webpack://pdf.js/./node_modules/core-js/internals/iterate-simple.js","webpack://pdf.js/./node_modules/core-js/internals/iterate.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-close-all.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-close.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-create-proxy.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js","webpack://pdf.js/./node_modules/core-js/internals/iterators-core.js","webpack://pdf.js/./node_modules/core-js/internals/iterators.js","webpack://pdf.js/./node_modules/core-js/internals/length-of-array-like.js","webpack://pdf.js/./node_modules/core-js/internals/make-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/map-helpers.js","webpack://pdf.js/./node_modules/core-js/internals/math-trunc.js","webpack://pdf.js/./node_modules/core-js/internals/new-promise-capability.js","webpack://pdf.js/./node_modules/core-js/internals/object-create.js","webpack://pdf.js/./node_modules/core-js/internals/object-define-properties.js","webpack://pdf.js/./node_modules/core-js/internals/object-define-property.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/object-keys-internal.js","webpack://pdf.js/./node_modules/core-js/internals/object-keys.js","webpack://pdf.js/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdf.js/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdf.js/./node_modules/core-js/internals/own-keys.js","webpack://pdf.js/./node_modules/core-js/internals/require-object-coercible.js","webpack://pdf.js/./node_modules/core-js/internals/set-clone.js","webpack://pdf.js/./node_modules/core-js/internals/set-difference.js","webpack://pdf.js/./node_modules/core-js/internals/set-helpers.js","webpack://pdf.js/./node_modules/core-js/internals/set-intersection.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-disjoint-from.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-subset-of.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-superset-of.js","webpack://pdf.js/./node_modules/core-js/internals/set-iterate.js","webpack://pdf.js/./node_modules/core-js/internals/set-method-accept-set-like.js","webpack://pdf.js/./node_modules/core-js/internals/set-method-get-keys-before-cloning-detection.js","webpack://pdf.js/./node_modules/core-js/internals/set-size.js","webpack://pdf.js/./node_modules/core-js/internals/set-symmetric-difference.js","webpack://pdf.js/./node_modules/core-js/internals/set-union.js","webpack://pdf.js/./node_modules/core-js/internals/shared-key.js","webpack://pdf.js/./node_modules/core-js/internals/shared-store.js","webpack://pdf.js/./node_modules/core-js/internals/shared.js","webpack://pdf.js/./node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://pdf.js/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://pdf.js/./node_modules/core-js/internals/to-absolute-index.js","webpack://pdf.js/./node_modules/core-js/internals/to-big-int.js","webpack://pdf.js/./node_modules/core-js/internals/to-index.js","webpack://pdf.js/./node_modules/core-js/internals/to-indexed-object.js","webpack://pdf.js/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdf.js/./node_modules/core-js/internals/to-length.js","webpack://pdf.js/./node_modules/core-js/internals/to-object.js","webpack://pdf.js/./node_modules/core-js/internals/to-primitive.js","webpack://pdf.js/./node_modules/core-js/internals/to-property-key.js","webpack://pdf.js/./node_modules/core-js/internals/to-string-tag-support.js","webpack://pdf.js/./node_modules/core-js/internals/to-string.js","webpack://pdf.js/./node_modules/core-js/internals/try-to-string.js","webpack://pdf.js/./node_modules/core-js/internals/uid.js","webpack://pdf.js/./node_modules/core-js/internals/uint8-from-base64.js","webpack://pdf.js/./node_modules/core-js/internals/uint8-from-hex.js","webpack://pdf.js/./node_modules/core-js/internals/url-constructor-detection.js","webpack://pdf.js/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdf.js/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdf.js/./node_modules/core-js/internals/validate-arguments-length.js","webpack://pdf.js/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://pdf.js/./node_modules/core-js/internals/well-known-symbol.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.detached.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.transfer.js","webpack://pdf.js/./node_modules/core-js/modules/es.array.includes.js","webpack://pdf.js/./node_modules/core-js/modules/es.array.push.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.constructor.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.every.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.map.js","webpack://pdf.js/./node_modules/core-js/modules/es.map.get-or-insert-computed.js","webpack://pdf.js/./node_modules/core-js/modules/es.map.get-or-insert.js","webpack://pdf.js/./node_modules/core-js/modules/es.promise.with-resolvers.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.difference.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.intersection.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.union.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.typed-array.with.js","webpack://pdf.js/./node_modules/core-js/modules/es.uint8-array.set-from-base64.js","webpack://pdf.js/./node_modules/core-js/modules/es.uint8-array.set-from-hex.js","webpack://pdf.js/./node_modules/core-js/modules/es.uint8-array.to-base64.js","webpack://pdf.js/./node_modules/core-js/modules/es.uint8-array.to-hex.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://pdf.js/./node_modules/core-js/modules/web.url.parse.js","webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/./src/shared/util.js","webpack://pdf.js/./src/core/primitives.js","webpack://pdf.js/./src/core/base_stream.js","webpack://pdf.js/./src/core/core_utils.js","webpack://pdf.js/./external/jbig2/jbig2.js","webpack://pdf.js/./src/core/jbig2_ccittFax.js","webpack://pdf.js/./src/shared/math_clamp.js","webpack://pdf.js/./src/core/colorspace.js","webpack://pdf.js/./external/qcms/qcms_utils.js","webpack://pdf.js/./external/qcms/qcms.js","webpack://pdf.js/./src/core/icc_colorspace.js","webpack://pdf.js/./src/core/colorspace_utils.js","webpack://pdf.js/./src/shared/image_utils.js","webpack://pdf.js/./src/core/jpg.js","webpack://pdf.js/./external/openjpeg/openjpeg.js","webpack://pdf.js/./src/core/stream.js","webpack://pdf.js/./src/core/jpx.js","webpack://pdf.js/./src/pdf.image_decoders.js"],"sourcesContent":["'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'string') return argument;\n throw new $TypeError('Argument is not a string');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (argument === undefined || isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object or undefined');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $TypeError = TypeError;\n\n// Perform ? RequireInternalSlot(argument, [[TypedArrayName]])\n// If argument.[[TypedArrayName]] is not \"Uint8Array\", throw a TypeError exception\nmodule.exports = function (argument) {\n if (classof(argument) === 'Uint8Array') return argument;\n throw new $TypeError('Argument is not an Uint8Array');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar DataView = globalThis.DataView;\n\nmodule.exports = function (O) {\n if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;\n try {\n // eslint-disable-next-line no-new -- thrower\n new DataView(O);\n return false;\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar max = Math.max;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n notDetached(arrayBuffer);\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength\n ? { maxByteLength: max(newByteLength, maxByteLength(arrayBuffer)) }\n : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n createNonEnumerableProperty(globalThis[NAME].prototype, TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar commonAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\nvar base64Alphabet = commonAlphabet + '+/';\nvar base64UrlAlphabet = commonAlphabet + '-_';\n\nvar inverse = function (characters) {\n // TODO: use `Object.create(null)` in `core-js@4`\n var result = {};\n var index = 0;\n for (; index < 64; index++) result[characters.charAt(index)] = index;\n return result;\n};\n\nmodule.exports = {\n i2c: base64Alphabet,\n c2i: inverse(base64Alphabet),\n i2cUrl: base64UrlAlphabet,\n c2iUrl: inverse(base64UrlAlphabet)\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = function () { /* empty */ }.bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && function something() { /* empty */ }.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (options) {\n var alphabet = options && options.alphabet;\n if (alphabet === undefined || alphabet === 'base64' || alphabet === 'base64url') return alphabet || 'base64';\n throw new $TypeError('Incorrect `alphabet` option');\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/ecma262/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n var $iterator = iterator;\n iterator = undefined;\n if ($iterator) iteratorClose($iterator, 'normal');\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n // `IteratorValue` errors should propagate without closing the iterator\n var value = step.value;\n try {\n result = callFn(value);\n } catch (error) {\n if (iterator) iteratorClose(iterator, 'throw', error);\n else throw error;\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar iteratorClose = require('../internals/iterator-close');\n\nmodule.exports = function (iters, kind, value) {\n for (var i = iters.length - 1; i >= 0; i--) {\n if (iters[i] === undefined) continue;\n try {\n value = iteratorClose(iters[i].iterator, kind, value);\n } catch (error) {\n kind = 'throw';\n value = error;\n }\n }\n if (kind === 'throw') throw value;\n return value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorCloseAll = require('../internals/iterator-close-all');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar NORMAL = 'normal';\nvar THROW = 'throw';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n if (state.done) return createIterResultObject(undefined, true);\n try {\n var result = state.nextHandler();\n return state.returnHandlerResult ? result : createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n var done = state.done;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (done) return createIterResultObject(undefined, true);\n if (state.inner) try {\n iteratorClose(state.inner.iterator, NORMAL);\n } catch (error) {\n return iteratorClose(iterator, THROW, error);\n }\n if (state.openIters) try {\n iteratorCloseAll(state.openIters, NORMAL);\n } catch (error) {\n if (iterator) return iteratorClose(iterator, THROW, error);\n throw error;\n }\n if (iterator) iteratorClose(iterator, NORMAL);\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.returnHandlerResult = !!RETURN_HANDLER_RESULT;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","'use strict';\n// Should throw an error on invalid iterator\n// https://issues.chromium.org/issues/336839115\nmodule.exports = function (methodName, argument) {\n // eslint-disable-next-line es/no-iterator -- required for testing\n var method = typeof Iterator == 'function' && Iterator.prototype[methodName];\n if (method) try {\n method.call({ next: null }, argument).next();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// https://github.com/tc39/ecma262/pull/3467\nmodule.exports = function (METHOD_NAME, ExpectedError) {\n var Iterator = globalThis.Iterator;\n var IteratorPrototype = Iterator && Iterator.prototype;\n var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];\n\n var CLOSED = false;\n\n if (method) try {\n method.call({\n next: function () { return { done: true }; },\n 'return': function () { CLOSED = true; }\n }, -1);\n } catch (error) {\n // https://bugs.webkit.org/show_bug.cgi?id=291195\n if (!(error instanceof ExpectedError)) CLOSED = false;\n }\n\n if (!CLOSED) return method;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(result) <= otherRec.size) iterateSet(result, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(result, e)) remove(result, e);\n });\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nvar createSetLikeWithInfinitySize = function (size) {\n return {\n size: size,\n has: function () {\n return true;\n },\n keys: function () {\n throw new Error('e');\n }\n };\n};\n\nmodule.exports = function (name, callback) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17 implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n // also covered engines with\n // https://bugs.webkit.org/show_bug.cgi?id=272679\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n if (!callback) return true;\n // early V8 implementation bug\n // https://issues.chromium.org/issues/351332634\n try {\n new Set()[name](createSetLikeWithInfinitySize(-Infinity));\n return false;\n } catch (error) {\n var set = new Set([1, 2]);\n return callback(set[name](createSetLikeWithInfinitySize(Infinity)));\n }\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\n// Should get iterator record of a set-like object before cloning this\n// https://bugs.webkit.org/show_bug.cgi?id=289430\nmodule.exports = function (METHOD_NAME) {\n try {\n // eslint-disable-next-line es/no-set -- needed for test\n var baseSet = new Set();\n var setLike = {\n size: 0,\n has: function () { return true; },\n keys: function () {\n // eslint-disable-next-line es/no-object-defineproperty -- needed for test\n return Object.defineProperty({}, 'next', {\n get: function () {\n baseSet.clear();\n baseSet.add(4);\n return function () {\n return { done: true };\n };\n }\n });\n }\n };\n var result = baseSet[METHOD_NAME](setLike);\n\n return result.size === 1 && result.values().next().value === 4;\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.49.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: 'Β© 2013β2025 Denis Pushkarev (zloirock.ru), 2025β2026 CoreJS Company (core-js.io). All rights reserved.',\n license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar aString = require('../internals/a-string');\nvar hasOwn = require('../internals/has-own-property');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\nvar notDetached = require('../internals/array-buffer-not-detached');\n\nvar base64Alphabet = base64Map.c2i;\nvar base64UrlAlphabet = base64Map.c2iUrl;\n\nvar SyntaxError = globalThis.SyntaxError;\nvar TypeError = globalThis.TypeError;\nvar at = uncurryThis(''.charAt);\n\nvar skipAsciiWhitespace = function (string, index) {\n var length = string.length;\n for (;index < length; index++) {\n var chr = at(string, index);\n if (chr !== ' ' && chr !== '\\t' && chr !== '\\n' && chr !== '\\f' && chr !== '\\r') break;\n } return index;\n};\n\nvar decodeBase64Chunk = function (chunk, alphabet, throwOnExtraBits) {\n var chunkLength = chunk.length;\n\n if (chunkLength < 4) {\n chunk += chunkLength === 2 ? 'AA' : 'A';\n }\n\n var triplet = (alphabet[at(chunk, 0)] << 18)\n + (alphabet[at(chunk, 1)] << 12)\n + (alphabet[at(chunk, 2)] << 6)\n + alphabet[at(chunk, 3)];\n\n var chunkBytes = [\n (triplet >> 16) & 255,\n (triplet >> 8) & 255,\n triplet & 255\n ];\n\n if (chunkLength === 2) {\n if (throwOnExtraBits && chunkBytes[1] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0]];\n }\n\n if (chunkLength === 3) {\n if (throwOnExtraBits && chunkBytes[2] !== 0) {\n throw new SyntaxError('Extra bits');\n }\n return [chunkBytes[0], chunkBytes[1]];\n }\n\n return chunkBytes;\n};\n\nvar writeBytes = function (bytes, elements, written) {\n var elementsLength = elements.length;\n for (var index = 0; index < elementsLength; index++) {\n bytes[written + index] = elements[index];\n }\n return written + elementsLength;\n};\n\n/* eslint-disable max-statements, max-depth -- TODO */\nmodule.exports = function (string, options, into, maxLength) {\n aString(string);\n anObjectOrUndefined(options);\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var lastChunkHandling = options ? options.lastChunkHandling : undefined;\n\n if (lastChunkHandling === undefined) lastChunkHandling = 'loose';\n\n if (lastChunkHandling !== 'loose' && lastChunkHandling !== 'strict' && lastChunkHandling !== 'stop-before-partial') {\n throw new TypeError('Incorrect `lastChunkHandling` option');\n }\n\n if (into) notDetached(into.buffer);\n\n var stringLength = string.length;\n var bytes = into || [];\n var written = 0;\n var read = 0;\n var chunk = '';\n var index = 0;\n\n if (maxLength) while (true) {\n index = skipAsciiWhitespace(string, index);\n if (index === stringLength) {\n if (chunk.length > 0) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n if (lastChunkHandling === 'loose') {\n if (chunk.length === 1) {\n throw new SyntaxError('Malformed padding: exactly one additional character');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n } else {\n throw new SyntaxError('Missing padding');\n }\n }\n read = stringLength;\n break;\n }\n var chr = at(string, index);\n ++index;\n if (chr === '=') {\n if (chunk.length < 2) {\n throw new SyntaxError('Padding is too early');\n }\n index = skipAsciiWhitespace(string, index);\n if (chunk.length === 2) {\n if (index === stringLength) {\n if (lastChunkHandling === 'stop-before-partial') {\n break;\n }\n throw new SyntaxError('Malformed padding: only one =');\n }\n if (at(string, index) === '=') {\n ++index;\n index = skipAsciiWhitespace(string, index);\n }\n }\n if (index < stringLength) {\n throw new SyntaxError('Unexpected character after padding');\n }\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, lastChunkHandling === 'strict'), written);\n read = stringLength;\n break;\n }\n if (!hasOwn(alphabet, chr)) {\n throw new SyntaxError('Unexpected character');\n }\n var remainingBytes = maxLength - written;\n if (remainingBytes === 1 && chunk.length === 2 || remainingBytes === 2 && chunk.length === 3) {\n // special case: we can fit exactly the number of bytes currently represented by chunk, so we were just checking for `=`\n break;\n }\n\n chunk += chr;\n if (chunk.length === 4) {\n written = writeBytes(bytes, decodeBase64Chunk(chunk, alphabet, false), written);\n chunk = '';\n read = index;\n if (written === maxLength) {\n break;\n }\n }\n }\n\n return { bytes: bytes, read: read, written: written };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = globalThis.Uint8Array;\nvar SyntaxError = globalThis.SyntaxError;\nvar min = Math.min;\nvar stringMatch = uncurryThis(''.match);\n\nmodule.exports = function (string, into) {\n var stringLength = string.length;\n if (stringLength % 2 !== 0) throw new SyntaxError('String should be an even number of characters');\n var maxLength = into ? min(into.length, stringLength / 2) : stringLength / 2;\n var bytes = into || new Uint8Array(maxLength);\n var segments = stringMatch(string, /.{2}/g);\n var written = 0;\n for (; written < maxLength; written++) {\n var result = +('0x' + segments[written] + '0');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (result !== result) {\n throw new SyntaxError('String should only contain hex characters');\n }\n bytes[written] = result >> 4;\n }\n return { bytes: bytes, read: written << 1 };\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'https://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'https://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('https://ΡΠ΅ΡΡ').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('https://a#Π±').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('https://x', undefined).host !== 'x';\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// Safari 26.4- bug\nvar BROKEN_ON_SPARSE_WITH_FROM_INDEX = fails(function () {\n // eslint-disable-next-line no-sparse-arrays, es/no-array-prototype-includes -- detection\n return [, 1].includes(undefined, 1);\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE || BROKEN_ON_SPARSE_WITH_FROM_INDEX }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {\n every: function every(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });\nvar mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);\n\nvar FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n map: function map(mapper) {\n anObject(this);\n try {\n aCallable(mapper);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);\n\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsertComputed` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsertcomputed\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n var hasKey = has(this, key);\n aCallable(callbackfn);\n if (hasKey) return get(this, key);\n // CanonicalizeKeyedCollectionKey\n if (key === 0 && 1 / key === -Infinity) key = 0;\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsert` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(this, key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar fails = require('../internals/fails');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {\n return result.size === 0;\n});\n\nvar FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {\n // https://bugs.webkit.org/show_bug.cgi?id=288595\n var setLike = {\n size: 1,\n has: function () { return true; },\n keys: function () {\n var index = 0;\n return {\n next: function () {\n var done = index++ > 1;\n if (baseSet.has(1)) baseSet.clear();\n return { done: done, value: 2 };\n }\n };\n }\n };\n // eslint-disable-next-line es/no-set -- testing\n var baseSet = new Set([1, 2, 3, 4]);\n // eslint-disable-next-line es/no-set-prototype-difference -- testing\n return baseSet.difference(setLike).size !== 3;\n});\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {\n return result.size === 2 && result.has(1) && result.has(2);\n}) || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {\n return !result;\n});\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {\n return result;\n});\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {\n return !result;\n});\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n union: union\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar $RangeError = RangeError;\n\nvar PROPER_ORDER = function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// Bug in WebKit. It should truncate a negative fractional index to zero, but instead throws an error\nvar THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () {\n try {\n // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](-0.5, 1);\n } catch (error) {\n return true;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n var numericValue = isBigIntArray(O) ? toBigInt(value) : +value;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new (getTypedArrayConstructor(O))(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? numericValue : O[k];\n return A;\n} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar $fromBase64 = require('../internals/uint8-from-base64');\nvar anUint8Array = require('../internals/an-uint8-array');\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.setFromBase64 || !function () {\n var target = new Uint8Array([255, 255, 255, 255, 255]);\n try {\n target.setFromBase64('', null);\n return;\n } catch (error) { /* empty */ }\n // Webkit not throw an error on odd length string\n try {\n target.setFromBase64('a');\n return;\n } catch (error) { /* empty */ }\n try {\n target.setFromBase64('MjYyZg===');\n } catch (error) {\n return target[0] === 50 && target[1] === 54 && target[2] === 50 && target[3] === 255 && target[4] === 255;\n }\n}();\n\n// `Uint8Array.prototype.setFromBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.setfrombase64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n setFromBase64: function setFromBase64(string /* , options */) {\n anUint8Array(this);\n\n var result = $fromBase64(string, arguments.length > 1 ? arguments[1] : undefined, this, this.length);\n\n return { read: result.read, written: result.written };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar aString = require('../internals/a-string');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar $fromHex = require('../internals/uint8-from-hex');\n\n// Should not throw an error on length-tracking views over ResizableArrayBuffer\n// https://issues.chromium.org/issues/454630441\nfunction throwsOnLengthTrackingView() {\n try {\n // eslint-disable-next-line es/no-resizable-and-growable-arraybuffers -- required for testing\n var rab = new ArrayBuffer(16, { maxByteLength: 1024 });\n // eslint-disable-next-line es/no-uint8array-prototype-setfromhex, es/no-typed-arrays -- required for testing\n new Uint8Array(rab).setFromHex('cafed00d');\n } catch (error) {\n return true;\n }\n}\n\n// `Uint8Array.prototype.setFromHex` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.setfromhex\nif (globalThis.Uint8Array) $({ target: 'Uint8Array', proto: true, forced: throwsOnLengthTrackingView() }, {\n setFromHex: function setFromHex(string) {\n anUint8Array(this);\n aString(string);\n notDetached(this.buffer);\n var read = $fromHex(string, this).read;\n return { read: read, written: read / 2 };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObjectOrUndefined = require('../internals/an-object-or-undefined');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar base64Map = require('../internals/base64-map');\nvar getAlphabetOption = require('../internals/get-alphabet-option');\n\nvar base64Alphabet = base64Map.i2c;\nvar base64UrlAlphabet = base64Map.i2cUrl;\n\nvar charAt = uncurryThis(''.charAt);\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toBase64 || !function () {\n try {\n var target = new Uint8Array();\n target.toBase64(null);\n } catch (error) {\n return true;\n }\n}();\n\n// `Uint8Array.prototype.toBase64` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.tobase64\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n toBase64: function toBase64(/* options */) {\n var array = anUint8Array(this);\n var options = arguments.length ? anObjectOrUndefined(arguments[0]) : undefined;\n var alphabet = getAlphabetOption(options) === 'base64' ? base64Alphabet : base64UrlAlphabet;\n var omitPadding = !!options && !!options.omitPadding;\n notDetached(this.buffer);\n\n var result = '';\n var i = 0;\n var length = array.length;\n var triplet;\n\n var at = function (shift) {\n return charAt(alphabet, (triplet >> (6 * shift)) & 63);\n };\n\n for (; i + 2 < length; i += 3) {\n triplet = (array[i] << 16) + (array[i + 1] << 8) + array[i + 2];\n result += at(3) + at(2) + at(1) + at(0);\n }\n if (i + 2 === length) {\n triplet = (array[i] << 16) + (array[i + 1] << 8);\n result += at(3) + at(2) + at(1) + (omitPadding ? '' : '=');\n } else if (i + 1 === length) {\n triplet = array[i] << 16;\n result += at(3) + at(2) + (omitPadding ? '' : '==');\n }\n\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anUint8Array = require('../internals/an-uint8-array');\nvar notDetached = require('../internals/array-buffer-not-detached');\n\nvar numberToString = uncurryThis(1.1.toString);\nvar join = uncurryThis([].join);\nvar $Array = Array;\n\nvar Uint8Array = globalThis.Uint8Array;\n\nvar INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS = !Uint8Array || !Uint8Array.prototype.toHex || !(function () {\n try {\n var target = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);\n return target.toHex() === 'ffffffffffffffff';\n } catch (error) {\n return false;\n }\n})();\n\n// `Uint8Array.prototype.toHex` method\n// https://tc39.es/ecma262/#sec-uint8array.prototype.tohex\nif (Uint8Array) $({ target: 'Uint8Array', proto: true, forced: INCORRECT_BEHAVIOR_OR_DOESNT_EXISTS }, {\n toHex: function toHex() {\n anUint8Array(this);\n notDetached(this.buffer);\n var result = $Array(this.length);\n for (var i = 0, length = this.length; i < length; i++) {\n var hex = numberToString(this[i], 16);\n result[i] = hex.length === 1 ? '0' + hex : hex;\n }\n return join(result, '');\n }\n});\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index];\n $delete(this, entry.key);\n index++;\n }\n index = 0;\n while (index < entriesLength) {\n entry = entries[index++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// `URL.parse` method\n// https://url.spec.whatwg.org/#dom-url-parse\n$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {\n parse: function parse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return new URL(urlString, base);\n } catch (error) {\n return null;\n }\n }\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nconst BBOX_INIT = [Infinity, Infinity, -Infinity, -Infinity];\nconst F32_BBOX_INIT = new Float32Array(BBOX_INIT);\n\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - SAVE is used, on the worker-thread, when saving modified annotations.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - IS_EDITING is used when editing is active in the viewer.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n IS_EDITING: 0x80,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n HIGHLIGHT: 9,\n STAMP: 13,\n INK: 15,\n POPUP: 16,\n SIGNATURE: 101,\n COMMENT: 102,\n};\n\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23,\n INK_COLOR_AND_OPACITY: 24,\n HIGHLIGHT_COLOR: 31,\n HIGHLIGHT_THICKNESS: 32,\n HIGHLIGHT_FREE: 33,\n HIGHLIGHT_SHOW_ALL: 34,\n DRAW_STEP: 41,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst MeshFigureType = {\n TRIANGLES: 1,\n LATTICE: 2,\n PATCH: 3,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n // PLEASE NOTE: We purposely keep any removed operators commented out, since\n // re-numbering the list would risk breaking third-party users.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n // beginAnnotations: 78,\n // endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n // paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n setStrokeTransparent: 92,\n setFillTransparent: 93,\n rawFillPath: 94,\n};\n\n// In order to have a switch statement that is fast (i.e. which use a jump\n// table), we need to have the OPS in a contiguous range.\nconst DrawOPS = {\n moveTo: 0,\n lineTo: 1,\n curveTo: 2,\n quadraticCurveTo: 3,\n closePath: 4,\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n // eslint-disable-next-line no-console\n console.info(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n // eslint-disable-next-line no-console\n console.warn(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n\n const absoluteUrl = baseUrl ? URL.parse(url, baseUrl) : URL.parse(url);\n return _isValidProtocol(absoluteUrl) ? absoluteUrl : null;\n}\n\n/**\n * Remove, or replace, the hash property of the URL.\n *\n * @param {URL|string} url - The absolute, or relative, URL.\n * @param {string} hash - The hash property (use an empty string to remove it).\n * @param {boolean} [allowRel] - Allow relative URLs.\n * @returns {string} The resulting URL string.\n */\nfunction updateUrlHash(url, hash, allowRel = false) {\n const res = URL.parse(url);\n if (res) {\n res.hash = hash;\n return res.href;\n }\n // Support well-formed relative URLs, necessary for `web/app.js` in GENERIC\n // builds, by optionally falling back to string parsing.\n if (allowRel && createValidAbsoluteUrl(url, \"http://example.com\")) {\n return url.split(\"#\", 1)[0] + `${hash ? `#${hash}` : \"\"}`;\n }\n return \"\";\n}\n\n// Extract the final component from a path string.\nfunction stripPath(str) {\n return str.substring(str.lastIndexOf(\"/\") + 1);\n}\n\nfunction shadow(obj, prop, value, nonSerializable = false) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n this.constructor === BaseException\n ) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass ResponseException extends BaseException {\n constructor(msg, status, missing) {\n super(msg, \"ResponseException\");\n this.status = status;\n this.missing = missing;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n\n static get isImageDecoderSupported() {\n return shadow(\n this,\n \"isImageDecoderSupported\",\n typeof ImageDecoder !== \"undefined\"\n );\n }\n\n static get isFloat16ArraySupported() {\n return shadow(\n this,\n \"isFloat16ArraySupported\",\n typeof Float16Array !== \"undefined\"\n );\n }\n\n static get isSanitizerSupported() {\n return shadow(\n this,\n \"isSanitizerSupported\",\n typeof Sanitizer !== \"undefined\"\n );\n }\n\n static get platform() {\n const { platform, userAgent } = navigator;\n\n return shadow(this, \"platform\", {\n isAndroid: userAgent.includes(\"Android\"),\n isLinux: platform.includes(\"Linux\"),\n isMac: platform.includes(\"Mac\"),\n isWindows: platform.includes(\"Win\"),\n isFirefox:\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n userAgent.includes(\"Firefox\"),\n });\n }\n\n static get isCSSRoundSupported() {\n return shadow(\n this,\n \"isCSSRoundSupported\",\n globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\")\n );\n }\n\n static get isAlphaColorInputSupported() {\n return shadow(\n this,\n \"isAlphaColorInputSupported\",\n (() => {\n if (typeof document === \"undefined\") {\n return false;\n }\n const input = document.createElement(\"input\");\n input.type = \"color\";\n input.setAttribute(\"alpha\", \"\");\n input.value = \"#ff000080\";\n // If alpha is supported the color picker retains the alpha channel, so\n // the value won't be a plain opaque color (7-char #rrggbb).\n return input.value !== \"#ff0000\";\n })()\n );\n }\n}\n\nclass Util {\n static get hexNums() {\n return shadow(\n this,\n \"hexNums\",\n Array.from(Array(256).keys(), n => n.toString(16).padStart(2, \"0\"))\n );\n }\n\n static makeHexColor(r, g, b) {\n return `#${this.hexNums[r]}${this.hexNums[g]}${this.hexNums[b]}`;\n }\n\n static domMatrixToTransform(dm) {\n return [dm.a, dm.b, dm.c, dm.d, dm.e, dm.f];\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swapped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[0];\n minMax[2] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n }\n minMax[1] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n }\n minMax[0] *= transform[2];\n minMax[2] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[5];\n minMax[2] += transform[4];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // Multiplies m (an array-based transform) by md (a DOMMatrix transform).\n static multiplyByDOMMatrix(m, md) {\n return [\n m[0] * md.a + m[2] * md.b,\n m[1] * md.a + m[3] * md.b,\n m[0] * md.c + m[2] * md.d,\n m[1] * md.c + m[3] * md.d,\n m[0] * md.e + m[2] * md.f + m[4],\n m[1] * md.e + m[3] * md.f + m[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m, pos = 0) {\n const p0 = p[pos];\n const p1 = p[pos + 1];\n p[pos] = p0 * m[0] + p1 * m[2] + m[4];\n p[pos + 1] = p0 * m[1] + p1 * m[3] + m[5];\n }\n\n static applyTransformToBezier(p, transform, pos = 0) {\n const m0 = transform[0];\n const m1 = transform[1];\n const m2 = transform[2];\n const m3 = transform[3];\n const m4 = transform[4];\n const m5 = transform[5];\n for (let i = 0; i < 6; i += 2) {\n const pI = p[pos + i];\n const pI1 = p[pos + i + 1];\n p[pos + i] = pI * m0 + pI1 * m2 + m4;\n p[pos + i + 1] = pI * m1 + pI1 * m3 + m5;\n }\n }\n\n static applyInverseTransform(p, m) {\n const p0 = p[0];\n const p1 = p[1];\n const d = m[0] * m[3] - m[1] * m[2];\n p[0] = (p0 * m[3] - p1 * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n p[1] = (-p0 * m[1] + p1 * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static axialAlignedBoundingBox(rect, transform, output) {\n const m0 = transform[0];\n const m1 = transform[1];\n const m2 = transform[2];\n const m3 = transform[3];\n const m4 = transform[4];\n const m5 = transform[5];\n const r0 = rect[0];\n const r1 = rect[1];\n const r2 = rect[2];\n const r3 = rect[3];\n\n let a0 = m0 * r0 + m4;\n let a2 = a0;\n let a1 = m0 * r2 + m4;\n let a3 = a1;\n let b0 = m3 * r1 + m5;\n let b2 = b0;\n let b1 = m3 * r3 + m5;\n let b3 = b1;\n\n if (m1 !== 0 || m2 !== 0) {\n // Non-scaling matrix: shouldn't be frequent.\n const m1r0 = m1 * r0;\n const m1r2 = m1 * r2;\n const m2r1 = m2 * r1;\n const m2r3 = m2 * r3;\n a0 += m2r1;\n a3 += m2r1;\n a1 += m2r3;\n a2 += m2r3;\n b0 += m1r0;\n b3 += m1r0;\n b1 += m1r2;\n b2 += m1r2;\n }\n\n output[0] = Math.min(output[0], a0, a1, a2, a3);\n output[1] = Math.min(output[1], b0, b1, b2, b3);\n output[2] = Math.max(output[2], a0, a1, a2, a3);\n output[3] = Math.max(output[3], b0, b1, b2, b3);\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(matrix, output) {\n const m0 = matrix[0];\n const m1 = matrix[1];\n const m2 = matrix[2];\n const m3 = matrix[3];\n // Multiply matrix m with its transpose.\n const a = m0 ** 2 + m1 ** 2;\n const b = m0 * m2 + m1 * m3;\n const c = m2 ** 2 + m3 ** 2;\n\n // Solve the second degree polynomial to get roots.\n const first = (a + c) / 2;\n const second = Math.sqrt(first ** 2 - (a * c - b ** 2));\n output[0] = Math.sqrt(first + second || 1);\n output[1] = Math.sqrt(first - second || 1);\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n static pointBoundingBox(x, y, minMax) {\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n\n static rectBoundingBox(x0, y0, x1, y1, minMax) {\n minMax[0] = Math.min(minMax[0], x0, x1);\n minMax[1] = Math.min(minMax[1], y0, y1);\n minMax[2] = Math.max(minMax[2], x0, x1);\n minMax[3] = Math.max(minMax[3], y0, y1);\n }\n\n static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) {\n if (t <= 0 || t >= 1) {\n return;\n }\n const mt = 1 - t;\n const tt = t * t;\n const ttt = tt * t;\n const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3;\n const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3;\n minMax[0] = Math.min(minMax[0], x);\n minMax[1] = Math.min(minMax[1], y);\n minMax[2] = Math.max(minMax[2], x);\n minMax[3] = Math.max(minMax[3], y);\n }\n\n static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) {\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) >= 1e-12) {\n this.#getExtremumOnCurve(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n -c / b,\n minMax\n );\n }\n return;\n }\n\n const delta = b ** 2 - 4 * c * a;\n if (delta < 0) {\n return;\n }\n const sqrtDelta = Math.sqrt(delta);\n const a2 = 2 * a;\n this.#getExtremumOnCurve(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n (-b + sqrtDelta) / a2,\n minMax\n );\n this.#getExtremumOnCurve(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n (-b - sqrtDelta) / a2,\n minMax\n );\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n minMax[0] = Math.min(minMax[0], x0, x3);\n minMax[1] = Math.min(minMax[1], y0, y3);\n minMax[2] = Math.max(minMax[2], x0, x3);\n minMax[3] = Math.max(minMax[3], y0, y3);\n\n this.#getExtremum(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n 3 * (-x0 + 3 * (x1 - x2) + x3),\n 6 * (x0 - 2 * x1 + x2),\n 3 * (x1 - x0),\n minMax\n );\n this.#getExtremum(\n x0,\n x1,\n x2,\n x3,\n y0,\n y1,\n y2,\n y3,\n 3 * (-y0 + 3 * (y1 - y2) + y3),\n 6 * (y0 - 2 * y1 + y2),\n 3 * (y1 - y0),\n minMax\n );\n }\n}\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str, keepEscapeSequence = false) {\n // See section 7.9.2.2 Text String Type.\n // The string can contain some language codes bracketed with 0x1b,\n // so we must remove them.\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n const decoded = decoder.decode(buffer);\n if (keepEscapeSequence || !decoded.includes(\"\\x1b\")) {\n return decoded;\n }\n return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const charCode = str.charCodeAt(i);\n if (!keepEscapeSequence && charCode === 0x1b) {\n // eslint-disable-next-line no-empty\n while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n continue;\n }\n const code = PDFStringTranslateTable[charCode];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n if (!(date instanceof Date)) {\n date = new Date(date);\n }\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n // In order to generate the following regex:\n // - create a PDF containing all the chars in the range 0000-FFFF with\n // a NFKC which is different of the char.\n // - copy and paste all those chars and get the ones where NFKC is\n // required.\n // It appears that most the chars here contain some ligatures.\n NormalizeRegex =\n /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ο¬
\", \"ΕΏt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) =>\n p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2)\n );\n}\n\nfunction getUuid() {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n typeof crypto.randomUUID === \"function\"\n ) {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n crypto.getRandomValues(buf);\n return bytesToString(buf);\n}\n\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\n\nfunction _isValidExplicitDest(validRef, validName, dest) {\n if (!Array.isArray(dest) || dest.length < 2) {\n return false;\n }\n const [page, zoom, ...args] = dest;\n if (!validRef(page) && !Number.isInteger(page)) {\n return false;\n }\n if (!validName(zoom)) {\n return false;\n }\n const argsLen = args.length;\n let allowNull = true;\n switch (zoom.name) {\n case \"XYZ\":\n if (argsLen < 2 || argsLen > 3) {\n return false;\n }\n break;\n case \"Fit\":\n case \"FitB\":\n return argsLen === 0;\n case \"FitH\":\n case \"FitBH\":\n case \"FitV\":\n case \"FitBV\":\n if (argsLen > 1) {\n return false;\n }\n break;\n case \"FitR\":\n if (argsLen !== 4) {\n return false;\n }\n allowNull = false;\n break;\n default:\n return false;\n }\n for (const arg of args) {\n if (typeof arg === \"number\" || (allowNull && arg === null)) {\n continue;\n }\n return false;\n }\n return true;\n}\n\n// Helpers for simple `Map.prototype.getOrInsertComputed()` invocations,\n// to avoid duplicate function creation.\nconst makeArr = () => [];\nconst makeMap = () => new Map();\nconst makeObj = () => Object.create(null);\n\n// See https://developer.mozilla.org/en-US/docs/Web/API/Blob/bytes#browser_compatibility\nif (\n typeof PDFJSDev !== \"undefined\" &&\n !PDFJSDev.test(\"SKIP_BABEL\") &&\n typeof Blob.prototype.bytes !== \"function\"\n) {\n Blob.prototype.bytes = async function () {\n return new Uint8Array(await this.arrayBuffer());\n };\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/API/Response/bytes#browser_compatibility\nif (\n typeof PDFJSDev !== \"undefined\" &&\n !PDFJSDev.test(\"SKIP_BABEL\") &&\n typeof Response.prototype.bytes !== \"function\"\n) {\n Response.prototype.bytes = async function () {\n return new Uint8Array(await this.arrayBuffer());\n };\n}\n\n// TODO: Remove this once Safari 17.4 is the lowest supported version.\nif (\n typeof PDFJSDev !== \"undefined\" &&\n !PDFJSDev.test(\"SKIP_BABEL\") &&\n typeof AbortSignal.any !== \"function\"\n) {\n AbortSignal.any = function (iterable) {\n const ac = new AbortController();\n const { signal } = ac;\n\n // Return immediately if any of the signals are already aborted.\n for (const s of iterable) {\n if (s.aborted) {\n ac.abort(s.reason);\n return signal;\n }\n }\n // Register \"abort\" listeners for all signals.\n for (const s of iterable) {\n s.addEventListener(\n \"abort\",\n () => {\n ac.abort(s.reason);\n },\n { signal } // Automatically remove the listener.\n );\n }\n\n return signal;\n };\n}\n\nexport {\n _isValidExplicitDest,\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationEditorParamsType,\n AnnotationEditorPrefix,\n AnnotationEditorType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMode,\n AnnotationPrefix,\n AnnotationReplyType,\n AnnotationType,\n assert,\n BaseException,\n BASELINE_FACTOR,\n BBOX_INIT,\n bytesToString,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n DrawOPS,\n F32_BBOX_INIT,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FormatError,\n getModificationDate,\n getUuid,\n getVerbosityLevel,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayEqual,\n isNodeJS,\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n makeArr,\n makeMap,\n makeObj,\n MeshFigureType,\n normalizeUnicode,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n RenderingIntentFlag,\n ResponseException,\n setVerbosityLevel,\n shadow,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n stripPath,\n TextRenderingMode,\n UnknownErrorException,\n unreachable,\n updateUrlHash,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nlet CmdCache = Object.create(null);\nlet NameCache = Object.create(null);\nlet RefCache = Object.create(null);\n\nfunction clearPrimitiveCaches() {\n CmdCache = Object.create(null);\n NameCache = Object.create(null);\n RefCache = Object.create(null);\n}\n\nclass Name {\n constructor(name) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n typeof name !== \"string\"\n ) {\n unreachable('Name: The \"name\" must be a string.');\n }\n this.name = name;\n }\n\n static get(name) {\n // eslint-disable-next-line no-restricted-syntax\n return (NameCache[name] ||= new Name(name));\n }\n}\n\nclass Cmd {\n constructor(cmd) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n typeof cmd !== \"string\"\n ) {\n unreachable('Cmd: The \"cmd\" must be a string.');\n }\n this.cmd = cmd;\n }\n\n static get(cmd) {\n // eslint-disable-next-line no-restricted-syntax\n return (CmdCache[cmd] ||= new Cmd(cmd));\n }\n}\n\nconst nonSerializable = function nonSerializableClosure() {\n return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n __nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n\n #map = new Map();\n\n objId = null;\n\n suppressEncryption = false;\n\n xref;\n\n constructor(xref = null) {\n this.xref = xref;\n }\n\n assignXref(newXref) {\n this.xref = newXref;\n }\n\n get size() {\n return this.#map.size;\n }\n\n #getValue(isAsync, key1, key2, key3) {\n let value = this.#map.get(key1);\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.#getValue: Expected keys to be ordered by length.\");\n }\n value = this.#map.get(key2);\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.#getValue: Expected keys to be ordered by length.\");\n }\n value = this.#map.get(key3);\n }\n }\n if (value instanceof Ref && this.xref) {\n return isAsync\n ? this.xref.fetchAsync(value, this.suppressEncryption)\n : this.xref.fetch(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Automatically dereferences Ref objects.\n get(key1, key2, key3) {\n return this.#getValue(/* isAsync = */ false, key1, key2, key3);\n }\n\n // Same as get(), but returns a promise and uses fetchIfRefAsync().\n async getAsync(key1, key2, key3) {\n return this.#getValue(/* isAsync = */ true, key1, key2, key3);\n }\n\n // Same as get(), but dereferences all elements if the result is an Array.\n getArray(key1, key2, key3) {\n let value = this.#getValue(/* isAsync = */ false, key1, key2, key3);\n\n if (Array.isArray(value)) {\n value = value.slice(); // Ensure that we don't modify the Dict data.\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (value[i] instanceof Ref && this.xref) {\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n }\n }\n return value;\n }\n\n // No dereferencing.\n getRaw(key) {\n return this.#map.get(key);\n }\n\n getKeys() {\n return this.#map.keys();\n }\n\n // No dereferencing.\n getRawValues() {\n return this.#map.values();\n }\n\n getRawEntries() {\n return this.#map.entries();\n }\n\n set(key, value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n if (typeof key !== \"string\") {\n unreachable('Dict.set: The \"key\" must be a string.');\n } else if (value === undefined) {\n unreachable('Dict.set: The \"value\" cannot be undefined.');\n }\n }\n this.#map.set(key, value);\n }\n\n setIfNotExists(key, value) {\n if (!this.has(key)) {\n this.set(key, value);\n }\n }\n\n setIfNumber(key, value) {\n if (typeof value === \"number\") {\n this.set(key, value);\n }\n }\n\n setIfArray(key, value) {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n this.set(key, value);\n }\n }\n\n setIfDefined(key, value) {\n if (value !== undefined && value !== null) {\n this.set(key, value);\n }\n }\n\n setIfName(key, value) {\n if (typeof value === \"string\") {\n this.set(key, Name.get(value));\n } else if (value instanceof Name) {\n this.set(key, value);\n }\n }\n\n setIfDict(key, value) {\n if (value instanceof Dict) {\n this.set(key, value);\n }\n }\n\n has(key) {\n return this.#map.has(key);\n }\n\n *[Symbol.iterator]() {\n for (const [key, value] of this.#map) {\n yield [\n key,\n value instanceof Ref && this.xref\n ? this.xref.fetch(value, this.suppressEncryption)\n : value,\n ];\n }\n }\n\n static get empty() {\n const emptyDict = new Dict(null);\n\n emptyDict.set = (key, value) => {\n unreachable(\"Should not call `set` on the empty dictionary.\");\n };\n return shadow(this, \"empty\", emptyDict);\n }\n\n static merge({ xref, dictArray, mergeSubDicts = false }) {\n const mergedDict = new Dict(xref),\n properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n for (const [key, value] of dict.getRawEntries()) {\n let property = properties.get(key);\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n } else if (!mergeSubDicts || !(value instanceof Dict)) {\n // Ignore additional entries, if either:\n // - This is a \"shallow\" merge, where only the first element matters.\n // - The value is *not* a `Dict`, since other types cannot be merged.\n continue;\n }\n property.push(value);\n }\n }\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict.set(name, values[0]);\n continue;\n }\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n for (const [key, value] of dict.getRawEntries()) {\n subDict.setIfNotExists(key, value);\n }\n }\n if (subDict.size > 0) {\n mergedDict.set(name, subDict);\n }\n }\n properties.clear();\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n\n clone() {\n const dict = new Dict(this.xref);\n for (const [key, value] of this.#map) {\n dict.set(key, value);\n }\n return dict;\n }\n\n delete(key) {\n this.#map.delete(key);\n }\n}\n\nclass Ref {\n constructor(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n toString() {\n // This function is hot, so we make the string as compact as possible.\n // |this.gen| is almost always zero, so we treat that case specially.\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n return `${this.num}R${this.gen}`;\n }\n\n static fromString(str) {\n const ref = RefCache[str];\n if (ref) {\n return ref;\n }\n const m = /^(\\d+)R(\\d*)$/.exec(str);\n if (!m || m[1] === \"0\") {\n return null;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n return (RefCache[str] = new Ref(\n parseInt(m[1], 10),\n !m[2] ? 0 : parseInt(m[2], 10)\n ));\n }\n\n static get(num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n // eslint-disable-next-line no-restricted-syntax\n return (RefCache[key] ||= new Ref(num, gen));\n }\n}\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n constructor(parent = null) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n parent &&\n !(parent instanceof RefSet)\n ) {\n unreachable('RefSet: Invalid \"parent\" value.');\n }\n this._set = new Set(parent?._set);\n }\n\n has(ref) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n !(ref instanceof Ref) &&\n typeof ref !== \"string\"\n ) {\n unreachable('RefSet: Invalid \"ref\" value in has.');\n }\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n !(ref instanceof Ref) &&\n typeof ref !== \"string\"\n ) {\n unreachable('RefSet: Invalid \"ref\" value in put.');\n }\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n [Symbol.iterator]() {\n return this._set.values();\n }\n\n clear() {\n this._set.clear();\n }\n}\n\nclass RefSetCache {\n _map = new Map();\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n [Symbol.iterator]() {\n return this._map.values();\n }\n\n clear() {\n this._map.clear();\n }\n\n *values() {\n yield* this._map.values();\n }\n\n *items() {\n for (const [ref, value] of this._map) {\n yield [Ref.fromString(ref), value];\n }\n }\n\n *keys() {\n for (const ref of this._map.keys()) {\n yield Ref.fromString(ref);\n }\n }\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return (\n v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n );\n}\n\nfunction isRefsEqual(v1, v2) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n v1 instanceof Ref && v2 instanceof Ref,\n \"isRefsEqual: Both parameters should be `Ref`s.\"\n );\n }\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nexport {\n CIRCULAR_REF,\n clearPrimitiveCaches,\n Cmd,\n Dict,\n EOF,\n isCmd,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n constructor() {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n this.constructor === BaseStream\n ) {\n unreachable(\"Cannot initialize BaseStream.\");\n }\n }\n\n // eslint-disable-next-line getter-return\n get length() {\n unreachable(\"Abstract getter `length` accessed\");\n }\n\n // eslint-disable-next-line getter-return\n get isEmpty() {\n unreachable(\"Abstract getter `isEmpty` accessed\");\n }\n\n get isDataLoaded() {\n return shadow(this, \"isDataLoaded\", true);\n }\n\n getByte() {\n unreachable(\"Abstract method `getByte` called\");\n }\n\n getBytes(length) {\n unreachable(\"Abstract method `getBytes` called\");\n }\n\n /**\n * NOTE: This method can only be used to get image-data that is guaranteed\n * to be fully loaded, since otherwise intermittent errors may occur;\n * note the `ObjectLoader` class.\n */\n async getImageData(length, decoderOptions) {\n return this.getBytes(length, decoderOptions);\n }\n\n async asyncGetBytes() {\n unreachable(\"Abstract method `asyncGetBytes` called\");\n }\n\n get isAsync() {\n return false;\n }\n\n get isAsyncDecoder() {\n return false;\n }\n\n get isImageStream() {\n return false;\n }\n\n get canAsyncDecodeImageFromBuffer() {\n return false;\n }\n\n async getTransferableImage() {\n return null;\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n if (peekedByte !== -1) {\n this.pos--;\n }\n return peekedByte;\n }\n\n peekBytes(length) {\n const bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getByteRange(begin, end) {\n unreachable(\"Abstract method `getByteRange` called\");\n }\n\n getString(length) {\n return bytesToString(this.getBytes(length));\n }\n\n skip(n) {\n this.pos += n || 1;\n }\n\n reset() {\n unreachable(\"Abstract method `reset` called\");\n }\n\n moveStart() {\n unreachable(\"Abstract method `moveStart` called\");\n }\n\n makeSubStream(start, length, dict = null) {\n unreachable(\"Abstract method `makeSubStream` called\");\n }\n\n /**\n * @returns {Array | null}\n */\n getBaseStreams() {\n return null;\n }\n\n getOriginalStream() {\n return this.stream?.getOriginalStream() || this;\n }\n}\n\nexport { BaseStream };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationEditorPrefix,\n assert,\n BaseException,\n makeArr,\n objectSize,\n stringToPDFString,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nconst PDF_VERSION_REGEXP = /^[1-9]\\.\\d$/;\nconst MAX_INT_32 = 2 ** 31 - 1;\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\n\nconst RESOURCES_KEYS_OPERATOR_LIST = [\n \"ColorSpace\",\n \"ExtGState\",\n \"Font\",\n \"Pattern\",\n \"Properties\",\n \"Shading\",\n \"XObject\",\n];\n\nconst RESOURCES_KEYS_TEXT_CONTENT = [\n \"ExtGState\",\n \"Font\",\n \"Properties\",\n \"XObject\",\n];\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nclass MissingDataException extends BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n this.begin = begin;\n this.end = end;\n }\n}\n\nclass ParserEOFException extends BaseException {\n constructor(msg) {\n super(msg, \"ParserEOFException\");\n }\n}\n\nclass XRefEntryException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefEntryException\");\n }\n}\n\nclass XRefParseException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefParseException\");\n }\n}\n\n/**\n * Combines multiple ArrayBuffers into a single Uint8Array.\n * @param {Array} arr - An array of ArrayBuffers.\n * @returns {Uint8Array}\n */\nfunction arrayBuffersToBytes(arr) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n for (const item of arr) {\n assert(\n item instanceof ArrayBuffer,\n \"arrayBuffersToBytes - expected an ArrayBuffer.\"\n );\n }\n }\n const length = arr.length;\n if (length === 0) {\n return new Uint8Array(0);\n }\n if (length === 1) {\n return new Uint8Array(arr[0]);\n }\n let dataLength = 0;\n for (let i = 0; i < length; i++) {\n dataLength += arr[i].byteLength;\n }\n const data = new Uint8Array(dataLength);\n let pos = 0;\n for (let i = 0; i < length; i++) {\n const item = new Uint8Array(arr[i]);\n data.set(item, pos);\n pos += item.byteLength;\n }\n return data;\n}\n\nasync function fetchBinaryData(url) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `Failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n }\n return response.bytes();\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true,\n}) {\n let values;\n const visited = new RefSet();\n\n while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n const value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n (values ||= []).push(value);\n }\n dict = dict.get(\"Parent\");\n }\n return values;\n}\n\n/**\n * Get the parent dictionary to update when a property is set.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {Ref} ref - The reference to the dictionary.\n * @param {XRef} xref - The `XRef` instance.\n */\nfunction getParentToUpdate(dict, ref, xref) {\n const visited = new RefSet();\n const firstDict = dict;\n const result = { dict: null, ref: null };\n\n while (dict instanceof Dict && !visited.has(ref)) {\n visited.put(ref);\n if (dict.has(\"T\")) {\n break;\n }\n ref = dict.getRaw(\"Parent\");\n if (!(ref instanceof Ref)) {\n return result;\n }\n dict = xref.fetch(ref);\n }\n if (dict instanceof Dict && dict !== firstDict) {\n result.dict = dict;\n result.ref = ref;\n }\n return result;\n}\n\nfunction deepCompare(a, b) {\n if (a === b) {\n return true;\n }\n if (a instanceof Dict && b instanceof Dict) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value1] of a.getRawEntries()) {\n const value2 = b.getRaw(key);\n if (value2 === undefined || !deepCompare(value1, value2)) {\n return false;\n }\n }\n return true;\n }\n\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0, ii = a.length; i < ii; i++) {\n if (!deepCompare(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n\n return false;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(\n Number.isInteger(number) && number > 0,\n \"The number should be a positive integer.\"\n );\n\n const roman =\n \"M\".repeat((number / 1000) | 0) +\n ROMAN_NUMBER_MAP[((number % 1000) / 100) | 0] +\n ROMAN_NUMBER_MAP[10 + (((number % 100) / 10) | 0)] +\n ROMAN_NUMBER_MAP[20 + (number % 10)];\n return lowerCase ? roman.toLowerCase() : roman;\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * Checks if something is an Array containing only boolean values,\n * and (optionally) checks its length.\n * @param {any} arr\n * @param {number | null} len\n * @returns {boolean}\n */\nfunction isBooleanArray(arr, len) {\n return (\n Array.isArray(arr) &&\n (len === null || arr.length === len) &&\n arr.every(x => typeof x === \"boolean\")\n );\n}\n\n/**\n * Checks if something is an Array containing only numbers,\n * and (optionally) checks its length.\n * @param {any} arr\n * @param {number | null} len\n * @returns {boolean}\n */\nfunction isNumberArray(arr, len) {\n if (Array.isArray(arr)) {\n return (\n (len === null || arr.length === len) &&\n arr.every(x => typeof x === \"number\")\n );\n }\n\n // This check allows us to have typed arrays but not the\n // BigInt64Array/BigUint64Array types (their elements aren't \"number\").\n return (\n ArrayBuffer.isView(arr) &&\n !(arr instanceof BigInt64Array || arr instanceof BigUint64Array) &&\n (len === null || arr.length === len)\n );\n}\n\n// Returns the matrix, or the fallback value if it's invalid.\nfunction lookupMatrix(arr, fallback) {\n return isNumberArray(arr, 6) ? arr : fallback;\n}\n\n// Returns the rectangle, or the fallback value if it's invalid.\nfunction lookupRect(arr, fallback) {\n return isNumberArray(arr, 4) ? arr : fallback;\n}\n\n// Returns the normalized rectangle, or the fallback value if it's invalid.\nfunction lookupNormalRect(arr, fallback) {\n return isNumberArray(arr, 4) ? Util.normalizeRect(arr) : fallback;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[(\\d+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n if (m) {\n return { name: m[1], pos: parseInt(m[2], 10) };\n }\n return { name: component, pos: 0 };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n // Whitespace or delimiters aren't regular chars, so escape them.\n if (\n char < 0x21 ||\n char > 0x7e ||\n char === 0x23 /* # */ ||\n char === 0x28 /* ( */ ||\n char === 0x29 /* ) */ ||\n char === 0x3c /* < */ ||\n char === 0x3e /* > */ ||\n char === 0x5b /* [ */ ||\n char === 0x5d /* ] */ ||\n char === 0x7b /* { */ ||\n char === 0x7d /* } */ ||\n char === 0x2f /* / */ ||\n char === 0x25 /* % */\n ) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`#${char.toString(16)}`);\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\n// Replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\" by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n// in order to write it in a PDF file.\nfunction escapeString(str) {\n return str.replaceAll(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n if (entry instanceof Ref) {\n if (parents.has(entry)) {\n // If we've already found entry then we've a cycle.\n return;\n }\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof Dict) {\n if (isName(entry.get(\"S\"), \"JavaScript\")) {\n const js = entry.get(\"JS\");\n let code;\n if (js instanceof BaseStream) {\n code = js.getString();\n } else if (typeof js === \"string\") {\n code = js;\n }\n code &&= stringToPDFString(\n code,\n /* keepEscapeSequence = */ true\n ).replaceAll(\"\\x00\", \"\");\n if (code) {\n list.push(code.trim());\n }\n }\n _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n }\n\n if (parent) {\n parents.remove(parent);\n }\n}\n\nfunction collectActions(xref, dict, eventType) {\n const actions = Object.create(null);\n const additionalActionsDicts = getInheritableProperty({\n dict,\n key: \"AA\",\n stopWhenFound: false,\n });\n if (additionalActionsDicts) {\n // additionalActionsDicts contains dicts from ancestors\n // as they're found in the tree from bottom to top.\n // So the dicts are visited in reverse order to guarantee\n // that actions from elder ancestors will be overwritten\n // by ones from younger ancestors.\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n if (!(additionalActions instanceof Dict)) {\n continue;\n }\n for (const [key, rawActionDict] of additionalActions.getRawEntries()) {\n const action = eventType[key];\n if (!action) {\n continue;\n }\n const parents = new RefSet();\n const list = [];\n _collectJS(rawActionDict, xref, list, parents);\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n // Collect the Action if any (we may have one on pushbutton).\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n /* < */ 0x3c: \"<\",\n /* > */ 0x3e: \">\",\n /* & */ 0x26: \"&\",\n /* \" */ 0x22: \""\",\n /* ' */ 0x27: \"'\",\n};\n\nfunction* codePointIter(str) {\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n yield char;\n }\n}\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n return buffer.join(\"\");\n}\n\nfunction validateFontName(fontFamily, mustWarn = false) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n const m = /^(\"|').*(\"|')$/.exec(fontFamily);\n if (m && m[1] === m[2]) {\n const re = new RegExp(`[^\\\\\\\\]${m[1]}`);\n if (re.test(fontFamily.slice(1, -1))) {\n if (mustWarn) {\n warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`);\n }\n return false;\n }\n } else {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n for (const ident of fontFamily.split(/[ \\t]+/)) {\n if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n if (mustWarn) {\n warn(`FontFamily contains invalid : ${fontFamily}.`);\n }\n return false;\n }\n }\n }\n return true;\n}\n\nfunction validateCSSFont(cssFontInfo) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n const CSS_FONT_WEIGHT_VALUES = new Set([\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\",\n \"1000\",\n \"normal\",\n \"bold\",\n \"bolder\",\n \"lighter\",\n ]);\n\n const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n if (!validateFontName(fontFamily, true)) {\n return false;\n }\n\n const weight = fontWeight ? fontWeight.toString() : \"\";\n cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n ? weight\n : DEFAULT_CSS_FONT_WEIGHT;\n\n const angle = parseFloat(italicAngle);\n cssFontInfo.italicAngle =\n isNaN(angle) || angle < -90 || angle > 90\n ? DEFAULT_CSS_FONT_OBLIQUE\n : italicAngle.toString();\n\n return true;\n}\n\nfunction recoverJsURL(str) {\n // Attempt to recover valid URLs from `JS` entries with certain\n // white-listed formats:\n // - window.open('http://example.com')\n // - app.launchURL('http://example.com', true)\n // - xfa.host.gotoURL('http://example.com')\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n const regex = new RegExp(\n \"^\\\\s*(\" +\n URL_OPEN_METHODS.join(\"|\").replaceAll(\".\", \"\\\\.\") +\n \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n \"i\"\n );\n\n const jsUrl = regex.exec(str);\n if (jsUrl?.[2]) {\n return {\n url: jsUrl[2],\n newWindow: jsUrl[1] === \"app.launchURL\" && jsUrl[3] === \"true\",\n };\n }\n\n return null;\n}\n\nfunction numberToString(value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n typeof value === \"number\",\n `numberToString - the value (${value}) should be a number.`\n );\n }\n\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const newAnnotationsByPage = new Map();\n // The concept of page in a XFA is very different, so\n // editing is just not implemented.\n for (const [key, value] of annotationStorage) {\n if (!key.startsWith(AnnotationEditorPrefix)) {\n continue;\n }\n newAnnotationsByPage\n .getOrInsertComputed(value.pageIndex, makeArr)\n .push(value);\n }\n return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\n// If the string is null or undefined then it is returned as is.\nfunction stringToAsciiOrUTF16BE(str) {\n if (str === null || str === undefined) {\n return str;\n }\n return isAscii(str) ? str : stringToUTF16String(str, /* bigEndian = */ true);\n}\n\nfunction isAscii(str) {\n if (typeof str !== \"string\") {\n return false;\n }\n return !str || /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16HexString(str) {\n const buf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(Util.hexNums[(char >> 8) & 0xff], Util.hexNums[char & 0xff]);\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF16String(str, bigEndian = false) {\n const buf = [];\n if (bigEndian) {\n buf.push(\"\\xFE\\xFF\");\n }\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction getRotationMatrix(rotation, width, height) {\n switch (rotation) {\n case 90:\n return [0, 1, -1, 0, width, 0];\n case 180:\n return [-1, 0, 0, -1, width, height];\n case 270:\n return [0, -1, 1, 0, 0, height];\n default:\n throw new Error(\"Invalid rotation\");\n }\n}\n\n/**\n * Get the number of bytes to use to represent the given positive integer.\n * If n is zero, the function returns 0 which means that we don't need to waste\n * a byte to represent it.\n * @param {number} x - a positive integer.\n * @returns {number}\n */\nfunction getSizeInBytes(x) {\n // n bits are required for numbers up to 2^n - 1.\n // So for a number x, we need ceil(log2(1 + x)) bits.\n return Math.ceil(Math.ceil(Math.log2(1 + x)) / 8);\n}\n\nexport {\n arrayBuffersToBytes,\n codePointIter,\n collectActions,\n deepCompare,\n encodeToXmlString,\n escapePDFName,\n escapeString,\n fetchBinaryData,\n getInheritableProperty,\n getLookupTableFactory,\n getNewAnnotationsMap,\n getParentToUpdate,\n getRotationMatrix,\n getSizeInBytes,\n IDENTITY_MATRIX,\n isAscii,\n isBooleanArray,\n isNumberArray,\n isWhiteSpace,\n lookupMatrix,\n lookupNormalRect,\n lookupRect,\n MAX_INT_32,\n MissingDataException,\n numberToString,\n ParserEOFException,\n parseXFAPath,\n PDF_VERSION_REGEXP,\n recoverJsURL,\n RESOURCES_KEYS_OPERATOR_LIST,\n RESOURCES_KEYS_TEXT_CONTENT,\n stringToAsciiOrUTF16BE,\n stringToUTF16HexString,\n stringToUTF16String,\n toRomanNumerals,\n validateCSSFont,\n validateFontName,\n XRefEntryException,\n XRefParseException,\n};\n","/* THIS FILE IS GENERATED - DO NOT EDIT */\nasync function JBig2(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;var readyPromiseResolve,readyPromiseReject;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;var HEAP64,HEAPU64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports[\"j\"]()}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=\"Aborted(\"+what+\")\";err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"jbig2.wasm\")}return new URL(\"jbig2.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;var __abort_js=()=>abort(\"\");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};function _createImageData(size){Module.imageData=new Uint8Array(size)}var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};function _setImageData(array_ptr,pitch8,pitch32,height){if(pitch32===pitch8){Module.imageData=new Uint8ClampedArray(HEAPU8.subarray(array_ptr,array_ptr+pitch32*height));return}const destSize=pitch8*height;const imageData=Module.imageData=new Uint8ClampedArray(destSize);for(let srcStart=array_ptr,destStart=0;destStart{HEAP8.set(array,buffer)};{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"writeArrayToMemory\"]=writeArrayToMemory;var _malloc,_free,_jbig2_decode,_ccitt_decode,__emscripten_timeout,memory,__indirect_function_table,wasmMemory;function assignWasmExports(wasmExports){_malloc=Module[\"_malloc\"]=wasmExports[\"k\"];_free=Module[\"_free\"]=wasmExports[\"l\"];_jbig2_decode=Module[\"_jbig2_decode\"]=wasmExports[\"m\"];_ccitt_decode=Module[\"_ccitt_decode\"]=wasmExports[\"n\"];__emscripten_timeout=wasmExports[\"o\"];memory=wasmMemory=wasmExports[\"i\"];__indirect_function_table=wasmExports[\"__indirect_function_table\"]}var wasmImports={e:__abort_js,b:__emscripten_runtime_keepalive_clear,c:__setitimer_js,g:_createImageData,d:_emscripten_resize_heap,a:_proc_exit,h:_setImageData,f:_setLineData};function run(){preRun();function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default JBig2;\n","/* Copyright 2026 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, warn } from \"../shared/util.js\";\nimport { fetchBinaryData } from \"./core_utils.js\";\nimport JBig2 from \"../../external/jbig2/jbig2.js\";\n\nclass Jbig2Error extends BaseException {\n constructor(msg) {\n super(msg, \"Jbig2Error\");\n }\n}\n\nclass JBig2CCITTFaxImage {\n static #buffer = null;\n\n static #handler = null;\n\n static #modulePromise = null;\n\n static #useWasm = true;\n\n static #useWorkerFetch = true;\n\n static #wasmUrl = null;\n\n static setOptions({ handler, useWasm, useWorkerFetch, wasmUrl }) {\n this.#useWasm = useWasm;\n this.#useWorkerFetch = useWorkerFetch;\n this.#wasmUrl = wasmUrl;\n\n if (!useWorkerFetch) {\n this.#handler = handler;\n }\n }\n\n static async #getJsModule(fallbackCallback) {\n const path =\n typeof PDFJSDev === \"undefined\"\n ? `../${this.#wasmUrl}jbig2_nowasm_fallback.js`\n : `${this.#wasmUrl}jbig2_nowasm_fallback.js`;\n\n let instance = null;\n try {\n const mod = await (typeof PDFJSDev === \"undefined\"\n ? import(path) // eslint-disable-line no-unsanitized/method\n : __raw_import__(path));\n instance = mod.default();\n } catch (e) {\n warn(`JBig2CCITTFaxImage#getJsModule: ${e}`);\n }\n fallbackCallback(instance);\n }\n\n static async #instantiateWasm(fallbackCallback, imports, successCallback) {\n const filename = \"jbig2.wasm\";\n try {\n if (!this.#buffer) {\n if (this.#useWorkerFetch) {\n this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);\n } else {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Only worker-thread fetching supported.\");\n }\n this.#buffer = await this.#handler.sendWithPromise(\n \"FetchBinaryData\",\n { kind: \"wasmUrl\", filename }\n );\n }\n }\n const results = await WebAssembly.instantiate(this.#buffer, imports);\n return successCallback(results.instance);\n } catch (reason) {\n warn(`JBig2CCITTFaxImage#instantiateWasm: ${reason}`);\n\n this.#getJsModule(fallbackCallback);\n return null;\n } finally {\n this.#handler = null;\n }\n }\n\n static async decode(bytes, width, height, globals, CCITTOptions) {\n if (!this.#modulePromise) {\n const { promise, resolve } = Promise.withResolvers();\n const promises = [promise];\n if (!this.#useWasm) {\n this.#getJsModule(resolve);\n } else {\n promises.push(\n JBig2({\n warn,\n instantiateWasm: this.#instantiateWasm.bind(this, resolve),\n })\n );\n }\n this.#modulePromise = Promise.race(promises);\n }\n const module = await this.#modulePromise;\n\n if (!module) {\n throw new Jbig2Error(\"JBig2 failed to initialize\");\n }\n let ptr, globalsPtr;\n\n try {\n const size = bytes.length;\n ptr = module._malloc(size);\n module.writeArrayToMemory(bytes, ptr);\n\n if (CCITTOptions) {\n module._ccitt_decode(\n ptr,\n size,\n width,\n height,\n CCITTOptions.K,\n CCITTOptions.EndOfLine ? 1 : 0,\n CCITTOptions.EncodedByteAlign ? 1 : 0,\n CCITTOptions.BlackIs1 ? 1 : 0,\n CCITTOptions.Columns,\n CCITTOptions.Rows\n );\n } else {\n const globalsSize = globals ? globals.length : 0;\n if (globalsSize > 0) {\n globalsPtr = module._malloc(globalsSize);\n module.writeArrayToMemory(globals, globalsPtr);\n }\n module._jbig2_decode(ptr, size, width, height, globalsPtr, globalsSize);\n }\n if (!module.imageData) {\n throw new Jbig2Error(\"Unknown error\");\n }\n const { imageData } = module;\n module.imageData = null;\n\n return imageData;\n } finally {\n if (ptr) {\n module._free(ptr);\n }\n if (globalsPtr) {\n module._free(globalsPtr);\n }\n }\n }\n\n static cleanup() {\n this.#modulePromise = null;\n }\n}\n\nexport { JBig2CCITTFaxImage, Jbig2Error };\n","/* Copyright 2026 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// TODO: Replace all occurrences of this function, and remove the file, once\n// https://github.com/tc39/proposal-math-clamp/ is generally available.\nfunction MathClamp(v, min, max) {\n // eslint-disable-next-line prefer-math-clamp/prefer-math-clamp\n return Math.min(Math.max(v, min), max);\n}\n\nexport { MathClamp };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FeatureTest,\n FormatError,\n info,\n shadow,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MathClamp } from \"../shared/math_clamp.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\n */\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n const COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1 * COMPONENTS;\n\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n for (let j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n}\n\nfunction resizeRgbaImage(src, dest, w1, h1, w2, h2, alpha01) {\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0;\n const xScaled = new Uint16Array(w2);\n\n if (alpha01 === 1) {\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n const src32 = new Uint32Array(src.buffer);\n const dest32 = new Uint32Array(dest.buffer);\n const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;\n for (let i = 0; i < h2; i++) {\n const buf = src32.subarray(Math.floor(i * yRatio) * w1);\n for (let j = 0; j < w2; j++) {\n dest32[newIndex++] |= buf[xScaled[j]] & rgbMask;\n }\n }\n } else {\n const COMPONENTS = 4;\n const w1Scanline = w1 * COMPONENTS;\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (let i = 0; i < h2; i++) {\n const buf = src.subarray(Math.floor(i * yRatio) * w1Scanline);\n for (let j = 0; j < w2; j++) {\n const oldIndex = xScaled[j];\n dest[newIndex++] = buf[oldIndex];\n dest[newIndex++] = buf[oldIndex + 1];\n dest[newIndex++] = buf[oldIndex + 2];\n }\n }\n }\n}\n\nfunction copyRgbaImage(src, dest, alpha01) {\n if (alpha01 === 1) {\n const src32 = new Uint32Array(src.buffer);\n const dest32 = new Uint32Array(dest.buffer);\n const rgbMask = FeatureTest.isLittleEndian ? 0x00ffffff : 0xffffff00;\n for (let i = 0, ii = src32.length; i < ii; i++) {\n dest32[i] |= src32[i] & rgbMask;\n }\n } else {\n let j = 0;\n for (let i = 0, ii = src.length; i < ii; i += 4) {\n dest[j++] = src[i];\n dest[j++] = src[i + 1];\n dest[j++] = src[i + 2];\n }\n }\n}\n\nfunction isDefaultDecodeHelper(decode, expectedLen) {\n if (!Array.isArray(decode)) {\n return true;\n }\n const decodeLen = decode.length;\n\n if (decodeLen < expectedLen) {\n warn(\"Decode map length is too short.\");\n return true;\n }\n if (decodeLen > expectedLen) {\n info(\"Truncating too long decode map.\");\n decode.length = expectedLen;\n }\n return false;\n}\n\nclass ColorSpace {\n static #rgbBuf = new Uint8ClampedArray(3);\n\n constructor(name, numComps) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n this.constructor === ColorSpace\n ) {\n unreachable(\"Cannot initialize ColorSpace.\");\n }\n this.name = name;\n this.numComps = numComps;\n }\n\n /**\n * Converts the color value to the RGB color. The color components are\n * located in the src array starting from the srcOffset. Returns the array\n * of the rgb components, each value ranging from [0,255].\n */\n getRgb(src, srcOffset, output = new Uint8ClampedArray(3)) {\n this.getRgbItem(src, srcOffset, output, 0);\n return output;\n }\n\n getRgbHex(src, srcOffset) {\n const buffer = this.getRgb(src, srcOffset, ColorSpace.#rgbBuf);\n return Util.makeHexColor(buffer[0], buffer[1], buffer[2]);\n }\n\n /**\n * Converts the color value to the RGB color, similar to the getRgb method.\n * The result placed into the dest array starting from the destOffset.\n */\n getRgbItem(src, srcOffset, dest, destOffset) {\n unreachable(\"Should not call ColorSpace.getRgbItem\");\n }\n\n /**\n * Converts the specified number of the color values to the RGB colors.\n * The colors are located in the src array starting from the srcOffset.\n * The result is placed into the dest array starting from the destOffset.\n * The src array items shall be in [0,2^bits) range, the dest array items\n * will be in [0,255] range. alpha01 indicates how many alpha components\n * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n * array).\n */\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n /**\n * Determines the number of bytes required to store the result of the\n * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n */\n getOutputLength(inputLength, alpha01) {\n unreachable(\"Should not call ColorSpace.getOutputLength\");\n }\n\n /**\n * Returns true if source data will be equal the result/output data.\n */\n isPassthrough(bits) {\n return false;\n }\n\n /**\n * Refer to the static `ColorSpace.isDefaultDecode` method below.\n */\n isDefaultDecode(decode, bpc) {\n return ColorSpace.isDefaultDecode(decode, this.numComps);\n }\n\n /**\n * Fills in the RGB colors in the destination buffer. alpha01 indicates\n * how many alpha components there are in the dest array; it will be either\n * 0 (RGB array) or 1 (RGBA array).\n */\n fillRgb(\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n actualHeight,\n bpc,\n comps,\n alpha01\n ) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n );\n }\n const count = originalWidth * originalHeight;\n let rgbBuf = null;\n const numComponentColors = 1 << bpc;\n const needsResizing = originalHeight !== height || originalWidth !== width;\n\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (\n this.numComps === 1 &&\n count > numComponentColors &&\n this.name !== \"DeviceGray\" &&\n this.name !== \"DeviceRGB\"\n ) {\n // Optimization: create a color map when there is just one component and\n // we are converting more colors than the size of the color map. We\n // don't build the map if the colorspace is gray or rgb since those\n // methods are faster than building a map. This mainly offers big speed\n // ups for indexed and alternate colorspaces.\n //\n // TODO it may be worth while to cache the color map. While running\n // testing I never hit a cache so I will leave that out for now (perhaps\n // we are reparsing colorspaces too much?).\n const allColors =\n bpc <= 8\n ? new Uint8Array(numComponentColors)\n : new Uint16Array(numComponentColors);\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(\n allColors,\n 0,\n numComponentColors,\n colorMap,\n 0,\n bpc,\n /* alpha01 = */ 0\n );\n\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n let destPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n let rgbPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, /* alpha01 = */ 0);\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(\n rgbBuf,\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n alpha01\n );\n } else {\n let destPos = 0,\n rgbPos = 0;\n for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n }\n\n /**\n * True if the colorspace has components in the default range of [0, 1].\n * This should be true for all colorspaces except for lab color spaces\n * which are [0,100], [-128, 127], [-128, 127].\n */\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", true);\n }\n\n /**\n * Checks if a decode map matches the default decode map for a color space.\n * This handles the general decode maps where there are two values per\n * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n * This does not handle Lab, Indexed, or Pattern decode maps since they are\n * slightly different.\n * @param {Array} decode - Decode map (usually from an image).\n * @param {number} numComps - Number of components the color space has.\n */\n static isDefaultDecode(decode, numComps) {\n if (isDefaultDecodeHelper(decode, numComps * 2)) {\n return true;\n }\n for (let i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces. A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\n */\nclass AlternateCS extends ColorSpace {\n constructor(numComps, base, tintFn) {\n super(\"Alternate\", numComps);\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const tintFn = this.tintFn;\n const base = this.base;\n const scale = 1 / ((1 << bits) - 1);\n const baseNumComps = base.numComps;\n const usesZeroToOneRange = base.usesZeroToOneRange;\n const isPassthrough =\n (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough\n ? dest\n : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\n\n const scaled = new Float32Array(numComps);\n const tinted = new Float32Array(baseNumComps);\n let i, j;\n\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(\n (inputLength * this.base.numComps) / this.numComps,\n alpha01\n );\n }\n}\n\nclass PatternCS extends ColorSpace {\n constructor(baseCS) {\n super(\"Pattern\", null);\n this.base = baseCS;\n }\n\n isDefaultDecode(decode, bpc) {\n unreachable(\"Should not call PatternCS.isDefaultDecode\");\n }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n\n const length = base.numComps * (highVal + 1);\n this.lookup = new Uint8Array(length);\n\n if (lookup instanceof BaseStream) {\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if (typeof lookup === \"string\") {\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n }\n } else {\n throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const { base, highVal, lookup } = this;\n const start =\n MathClamp(Math.round(src[srcOffset]), 0, highVal) * base.numComps;\n base.getRgbBuffer(lookup, start, 1, dest, destOffset, 8, 0);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const { base, highVal, lookup } = this;\n const { numComps } = base;\n const outputDelta = base.getOutputLength(numComps, alpha01);\n\n for (let i = 0; i < count; ++i) {\n const lookupPos =\n MathClamp(Math.round(src[srcOffset++]), 0, highVal) * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n\n isDefaultDecode(decode, bpc) {\n if (isDefaultDecodeHelper(decode, 2)) {\n return true;\n }\n if (!Number.isInteger(bpc) || bpc < 1) {\n warn(\"Bits per component is not correct\");\n return true;\n }\n return decode[0] === 0 && decode[1] === (1 << bpc) - 1;\n }\n}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n const c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n dest[destOffset] = src[srcOffset] * 255;\n dest[destOffset + 1] = src[srcOffset + 1] * 255;\n dest[destOffset + 2] = src[srcOffset + 2] * 255;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nclass DeviceRgbaCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGBA\", 4);\n }\n\n getOutputLength(inputLength, _alpha01) {\n return inputLength * 4;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n\n fillRgb(\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n actualHeight,\n bpc,\n comps,\n alpha01\n ) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbaCS.fillRgb: Unsupported \"dest\" type.'\n );\n }\n if (originalHeight !== height || originalWidth !== width) {\n resizeRgbaImage(\n comps,\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n alpha01\n );\n } else {\n copyRgbaImage(comps, dest, alpha01);\n }\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nclass DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n // The coefficients below was found using numerical analysis: the method of\n // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n // where color_value is the tabular value from the table of sampled RGB colors\n // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n // CMYK color conversion using the estimation below:\n // f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n #toRgb(src, srcOffset, srcScale, dest, destOffset) {\n const c = src[srcOffset] * srcScale;\n const m = src[srcOffset + 1] * srcScale;\n const y = src[srcOffset + 2] * srcScale;\n const k = src[srcOffset + 3] * srcScale;\n\n dest[destOffset] =\n 255 +\n c *\n (-4.387332384609988 * c +\n 54.48615194189176 * m +\n 18.82290502165302 * y +\n 212.25662451639585 * k +\n -285.2331026137004) +\n m *\n (1.7149763477362134 * m -\n 5.6096736904047315 * y +\n -17.873870861415444 * k -\n 5.497006427196366) +\n y *\n (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n k * (-21.86122147463605 * k - 189.48180835922747);\n\n dest[destOffset + 1] =\n 255 +\n c *\n (8.841041422036149 * c +\n 60.118027045597366 * m +\n 6.871425592049007 * y +\n 31.159100130055922 * k +\n -79.2970844816548) +\n m *\n (-15.310361306967817 * m +\n 17.575251261109482 * y +\n 131.35250912493976 * k -\n 190.9453302588951) +\n y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n k * (-20.737325471181034 * k - 187.80453709719578);\n\n dest[destOffset + 2] =\n 255 +\n c *\n (0.8842522430003296 * c +\n 8.078677503112928 * m +\n 30.89978309703729 * y -\n 0.23883238689178934 * k +\n -14.183576799673286) +\n m *\n (10.49593273432072 * m +\n 63.02378494754052 * y +\n 50.606957656360734 * k -\n 112.23884253719248) +\n y *\n (0.03296041114873217 * y +\n 115.60384449646641 * k +\n -193.58209356861505) +\n k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n for (let i = 0; i < count; i++) {\n this.#toRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength / 4) * (3 + alpha01)) | 0;\n }\n}\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nclass CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalGray\"\n );\n }\n // Translate arguments to spec variables.\n [this.XW, this.YW, this.ZW] = whitePoint;\n [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n this.G = gamma || 1;\n\n // Validate variables as per spec.\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}, no fallback available`\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n warn(\n `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n `ZB: ${this.ZB}, only default values are supported.`\n );\n }\n\n if (this.G < 1) {\n info(\n `Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`\n );\n this.G = 1;\n }\n }\n\n #toRgb(src, srcOffset, dest, destOffset, scale) {\n // A represents a gray component of a calibrated gray space.\n // A <---> AG in the spec\n const A = src[srcOffset] * scale;\n const AG = A ** this.G;\n\n // Computes L as per spec. ( = this.YW * AG )\n // Except if other than default BlackPoint values are used.\n const L = this.YW * AG;\n // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n // Convert values to rgb range [0, 255].\n const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n this.#toRgb(src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass CalRGBCS extends ColorSpace {\n // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n // matrices.\n // prettier-ignore\n static #BRADFORD_SCALE_MATRIX = new Float32Array([\n 0.8951, 0.2664, -0.1614,\n -0.7502, 1.7135, 0.0367,\n 0.0389, -0.0685, 1.0296]);\n\n // prettier-ignore\n static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n 0.9869929, -0.1470543, 0.1599627,\n 0.4323053, 0.5183603, 0.0492912,\n -0.0085287, 0.0400428, 0.9684867]);\n\n // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n // prettier-ignore\n static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n 3.2404542, -1.5371385, -0.4985314,\n -0.9692660, 1.8760108, 0.0415560,\n 0.0556434, -0.2040259, 1.0572252]);\n\n static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n static #tempNormalizeMatrix = new Float32Array(3);\n\n static #tempConvertMatrix1 = new Float32Array(3);\n\n static #tempConvertMatrix2 = new Float32Array(3);\n\n static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalRGB\"\n );\n }\n // Translate arguments to spec variables.\n const [XW, YW, ZW] = (this.whitePoint = whitePoint);\n const [XB, YB, ZB] = (this.blackPoint = blackPoint || new Float32Array(3));\n\n [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]);\n [\n this.MXA,\n this.MYA,\n this.MZA,\n this.MXB,\n this.MYB,\n this.MZB,\n this.MXC,\n this.MYC,\n this.MZC,\n ] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n // Validate variables as per spec.\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}, no fallback available`\n );\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n info(\n `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n \"falling back to default.\"\n );\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n info(\n `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n `${this.name}, falling back to default.`\n );\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n #matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n\n #toFlat(sourceWhitePoint, LMS, result) {\n result[0] = (LMS[0] * 1) / sourceWhitePoint[0];\n result[1] = (LMS[1] * 1) / sourceWhitePoint[1];\n result[2] = (LMS[2] * 1) / sourceWhitePoint[2];\n }\n\n #toD65(sourceWhitePoint, LMS, result) {\n const D65X = 0.95047;\n const D65Y = 1;\n const D65Z = 1.08883;\n\n result[0] = (LMS[0] * D65X) / sourceWhitePoint[0];\n result[1] = (LMS[1] * D65Y) / sourceWhitePoint[1];\n result[2] = (LMS[2] * D65Z) / sourceWhitePoint[2];\n }\n\n #sRGBTransferFunction(color) {\n // See http://en.wikipedia.org/wiki/SRGB.\n if (color <= 0.0031308) {\n return MathClamp(12.92 * color, 0, 1);\n }\n // Optimization:\n // If color is close enough to 1, skip calling the following transform\n // since calling Math.pow is expensive. If color is larger than\n // the threshold, the final result is larger than 254.5 since\n // ((1 + 0.055) * 0.99554525 ** (1 / 2.4) - 0.055) * 255 ===\n // 254.50000003134699\n if (color >= 0.99554525) {\n return 1;\n }\n return MathClamp((1 + 0.055) * color ** (1 / 2.4) - 0.055, 0, 1);\n }\n\n #decodeL(L) {\n if (L < 0) {\n return -this.#decodeL(-L);\n }\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n return L * CalRGBCS.#DECODE_L_CONSTANT;\n }\n\n #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n // In case the blackPoint is already the default blackPoint then there is\n // no need to do compensation.\n if (\n sourceBlackPoint[0] === 0 &&\n sourceBlackPoint[1] === 0 &&\n sourceBlackPoint[2] === 0\n ) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n // For the blackPoint calculation details, please see\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n // The destination blackPoint is the default blackPoint [0, 0, 0].\n const zeroDecodeL = this.#decodeL(0);\n\n const X_DST = zeroDecodeL;\n const X_SRC = this.#decodeL(sourceBlackPoint[0]);\n\n const Y_DST = zeroDecodeL;\n const Y_SRC = this.#decodeL(sourceBlackPoint[1]);\n\n const Z_DST = zeroDecodeL;\n const Z_SRC = this.#decodeL(sourceBlackPoint[2]);\n\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\n\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n\n #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n // In case the whitePoint is already flat then there is no need to do\n // normalization.\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n\n const LMS = result;\n this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_Flat = CalRGBCS.#tempNormalizeMatrix;\n this.#toFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n this.#matrixProduct(\n CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n LMS_Flat,\n result\n );\n }\n\n #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n const LMS = result;\n this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_D65 = CalRGBCS.#tempNormalizeMatrix;\n this.#toD65(sourceWhitePoint, LMS, LMS_D65);\n\n this.#matrixProduct(\n CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n LMS_D65,\n result\n );\n }\n\n #toRgb(src, srcOffset, dest, destOffset, scale) {\n // A, B and C represent a red, green and blue components of a calibrated\n // rgb space.\n const A = MathClamp(src[srcOffset] * scale, 0, 1);\n const B = MathClamp(src[srcOffset + 1] * scale, 0, 1);\n const C = MathClamp(src[srcOffset + 2] * scale, 0, 1);\n\n // A <---> AGR in the spec\n // B <---> BGG in the spec\n // C <---> CGB in the spec\n const AGR = A === 1 ? 1 : A ** this.GR;\n const BGG = B === 1 ? 1 : B ** this.GG;\n const CGB = C === 1 ? 1 : C ** this.GB;\n\n // Computes intermediate variables L, M, N as per spec.\n // To decode X, Y, Z values map L, M, N directly to them.\n const X = this.MXA * AGR + this.MXB * BGG + this.MXC * CGB;\n const Y = this.MYA * AGR + this.MYB * BGG + this.MYC * CGB;\n const Z = this.MZA * AGR + this.MZB * BGG + this.MZC * CGB;\n\n // The following calculations are based on this document:\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n const XYZ = CalRGBCS.#tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = CalRGBCS.#tempConvertMatrix2;\n\n this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat);\n\n const XYZ_Black = CalRGBCS.#tempConvertMatrix1;\n this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black);\n\n const XYZ_D65 = CalRGBCS.#tempConvertMatrix2;\n this.#normalizeWhitePointToD65(\n CalRGBCS.#FLAT_WHITEPOINT_MATRIX,\n XYZ_Black,\n XYZ_D65\n );\n\n const SRGB = CalRGBCS.#tempConvertMatrix1;\n this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n // Convert the values to rgb range [0, 255].\n dest[destOffset] = this.#sRGBTransferFunction(SRGB[0]) * 255;\n dest[destOffset + 1] = this.#sRGBTransferFunction(SRGB[1]) * 255;\n dest[destOffset + 2] = this.#sRGBTransferFunction(SRGB[2]) * 255;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n this.#toRgb(src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n}\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space Lab\"\n );\n }\n // Translate args to spec variables\n [this.XW, this.YW, this.ZW] = whitePoint;\n [this.amin, this.amax, this.bmin, this.bmax] = range || [\n -100, 100, -100, 100,\n ];\n\n // These are here just for completeness - the spec doesn't offer any\n // formulas that use BlackPoint in Lab\n [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n\n // Validate vars as per spec\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n \"Invalid WhitePoint components, no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(\"Invalid BlackPoint, falling back to default\");\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.amin > this.amax || this.bmin > this.bmax) {\n info(\"Invalid Range, falling back to defaults\");\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n\n // Function g(x) from spec\n #fn_g(x) {\n return x >= 6 / 29 ? x ** 3 : (108 / 841) * (x - 4 / 29);\n }\n\n #decode(value, high1, low2, high2) {\n return low2 + (value * (high2 - low2)) / high1;\n }\n\n // If decoding is needed maxVal should be 2^bits per component - 1.\n #toRgb(src, srcOffset, maxVal, dest, destOffset) {\n // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n // not the usual [0, 1]. If a command like setFillColor is used the src\n // values will already be within the correct range. However, if we are\n // converting an image we have to map the values to the correct range given\n // above.\n // Ls,as,bs <---> L*,a*,b* in the spec\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = this.#decode(Ls, maxVal, 0, 100);\n as = this.#decode(as, maxVal, this.amin, this.amax);\n bs = this.#decode(bs, maxVal, this.bmin, this.bmax);\n }\n\n // Adjust limits of 'as' and 'bs'\n if (as > this.amax) {\n as = this.amax;\n } else if (as < this.amin) {\n as = this.amin;\n }\n if (bs > this.bmax) {\n bs = this.bmax;\n } else if (bs < this.bmin) {\n bs = this.bmin;\n }\n\n // Computes intermediate variables X,Y,Z as per spec\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\n\n const X = this.XW * this.#fn_g(L);\n const Y = this.YW * this.#fn_g(M);\n const Z = this.ZW * this.#fn_g(N);\n\n let r, g, b;\n // Using different conversions for D50 and D65 white points,\n // per http://www.color.org/srgb.pdf\n if (this.ZW < 1) {\n // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n } else {\n // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n }\n // Convert the color values to the [0,255] range (clamping is automatic).\n dest[destOffset] = Math.sqrt(r) * 255;\n dest[destOffset + 1] = Math.sqrt(g) * 255;\n dest[destOffset + 2] = Math.sqrt(b) * 255;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const maxVal = (1 << bits) - 1;\n for (let i = 0; i < count; i++) {\n this.#toRgb(src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isDefaultDecode(decode, bpc) {\n // XXX: Decoding is handled with the lab conversion because of the strange\n // ranges that are used.\n return true;\n }\n\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", false);\n }\n}\n\nexport {\n AlternateCS,\n CalGrayCS,\n CalRGBCS,\n ColorSpace,\n DeviceCmykCS,\n DeviceGrayCS,\n DeviceRgbaCS,\n DeviceRgbCS,\n IndexedCS,\n LabCS,\n PatternCS,\n};\n","/* Copyright 2025 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nclass QCMS {\n static #memoryArray = null;\n\n static _memory = null;\n\n static _mustAddAlpha = false;\n\n static _destBuffer = null;\n\n static _destOffset = 0;\n\n static _destLength = 0;\n\n static _cssColor = \"\";\n\n static _makeHexColor = null;\n\n static get _memoryArray() {\n const array = this.#memoryArray;\n if (array?.byteLength) {\n return array;\n }\n return (this.#memoryArray = new Uint8Array(this._memory.buffer));\n }\n}\n\nfunction copy_result(ptr, len) {\n // This function is called from the wasm module (it's an external\n // \"C\" function). Its goal is to copy the result from the wasm memory\n // to the destination buffer without any intermediate copies.\n const { _mustAddAlpha, _destBuffer, _destOffset, _destLength, _memoryArray } =\n QCMS;\n if (len === _destLength) {\n _destBuffer.set(_memoryArray.subarray(ptr, ptr + len), _destOffset);\n return;\n }\n if (_mustAddAlpha) {\n for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {\n _destBuffer[j] = _memoryArray[i];\n _destBuffer[j + 1] = _memoryArray[i + 1];\n _destBuffer[j + 2] = _memoryArray[i + 2];\n _destBuffer[j + 3] = 255;\n }\n } else {\n for (let i = ptr, ii = ptr + len, j = _destOffset; i < ii; i += 3, j += 4) {\n _destBuffer[j] = _memoryArray[i];\n _destBuffer[j + 1] = _memoryArray[i + 1];\n _destBuffer[j + 2] = _memoryArray[i + 2];\n }\n }\n}\n\nfunction copy_rgb(ptr) {\n const { _destBuffer, _destOffset, _memoryArray } = QCMS;\n _destBuffer[_destOffset] = _memoryArray[ptr];\n _destBuffer[_destOffset + 1] = _memoryArray[ptr + 1];\n _destBuffer[_destOffset + 2] = _memoryArray[ptr + 2];\n}\n\nfunction make_cssRGB(ptr) {\n const { _memoryArray } = QCMS;\n QCMS._cssColor = QCMS._makeHexColor(\n _memoryArray[ptr],\n _memoryArray[ptr + 1],\n _memoryArray[ptr + 2]\n );\n}\n\nexport { copy_result, copy_rgb, make_cssRGB, QCMS };\n","/* THIS FILE IS GENERATED - DO NOT EDIT */\nimport { copy_result, copy_rgb, make_cssRGB } from './qcms_utils.js';\n\n\n/**\n * @enum {0 | 1 | 2 | 3 | 4 | 5}\n */\nexport const DataType = Object.freeze({\n RGB8: 0, \"0\": \"RGB8\",\n RGBA8: 1, \"1\": \"RGBA8\",\n BGRA8: 2, \"2\": \"BGRA8\",\n Gray8: 3, \"3\": \"Gray8\",\n GrayA8: 4, \"4\": \"GrayA8\",\n CMYK: 5, \"5\": \"CMYK\",\n});\n\n/**\n * @enum {0 | 1 | 2 | 3}\n */\nexport const Intent = Object.freeze({\n Perceptual: 0, \"0\": \"Perceptual\",\n RelativeColorimetric: 1, \"1\": \"RelativeColorimetric\",\n Saturation: 2, \"2\": \"Saturation\",\n AbsoluteColorimetric: 3, \"3\": \"AbsoluteColorimetric\",\n});\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {Uint8Array} src\n */\nexport function qcms_convert_array(transformer, src) {\n const ptr0 = passArray8ToWasm0(src, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n wasm.qcms_convert_array(transformer, ptr0, len0);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {number} src1\n * @param {number} src2\n * @param {number} src3\n * @param {number} src4\n * @param {boolean} css\n */\nexport function qcms_convert_four(transformer, src1, src2, src3, src4, css) {\n wasm.qcms_convert_four(transformer, src1, src2, src3, src4, css);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {number} src\n * @param {boolean} css\n */\nexport function qcms_convert_one(transformer, src, css) {\n wasm.qcms_convert_one(transformer, src, css);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n * @param {number} src1\n * @param {number} src2\n * @param {number} src3\n * @param {boolean} css\n */\nexport function qcms_convert_three(transformer, src1, src2, src3, css) {\n wasm.qcms_convert_three(transformer, src1, src2, src3, css);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {number} transformer\n */\nexport function qcms_drop_transformer(transformer) {\n wasm.qcms_drop_transformer(transformer);\n}\n\n/**\n * # Safety\n *\n * This function is called directly from JavaScript.\n * @param {Uint8Array} mem\n * @param {DataType} in_type\n * @param {Intent} intent\n * @returns {number}\n */\nexport function qcms_transformer_from_memory(mem, in_type, intent) {\n const ptr0 = passArray8ToWasm0(mem, wasm.__wbindgen_malloc);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.qcms_transformer_from_memory(ptr0, len0, in_type, intent);\n return ret >>> 0;\n}\nfunction __wbg_get_imports() {\n const import0 = {\n __proto__: null,\n __wbg___wbindgen_throw_6b64449b9b9ed33c: function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n },\n __wbg_copy_result_0d15f3bf9d9012ae: function(arg0, arg1) {\n copy_result(arg0 >>> 0, arg1 >>> 0);\n },\n __wbg_copy_rgb_0106d9d9464fce43: function(arg0) {\n copy_rgb(arg0 >>> 0);\n },\n __wbg_make_cssRGB_8e24b34f71f5363e: function(arg0) {\n make_cssRGB(arg0 >>> 0);\n },\n __wbindgen_init_externref_table: function() {\n const table = wasm.__wbindgen_externrefs;\n const offset = table.grow(4);\n table.set(0, undefined);\n table.set(offset + 0, undefined);\n table.set(offset + 1, null);\n table.set(offset + 2, true);\n table.set(offset + 3, false);\n },\n };\n return {\n __proto__: null,\n \"./qcms_bg.js\": import0,\n };\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nlet wasmModule, wasm;\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n wasmModule = module;\n cachedUint8ArrayMemory0 = null;\n wasm.__wbindgen_start();\n return wasm;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && expectedResponseType(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else { throw e; }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n\n function expectedResponseType(type) {\n switch (type) {\n case 'basic': case 'cors': case 'default': return true;\n }\n return false;\n }\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (module !== undefined) {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (module_or_path !== undefined) {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync, __wbg_init as default };\n","/* Copyright 2025 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n DataType,\n initSync,\n Intent,\n qcms_convert_array,\n qcms_convert_four,\n qcms_convert_one,\n qcms_convert_three,\n qcms_drop_transformer,\n qcms_transformer_from_memory,\n} from \"../../external/qcms/qcms.js\";\nimport { shadow, Util, warn } from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { QCMS } from \"../../external/qcms/qcms_utils.js\";\n\nfunction fetchSync(url) {\n // Parsing and using color spaces is still synchronous,\n // so we must load the wasm module synchronously.\n // TODO: Make the color space stuff asynchronous and use fetch.\n const xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return xhr.response;\n}\n\nclass IccColorSpace extends ColorSpace {\n #transformer;\n\n #convertPixel;\n\n static #useWasm = true;\n\n static #wasmUrl = null;\n\n static #finalizer = null;\n\n constructor(iccProfile, name, numComps) {\n if (!IccColorSpace.isUsable) {\n throw new Error(\"No ICC color space support\");\n }\n\n super(name, numComps);\n\n let inType;\n switch (numComps) {\n case 1:\n inType = DataType.Gray8;\n this.#convertPixel = (src, srcOffset, css) =>\n qcms_convert_one(this.#transformer, src[srcOffset] * 255, css);\n break;\n case 3:\n inType = DataType.RGB8;\n this.#convertPixel = (src, srcOffset, css) =>\n qcms_convert_three(\n this.#transformer,\n src[srcOffset] * 255,\n src[srcOffset + 1] * 255,\n src[srcOffset + 2] * 255,\n css\n );\n break;\n case 4:\n inType = DataType.CMYK;\n this.#convertPixel = (src, srcOffset, css) =>\n qcms_convert_four(\n this.#transformer,\n src[srcOffset] * 255,\n src[srcOffset + 1] * 255,\n src[srcOffset + 2] * 255,\n src[srcOffset + 3] * 255,\n css\n );\n break;\n default:\n throw new Error(`Unsupported number of components: ${numComps}`);\n }\n this.#transformer = qcms_transformer_from_memory(\n iccProfile,\n inType,\n Intent.Perceptual\n );\n if (!this.#transformer) {\n throw new Error(\"Failed to create ICC color space\");\n }\n IccColorSpace.#finalizer ||= new FinalizationRegistry(transformer => {\n qcms_drop_transformer(transformer);\n });\n IccColorSpace.#finalizer.register(this, this.#transformer);\n }\n\n getRgbHex(src, srcOffset) {\n this.#convertPixel(src, srcOffset, /* css */ true);\n return QCMS._cssColor;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n QCMS._destBuffer = dest;\n QCMS._destOffset = destOffset;\n QCMS._destLength = 3;\n this.#convertPixel(src, srcOffset, /* css */ false);\n QCMS._destBuffer = null;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n src = src.subarray(srcOffset, srcOffset + count * this.numComps);\n if (bits !== 8) {\n const scale = 255 / ((1 << bits) - 1);\n for (let i = 0, ii = src.length; i < ii; i++) {\n src[i] *= scale;\n }\n }\n QCMS._mustAddAlpha = alpha01 && dest.buffer === src.buffer;\n QCMS._destBuffer = dest;\n QCMS._destOffset = destOffset;\n QCMS._destLength = count * (3 + alpha01);\n qcms_convert_array(this.#transformer, src);\n QCMS._mustAddAlpha = false;\n QCMS._destBuffer = null;\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength / this.numComps) * (3 + alpha01)) | 0;\n }\n\n static setOptions({ useWasm, useWorkerFetch, wasmUrl }) {\n if (!useWorkerFetch) {\n this.#useWasm = false;\n return;\n }\n this.#useWasm = useWasm;\n this.#wasmUrl = wasmUrl;\n }\n\n static get isUsable() {\n let isUsable = false;\n if (this.#useWasm) {\n if (this.#wasmUrl) {\n try {\n this._module = initSync({\n module: fetchSync(`${this.#wasmUrl}qcms_bg.wasm`),\n });\n isUsable = !!this._module;\n QCMS._memory = this._module.memory;\n QCMS._makeHexColor = Util.makeHexColor.bind(Util);\n } catch (e) {\n warn(`ICCBased color space: \"${e}\".`);\n }\n } else {\n warn(\"No ICC color space support due to missing `wasmUrl` API option\");\n }\n }\n\n return shadow(this, \"isUsable\", isUsable);\n }\n}\n\nclass CmykICCBasedCS extends IccColorSpace {\n static #iccUrl;\n\n constructor() {\n const iccProfile = new Uint8Array(\n fetchSync(`${CmykICCBasedCS.#iccUrl}CGATS001Compat-v2-micro.icc`)\n );\n super(iccProfile, \"DeviceCMYK\", 4);\n }\n\n static setOptions({ iccUrl }) {\n this.#iccUrl = iccUrl;\n }\n\n static get isUsable() {\n let isUsable = false;\n if (IccColorSpace.isUsable) {\n if (this.#iccUrl) {\n isUsable = true;\n } else {\n warn(\"No CMYK ICC profile support due to missing `iccUrl` API option\");\n }\n }\n\n return shadow(this, \"isUsable\", isUsable);\n }\n}\n\nexport { CmykICCBasedCS, IccColorSpace };\n","/* Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AlternateCS,\n CalGrayCS,\n CalRGBCS,\n DeviceCmykCS,\n DeviceGrayCS,\n DeviceRgbaCS,\n DeviceRgbCS,\n IndexedCS,\n LabCS,\n PatternCS,\n} from \"./colorspace.js\";\nimport { CmykICCBasedCS, IccColorSpace } from \"./icc_colorspace.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { shadow, unreachable, warn } from \"../shared/util.js\";\nimport { MathClamp } from \"../shared/math_clamp.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nclass ColorSpaceUtils {\n static parse({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n globalColorSpaceCache,\n localColorSpaceCache,\n asyncIfNotCached = false,\n }) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n (!globalColorSpaceCache || !localColorSpaceCache)\n ) {\n unreachable(\n 'ColorSpaceUtils.parse - expected \"globalColorSpaceCache\"/\"localColorSpaceCache\" argument.'\n );\n }\n const options = {\n xref,\n resources,\n pdfFunctionFactory,\n globalColorSpaceCache,\n localColorSpaceCache,\n };\n let csName, csRef, parsedCS;\n\n // Check if the ColorSpace is cached first, to avoid re-parsing it.\n if (cs instanceof Ref) {\n csRef = cs;\n\n const cachedCS =\n globalColorSpaceCache.getByRef(csRef) ||\n localColorSpaceCache.getByRef(csRef);\n if (cachedCS) {\n return cachedCS;\n }\n cs = xref.fetch(cs);\n }\n if (cs instanceof Name) {\n csName = cs.name;\n\n const cachedCS = localColorSpaceCache.getByName(csName);\n if (cachedCS) {\n return cachedCS;\n }\n }\n\n try {\n parsedCS = this.#parse(cs, options);\n } catch (ex) {\n if (asyncIfNotCached && !(ex instanceof MissingDataException)) {\n return Promise.reject(ex);\n }\n throw ex;\n }\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n if (csName || csRef) {\n localColorSpaceCache.set(csName, csRef, parsedCS);\n\n if (csRef) {\n globalColorSpaceCache.set(/* name = */ null, csRef, parsedCS);\n }\n }\n return asyncIfNotCached ? Promise.resolve(parsedCS) : parsedCS;\n }\n\n /**\n * NOTE: This method should *only* be invoked from `this.#parse`,\n * when parsing \"sub\" ColorSpaces.\n */\n static #subParse(cs, options) {\n const { globalColorSpaceCache } = options;\n let csRef;\n\n // Check if the ColorSpace is cached first, to avoid re-parsing it.\n if (cs instanceof Ref) {\n csRef = cs;\n\n const cachedCS = globalColorSpaceCache.getByRef(csRef);\n if (cachedCS) {\n return cachedCS;\n }\n }\n const parsedCS = this.#parse(cs, options);\n\n // Only cache the parsed ColorSpace globally, by reference.\n if (csRef) {\n globalColorSpaceCache.set(/* name = */ null, csRef, parsedCS);\n }\n return parsedCS;\n }\n\n static #parse(cs, options) {\n const { xref, resources, pdfFunctionFactory, globalColorSpaceCache } =\n options;\n\n cs = xref.fetchIfRef(cs);\n if (cs instanceof Name) {\n switch (cs.name) {\n case \"G\":\n case \"DeviceGray\":\n return this.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.rgb;\n case \"DeviceRGBA\":\n return this.rgba;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.cmyk;\n case \"Pattern\":\n return new PatternCS(/* baseCS = */ null);\n default:\n if (resources instanceof Dict) {\n const colorSpaces = resources.get(\"ColorSpace\");\n if (colorSpaces instanceof Dict) {\n const resourcesCS = colorSpaces.get(cs.name);\n if (resourcesCS) {\n if (resourcesCS instanceof Name) {\n return this.#parse(resourcesCS, options);\n }\n cs = resourcesCS;\n break;\n }\n }\n }\n // Fallback to the default gray color space.\n warn(`Unrecognized ColorSpace: ${cs.name}`);\n return this.gray;\n }\n }\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"G\":\n case \"DeviceGray\":\n return this.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.cmyk;\n case \"CalGray\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.get(\"Gamma\");\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case \"CalRGB\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.getArray(\"Gamma\");\n const matrix = params.getArray(\"Matrix\");\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case \"ICCBased\":\n const isRef = cs[1] instanceof Ref;\n if (isRef) {\n const cachedCS = globalColorSpaceCache.getByRef(cs[1]);\n if (cachedCS) {\n return cachedCS;\n }\n }\n\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n\n if (IccColorSpace.isUsable) {\n try {\n const iccCS = new IccColorSpace(\n stream.getBytes(),\n \"ICCBased\",\n numComps\n );\n if (isRef) {\n globalColorSpaceCache.set(/* name = */ null, cs[1], iccCS);\n }\n return iccCS;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`ICCBased color space (${cs[1]}): \"${ex}\".`);\n }\n }\n\n const altRaw = dict.getRaw(\"Alternate\");\n if (altRaw) {\n const altCS = this.#subParse(altRaw, options);\n // Ensure that the number of components are correct,\n // and also (indirectly) that it is not a PatternCS.\n if (altCS.numComps === numComps) {\n return altCS;\n }\n warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n if (numComps === 1) {\n return this.gray;\n } else if (numComps === 3) {\n return this.rgb;\n } else if (numComps === 4) {\n return this.cmyk;\n }\n break;\n case \"Pattern\":\n baseCS = cs[1] || null;\n if (baseCS) {\n baseCS = this.#subParse(baseCS, options);\n }\n return new PatternCS(baseCS);\n case \"I\":\n case \"Indexed\":\n baseCS = this.#subParse(cs[1], options);\n const hiVal = MathClamp(xref.fetchIfRef(cs[2]), 0, 255);\n const lookup = xref.fetchIfRef(cs[3]);\n return new IndexedCS(baseCS, hiVal, lookup);\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n baseCS = this.#subParse(cs[2], options);\n const tintFn = pdfFunctionFactory.create(cs[3]);\n return new AlternateCS(numComps, baseCS, tintFn);\n case \"Lab\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n const range = params.getArray(\"Range\");\n return new LabCS(whitePoint, blackPoint, range);\n default:\n // Fallback to the default gray color space.\n warn(`Unimplemented ColorSpace object: ${mode}`);\n return this.gray;\n }\n }\n // Fallback to the default gray color space.\n warn(`Unrecognized ColorSpace object: ${cs}`);\n return this.gray;\n }\n\n static get gray() {\n return shadow(this, \"gray\", new DeviceGrayCS());\n }\n\n static get rgb() {\n return shadow(this, \"rgb\", new DeviceRgbCS());\n }\n\n static get rgba() {\n return shadow(this, \"rgba\", new DeviceRgbaCS());\n }\n\n static get cmyk() {\n if (CmykICCBasedCS.isUsable) {\n try {\n return shadow(this, \"cmyk\", new CmykICCBasedCS());\n } catch {\n warn(\"CMYK fallback: DeviceCMYK\");\n }\n }\n return shadow(this, \"cmyk\", new DeviceCmykCS());\n }\n}\n\nexport { ColorSpaceUtils };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest, ImageKind } from \"./util.js\";\n\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n\n return null;\n}\n\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false,\n}) {\n const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode\n ? [nonBlackColor, black]\n : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const xorMask = zeroMapping ^ oneMapping;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n\n for (let i = 0; i < height; ++i) {\n for (\n const max = srcPos + widthInSource;\n srcPos < max;\n ++srcPos, destPos += 8\n ) {\n const elem = src[srcPos];\n dest[destPos] = zeroMapping ^ (-((elem >> 7) & 1) & xorMask);\n dest[destPos + 1] = zeroMapping ^ (-((elem >> 6) & 1) & xorMask);\n dest[destPos + 2] = zeroMapping ^ (-((elem >> 5) & 1) & xorMask);\n dest[destPos + 3] = zeroMapping ^ (-((elem >> 4) & 1) & xorMask);\n dest[destPos + 4] = zeroMapping ^ (-((elem >> 3) & 1) & xorMask);\n dest[destPos + 5] = zeroMapping ^ (-((elem >> 2) & 1) & xorMask);\n dest[destPos + 6] = zeroMapping ^ (-((elem >> 1) & 1) & xorMask);\n dest[destPos + 7] = zeroMapping ^ (-(elem & 1) & xorMask);\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; ++j, ++destPos) {\n dest[destPos] = zeroMapping ^ (-((elem >> (7 - j)) & 1) & xorMask);\n }\n }\n\n return { srcPos, destPos };\n}\n\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n}) {\n let i = 0;\n const len = width * height * 3;\n const len32 = len >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n const alphaMask = FeatureTest.isLittleEndian ? 0xff000000 : 0xff;\n\n if (FeatureTest.isLittleEndian) {\n // It's a way faster to do the shuffle manually instead of working\n // component by component with some Uint8 arrays.\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i], // R2B1G1R1\n s2 = src32[i + 1], // G3R3B2G2\n s3 = src32[i + 2]; // B4G4R4B3\n\n dest[destPos] = s1 | alphaMask;\n dest[destPos + 1] = (s1 >>> 24) | (s2 << 8) | alphaMask;\n dest[destPos + 2] = (s2 >>> 16) | (s3 << 16) | alphaMask;\n dest[destPos + 3] = (s3 >>> 8) | alphaMask;\n }\n\n for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n dest[destPos++] =\n src[j] | (src[j + 1] << 8) | (src[j + 2] << 16) | alphaMask;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i], // R1G1B1R2\n s2 = src32[i + 1], // G2B2R3G3\n s3 = src32[i + 2]; // B3R4G4B4\n\n dest[destPos] = s1 | alphaMask;\n dest[destPos + 1] = (s1 << 24) | (s2 >>> 8) | alphaMask;\n dest[destPos + 2] = (s2 << 16) | (s3 >>> 16) | alphaMask;\n dest[destPos + 3] = (s3 << 8) | alphaMask;\n }\n\n for (let j = i * 4, jj = srcPos + len; j < jj; j += 3) {\n dest[destPos++] =\n (src[j] << 24) | (src[j + 1] << 16) | (src[j + 2] << 8) | alphaMask;\n }\n }\n\n return { srcPos: srcPos + len, destPos };\n}\n\nfunction grayToRGBA(src, dest) {\n if (FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = (src[i] * 0x10101) | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = (src[i] * 0x1010100) | 0x000000ff;\n }\n }\n}\n\nexport { convertBlackAndWhiteToRGBA, convertToRGBA, grayToRGBA };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { ColorSpaceUtils } from \"./colorspace_utils.js\";\nimport { DeviceCmykCS } from \"./colorspace.js\";\nimport { grayToRGBA } from \"../shared/image_utils.js\";\n\nclass JpegError extends BaseException {\n constructor(msg) {\n super(msg, \"JpegError\");\n }\n}\n\nclass DNLMarkerError extends BaseException {\n constructor(message, scanLines) {\n super(message, \"DNLMarkerError\");\n this.scanLines = scanLines;\n }\n}\n\nclass EOIMarkerError extends BaseException {\n constructor(msg) {\n super(msg, \"EOIMarkerError\");\n }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0,\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n const code = [{ children: [], index: 0 }];\n let p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n data,\n view,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive,\n parseDNLMarker = false\n) {\n const mcusPerLine = frame.mcusPerLine;\n const progressive = frame.progressive;\n\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xff) {\n const nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n offset += 2; // Skip marker length.\n\n const scanLines = view.getUint16(offset);\n offset += 2;\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n \"Found DNL marker (0xFFDC) while parsing scan data\",\n scanLines\n );\n }\n } else if (nextByte === /* EOI = */ 0xd9) {\n if (parseDNLMarker) {\n // NOTE: only 8-bit JPEG images are supported in this decoder.\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n // Heuristic to attempt to handle corrupt JPEG images with too\n // large `scanLines` parameter, by falling back to the currently\n // parsed number of scanLines when it's at least (approximately)\n // one \"half\" order of magnitude smaller than expected (fixes\n // issue10880.pdf, issue10989.pdf, issue15492.pdf).\n if (\n maybeScanLines > 0 &&\n Math.round(frame.scanLines / maybeScanLines) >= 5\n ) {\n throw new DNLMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n \"possibly caused by incorrect `scanLines` parameter\",\n maybeScanLines\n );\n }\n }\n throw new EOIMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data\"\n );\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n let node = tree;\n while (true) {\n node = node[readBit()];\n switch (typeof node) {\n case \"number\":\n return node;\n case \"object\":\n continue;\n }\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n let n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n let eobrun = 0;\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n let successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, blockOffset) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n let s;\n let rs;\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n function decodeMcu(component, decode, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n const blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n const componentsLength = components.length;\n let component, i, j, k, n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0,\n fileMarker;\n const mcuExpected =\n componentsLength === 1\n ? components[0].blocksPerLine * components[0].blocksPerColumn\n : mcusPerLine * frame.mcusPerColumn;\n\n let h, v;\n while (mcu <= mcuExpected) {\n // reset interval stuff\n const mcuToRead = resetInterval\n ? Math.min(mcuExpected - mcu, resetInterval)\n : mcuExpected;\n\n // The `mcuToRead === 0` case should only occur when all of the expected\n // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n // some corrupt JPEG images contain more data than intended and we thus\n // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, view, offset);\n if (!fileMarker) {\n break; // Reached the end of the image data without finding any marker.\n }\n if (fileMarker.invalid) {\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n // past those to attempt to find a valid marker (fixes issue4090.pdf).\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n warn(\n `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n );\n offset = fileMarker.offset;\n }\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n// 988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n const qt = component.quantizationTable,\n blockData = component.blockData;\n let v0, v1, v2, v3, v4, v5, v6, v7;\n let p0, p1, p2, p3, p4, p5, p6, p7;\n let t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n // inverse DCT on rows\n for (let row = 0; row < 64; row += 8) {\n // gather block data\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 512) >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n // dequant p1 ... p7\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 128) >> 8;\n v1 = (dctSqrt2 * p4 + 128) >> 8;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n\n // stage 3\n v0 = (v0 + v1 + 1) >> 1;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (let col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // Convert to 8-bit.\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = (t + 2056) >> 4;\n }\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 2048) >> 12;\n v1 = (dctSqrt2 * p4 + 2048) >> 12;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n v5 = p3;\n v6 = p5;\n\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\n v0 = ((v0 + v1 + 1) >> 1) + 4112;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n // Convert to 8-bit integers.\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n // store block data\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n}\n\nfunction buildComponentData(frame, component) {\n const blocksPerLine = component.blocksPerLine;\n const blocksPerColumn = component.blocksPerColumn;\n const computationBuffer = new Int16Array(64);\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n const offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n}\n\nfunction findNextFileMarker(data, view, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n let newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n const currentMarker = view.getUint16(currentPos);\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n let newMarker = view.getUint16(newPos);\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = view.getUint16(newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n}\n\nfunction prepareComponents(frame) {\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (const component of frame.components) {\n const blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n const blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n const blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n}\n\nfunction readDataBlock(data, view, offset) {\n const length = view.getUint16(offset);\n offset += 2;\n let endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, view, endOffset, offset);\n if (fileMarker?.invalid) {\n warn(\n \"readDataBlock - incorrect length, current marker is: \" +\n fileMarker.invalid\n );\n endOffset = fileMarker.offset;\n }\n\n const array = data.subarray(offset, endOffset);\n return {\n appData: array,\n oldOffset: offset,\n newOffset: offset + array.length,\n };\n}\n\nfunction skipData(data, view, offset) {\n const length = view.getUint16(offset);\n offset += 2;\n const endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, view, endOffset, offset);\n if (fileMarker?.invalid) {\n return fileMarker.offset;\n }\n return endOffset;\n}\n\nclass JpegImage {\n constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n static canUseImageDecoder(data, colorTransform = -1) {\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n let exifOffsets = null;\n let offset = 0;\n let numComponents = null;\n let fileMarker = view.getUint16(offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = view.getUint16(offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n switch (fileMarker) {\n case 0xffe1: // APP1 - Exif\n // TODO: Remove this once https://github.com/w3c/webcodecs/issues/870\n // is fixed.\n const { appData, oldOffset, newOffset } = readDataBlock(\n data,\n view,\n offset\n );\n offset = newOffset;\n\n // 'Exif\\x00\\x00'\n if (\n appData[0] === 0x45 &&\n appData[1] === 0x78 &&\n appData[2] === 0x69 &&\n appData[3] === 0x66 &&\n appData[4] === 0 &&\n appData[5] === 0\n ) {\n if (exifOffsets) {\n throw new JpegError(\"Duplicate EXIF-blocks found.\");\n }\n // Don't do the EXIF-block replacement here, see `JpegStream`,\n // since that can modify the original PDF document.\n exifOffsets = { exifStart: oldOffset + 6, exifEnd: newOffset };\n }\n fileMarker = view.getUint16(offset);\n offset += 2;\n continue;\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n // Skip marker length.\n // Skip precision.\n // Skip scanLines.\n // Skip samplesPerLine.\n numComponents = data[offset + (2 + 1 + 2 + 2)];\n break markerLoop;\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n }\n offset = skipData(data, view, offset);\n fileMarker = view.getUint16(offset);\n offset += 2;\n }\n if (numComponents === 4) {\n return null;\n }\n if (numComponents === 3 && colorTransform === 0) {\n return null;\n }\n return exifOffsets || {};\n }\n\n parse(data, { dnlScanLines = null } = {}) {\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n const maxOffset = data.length - 1;\n let offset = 0;\n let jfif = null;\n let adobe = null;\n let frame, resetInterval;\n let numSOSMarkers = 0;\n const quantizationTables = [];\n const huffmanTablesAC = [],\n huffmanTablesDC = [];\n\n let fileMarker = view.getUint16(offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = view.getUint16(offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n let i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n const { appData, newOffset } = readDataBlock(data, view, offset);\n offset = newOffset;\n\n if (fileMarker === 0xffe0) {\n // 'JFIF\\x00'\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n // 'Adobe'\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65\n ) {\n adobe = {\n version: (appData[5] << 8) | appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n const quantizationTablesLength = view.getUint16(offset);\n offset += 2;\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n let z;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = view.getUint16(offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n offset += 2; // Skip marker length.\n\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = view.getUint16(offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = view.getUint16(offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n const componentsCount = data[offset++];\n let maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n const componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n const qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n const huffmanLength = view.getUint16(offset);\n offset += 2;\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n offset += 2; // Skip marker length.\n\n resetInterval = view.getUint16(offset);\n offset += 2;\n break;\n\n case 0xffda: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n offset += 2; // Skip marker length.\n\n const selectorsCount = data[offset++],\n components = [];\n for (i = 0; i < selectorsCount; i++) {\n const index = data[offset++];\n const componentIndex = frame.componentIds[index];\n const component = frame.components[componentIndex];\n component.index = index;\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++],\n spectralEnd = data[offset++],\n successiveApproximation = data[offset++];\n try {\n const processed = decodeScan(\n data,\n view,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15,\n parseDNLMarker\n );\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xffdc: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n // Could be incorrect encoding -- the last 0xFF byte of the previous\n // block could have been eaten by the encoder, hence we fallback to\n // `startPos = offset - 3` when looking for the next valid marker.\n const nextFileMarker = findNextFileMarker(\n data,\n view,\n /* currentPos = */ offset - 2,\n /* startPos = */ offset - 3\n );\n if (nextFileMarker?.invalid) {\n warn(\n \"JpegImage.parse - unexpected data, current marker is: \" +\n nextFileMarker.invalid\n );\n offset = nextFileMarker.offset;\n break;\n }\n if (!nextFileMarker || offset >= maxOffset) {\n warn(\n \"JpegImage.parse - reached the end of the image data \" +\n \"without finding an EOI marker (0xFFD9).\"\n );\n break markerLoop;\n }\n throw new JpegError(\n \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n );\n }\n\n if (offset < maxOffset) {\n fileMarker = view.getUint16(offset);\n offset += 2;\n } else {\n fileMarker = 0;\n }\n }\n\n if (!frame) {\n throw new JpegError(\"JpegImage.parse - no frame data found.\");\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (const component of frame.components) {\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n const quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n });\n }\n this.numComponents = this.components.length;\n return undefined;\n }\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n const scaleX = this.width / width,\n scaleY = this.height / height;\n\n let component, componentScaleX, componentScaleY, blocksPerScanline;\n let x, y, i, j, k;\n let index;\n let offset = 0;\n let output;\n const numComponents = this.components.length;\n const dataLength = width * height * numComponents;\n const data = new Uint8ClampedArray(dataLength);\n const xScaleBlockOffset = new Uint32Array(width);\n const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = (component.blocksPerLine + 1) << 3;\n // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n // component data, that's only necessary when `componentScaleX` changes.\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | (x * componentScaleX);\n xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n }\n lastComponentScaleX = componentScaleX;\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength; ) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n }\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n } else if (\n this.components[0].index === /* \"R\" = */ 0x52 &&\n this.components[1].index === /* \"G\" = */ 0x47 &&\n this.components[2].index === /* \"B\" = */ 0x42\n ) {\n // If the three components are indexed as RGB in ASCII\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n }\n\n _convertYccToRgb(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n }\n\n _convertYccToRgba(data, out) {\n for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) {\n const Y = data[i];\n const Cb = data[i + 1];\n const Cr = data[i + 2];\n out[j] = Y - 179.456 + 1.402 * Cr;\n out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n out[j + 2] = Y - 226.816 + 1.772 * Cb;\n out[j + 3] = 255;\n }\n return out;\n }\n\n _convertYcckToRgb(data) {\n this._convertYcckToCmyk(data);\n return this._convertCmykToRgb(data);\n }\n\n _convertYcckToRgba(data) {\n this._convertYcckToCmyk(data);\n return this._convertCmykToRgba(data);\n }\n\n _convertYcckToCmyk(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n // K in data[i + 3] is unchanged\n }\n return data;\n }\n\n _convertCmykToRgb(data) {\n const count = data.length / 4;\n ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, count, data, 0, 8, 0);\n return data.subarray(0, count * 3);\n }\n\n _convertCmykToRgba(data) {\n ColorSpaceUtils.cmyk.getRgbBuffer(data, 0, data.length / 4, data, 0, 8, 1);\n\n if (ColorSpaceUtils.cmyk instanceof DeviceCmykCS) {\n // The alpha-component isn't updated by `DeviceCmykCS`, doing it manually.\n for (let i = 3, ii = data.length; i < ii; i += 4) {\n data[i] = 255;\n }\n }\n return data;\n }\n\n getData({\n width,\n height,\n forceRGBA = false,\n forceRGB = false,\n isSourcePDF = false,\n }) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n );\n }\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && (forceRGBA || forceRGB)) {\n const len = data.length * (forceRGBA ? 4 : 3);\n const rgbaData = new Uint8ClampedArray(len);\n let offset = 0;\n if (forceRGBA) {\n grayToRGBA(data, new Uint32Array(rgbaData.buffer));\n } else {\n for (const grayColor of data) {\n rgbaData[offset++] = grayColor;\n rgbaData[offset++] = grayColor;\n rgbaData[offset++] = grayColor;\n }\n }\n return rgbaData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n if (forceRGBA) {\n const rgbaData = new Uint8ClampedArray((data.length / 3) * 4);\n return this._convertYccToRgba(data, rgbaData);\n }\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGBA) {\n return this._convertYcckToRgba(data);\n }\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGBA) {\n return this._convertCmykToRgba(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n}\n\nexport { JpegError, JpegImage };\n","/* THIS FILE IS GENERATED - DO NOT EDIT */\nasync function OpenJPEG(moduleArg={}){var moduleRtn;var Module=moduleArg;var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var _scriptName=import.meta.url;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(\".\",_scriptName).href}catch{}{readAsync=async url=>{var response=await fetch(url,{credentials:\"same-origin\"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+\" : \"+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var wasmBinary;var ABORT=false;var EXITSTATUS;class EmscriptenEH{}class EmscriptenSjLj extends EmscriptenEH{}var readyPromiseResolve,readyPromiseReject;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;wasmExports[\"s\"]()}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(onPostRuns)}function abort(what){Module[\"onAbort\"]?.(what);what=`Aborted(${what})`;err(what);ABORT=true;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject?.(e);throw e}var wasmBinaryFile;function findWasmBinary(){if(Module[\"locateFile\"]){return locateFile(\"openjpeg.wasm\")}return new URL(\"openjpeg.wasm\",import.meta.url).href}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary){try{var response=fetch(binaryFile,{credentials:\"same-origin\"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err(\"falling back to ArrayBuffer instantiation\")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){var imports={a:wasmImports};return imports}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;assignWasmExports(wasmExports);updateMemoryViews();return wasmExports}function receiveInstantiationResult(result){return receiveInstance(result[\"instance\"])}var info=getWasmImports();if(Module[\"instantiateWasm\"]){return new Promise((resolve,reject)=>{Module[\"instantiateWasm\"](info,(inst,mod)=>{resolve(receiveInstance(inst,mod))})})}wasmBinaryFile??=findWasmBinary();var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}class ExitStatus{name=\"ExitStatus\";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var HEAP16;var HEAP32;var HEAP64;var HEAP8;var HEAPF32;var HEAPF64;var HEAPU16;var HEAPU32;var HEAPU64;var HEAPU8;var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var noExitRuntime=true;var __abort_js=()=>abort(\"\");var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};var timers={};var handleException=e=>{if(e instanceof ExitStatus||e==\"unwind\"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module[\"onExit\"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var _exit=exitJS;var maybeExit=()=>{if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(ABORT){return}try{return func()}catch(e){handleException(e)}finally{maybeExit()}};var _emscripten_get_now=()=>performance.now();var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};function _copy_pixels_1(compG_ptr,nb_pixels){compG_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);imageData.set(compG)}function _copy_pixels_3(compR_ptr,compG_ptr,compB_ptr,nb_pixels){compR_ptr>>=2;compG_ptr>>=2;compB_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*3);const compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels);for(let i=0;i>=2;compG_ptr>>=2;compB_ptr>>=2;compA_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels);const compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels);for(let i=0;i2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var oldHeapSize=wasmMemory.buffer.byteLength;var pages=(size-oldHeapSize+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var ENV={};var getExecutableName=()=>thisProgram||\"./this.program\";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(globalThis.navigator?.language??\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63;i++}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var _environ_get=(__environ,environ_buf)=>{var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>2]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var _environ_sizes_get=(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>2]=bufSize;return 0};var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>numINT53_MAX?NaN:Number(num);function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);return 70}var printCharBuffers=[null,[],[]];var UTF8Decoder=globalThis.TextDecoder&&new TextDecoder;var findStringEnd=(heapOrArray,idx,maxBytesToRead,ignoreNul)=>{var maxIdx=idx+maxBytesToRead;if(ignoreNul)return maxIdx;while(heapOrArray[idx]&&!(idx>=maxIdx))++idx;return idx};var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead,ignoreNul)=>{var endPtr=findStringEnd(heapOrArray,idx,maxBytesToRead,ignoreNul);if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx>10,56320|ch&1023)}}return str};var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var UTF8ToString=(ptr,maxBytesToRead,ignoreNul)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead,ignoreNul):\"\";var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};function _gray_to_rgba(compG_ptr,nb_pixels){compG_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);for(let i=0;i>=2;compA_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compA=HEAP32.subarray(compA_ptr,compA_ptr+nb_pixels);for(let i=0;i>=2;compG_ptr>>=2;compB_ptr>>=2;const imageData=Module.imageData=new Uint8ClampedArray(nb_pixels*4);const compR=HEAP32.subarray(compR_ptr,compR_ptr+nb_pixels);const compG=HEAP32.subarray(compG_ptr,compG_ptr+nb_pixels);const compB=HEAP32.subarray(compB_ptr,compB_ptr+nb_pixels);for(let i=0;i{HEAP8.set(array,buffer)};{if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(Module[\"print\"])out=Module[\"print\"];if(Module[\"printErr\"])err=Module[\"printErr\"];if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].shift()()}}}Module[\"writeArrayToMemory\"]=writeArrayToMemory;var _malloc,_free,_jp2_decode,__emscripten_timeout,memory,__indirect_function_table,wasmMemory;function assignWasmExports(wasmExports){_malloc=Module[\"_malloc\"]=wasmExports[\"t\"];_free=Module[\"_free\"]=wasmExports[\"u\"];_jp2_decode=Module[\"_jp2_decode\"]=wasmExports[\"v\"];__emscripten_timeout=wasmExports[\"w\"];memory=wasmMemory=wasmExports[\"r\"];__indirect_function_table=wasmExports[\"__indirect_function_table\"]}var wasmImports={m:__abort_js,l:__emscripten_runtime_keepalive_clear,i:__setitimer_js,f:_copy_pixels_1,e:_copy_pixels_3,d:_copy_pixels_4,j:_emscripten_resize_heap,o:_environ_get,p:_environ_sizes_get,n:_fd_seek,b:_fd_write,q:_gray_to_rgba,h:_graya_to_rgba,c:_jsPrintWarning,k:_proc_exit,g:_rgb_to_rgba,a:_storeErrorMessage};function run(){preRun();function doRun(){Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve?.(Module);Module[\"onRuntimeInitialized\"]?.();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(()=>{setTimeout(()=>Module[\"setStatus\"](\"\"),1);doRun()},1)}else{doRun()}}var wasmExports;wasmExports=await (createWasm());run();if(runtimeInitialized){moduleRtn=Module}else{moduleRtn=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject})}\n;return moduleRtn}export default OpenJPEG;\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { stringToBytes } from \"../shared/util.js\";\n\nclass Stream extends BaseStream {\n constructor(arrayBuffer, start, length, dict) {\n super();\n\n this.bytes =\n arrayBuffer instanceof Uint8Array\n ? arrayBuffer\n : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n this.pos = strEnd;\n return bytes.subarray(pos, strEnd);\n }\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n return this.bytes.subarray(begin, end);\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start, length, dict = null) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n\n clone() {\n return new Stream(\n this.bytes.buffer,\n this.start,\n this.end - this.start,\n this.dict.clone()\n );\n }\n}\n\nclass StringStream extends Stream {\n constructor(str) {\n super(stringToBytes(str));\n }\n}\n\nclass NullStream extends Stream {\n constructor() {\n super(new Uint8Array(0));\n }\n}\n\nexport { NullStream, Stream, StringStream };\n","/* Copyright 2024 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, warn } from \"../shared/util.js\";\nimport { fetchBinaryData } from \"./core_utils.js\";\nimport OpenJPEG from \"../../external/openjpeg/openjpeg.js\";\nimport { Stream } from \"./stream.js\";\n\nclass JpxError extends BaseException {\n constructor(msg) {\n super(msg, \"JpxError\");\n }\n}\n\nclass JpxImage {\n static #buffer = null;\n\n static #handler = null;\n\n static #modulePromise = null;\n\n static #useWasm = true;\n\n static #useWorkerFetch = true;\n\n static #wasmUrl = null;\n\n static setOptions({ handler, useWasm, useWorkerFetch, wasmUrl }) {\n this.#useWasm = useWasm;\n this.#useWorkerFetch = useWorkerFetch;\n this.#wasmUrl = wasmUrl;\n\n if (!useWorkerFetch) {\n this.#handler = handler;\n }\n }\n\n static async #getJsModule(fallbackCallback) {\n const path =\n typeof PDFJSDev === \"undefined\"\n ? `../${this.#wasmUrl}openjpeg_nowasm_fallback.js`\n : `${this.#wasmUrl}openjpeg_nowasm_fallback.js`;\n\n let instance = null;\n try {\n const mod = await (typeof PDFJSDev === \"undefined\"\n ? import(path) // eslint-disable-line no-unsanitized/method\n : __raw_import__(path));\n instance = mod.default();\n } catch (e) {\n warn(`JpxImage#getJsModule: ${e}`);\n }\n fallbackCallback(instance);\n }\n\n static async #instantiateWasm(fallbackCallback, imports, successCallback) {\n const filename = \"openjpeg.wasm\";\n try {\n if (!this.#buffer) {\n if (this.#useWorkerFetch) {\n this.#buffer = await fetchBinaryData(`${this.#wasmUrl}${filename}`);\n } else {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Only worker-thread fetching supported.\");\n }\n this.#buffer = await this.#handler.sendWithPromise(\n \"FetchBinaryData\",\n { kind: \"wasmUrl\", filename }\n );\n }\n }\n const results = await WebAssembly.instantiate(this.#buffer, imports);\n return successCallback(results.instance);\n } catch (reason) {\n warn(`JpxImage#instantiateWasm: ${reason}`);\n\n this.#getJsModule(fallbackCallback);\n return null;\n } finally {\n this.#handler = null;\n }\n }\n\n static async decode(\n bytes,\n {\n numComponents = 4,\n isIndexedColormap = false,\n smaskInData = false,\n reducePower = 0,\n } = {}\n ) {\n if (!this.#modulePromise) {\n const { promise, resolve } = Promise.withResolvers();\n const promises = [promise];\n if (!this.#useWasm) {\n this.#getJsModule(resolve);\n } else {\n promises.push(\n OpenJPEG({\n warn,\n instantiateWasm: this.#instantiateWasm.bind(this, resolve),\n })\n );\n }\n this.#modulePromise = Promise.race(promises);\n }\n const module = await this.#modulePromise;\n\n if (!module) {\n throw new JpxError(\"OpenJPEG failed to initialize\");\n }\n let ptr;\n\n try {\n const size = bytes.length;\n ptr = module._malloc(size);\n module.writeArrayToMemory(bytes, ptr);\n const ret = module._jp2_decode(\n ptr,\n size,\n numComponents > 0 ? numComponents : 0,\n !!isIndexedColormap,\n !!smaskInData,\n reducePower\n );\n if (ret) {\n const { errorMessages } = module;\n if (errorMessages) {\n delete module.errorMessages;\n throw new JpxError(errorMessages);\n }\n throw new JpxError(\"Unknown error\");\n }\n const { imageData } = module;\n module.imageData = null;\n\n return imageData;\n } finally {\n if (ptr) {\n module._free(ptr);\n }\n }\n }\n\n static cleanup() {\n this.#modulePromise = null;\n }\n\n static parseImageProperties(stream) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n if (stream instanceof ArrayBuffer || ArrayBuffer.isView(stream)) {\n stream = new Stream(stream);\n } else {\n throw new JpxError(\"Invalid data format, must be a TypedArray.\");\n }\n }\n // No need to use OpenJPEG here since we're only getting very basic\n // information which are located in the first bytes of the file.\n let newByte = stream.getByte();\n while (newByte >= 0) {\n const oldByte = newByte;\n newByte = stream.getByte();\n const code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xff51) {\n stream.skip(4);\n const Xsiz = stream.getInt32() >>> 0; // Byte 4\n const Ysiz = stream.getInt32() >>> 0; // Byte 8\n const XOsiz = stream.getInt32() >>> 0; // Byte 12\n const YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n const Csiz = stream.getUint16(); // Byte 36\n return {\n width: Xsiz - XOsiz,\n height: Ysiz - YOsiz,\n // Results are always returned as `Uint8ClampedArray`s.\n bitsPerComponent: 8,\n componentsCount: Csiz,\n };\n }\n }\n throw new JpxError(\"No size marker found in JPX stream\");\n }\n}\n\nexport { JpxError, JpxImage };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getVerbosityLevel,\n setVerbosityLevel,\n VerbosityLevel,\n} from \"./shared/util.js\";\nimport {\n Jbig2Error,\n JBig2CCITTFaxImage as Jbig2Image,\n} from \"./core/jbig2_ccittFax.js\";\nimport { JpegError, JpegImage } from \"./core/jpg.js\";\nimport { JpxError, JpxImage } from \"./core/jpx.js\";\n\nglobalThis.pdfjsImageDecoders = {\n getVerbosityLevel,\n Jbig2Error,\n Jbig2Image,\n JpegError,\n JpegImage,\n JpxError,\n JpxImage,\n setVerbosityLevel,\n VerbosityLevel,\n};\n\nexport {\n getVerbosityLevel,\n Jbig2Error,\n Jbig2Image,\n JpegError,\n JpegImage,\n JpxError,\n JpxImage,\n setVerbosityLevel,\n VerbosityLevel,\n};\n"],"names":["isNodeJS","process","versions","nw","electron","type","BBOX_INIT","Infinity","F32_BBOX_INIT","Float32Array","FONT_IDENTITY_MATRIX","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","IS_EDITING","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","HIGHLIGHT","STAMP","INK","POPUP","SIGNATURE","COMMENT","AnnotationEditorParamsType","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","INK_COLOR_AND_OPACITY","HIGHLIGHT_COLOR","HIGHLIGHT_THICKNESS","HIGHLIGHT_FREE","HIGHLIGHT_SHOW_ALL","DRAW_STEP","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","MeshFigureType","TRIANGLES","LATTICE","PATCH","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","VerbosityLevel","ERRORS","WARNINGS","INFOS","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","setStrokeTransparent","setFillTransparent","rawFillPath","DrawOPS","quadraticCurveTo","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","warn","unreachable","Error","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","length","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","parse","updateUrlHash","hash","allowRel","res","href","split","stripPath","str","substring","lastIndexOf","shadow","obj","prop","value","nonSerializable","Object","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","message","name","prototype","constructor","PasswordException","code","UnknownErrorException","details","InvalidPDFException","ResponseException","status","missing","FormatError","AbortException","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","i","chunkEnd","Math","min","chunk","subarray","push","join","stringToBytes","Uint8Array","charCodeAt","objectSize","keys","isLittleEndian","buffer8","view32","Uint32Array","buffer","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","isImageDecoderSupported","ImageDecoder","isFloat16ArraySupported","Float16Array","isSanitizerSupported","Sanitizer","platform","userAgent","navigator","isAndroid","includes","isLinux","isMac","isWindows","isFirefox","isCSSRoundSupported","globalThis","CSS","supports","isAlphaColorInputSupported","document","input","createElement","setAttribute","Util","hexNums","Array","from","n","toString","padStart","makeHexColor","r","g","b","domMatrixToTransform","dm","a","c","d","e","f","scaleMinMax","minMax","temp","m1","m2","multiplyByDOMMatrix","m","md","applyTransform","p","pos","p0","p1","applyTransformToBezier","m0","m3","m4","m5","pI","pI1","applyInverseTransform","axialAlignedBoundingBox","rect","output","r0","r1","r2","r3","a0","a2","a1","a3","b0","b2","b1","b3","m1r0","m1r2","m2r1","m2r3","max","inverseTransform","singularValueDecompose2dScale","matrix","first","second","sqrt","normalizeRect","slice","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","pointBoundingBox","x","y","rectBoundingBox","x0","y0","x1","y1","getExtremumOnCurve","#getExtremumOnCurve","x2","x3","y2","y3","t","mt","tt","ttt","getExtremum","#getExtremum","abs","delta","sqrtDelta","bezierBoundingBox","PDFStringTranslateTable","stringToPDFString","keepEscapeSequence","encoding","decoder","TextDecoder","fatal","decoded","decode","replaceAll","ex","ii","charCode","charAt","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","NormalizeRegex","NormalizationMap","normalizeUnicode","Map","_","p2","normalize","get","getUuid","crypto","randomUUID","buf","getRandomValues","AnnotationPrefix","_isValidExplicitDest","validRef","validName","dest","isArray","page","zoom","args","argsLen","allowNull","arg","makeArr","makeMap","makeObj","create","Blob","arrayBuffer","Response","AbortSignal","any","iterable","ac","AbortController","signal","s","aborted","abort","reason","addEventListener","CIRCULAR_REF","Symbol","EOF","CmdCache","NameCache","RefCache","clearPrimitiveCaches","Name","Cmd","cmd","nonSerializableClosure","Dict","__nonSerializable__","map","objId","suppressEncryption","xref","assignXref","newXref","size","getValue","#getValue","isAsync","key1","key2","key3","Ref","fetchAsync","fetch","getAsync","getArray","getRaw","key","getKeys","getRawValues","values","getRawEntries","entries","set","setIfNotExists","has","setIfNumber","setIfArray","ArrayBuffer","isView","setIfDefined","setIfName","setIfDict","iterator","empty","emptyDict","merge","dictArray","mergeSubDicts","mergedDict","properties","dict","property","subDict","clear","clone","delete","num","gen","fromString","ref","exec","parseInt","RefSet","parent","_set","Set","put","add","remove","RefSetCache","_map","putAlias","aliasRef","items","isName","v","isCmd","isDict","isRefsEqual","v1","v2","BaseStream","isEmpty","isDataLoaded","getByte","getBytes","getImageData","decoderOptions","asyncGetBytes","isAsyncDecoder","isImageStream","canAsyncDecodeImageFromBuffer","getTransferableImage","peekByte","peekedByte","peekBytes","getUint16","getInt32","getByteRange","begin","end","getString","skip","reset","moveStart","makeSubStream","start","getBaseStreams","getOriginalStream","stream","PDF_VERSION_REGEXP","MAX_INT_32","IDENTITY_MATRIX","RESOURCES_KEYS_OPERATOR_LIST","RESOURCES_KEYS_TEXT_CONTENT","getLookupTableFactory","initializer","lookup","MissingDataException","ParserEOFException","XRefEntryException","XRefParseException","arrayBuffersToBytes","arr","dataLength","byteLength","data","item","fetchBinaryData","response","ok","statusText","getInheritableProperty","stopWhenFound","visited","getParentToUpdate","firstDict","result","deepCompare","value1","value2","ROMAN_NUMBER_MAP","toRomanNumerals","number","lowerCase","roman","repeat","toLowerCase","isWhiteSpace","ch","isBooleanArray","len","every","isNumberArray","BigInt64Array","BigUint64Array","lookupMatrix","fallback","lookupRect","lookupNormalRect","parseXFAPath","path","positionPattern","component","escapePDFName","char","escapeString","_collectJS","entry","list","parents","element","js","trim","collectActions","eventType","actions","additionalActionsDicts","additionalActions","rawActionDict","action","actionDict","Action","XMLEntities","codePointIter","codePointAt","encodeToXmlString","entity","toUpperCase","validateFontName","fontFamily","mustWarn","re","RegExp","test","ident","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontWeight","italicAngle","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","jsUrl","newWindow","numberToString","roundedValue","round","toFixed","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","getOrInsertComputed","pageIndex","stringToAsciiOrUTF16BE","isAscii","stringToUTF16String","stringToUTF16HexString","bigEndian","getRotationMatrix","rotation","width","height","getSizeInBytes","ceil","log2","JBig2","moduleArg","moduleRtn","Module","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","arguments_","thisProgram","quit_","toThrow","_scriptName","import","meta","scriptDirectory","readAsync","readBinary","credentials","out","log","bind","err","error","wasmBinary","ABORT","EXITSTATUS","readyPromiseResolve","readyPromiseReject","HEAP8","HEAPU8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAPF64","HEAP64","HEAPU64","runtimeInitialized","updateMemoryViews","wasmMemory","Int8Array","Int16Array","Uint16Array","Int32Array","Float64Array","preRun","addOnPreRun","shift","callRuntimeCallbacks","onPreRuns","initRuntime","wasmExports","postRun","addOnPostRun","onPostRuns","what","WebAssembly","RuntimeError","wasmBinaryFile","getWasmImports","imports","wasmImports","createWasm","receiveInstance","instance","module","exports","assignWasmExports","Promise","resolve","reject","inst","mod","ExitStatus","callbacks","cb","noExitRuntime","__abort_js","runtimeKeepaliveCounter","__emscripten_runtime_keepalive_clear","timers","handleException","keepRuntimeAlive","_proc_exit","exitJS","implicit","_exit","maybeExit","callUserCallback","func","_emscripten_get_now","performance","now","__setitimer_js","which","timeout_ms","clearTimeout","id","setTimeout","__emscripten_timeout","_createImageData","imageData","getHeapMax","alignMemory","alignment","growMemory","oldHeapSize","pages","grow","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","newSize","replacement","_setImageData","array_ptr","pitch8","pitch32","Uint8ClampedArray","destSize","srcStart","destStart","_setLineData","line_ptr","offset","writeArrayToMemory","array","_malloc","_free","_jbig2_decode","_ccitt_decode","memory","__indirect_function_table","h","run","doRun","Jbig2Error","JBig2CCITTFaxImage","handler","modulePromise","useWasm","useWorkerFetch","wasmUrl","setOptions","getJsModule","#getJsModule","fallbackCallback","default","instantiateWasm","#instantiateWasm","successCallback","filename","sendWithPromise","kind","results","instantiate","globals","CCITTOptions","promise","withResolvers","promises","race","ptr","globalsPtr","EndOfLine","EncodedByteAlign","BlackIs1","Columns","Rows","globalsSize","cleanup","MathClamp","resizeRgbImage","src","w1","h1","w2","h2","alpha01","COMPONENTS","xRatio","yRatio","newIndex","oldIndex","xScaled","w1Scanline","floor","py","j","resizeRgbaImage","src32","dest32","rgbMask","copyRgbaImage","isDefaultDecodeHelper","expectedLen","decodeLen","ColorSpace","rgbBuf","numComps","getRgb","srcOffset","getRgbItem","getRgbHex","destOffset","getRgbBuffer","count","bits","getOutputLength","inputLength","isPassthrough","isDefaultDecode","bpc","fillRgb","originalWidth","originalHeight","actualHeight","comps","numComponentColors","needsResizing","allColors","colorMap","destPos","rgbPos","usesZeroToOneRange","AlternateCS","base","tintFn","tmpBuf","scale","baseNumComps","baseBuf","scaled","tinted","PatternCS","baseCS","IndexedCS","highVal","outputDelta","lookupPos","DeviceGrayCS","q","DeviceRgbCS","DeviceRgbaCS","_alpha01","DeviceCmykCS","toRgb","#toRgb","srcScale","k","CalGrayCS","whitePoint","blackPoint","gamma","XW","YW","ZW","XB","YB","ZB","G","A","AG","L","val","CalRGBCS","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","GR","GG","GB","MXA","MYA","MZA","MXB","MYB","MZB","MXC","MYC","MZC","matrixProduct","#matrixProduct","toFlat","#toFlat","sourceWhitePoint","LMS","toD65","#toD65","D65X","D65Y","D65Z","sRGBTransferFunction","#sRGBTransferFunction","color","decodeL","#decodeL","compensateBlackPoint","#compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","#normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","#normalizeWhitePointToD65","LMS_D65","B","AGR","BGG","CGB","Y","Z","XYZ","XYZ_Black","XYZ_D65","SRGB","LabCS","range","amin","amax","bmin","bmax","fn_g","#fn_g","#decode","high1","low2","high2","maxVal","Ls","as","bs","M","N","QCMS","memoryArray","_memory","_mustAddAlpha","_destBuffer","_destOffset","_destLength","_cssColor","_makeHexColor","_memoryArray","copy_result","copy_rgb","make_cssRGB","DataType","freeze","RGB8","RGBA8","BGRA8","Gray8","GrayA8","CMYK","Intent","Perceptual","RelativeColorimetric","Saturation","AbsoluteColorimetric","qcms_convert_array","transformer","ptr0","passArray8ToWasm0","wasm","__wbindgen_malloc","len0","WASM_VECTOR_LEN","qcms_convert_four","src1","src2","src3","src4","css","qcms_convert_one","qcms_convert_three","qcms_drop_transformer","qcms_transformer_from_memory","mem","in_type","intent","ret","__wbg_get_imports","import0","__proto__","__wbg___wbindgen_throw_6b64449b9b9ed33c","arg0","arg1","getStringFromWasm0","__wbg_copy_result_0d15f3bf9d9012ae","__wbg_copy_rgb_0106d9d9464fce43","__wbg_make_cssRGB_8e24b34f71f5363e","__wbindgen_init_externref_table","table","__wbindgen_externrefs","decodeText","cachedUint8ArrayMemory0","getUint8ArrayMemory0","malloc","cachedTextDecoder","ignoreBOM","MAX_SAFARI_DECODE_BYTES","numBytesDecoded","wasmModule","__wbg_finalize_init","__wbindgen_start","__wbg_load","instantiateStreaming","validResponse","expectedResponseType","headers","Instance","initSync","getPrototypeOf","__wbg_init","module_or_path","Request","fetchSync","xhr","XMLHttpRequest","open","responseType","send","IccColorSpace","convertPixel","finalizer","iccProfile","isUsable","inType","FinalizationRegistry","register","_module","CmykICCBasedCS","iccUrl","ColorSpaceUtils","cs","resources","pdfFunctionFactory","globalColorSpaceCache","localColorSpaceCache","asyncIfNotCached","csName","csRef","parsedCS","cachedCS","getByRef","getByName","subParse","#subParse","#parse","fetchIfRef","gray","rgb","rgba","cmyk","colorSpaces","resourcesCS","mode","params","isRef","iccCS","altRaw","altCS","hiVal","convertToRGBA","convertBlackAndWhiteToRGBA","convertRGBToRGBA","srcPos","nonBlackColor","inverseDecode","black","zeroMapping","oneMapping","widthInSource","widthRemainder","xorMask","srcLength","elem","len32","alphaMask","s1","s2","s3","jj","grayToRGBA","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","children","index","pop","getBlockBufferOffset","row","col","blocksPerLine","decodeScan","view","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","readBit","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","node","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","sign","decodeMcu","mcu","mcuRow","mcuCol","blockCol","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p3","p4","p5","p6","p7","buildComponentData","computationBuffer","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","readDataBlock","endOffset","appData","oldOffset","newOffset","skipData","JpegImage","decodeTransform","colorTransform","_decodeTransform","_colorTransform","canUseImageDecoder","DataView","byteOffset","exifOffsets","numComponents","markerLoop","exifStart","exifEnd","dnlScanLines","maxOffset","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","l","version","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","scaleX","scaleY","_getLinearizedBlockData","isSourcePDF","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Cb","Cr","_convertYccToRgba","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","_convertYcckToRgba","_convertCmykToRgba","getData","forceRGBA","forceRGB","rgbaData","grayColor","OpenJPEG","EmscriptenEH","EmscriptenSjLj","_copy_pixels_1","compG_ptr","nb_pixels","compG","_copy_pixels_3","compR_ptr","compB_ptr","compR","compB","_copy_pixels_4","compA_ptr","compA","ENV","getExecutableName","getEnvStrings","strings","lang","language","replace","env","USER","LOGNAME","PATH","PWD","HOME","LANG","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","endIdx","u","stringToUTF8","outPtr","_environ_get","__environ","environ_buf","bufSize","envp","string","lengthBytesUTF8","_environ_sizes_get","penviron_count","penviron_buf_size","INT53_MAX","INT53_MIN","bigintToI53Checked","NaN","_fd_seek","fd","whence","printCharBuffers","UTF8Decoder","findStringEnd","heapOrArray","idx","maxBytesToRead","ignoreNul","maxIdx","UTF8ArrayToString","endPtr","u0","u1","u2","printChar","curr","UTF8ToString","_fd_write","iov","iovcnt","pnum","_gray_to_rgba","_graya_to_rgba","_jsPrintWarning","message_ptr","_rgb_to_rgba","_storeErrorMessage","errorMessages","_jp2_decode","o","Stream","strEnd","StringStream","NullStream","JpxError","JpxImage","isIndexedColormap","smaskInData","reducePower","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","bitsPerComponent","Jbig2Image","pdfjsImageDecoders"],"sourceRoot":""}
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_add.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_add.svg
new file mode 100644
index 0000000..3451b53
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_add.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_disclaimer.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_disclaimer.svg
new file mode 100644
index 0000000..6fe79e7
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_disclaimer.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_done.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_done.svg
new file mode 100644
index 0000000..f54924e
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_done.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_spinner.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_spinner.svg
new file mode 100644
index 0000000..fedb472
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_spinner.svg
@@ -0,0 +1,30 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_warning.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_warning.svg
new file mode 100644
index 0000000..03014ce
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/altText_warning.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-check.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-check.svg
new file mode 100644
index 0000000..71cd16d
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-check.svg
@@ -0,0 +1,11 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-comment.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-comment.svg
new file mode 100644
index 0000000..86f1f17
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-comment.svg
@@ -0,0 +1,16 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-help.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-help.svg
new file mode 100644
index 0000000..00938fe
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-help.svg
@@ -0,0 +1,26 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-insert.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-insert.svg
new file mode 100644
index 0000000..519ef68
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-insert.svg
@@ -0,0 +1,10 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-key.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-key.svg
new file mode 100644
index 0000000..8d09d53
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-key.svg
@@ -0,0 +1,11 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-newparagraph.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-newparagraph.svg
new file mode 100644
index 0000000..38d2497
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-newparagraph.svg
@@ -0,0 +1,11 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-noicon.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-noicon.svg
new file mode 100644
index 0000000..c07d108
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-noicon.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-note.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-note.svg
new file mode 100644
index 0000000..7017365
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-note.svg
@@ -0,0 +1,42 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-paperclip.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-paperclip.svg
new file mode 100644
index 0000000..2bed225
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-paperclip.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-paragraph.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-paragraph.svg
new file mode 100644
index 0000000..6ae5212
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-paragraph.svg
@@ -0,0 +1,16 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-pushpin.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-pushpin.svg
new file mode 100644
index 0000000..6e0896c
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/annotation-pushpin.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/checkmark.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/checkmark.svg
new file mode 100644
index 0000000..20ba0d2
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/checkmark.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-actionsButton.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-actionsButton.svg
new file mode 100644
index 0000000..3161438
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-actionsButton.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-closeButton.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-closeButton.svg
new file mode 100644
index 0000000..6fb5f6a
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-closeButton.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-editButton.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-editButton.svg
new file mode 100644
index 0000000..92b1316
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-editButton.svg
@@ -0,0 +1,8 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-popup-editButton.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-popup-editButton.svg
new file mode 100644
index 0000000..e497422
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/comment-popup-editButton.svg
@@ -0,0 +1,5 @@
+
+
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorFreeHighlight.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorFreeHighlight.svg
new file mode 100644
index 0000000..513f6bd
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorFreeHighlight.svg
@@ -0,0 +1,6 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorFreeText.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorFreeText.svg
new file mode 100644
index 0000000..de2838e
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorFreeText.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorInk.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorInk.svg
new file mode 100644
index 0000000..1dadb5c
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorInk.svg
@@ -0,0 +1,4 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorTextHighlight.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorTextHighlight.svg
new file mode 100644
index 0000000..800340c
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/cursor-editorTextHighlight.svg
@@ -0,0 +1,8 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/editor-toolbar-delete.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/editor-toolbar-delete.svg
new file mode 100644
index 0000000..f84520d
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/editor-toolbar-delete.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/editor-toolbar-edit.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/editor-toolbar-edit.svg
new file mode 100644
index 0000000..692de38
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/editor-toolbar-edit.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/findbarButton-next.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/findbarButton-next.svg
new file mode 100644
index 0000000..8cb39be
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/findbarButton-next.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/findbarButton-previous.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/findbarButton-previous.svg
new file mode 100644
index 0000000..b610879
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/findbarButton-previous.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/gv-toolbarButton-download.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/gv-toolbarButton-download.svg
new file mode 100644
index 0000000..d56cf3c
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/gv-toolbarButton-download.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/loading-icon.gif b/frontend/node_modules/pdfjs-dist/legacy/web/images/loading-icon.gif
new file mode 100644
index 0000000..1c72ebb
Binary files /dev/null and b/frontend/node_modules/pdfjs-dist/legacy/web/images/loading-icon.gif differ
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/loading.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/loading.svg
new file mode 100644
index 0000000..0a15ff6
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/loading.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/messageBar_closingButton.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/messageBar_closingButton.svg
new file mode 100644
index 0000000..8a40715
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/messageBar_closingButton.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/messageBar_info.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/messageBar_info.svg
new file mode 100644
index 0000000..b12b6be
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/messageBar_info.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/messageBar_warning.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/messageBar_warning.svg
new file mode 100644
index 0000000..011cfcf
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/messageBar_warning.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_closeButton.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_closeButton.svg
new file mode 100644
index 0000000..92fc5ec
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_closeButton.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_selected.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_selected.svg
new file mode 100644
index 0000000..32c4816
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_selected.svg
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_viewArrow.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_viewArrow.svg
new file mode 100644
index 0000000..a4932d4
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_viewArrow.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_viewButton.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_viewButton.svg
new file mode 100644
index 0000000..24c518d
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/pages_viewButton.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-documentProperties.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-documentProperties.svg
new file mode 100644
index 0000000..dd3917b
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-documentProperties.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-firstPage.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-firstPage.svg
new file mode 100644
index 0000000..f5c917f
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-firstPage.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-handTool.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-handTool.svg
new file mode 100644
index 0000000..b7073b5
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-handTool.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-lastPage.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-lastPage.svg
new file mode 100644
index 0000000..c04f650
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-lastPage.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-rotateCcw.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-rotateCcw.svg
new file mode 100644
index 0000000..da73a1b
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-rotateCcw.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-rotateCw.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-rotateCw.svg
new file mode 100644
index 0000000..c41ce73
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-rotateCw.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollHorizontal.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollHorizontal.svg
new file mode 100644
index 0000000..fb440b9
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollHorizontal.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollPage.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollPage.svg
new file mode 100644
index 0000000..64a9f50
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollPage.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollVertical.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollVertical.svg
new file mode 100644
index 0000000..dc7e805
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollVertical.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollWrapped.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollWrapped.svg
new file mode 100644
index 0000000..75fe26b
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-scrollWrapped.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-selectTool.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-selectTool.svg
new file mode 100644
index 0000000..94d5141
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-selectTool.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-spreadEven.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-spreadEven.svg
new file mode 100644
index 0000000..ce201e3
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-spreadEven.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-spreadNone.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-spreadNone.svg
new file mode 100644
index 0000000..e8d487f
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-spreadNone.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-spreadOdd.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-spreadOdd.svg
new file mode 100644
index 0000000..9211a42
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/secondaryToolbarButton-spreadOdd.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-bookmark.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-bookmark.svg
new file mode 100644
index 0000000..c4c37c9
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-bookmark.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-currentOutlineItem.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-currentOutlineItem.svg
new file mode 100644
index 0000000..01e6762
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-currentOutlineItem.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-download.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-download.svg
new file mode 100644
index 0000000..e2e850a
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-download.svg
@@ -0,0 +1,4 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorFreeText.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorFreeText.svg
new file mode 100644
index 0000000..13a67bd
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorFreeText.svg
@@ -0,0 +1,5 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorHighlight.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorHighlight.svg
new file mode 100644
index 0000000..b3cd7fd
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorHighlight.svg
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorInk.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorInk.svg
new file mode 100644
index 0000000..b579eec
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorInk.svg
@@ -0,0 +1,4 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorSignature.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorSignature.svg
new file mode 100644
index 0000000..0b4e904
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorSignature.svg
@@ -0,0 +1,6 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorStamp.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorStamp.svg
new file mode 100644
index 0000000..a1fef49
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-editorStamp.svg
@@ -0,0 +1,8 @@
+
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-menuArrow.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-menuArrow.svg
new file mode 100644
index 0000000..82ffeaa
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-menuArrow.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-openFile.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-openFile.svg
new file mode 100644
index 0000000..e773781
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-openFile.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-pageDown.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-pageDown.svg
new file mode 100644
index 0000000..1fc12e7
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-pageDown.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-pageUp.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-pageUp.svg
new file mode 100644
index 0000000..0936b9a
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-pageUp.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-presentationMode.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-presentationMode.svg
new file mode 100644
index 0000000..901d567
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-presentationMode.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-print.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-print.svg
new file mode 100644
index 0000000..97a3904
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-print.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-search.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-search.svg
new file mode 100644
index 0000000..0cc7ae2
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-search.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-secondaryToolbarToggle.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-secondaryToolbarToggle.svg
new file mode 100644
index 0000000..cace863
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-secondaryToolbarToggle.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewAttachments.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewAttachments.svg
new file mode 100644
index 0000000..ab73f6e
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewAttachments.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewLayers.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewLayers.svg
new file mode 100644
index 0000000..1d72668
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewLayers.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewOutline.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewOutline.svg
new file mode 100644
index 0000000..7ed1bd9
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewOutline.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewThumbnail.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewThumbnail.svg
new file mode 100644
index 0000000..040d123
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewThumbnail.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewsManagerToggle.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewsManagerToggle.svg
new file mode 100644
index 0000000..1d8d0e4
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-viewsManagerToggle.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-zoomIn.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-zoomIn.svg
new file mode 100644
index 0000000..30ec51a
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-zoomIn.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-zoomOut.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-zoomOut.svg
new file mode 100644
index 0000000..f273b59
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/toolbarButton-zoomOut.svg
@@ -0,0 +1,3 @@
+
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/treeitem-collapsed.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/treeitem-collapsed.svg
new file mode 100644
index 0000000..831cddf
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/treeitem-collapsed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/images/treeitem-expanded.svg b/frontend/node_modules/pdfjs-dist/legacy/web/images/treeitem-expanded.svg
new file mode 100644
index 0000000..2d45f0c
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/images/treeitem-expanded.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.css b/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.css
new file mode 100644
index 0000000..7e10381
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.css
@@ -0,0 +1,7236 @@
+/* Copyright 2014 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+.messageBar{
+ --closing-button-icon:url(images/messageBar_closingButton.svg);
+ --message-bar-close-button-color:var(--text-primary-color);
+ --message-bar-close-button-color-hover:var(--text-primary-color);
+ --message-bar-close-button-border-radius:4px;
+ --message-bar-close-button-border:none;
+ --csstools-light-dark-toggle--0:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);
+ --message-bar-close-button-hover-bg-color:var(--csstools-light-dark-toggle--0, rgb(21 20 26 / 0.14));
+ --csstools-light-dark-toggle--1:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);
+ --message-bar-close-button-active-bg-color:var(--csstools-light-dark-toggle--1, rgb(21 20 26 / 0.21));
+ --csstools-light-dark-toggle--2:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);
+ --message-bar-close-button-focus-bg-color:var(--csstools-light-dark-toggle--2, rgb(21 20 26 / 0.07));
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+.messageBar{
+ --message-bar-close-button-hover-bg-color:light-dark(
+ rgb(21 20 26 / 0.14),
+ rgb(251 251 254 / 0.14)
+ );
+ --message-bar-close-button-active-bg-color:light-dark(
+ rgb(21 20 26 / 0.21),
+ rgb(251 251 254 / 0.21)
+ );
+ --message-bar-close-button-focus-bg-color:light-dark(
+ rgb(21 20 26 / 0.07),
+ rgb(251 251 254 / 0.07)
+ );
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.messageBar *{
+ --csstools-light-dark-toggle--0:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);
+ --message-bar-close-button-hover-bg-color:var(--csstools-light-dark-toggle--0, rgb(21 20 26 / 0.14));
+ --csstools-light-dark-toggle--1:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);
+ --message-bar-close-button-active-bg-color:var(--csstools-light-dark-toggle--1, rgb(21 20 26 / 0.21));
+ --csstools-light-dark-toggle--2:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);
+ --message-bar-close-button-focus-bg-color:var(--csstools-light-dark-toggle--2, rgb(21 20 26 / 0.07));
+ }
+}
+
+@media screen and (forced-colors: active){
+
+.messageBar{
+ --message-bar-close-button-color:ButtonText;
+ --message-bar-close-button-border:1px solid ButtonText;
+ --message-bar-close-button-hover-bg-color:ButtonText;
+ --message-bar-close-button-active-bg-color:ButtonText;
+ --message-bar-close-button-focus-bg-color:ButtonText;
+ --message-bar-close-button-color-hover:HighlightText;
+}
+ }
+
+.messageBar{
+
+ display:flex;
+ position:relative;
+ padding:8px 8px 8px 16px;
+ flex-direction:column;
+ justify-content:center;
+ align-items:center;
+ gap:8px;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+
+ border-radius:4px;
+
+ border:1px solid var(--message-bar-border-color);
+ background:var(--message-bar-bg-color);
+ color:var(--message-bar-fg-color);
+}
+
+.messageBar > div{
+ display:flex;
+ align-items:flex-start;
+ gap:8px;
+ align-self:stretch;
+ }
+
+:is(.messageBar > div)::before{
+ content:"";
+ display:inline-block;
+ width:16px;
+ height:16px;
+ -webkit-mask-image:var(--message-bar-icon);
+ mask-image:var(--message-bar-icon);
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ background-color:var(--message-bar-icon-color);
+ flex-shrink:0;
+ }
+
+.messageBar button{
+ cursor:pointer;
+ }
+
+:is(.messageBar button):focus-visible{
+ outline:var(--focus-ring-outline);
+ outline-offset:2px;
+ }
+
+.messageBar .closeButton{
+ width:32px;
+ height:32px;
+ background:none;
+ border-radius:var(--message-bar-close-button-border-radius);
+ border:var(--message-bar-close-button-border);
+
+ display:flex;
+ align-items:center;
+ justify-content:center;
+ }
+
+:is(.messageBar .closeButton)::before{
+ content:"";
+ display:inline-block;
+ width:16px;
+ height:16px;
+ -webkit-mask-image:var(--closing-button-icon);
+ mask-image:var(--closing-button-icon);
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ background-color:var(--message-bar-close-button-color);
+ }
+
+:is(.messageBar .closeButton):is(:hover,:active,:focus)::before{
+ background-color:var(--message-bar-close-button-color-hover);
+ }
+
+:is(.messageBar .closeButton):hover{
+ background-color:var(--message-bar-close-button-hover-bg-color);
+ }
+
+:is(.messageBar .closeButton):active{
+ background-color:var(--message-bar-close-button-active-bg-color);
+ }
+
+:is(.messageBar .closeButton):focus{
+ background-color:var(--message-bar-close-button-focus-bg-color);
+ }
+
+:is(.messageBar .closeButton) > span{
+ display:inline-block;
+ width:0;
+ height:0;
+ overflow:hidden;
+ }
+
+#editorUndoBar{
+ --csstools-light-dark-toggle--3:var(--csstools-color-scheme--light) #fbfbfe;
+ --text-primary-color:var(--csstools-light-dark-toggle--3, #15141a);
+
+ --message-bar-icon:url(images/messageBar_info.svg);
+ --csstools-light-dark-toggle--4:var(--csstools-color-scheme--light) #73a7f3;
+ --message-bar-icon-color:var(--csstools-light-dark-toggle--4, #0060df);
+ --csstools-light-dark-toggle--5:var(--csstools-color-scheme--light) #003070;
+ --message-bar-bg-color:var(--csstools-light-dark-toggle--5, #deeafc);
+ --message-bar-fg-color:var(--text-primary-color);
+ --csstools-light-dark-toggle--6:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);
+ --message-bar-border-color:var(--csstools-light-dark-toggle--6, rgb(0 0 0 / 0.08));
+
+ --csstools-light-dark-toggle--7:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);
+
+ --undo-button-bg-color:var(--csstools-light-dark-toggle--7, rgb(21 20 26 / 0.07));
+ --csstools-light-dark-toggle--8:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.14);
+ --undo-button-bg-color-hover:var(--csstools-light-dark-toggle--8, rgb(21 20 26 / 0.14));
+ --csstools-light-dark-toggle--9:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.21);
+ --undo-button-bg-color-active:var(--csstools-light-dark-toggle--9, rgb(21 20 26 / 0.21));
+
+ --csstools-light-dark-toggle--10:var(--csstools-color-scheme--light) #0df;
+
+ --undo-button-border:1px solid var(--csstools-light-dark-toggle--10, #0060df);
+
+ --undo-button-fg-color:var(--message-bar-fg-color);
+ --undo-button-fg-color-hover:var(--undo-button-fg-color);
+ --undo-button-fg-color-active:var(--undo-button-fg-color);
+}
+
+@supports (color: light-dark(red, red)){
+#editorUndoBar{
+ --text-primary-color:light-dark(#15141a, #fbfbfe);
+ --message-bar-icon-color:light-dark(#0060df, #73a7f3);
+ --message-bar-bg-color:light-dark(#deeafc, #003070);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+#editorUndoBar{
+ --message-bar-border-color:light-dark(
+ rgb(0 0 0 / 0.08),
+ rgb(255 255 255 / 0.08)
+ );
+
+ --undo-button-bg-color:light-dark(
+ rgb(21 20 26 / 0.07),
+ rgb(255 255 255 / 0.08)
+ );
+ --undo-button-bg-color-hover:light-dark(
+ rgb(21 20 26 / 0.14),
+ rgb(255 255 255 / 0.14)
+ );
+ --undo-button-bg-color-active:light-dark(
+ rgb(21 20 26 / 0.21),
+ rgb(255 255 255 / 0.21)
+ );
+}
+}
+
+@supports (color: light-dark(red, red)){
+#editorUndoBar{
+
+ --undo-button-border:1px solid light-dark(#0060df, #0df);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+#editorUndoBar *{
+ --csstools-light-dark-toggle--3:var(--csstools-color-scheme--light) #fbfbfe;
+ --text-primary-color:var(--csstools-light-dark-toggle--3, #15141a);
+ --csstools-light-dark-toggle--4:var(--csstools-color-scheme--light) #73a7f3;
+ --message-bar-icon-color:var(--csstools-light-dark-toggle--4, #0060df);
+ --csstools-light-dark-toggle--5:var(--csstools-color-scheme--light) #003070;
+ --message-bar-bg-color:var(--csstools-light-dark-toggle--5, #deeafc);
+ --csstools-light-dark-toggle--6:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);
+ --message-bar-border-color:var(--csstools-light-dark-toggle--6, rgb(0 0 0 / 0.08));
+
+ --csstools-light-dark-toggle--7:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);
+
+ --undo-button-bg-color:var(--csstools-light-dark-toggle--7, rgb(21 20 26 / 0.07));
+ --csstools-light-dark-toggle--8:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.14);
+ --undo-button-bg-color-hover:var(--csstools-light-dark-toggle--8, rgb(21 20 26 / 0.14));
+ --csstools-light-dark-toggle--9:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.21);
+ --undo-button-bg-color-active:var(--csstools-light-dark-toggle--9, rgb(21 20 26 / 0.21));
+
+ --csstools-light-dark-toggle--10:var(--csstools-color-scheme--light) #0df;
+
+ --undo-button-border:1px solid var(--csstools-light-dark-toggle--10, #0060df);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+#editorUndoBar{
+ --text-primary-color:CanvasText;
+
+ --message-bar-icon-color:CanvasText;
+ --message-bar-bg-color:Canvas;
+ --message-bar-border-color:CanvasText;
+
+ --undo-button-bg-color:ButtonText;
+ --undo-button-bg-color-hover:SelectedItem;
+ --undo-button-bg-color-active:SelectedItem;
+
+ --undo-button-fg-color:ButtonFace;
+ --undo-button-fg-color-hover:SelectedItemText;
+ --undo-button-fg-color-active:SelectedItemText;
+
+ --undo-button-border:none;
+}
+ }
+
+#editorUndoBar{
+
+ position:fixed;
+ top:50px;
+ left:50%;
+ transform:translateX(-50%);
+ z-index:10;
+
+ padding-block:8px;
+ padding-inline:16px 8px;
+
+ font:menu;
+ font-size:15px;
+
+ cursor:default;
+}
+
+#editorUndoBar button{
+ cursor:pointer;
+ }
+
+#editorUndoBar #editorUndoBarUndoButton{
+ border-radius:4px;
+ font-weight:590;
+ line-height:19.5px;
+ color:var(--undo-button-fg-color);
+ border:var(--undo-button-border);
+ padding:4px 16px;
+ margin-inline-start:8px;
+ height:32px;
+
+ background-color:var(--undo-button-bg-color);
+ }
+
+:is(#editorUndoBar #editorUndoBarUndoButton):hover{
+ background-color:var(--undo-button-bg-color-hover);
+ color:var(--undo-button-fg-color-hover);
+ }
+
+:is(#editorUndoBar #editorUndoBarUndoButton):active{
+ background-color:var(--undo-button-bg-color-active);
+ color:var(--undo-button-fg-color-active);
+ }
+
+#editorUndoBar > div{
+ align-items:center;
+ }
+
+.dialog{
+ --csstools-light-dark-toggle--11:var(--csstools-color-scheme--light) #1c1b22;
+ --dialog-bg-color:var(--csstools-light-dark-toggle--11, white);
+ --csstools-light-dark-toggle--12:var(--csstools-color-scheme--light) #1c1b22;
+ --dialog-border-color:var(--csstools-light-dark-toggle--12, white);
+ --csstools-light-dark-toggle--13:var(--csstools-color-scheme--light) #15141a;
+ --dialog-shadow:0 2px 14px 0 var(--csstools-light-dark-toggle--13, rgb(58 57 68 / 0.2));
+ --csstools-light-dark-toggle--14:var(--csstools-color-scheme--light) #fbfbfe;
+ --text-primary-color:var(--csstools-light-dark-toggle--14, #15141a);
+ --csstools-light-dark-toggle--15:var(--csstools-color-scheme--light) #cfcfd8;
+ --text-secondary-color:var(--csstools-light-dark-toggle--15, #5b5b66);
+ --hover-filter:brightness(0.9);
+ --csstools-light-dark-toggle--16:var(--csstools-color-scheme--light) #0df;
+ --link-fg-color:var(--csstools-light-dark-toggle--16, #0060df);
+ --csstools-light-dark-toggle--17:var(--csstools-color-scheme--light) #80ebff;
+ --link-hover-fg-color:var(--csstools-light-dark-toggle--17, #0250bb);
+ --csstools-light-dark-toggle--18:var(--csstools-color-scheme--light) #52525e;
+ --separator-color:var(--csstools-light-dark-toggle--18, #f0f0f4);
+
+ --textarea-border-color:#8f8f9d;
+ --csstools-light-dark-toggle--19:var(--csstools-color-scheme--light) #42414d;
+ --textarea-bg-color:var(--csstools-light-dark-toggle--19, white);
+ --textarea-fg-color:var(--text-secondary-color);
+
+ --csstools-light-dark-toggle--20:var(--csstools-color-scheme--light) #2b2a33;
+
+ --radio-bg-color:var(--csstools-light-dark-toggle--20, #f0f0f4);
+ --csstools-light-dark-toggle--21:var(--csstools-color-scheme--light) #15141a;
+ --radio-checked-bg-color:var(--csstools-light-dark-toggle--21, #fbfbfe);
+ --radio-border-color:#8f8f9d;
+ --csstools-light-dark-toggle--22:var(--csstools-color-scheme--light) #0df;
+ --radio-checked-border-color:var(--csstools-light-dark-toggle--22, #0060df);
+
+ --csstools-light-dark-toggle--23:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);
+
+ --button-secondary-bg-color:var(--csstools-light-dark-toggle--23, rgb(21 20 26 / 0.07));
+ --button-secondary-fg-color:var(--text-primary-color);
+ --button-secondary-border-color:var(--button-secondary-bg-color);
+ --csstools-light-dark-toggle--24:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);
+ --button-secondary-active-bg-color:var(--csstools-light-dark-toggle--24, rgb(21 20 26 / 0.21));
+ --button-secondary-active-fg-color:var(--button-secondary-fg-color);
+ --button-secondary-active-border-color:var(--button-secondary-bg-color);
+ --csstools-light-dark-toggle--25:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);
+ --button-secondary-hover-bg-color:var(--csstools-light-dark-toggle--25, rgb(21 20 26 / 0.14));
+ --button-secondary-hover-fg-color:var(--button-secondary-fg-color);
+ --button-secondary-hover-border-color:var(--button-secondary-hover-bg-color);
+ --button-secondary-disabled-bg-color:var(--button-secondary-bg-color);
+ --button-secondary-disabled-border-color:var(
+ --button-secondary-border-color
+ );
+ --button-secondary-disabled-fg-color:var(--button-secondary-fg-color);
+
+ --csstools-light-dark-toggle--26:var(--csstools-color-scheme--light) #0df;
+
+ --button-primary-bg-color:var(--csstools-light-dark-toggle--26, #0060df);
+ --csstools-light-dark-toggle--27:var(--csstools-color-scheme--light) #15141a;
+ --button-primary-fg-color:var(--csstools-light-dark-toggle--27, #fbfbfe);
+ --button-primary-border-color:var(--button-primary-bg-color);
+ --csstools-light-dark-toggle--28:var(--csstools-color-scheme--light) #aaf2ff;
+ --button-primary-active-bg-color:var(--csstools-light-dark-toggle--28, #054096);
+ --button-primary-active-fg-color:var(--button-primary-fg-color);
+ --button-primary-active-border-color:var(--button-primary-active-bg-color);
+ --csstools-light-dark-toggle--29:var(--csstools-color-scheme--light) #80ebff;
+ --button-primary-hover-bg-color:var(--csstools-light-dark-toggle--29, #0250bb);
+ --button-primary-hover-fg-color:var(--button-primary-fg-color);
+ --button-primary-hover-border-color:var(--button-primary-hover-bg-color);
+ --button-primary-disabled-bg-color:var(--button-primary-bg-color);
+ --button-primary-disabled-border-color:var(--button-primary-border-color);
+ --button-primary-disabled-fg-color:var(--button-primary-fg-color);
+ --button-disabled-opacity:0.4;
+
+ --csstools-light-dark-toggle--30:var(--csstools-color-scheme--light) #42414d;
+
+ --input-text-bg-color:var(--csstools-light-dark-toggle--30, white);
+ --input-text-fg-color:var(--text-primary-color);
+}
+
+@supports (color: light-dark(red, red)){
+.dialog{
+ --dialog-bg-color:light-dark(white, #1c1b22);
+ --dialog-border-color:light-dark(white, #1c1b22);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+.dialog{
+ --dialog-shadow:0 2px 14px 0 light-dark(rgb(58 57 68 / 0.2), #15141a);
+}
+}
+
+@supports (color: light-dark(red, red)){
+.dialog{
+ --text-primary-color:light-dark(#15141a, #fbfbfe);
+ --text-secondary-color:light-dark(#5b5b66, #cfcfd8);
+ --link-fg-color:light-dark(#0060df, #0df);
+ --link-hover-fg-color:light-dark(#0250bb, #80ebff);
+ --separator-color:light-dark(#f0f0f4, #52525e);
+ --textarea-bg-color:light-dark(white, #42414d);
+
+ --radio-bg-color:light-dark(#f0f0f4, #2b2a33);
+ --radio-checked-bg-color:light-dark(#fbfbfe, #15141a);
+ --radio-checked-border-color:light-dark(#0060df, #0df);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+.dialog{
+
+ --button-secondary-bg-color:light-dark(
+ rgb(21 20 26 / 0.07),
+ rgb(251 251 254 / 0.07)
+ );
+ --button-secondary-active-bg-color:light-dark(
+ rgb(21 20 26 / 0.21),
+ rgb(251 251 254 / 0.21)
+ );
+ --button-secondary-hover-bg-color:light-dark(
+ rgb(21 20 26 / 0.14),
+ rgb(251 251 254 / 0.14)
+ );
+}
+}
+
+@supports (color: light-dark(red, red)){
+.dialog{
+
+ --button-primary-bg-color:light-dark(#0060df, #0df);
+ --button-primary-fg-color:light-dark(#fbfbfe, #15141a);
+ --button-primary-active-bg-color:light-dark(#054096, #aaf2ff);
+ --button-primary-hover-bg-color:light-dark(#0250bb, #80ebff);
+
+ --input-text-bg-color:light-dark(white, #42414d);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.dialog *{
+ --csstools-light-dark-toggle--11:var(--csstools-color-scheme--light) #1c1b22;
+ --dialog-bg-color:var(--csstools-light-dark-toggle--11, white);
+ --csstools-light-dark-toggle--12:var(--csstools-color-scheme--light) #1c1b22;
+ --dialog-border-color:var(--csstools-light-dark-toggle--12, white);
+ --csstools-light-dark-toggle--13:var(--csstools-color-scheme--light) #15141a;
+ --dialog-shadow:0 2px 14px 0 var(--csstools-light-dark-toggle--13, rgb(58 57 68 / 0.2));
+ --csstools-light-dark-toggle--14:var(--csstools-color-scheme--light) #fbfbfe;
+ --text-primary-color:var(--csstools-light-dark-toggle--14, #15141a);
+ --csstools-light-dark-toggle--15:var(--csstools-color-scheme--light) #cfcfd8;
+ --text-secondary-color:var(--csstools-light-dark-toggle--15, #5b5b66);
+ --csstools-light-dark-toggle--16:var(--csstools-color-scheme--light) #0df;
+ --link-fg-color:var(--csstools-light-dark-toggle--16, #0060df);
+ --csstools-light-dark-toggle--17:var(--csstools-color-scheme--light) #80ebff;
+ --link-hover-fg-color:var(--csstools-light-dark-toggle--17, #0250bb);
+ --csstools-light-dark-toggle--18:var(--csstools-color-scheme--light) #52525e;
+ --separator-color:var(--csstools-light-dark-toggle--18, #f0f0f4);
+ --csstools-light-dark-toggle--19:var(--csstools-color-scheme--light) #42414d;
+ --textarea-bg-color:var(--csstools-light-dark-toggle--19, white);
+
+ --csstools-light-dark-toggle--20:var(--csstools-color-scheme--light) #2b2a33;
+
+ --radio-bg-color:var(--csstools-light-dark-toggle--20, #f0f0f4);
+ --csstools-light-dark-toggle--21:var(--csstools-color-scheme--light) #15141a;
+ --radio-checked-bg-color:var(--csstools-light-dark-toggle--21, #fbfbfe);
+ --csstools-light-dark-toggle--22:var(--csstools-color-scheme--light) #0df;
+ --radio-checked-border-color:var(--csstools-light-dark-toggle--22, #0060df);
+
+ --csstools-light-dark-toggle--23:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);
+
+ --button-secondary-bg-color:var(--csstools-light-dark-toggle--23, rgb(21 20 26 / 0.07));
+ --csstools-light-dark-toggle--24:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);
+ --button-secondary-active-bg-color:var(--csstools-light-dark-toggle--24, rgb(21 20 26 / 0.21));
+ --csstools-light-dark-toggle--25:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);
+ --button-secondary-hover-bg-color:var(--csstools-light-dark-toggle--25, rgb(21 20 26 / 0.14));
+
+ --csstools-light-dark-toggle--26:var(--csstools-color-scheme--light) #0df;
+
+ --button-primary-bg-color:var(--csstools-light-dark-toggle--26, #0060df);
+ --csstools-light-dark-toggle--27:var(--csstools-color-scheme--light) #15141a;
+ --button-primary-fg-color:var(--csstools-light-dark-toggle--27, #fbfbfe);
+ --csstools-light-dark-toggle--28:var(--csstools-color-scheme--light) #aaf2ff;
+ --button-primary-active-bg-color:var(--csstools-light-dark-toggle--28, #054096);
+ --csstools-light-dark-toggle--29:var(--csstools-color-scheme--light) #80ebff;
+ --button-primary-hover-bg-color:var(--csstools-light-dark-toggle--29, #0250bb);
+
+ --csstools-light-dark-toggle--30:var(--csstools-color-scheme--light) #42414d;
+
+ --input-text-bg-color:var(--csstools-light-dark-toggle--30, white);
+ }
+}
+
+@media (prefers-color-scheme: dark){
+
+.dialog{
+ --hover-filter:brightness(1.4);
+ --button-disabled-opacity:0.6;
+}
+ }
+
+@media screen and (forced-colors: active){
+
+.dialog{
+ --dialog-bg-color:Canvas;
+ --dialog-border-color:CanvasText;
+ --dialog-shadow:none;
+ --text-primary-color:CanvasText;
+ --text-secondary-color:CanvasText;
+ --hover-filter:none;
+ --link-fg-color:LinkText;
+ --link-hover-fg-color:LinkText;
+ --separator-color:CanvasText;
+
+ --textarea-border-color:ButtonBorder;
+ --textarea-bg-color:Field;
+ --textarea-fg-color:ButtonText;
+
+ --radio-bg-color:ButtonFace;
+ --radio-checked-bg-color:ButtonFace;
+ --radio-border-color:ButtonText;
+ --radio-checked-border-color:ButtonText;
+
+ --button-secondary-bg-color:ButtonFace;
+ --button-secondary-fg-color:ButtonText;
+ --button-secondary-border-color:ButtonText;
+ --button-secondary-active-bg-color:HighlightText;
+ --button-secondary-active-fg-color:SelectedItem;
+ --button-secondary-active-border-color:ButtonText;
+ --button-secondary-hover-bg-color:HighlightText;
+ --button-secondary-hover-fg-color:SelectedItem;
+ --button-secondary-hover-border-color:SelectedItem;
+ --button-secondary-disabled-fg-color:GrayText;
+ --button-secondary-disabled-border-color:GrayText;
+
+ --button-primary-bg-color:ButtonText;
+ --button-primary-fg-color:ButtonFace;
+ --button-primary-border-color:ButtonText;
+ --button-primary-active-bg-color:SelectedItem;
+ --button-primary-active-fg-color:HighlightText;
+ --button-primary-active-border-color:ButtonText;
+ --button-primary-hover-bg-color:SelectedItem;
+ --button-primary-hover-fg-color:HighlightText;
+ --button-primary-hover-border-color:SelectedItem;
+ --button-primary-disabled-bg-color:GrayText;
+ --button-primary-disabled-fg-color:ButtonFace;
+ --button-primary-disabled-border-color:GrayText;
+ --button-disabled-opacity:1;
+
+ --input-text-bg-color:Field;
+ --input-text-fg-color:FieldText;
+}
+ }
+
+.dialog{
+
+ font:message-box;
+ font-size:13px;
+ font-weight:400;
+ line-height:150%;
+ border-radius:4px;
+ padding:12px 16px;
+ border:1px solid var(--dialog-border-color);
+ background:var(--dialog-bg-color);
+ color:var(--text-primary-color);
+ box-shadow:var(--dialog-shadow);
+}
+
+:is(.dialog .mainContainer) *:focus-visible{
+ outline:var(--focus-ring-outline);
+ outline-offset:2px;
+ }
+
+:is(.dialog .mainContainer) .title{
+ display:flex;
+ width:auto;
+ flex-direction:column;
+ justify-content:flex-end;
+ align-items:flex-start;
+ gap:12px;
+ }
+
+:is(:is(.dialog .mainContainer) .title) > span{
+ font-size:13px;
+ font-style:normal;
+ font-weight:590;
+ line-height:150%;
+ }
+
+:is(.dialog .mainContainer) .dialogSeparator{
+ width:100%;
+ height:0;
+ margin-block:4px;
+ border-top:1px solid var(--separator-color);
+ border-bottom:none;
+ }
+
+:is(.dialog .mainContainer) .dialogButtonsGroup{
+ display:flex;
+ gap:12px;
+ align-self:flex-end;
+ }
+
+:is(.dialog .mainContainer) .radio{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:4px;
+ }
+
+:is(:is(.dialog .mainContainer) .radio) > .radioButton{
+ display:flex;
+ gap:8px;
+ align-self:stretch;
+ align-items:center;
+ }
+
+:is(:is(:is(.dialog .mainContainer) .radio) > .radioButton) input{
+ -webkit-appearance:none;
+ -moz-appearance:none;
+ appearance:none;
+ box-sizing:border-box;
+ width:16px;
+ height:16px;
+ border-radius:50%;
+ background-color:var(--radio-bg-color);
+ border:1px solid var(--radio-border-color);
+ }
+
+:is(:is(:is(:is(.dialog .mainContainer) .radio) > .radioButton) input):hover{
+ filter:var(--hover-filter);
+ }
+
+:is(:is(:is(:is(.dialog .mainContainer) .radio) > .radioButton) input):checked{
+ background-color:var(--radio-checked-bg-color);
+ border:4px solid var(--radio-checked-border-color);
+ }
+
+:is(:is(.dialog .mainContainer) .radio) > .radioLabel{
+ display:flex;
+ padding-inline-start:24px;
+ align-items:flex-start;
+ gap:10px;
+ align-self:stretch;
+ }
+
+:is(:is(:is(.dialog .mainContainer) .radio) > .radioLabel) > span{
+ flex:1 0 0;
+ font-size:11px;
+ color:var(--text-secondary-color);
+ }
+
+:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton)){
+ border-radius:4px;
+ border:1px solid;
+ font:menu;
+ font-weight:590;
+ font-size:13px;
+ padding:4px 16px;
+ width:auto;
+ height:32px;
+ }
+
+:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):hover{
+ cursor:pointer;
+ filter:var(--hover-filter);
+ }
+
+:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))) > span{
+ color:inherit;
+ font:inherit;
+ }
+
+.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))){
+ color:var(--button-secondary-fg-color);
+ background-color:var(--button-secondary-bg-color);
+ border-color:var(--button-secondary-border-color);
+ }
+
+.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):hover{
+ color:var(--button-secondary-hover-fg-color);
+ background-color:var(--button-secondary-hover-bg-color);
+ border-color:var(--button-secondary-hover-border-color);
+ }
+
+.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):active{
+ color:var(--button-secondary-active-fg-color);
+ background-color:var(--button-secondary-active-bg-color);
+ border-color:var(--button-secondary-active-border-color);
+ }
+
+.secondaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):disabled{
+ background-color:var(--button-secondary-disabled-bg-color);
+ border-color:var(--button-secondary-disabled-border-color);
+ color:var(--button-secondary-disabled-fg-color);
+ opacity:var(--button-disabled-opacity);
+ }
+
+.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))){
+ color:var(--button-primary-fg-color);
+ background-color:var(--button-primary-bg-color);
+ border-color:var(--button-primary-border-color);
+ opacity:1;
+ }
+
+.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):hover{
+ color:var(--button-primary-hover-fg-color);
+ background-color:var(--button-primary-hover-bg-color);
+ border-color:var(--button-primary-hover-border-color);
+ }
+
+.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):active{
+ color:var(--button-primary-active-fg-color);
+ background-color:var(--button-primary-active-bg-color);
+ border-color:var(--button-primary-active-border-color);
+ }
+
+.primaryButton:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):disabled{
+ background-color:var(--button-primary-disabled-bg-color);
+ border-color:var(--button-primary-disabled-border-color);
+ color:var(--button-primary-disabled-fg-color);
+ opacity:var(--button-disabled-opacity);
+ }
+
+:is(:is(.dialog .mainContainer) button:not(:is(.toggle-button,.closeButton,.clearInputButton))):disabled{
+ pointer-events:none;
+ }
+
+:is(.dialog .mainContainer) a{
+ color:var(--link-fg-color);
+ }
+
+:is(:is(.dialog .mainContainer) a):hover{
+ color:var(--link-hover-fg-color);
+ }
+
+:is(.dialog .mainContainer) textarea{
+ font:inherit;
+ padding:8px;
+ resize:none;
+ margin:0;
+ box-sizing:border-box;
+ border-radius:4px;
+ border:1px solid var(--textarea-border-color);
+ background:var(--textarea-bg-color);
+ color:var(--textarea-fg-color);
+ }
+
+:is(:is(.dialog .mainContainer) textarea):focus{
+ outline-offset:0;
+ border-color:transparent;
+ }
+
+:is(:is(.dialog .mainContainer) textarea):disabled{
+ pointer-events:none;
+ opacity:0.4;
+ }
+
+:is(.dialog .mainContainer) input[type="text"]{
+ background-color:var(--input-text-bg-color);
+ color:var(--input-text-fg-color);
+ }
+
+:is(.dialog .mainContainer) .messageBar{
+ --csstools-light-dark-toggle--31:var(--csstools-color-scheme--light) #5a3100;
+ --message-bar-bg-color:var(--csstools-light-dark-toggle--31, #ffebcd);
+ --csstools-light-dark-toggle--32:var(--csstools-color-scheme--light) #fbfbfe;
+ --message-bar-fg-color:var(--csstools-light-dark-toggle--32, #15141a);
+ --csstools-light-dark-toggle--33:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);
+ --message-bar-border-color:var(--csstools-light-dark-toggle--33, rgb(0 0 0 / 0.08));
+ --message-bar-icon:url(images/messageBar_warning.svg);
+ --csstools-light-dark-toggle--34:var(--csstools-color-scheme--light) #e49c49;
+ --message-bar-icon-color:var(--csstools-light-dark-toggle--34, #cd411e);
+ }
+
+@supports (color: light-dark(red, red)){
+:is(.dialog .mainContainer) .messageBar{
+ --message-bar-bg-color:light-dark(#ffebcd, #5a3100);
+ --message-bar-fg-color:light-dark(#15141a, #fbfbfe);
+ }
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+:is(.dialog .mainContainer) .messageBar{
+ --message-bar-border-color:light-dark(
+ rgb(0 0 0 / 0.08),
+ rgb(255 255 255 / 0.08)
+ );
+ }
+}
+
+@supports (color: light-dark(red, red)){
+:is(.dialog .mainContainer) .messageBar{
+ --message-bar-icon-color:light-dark(#cd411e, #e49c49);
+ }
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:is(:is(.dialog .mainContainer) .messageBar) *{
+ --csstools-light-dark-toggle--31:var(--csstools-color-scheme--light) #5a3100;
+ --message-bar-bg-color:var(--csstools-light-dark-toggle--31, #ffebcd);
+ --csstools-light-dark-toggle--32:var(--csstools-color-scheme--light) #fbfbfe;
+ --message-bar-fg-color:var(--csstools-light-dark-toggle--32, #15141a);
+ --csstools-light-dark-toggle--33:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.08);
+ --message-bar-border-color:var(--csstools-light-dark-toggle--33, rgb(0 0 0 / 0.08));
+ --csstools-light-dark-toggle--34:var(--csstools-color-scheme--light) #e49c49;
+ --message-bar-icon-color:var(--csstools-light-dark-toggle--34, #cd411e);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+:is(.dialog .mainContainer) .messageBar{
+ --message-bar-bg-color:HighlightText;
+ --message-bar-fg-color:CanvasText;
+ --message-bar-border-color:CanvasText;
+ --message-bar-icon-color:CanvasText;
+ }
+ }
+
+:is(.dialog .mainContainer) .messageBar{
+
+ align-self:stretch;
+ }
+
+:is(:is(:is(.dialog .mainContainer) .messageBar) > div)::before,:is(:is(:is(.dialog .mainContainer) .messageBar) > div) > div{
+ margin-block:4px;
+ }
+
+:is(:is(:is(.dialog .mainContainer) .messageBar) > div) > div{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:8px;
+ flex:1 0 0;
+ }
+
+:is(:is(:is(:is(.dialog .mainContainer) .messageBar) > div) > div) .title{
+ font-size:13px;
+ font-weight:590;
+ }
+
+:is(:is(:is(:is(.dialog .mainContainer) .messageBar) > div) > div) .description{
+ font-size:13px;
+ }
+
+:is(.dialog .mainContainer) .toggler{
+ display:flex;
+ align-items:center;
+ gap:8px;
+ align-self:stretch;
+ }
+
+:is(:is(.dialog .mainContainer) .toggler) > .togglerLabel{
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+.textLayer{
+ --csstools-color-scheme--light:initial;
+ color-scheme:only light;
+
+ position:absolute;
+ text-align:initial;
+ inset:0;
+ overflow:clip;
+ opacity:1;
+ line-height:1;
+ -webkit-text-size-adjust:none;
+ -moz-text-size-adjust:none;
+ text-size-adjust:none;
+ forced-color-adjust:none;
+ transform-origin:0 0;
+ caret-color:CanvasText;
+ z-index:0;
+}
+
+.textLayer.highlighting{
+ touch-action:none;
+ }
+
+.textLayer :is(span,br){
+ color:transparent;
+ position:absolute;
+ white-space:pre;
+ cursor:text;
+ transform-origin:0% 0%;
+ }
+
+.textLayer{
+ --min-font-size:1;
+ --text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));
+ --min-font-size-inv:calc(1 / var(--min-font-size));
+}
+
+.textLayer > :not(.markedContent),.textLayer .markedContent span:not(.markedContent){
+ z-index:1;
+
+ --font-height:0;
+ font-size:calc(var(--text-scale-factor) * var(--font-height));
+
+ --scale-x:1;
+ --rotate:0deg;
+ transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv));
+ }
+
+.textLayer .markedContent{
+ display:contents;
+ }
+
+.textLayer span[role="img"]{
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ cursor:default;
+ }
+
+.textLayer .highlight{
+ --highlight-bg-color:rgb(180 0 170 / 0.25);
+ --highlight-selected-bg-color:rgb(0 100 0 / 0.25);
+ --highlight-backdrop-filter:none;
+ --highlight-selected-backdrop-filter:none;
+ }
+
+@media screen and (forced-colors: active){
+
+.textLayer .highlight{
+ --highlight-bg-color:transparent;
+ --highlight-selected-bg-color:transparent;
+ --highlight-backdrop-filter:var(--hcm-highlight-filter);
+ --highlight-selected-backdrop-filter:var(
+ --hcm-highlight-selected-filter
+ );
+ }
+ }
+
+.textLayer .highlight{
+
+ margin:-1px;
+ padding:1px;
+ background-color:var(--highlight-bg-color);
+ -webkit-backdrop-filter:var(--highlight-backdrop-filter);
+ backdrop-filter:var(--highlight-backdrop-filter);
+ border-radius:4px;
+ }
+
+.appended:is(.textLayer .highlight){
+ position:initial;
+ }
+
+.begin:is(.textLayer .highlight){
+ border-radius:4px 0 0 4px;
+ }
+
+.end:is(.textLayer .highlight){
+ border-radius:0 4px 4px 0;
+ }
+
+.middle:is(.textLayer .highlight){
+ border-radius:0;
+ }
+
+.selected:is(.textLayer .highlight){
+ background-color:var(--highlight-selected-bg-color);
+ -webkit-backdrop-filter:var(--highlight-selected-backdrop-filter);
+ backdrop-filter:var(--highlight-selected-backdrop-filter);
+ scroll-margin-top:50px;
+ }
+
+.textLayer ::-moz-selection{
+ background:rgba(0 0 255 / 0.25);
+ background:color-mix(in srgb, AccentColor, transparent 75%);
+ }
+
+.textLayer ::selection{
+ background:rgba(0 0 255 / 0.25);
+ background:color-mix(in srgb, AccentColor, transparent 75%);
+ }
+
+.textLayer br::-moz-selection{
+ background:transparent;
+ }
+
+.textLayer br::selection{
+ background:transparent;
+ }
+
+.textLayer .endOfContent{
+ display:block;
+ position:absolute;
+ inset:100% 0 0;
+ z-index:0;
+ cursor:default;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+.textLayer.selecting .endOfContent{
+ top:0;
+ }
+
+.textLayerImages{
+ position:absolute;
+ inset:0;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+}
+
+.textLayerImages canvas{
+ position:absolute;
+ transform-origin:0% 0%;
+ }
+
+.annotationLayer{
+ --csstools-color-scheme--light:initial;
+ color-scheme:only light;
+
+ --annotation-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,");
+ --input-focus-border-color:Highlight;
+ --input-focus-outline:1px solid Canvas;
+ --input-unfocused-border-color:transparent;
+ --input-disabled-border-color:transparent;
+ --input-hover-border-color:black;
+ --link-outline:none;
+}
+
+@media screen and (forced-colors: active){
+
+.annotationLayer{
+ --input-focus-border-color:CanvasText;
+ --input-unfocused-border-color:ActiveText;
+ --input-disabled-border-color:GrayText;
+ --input-hover-border-color:Highlight;
+ --link-outline:1.5px solid LinkText;
+}
+
+ .annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{
+ outline:1.5px solid selectedItem;
+ }
+
+ .annotationLayer .linkAnnotation{
+ outline:var(--link-outline);
+ }
+
+ :is(.annotationLayer .linkAnnotation):hover{
+ -webkit-backdrop-filter:var(--hcm-highlight-filter);
+ backdrop-filter:var(--hcm-highlight-filter);
+ }
+
+ :is(.annotationLayer .linkAnnotation) > a:hover{
+ opacity:0 !important;
+ background:none !important;
+ box-shadow:none;
+ }
+
+ .annotationLayer .popupAnnotation .popup{
+ outline:calc(1.5px * var(--total-scale-factor)) solid CanvasText !important;
+ background-color:ButtonFace !important;
+ color:ButtonText !important;
+ }
+
+ .annotationLayer .highlightArea:hover::after{
+ position:absolute;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ -webkit-backdrop-filter:var(--hcm-highlight-filter);
+ backdrop-filter:var(--hcm-highlight-filter);
+ content:"";
+ pointer-events:none;
+ }
+
+ .annotationLayer .popupAnnotation.focused .popup{
+ outline:calc(3px * var(--total-scale-factor)) solid Highlight !important;
+ }
+ }
+
+.annotationLayer{
+
+ position:absolute;
+ top:0;
+ left:0;
+ pointer-events:none;
+ transform-origin:0 0;
+}
+
+.annotationLayer[data-main-rotation="90"] .norotate{
+ transform:rotate(270deg) translateX(-100%);
+ }
+
+.annotationLayer[data-main-rotation="180"] .norotate{
+ transform:rotate(180deg) translate(-100%, -100%);
+ }
+
+.annotationLayer[data-main-rotation="270"] .norotate{
+ transform:rotate(90deg) translateY(-100%);
+ }
+
+.annotationLayer.disabled section,.annotationLayer.disabled .popup{
+ pointer-events:none;
+ }
+
+.annotationLayer .annotationContent{
+ position:absolute;
+ width:100%;
+ height:100%;
+ pointer-events:none;
+ }
+
+.freetext:is(.annotationLayer .annotationContent){
+ background:transparent;
+ border:none;
+ inset:0;
+ overflow:visible;
+ white-space:nowrap;
+ font:10px sans-serif;
+ line-height:1.35;
+ }
+
+.annotationLayer section{
+ position:absolute;
+ text-align:initial;
+ pointer-events:auto;
+ box-sizing:border-box;
+ transform-origin:0 0;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+:is(.annotationLayer section):has(div.annotationContent) canvas.annotationContent{
+ display:none;
+ }
+
+:is(.annotationLayer section) .overlaidText{
+ position:absolute;
+ top:0;
+ left:0;
+ width:0;
+ height:0;
+ display:inline-block;
+ overflow:hidden;
+ }
+
+.textLayer.selecting ~ .annotationLayer section{
+ pointer-events:none;
+ }
+
+.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton) > a{
+ position:absolute;
+ font-size:1em;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ }
+
+.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton):not(.hasBorder) > a:hover{
+ opacity:0.2;
+ background-color:rgb(255 255 0);
+ }
+
+.annotationLayer .linkAnnotation.hasBorder:hover{
+ background-color:rgb(255 255 0 / 0.2);
+ }
+
+.annotationLayer .hasBorder{
+ background-size:100% 100%;
+ }
+
+.annotationLayer .textAnnotation img{
+ position:absolute;
+ cursor:pointer;
+ width:100%;
+ height:100%;
+ top:0;
+ left:0;
+ }
+
+.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{
+ background-image:var(--annotation-unfocused-field-background);
+ border:2px solid var(--input-unfocused-border-color);
+ box-sizing:border-box;
+ font:calc(9px * var(--total-scale-factor)) sans-serif;
+ height:100%;
+ margin:0;
+ vertical-align:top;
+ width:100%;
+ }
+
+.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{
+ outline:1.5px solid red;
+ }
+
+.annotationLayer .choiceWidgetAnnotation select option{
+ padding:0;
+ }
+
+.annotationLayer .buttonWidgetAnnotation.radioButton input{
+ border-radius:50%;
+ }
+
+.annotationLayer .textWidgetAnnotation textarea{
+ resize:none;
+ }
+
+.annotationLayer .textWidgetAnnotation [disabled]:is(input,textarea),.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{
+ background:none;
+ border:2px solid var(--input-disabled-border-color);
+ cursor:not-allowed;
+ }
+
+.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{
+ border:2px solid var(--input-hover-border-color);
+ }
+
+.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{
+ border-radius:2px;
+ }
+
+.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{
+ background:none;
+ border:2px solid var(--input-focus-border-color);
+ border-radius:2px;
+ outline:var(--input-focus-outline);
+ }
+
+.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{
+ background-image:none;
+ background-color:transparent;
+ }
+
+.annotationLayer .buttonWidgetAnnotation.checkBox :focus{
+ border:2px solid var(--input-focus-border-color);
+ border-radius:2px;
+ outline:var(--input-focus-outline);
+ }
+
+.annotationLayer .buttonWidgetAnnotation.radioButton :focus{
+ border:2px solid var(--input-focus-border-color);
+ outline:var(--input-focus-outline);
+ }
+
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before{
+ background-color:CanvasText;
+ content:"";
+ display:block;
+ position:absolute;
+ }
+
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after{
+ height:80%;
+ left:45%;
+ width:1px;
+ }
+
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before{
+ transform:rotate(45deg);
+ }
+
+.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after{
+ transform:rotate(-45deg);
+ }
+
+.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before{
+ border-radius:50%;
+ height:50%;
+ left:25%;
+ top:25%;
+ width:50%;
+ }
+
+.annotationLayer .textWidgetAnnotation input.comb{
+ font-family:monospace;
+ padding-left:2px;
+ padding-right:0;
+ }
+
+.annotationLayer .textWidgetAnnotation input.comb:focus{
+ width:103%;
+ }
+
+.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{
+ -webkit-appearance:none;
+ -moz-appearance:none;
+ appearance:none;
+ }
+
+.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{
+ height:100%;
+ width:100%;
+ }
+
+.annotationLayer .popupAnnotation{
+ position:absolute;
+ font-size:calc(9px * var(--total-scale-factor));
+ pointer-events:none;
+ width:-moz-max-content;
+ width:max-content;
+ max-width:45%;
+ height:auto;
+ }
+
+.annotationLayer .popup{
+ background-color:rgb(255 255 153);
+ color:black;
+ box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) rgb(136 136 136);
+ border-radius:calc(2px * var(--total-scale-factor));
+ outline:1.5px solid rgb(255 255 74);
+ padding:calc(6px * var(--total-scale-factor));
+ cursor:pointer;
+ font:message-box;
+ white-space:normal;
+ word-wrap:break-word;
+ pointer-events:auto;
+ -webkit-user-select:text;
+ -moz-user-select:text;
+ user-select:text;
+ }
+
+.annotationLayer .popupAnnotation.focused .popup{
+ outline-width:3px;
+ }
+
+.annotationLayer .popup *{
+ font-size:calc(9px * var(--total-scale-factor));
+ }
+
+.annotationLayer .popup > .header{
+ display:inline-block;
+ }
+
+.annotationLayer .popup > .header > .title{
+ display:inline;
+ font-weight:bold;
+ }
+
+.annotationLayer .popup > .header .popupDate{
+ display:inline-block;
+ margin-left:calc(5px * var(--total-scale-factor));
+ width:-moz-fit-content;
+ width:fit-content;
+ }
+
+.annotationLayer .popupContent{
+ border-top:1px solid rgb(51 51 51);
+ margin-top:calc(2px * var(--total-scale-factor));
+ padding-top:calc(2px * var(--total-scale-factor));
+ }
+
+.annotationLayer .richText > *{
+ white-space:pre-wrap;
+ font-size:calc(9px * var(--total-scale-factor));
+ }
+
+.annotationLayer .popupTriggerArea{
+ cursor:pointer;
+ }
+
+:is(.annotationLayer .popupTriggerArea):hover{
+ -webkit-backdrop-filter:var(--hcm-highlight-filter);
+ backdrop-filter:var(--hcm-highlight-filter);
+ }
+
+.annotationLayer section svg{
+ position:absolute;
+ width:100%;
+ height:100%;
+ top:0;
+ left:0;
+ }
+
+.annotationLayer .annotationTextContent{
+ position:absolute;
+ width:100%;
+ height:100%;
+ opacity:0;
+ color:transparent;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ pointer-events:none;
+ }
+
+:is(.annotationLayer .annotationTextContent) span{
+ width:100%;
+ display:inline-block;
+ }
+
+.annotationLayer svg.quadrilateralsContainer{
+ contain:strict;
+ width:0;
+ height:0;
+ position:absolute;
+ top:0;
+ left:0;
+ z-index:-1;
+ }
+
+:root{
+ --xfa-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,");
+ --xfa-focus-outline:auto;
+}
+
+@media screen and (forced-colors: active){
+ :root{
+ --xfa-focus-outline:2px solid CanvasText;
+ }
+ .xfaLayer *:required{
+ outline:1.5px solid selectedItem;
+ }
+}
+
+.xfaLayer{
+ --csstools-color-scheme--light:initial;
+ color-scheme:only light;
+
+ background-color:transparent;
+}
+
+.xfaLayer .highlight{
+ margin:-1px;
+ padding:1px;
+ background-color:rgb(239 203 237);
+ border-radius:4px;
+}
+
+.xfaLayer .highlight.appended{
+ position:initial;
+}
+
+.xfaLayer .highlight.begin{
+ border-radius:4px 0 0 4px;
+}
+
+.xfaLayer .highlight.end{
+ border-radius:0 4px 4px 0;
+}
+
+.xfaLayer .highlight.middle{
+ border-radius:0;
+}
+
+.xfaLayer .highlight.selected{
+ background-color:rgb(203 223 203);
+}
+
+.xfaPage{
+ overflow:hidden;
+ position:relative;
+}
+
+.xfaContentarea{
+ position:absolute;
+}
+
+.xfaPrintOnly{
+ display:none;
+}
+
+.xfaLayer{
+ position:absolute;
+ text-align:initial;
+ top:0;
+ left:0;
+ transform-origin:0 0;
+ line-height:1.2;
+}
+
+.xfaLayer *{
+ color:inherit;
+ font:inherit;
+ font-style:inherit;
+ font-weight:inherit;
+ font-kerning:inherit;
+ letter-spacing:-0.01px;
+ text-align:inherit;
+ text-decoration:inherit;
+ box-sizing:border-box;
+ background-color:transparent;
+ padding:0;
+ margin:0;
+ pointer-events:auto;
+ line-height:inherit;
+}
+
+.xfaLayer *:required{
+ outline:1.5px solid red;
+}
+
+.xfaLayer div,
+.xfaLayer svg,
+.xfaLayer svg *{
+ pointer-events:none;
+}
+
+.xfaLayer a{
+ color:blue;
+}
+
+.xfaRich li{
+ margin-left:3em;
+}
+
+.xfaFont{
+ color:black;
+ font-weight:normal;
+ font-kerning:none;
+ font-size:10px;
+ font-style:normal;
+ letter-spacing:0;
+ text-decoration:none;
+ vertical-align:0;
+}
+
+.xfaCaption{
+ overflow:hidden;
+ flex:0 0 auto;
+}
+
+.xfaCaptionForCheckButton{
+ overflow:hidden;
+ flex:1 1 auto;
+}
+
+.xfaLabel{
+ height:100%;
+ width:100%;
+}
+
+.xfaLeft{
+ display:flex;
+ flex-direction:row;
+ align-items:center;
+}
+
+.xfaRight{
+ display:flex;
+ flex-direction:row-reverse;
+ align-items:center;
+}
+
+:is(.xfaLeft, .xfaRight) > :is(.xfaCaption, .xfaCaptionForCheckButton){
+ max-height:100%;
+}
+
+.xfaTop{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+}
+
+.xfaBottom{
+ display:flex;
+ flex-direction:column-reverse;
+ align-items:flex-start;
+}
+
+:is(.xfaTop, .xfaBottom) > :is(.xfaCaption, .xfaCaptionForCheckButton){
+ width:100%;
+}
+
+.xfaBorder{
+ background-color:transparent;
+ position:absolute;
+ pointer-events:none;
+}
+
+.xfaWrapped{
+ width:100%;
+ height:100%;
+}
+
+:is(.xfaTextfield, .xfaSelect):focus{
+ background-image:none;
+ background-color:transparent;
+ outline:var(--xfa-focus-outline);
+ outline-offset:-1px;
+}
+
+:is(.xfaCheckbox, .xfaRadio):focus{
+ outline:var(--xfa-focus-outline);
+}
+
+.xfaTextfield,
+.xfaSelect{
+ height:100%;
+ width:100%;
+ flex:1 1 auto;
+ border:none;
+ resize:none;
+ background-image:var(--xfa-unfocused-field-background);
+}
+
+.xfaSelect{
+ padding-inline:2px;
+}
+
+:is(.xfaTop, .xfaBottom) > :is(.xfaTextfield, .xfaSelect){
+ flex:0 1 auto;
+}
+
+.xfaButton{
+ cursor:pointer;
+ width:100%;
+ height:100%;
+ border:none;
+ text-align:center;
+}
+
+.xfaLink{
+ width:100%;
+ height:100%;
+ position:absolute;
+ top:0;
+ left:0;
+}
+
+.xfaCheckbox,
+.xfaRadio{
+ width:100%;
+ height:100%;
+ flex:0 0 auto;
+ border:none;
+}
+
+.xfaRich{
+ white-space:pre-wrap;
+ width:100%;
+ height:100%;
+}
+
+.xfaImage{
+ -o-object-position:left top;
+ object-position:left top;
+ -o-object-fit:contain;
+ object-fit:contain;
+ width:100%;
+ height:100%;
+}
+
+.xfaLrTb,
+.xfaRlTb,
+.xfaTb{
+ display:flex;
+ flex-direction:column;
+ align-items:stretch;
+}
+
+.xfaLr{
+ display:flex;
+ flex-direction:row;
+ align-items:stretch;
+}
+
+.xfaRl{
+ display:flex;
+ flex-direction:row-reverse;
+ align-items:stretch;
+}
+
+.xfaTb > div{
+ justify-content:left;
+}
+
+.xfaPosition{
+ position:relative;
+}
+
+.xfaArea{
+ position:relative;
+}
+
+.xfaValignMiddle{
+ display:flex;
+ align-items:center;
+}
+
+.xfaTable{
+ display:flex;
+ flex-direction:column;
+ align-items:stretch;
+}
+
+.xfaTable .xfaRow{
+ display:flex;
+ flex-direction:row;
+ align-items:stretch;
+}
+
+.xfaTable .xfaRlRow{
+ display:flex;
+ flex-direction:row-reverse;
+ align-items:stretch;
+ flex:1;
+}
+
+.xfaTable .xfaRlRow > div{
+ flex:1;
+}
+
+:is(.xfaNonInteractive, .xfaDisabled, .xfaReadOnly) :is(input, textarea){
+ background:initial;
+}
+
+@media print{
+ .xfaTextfield,
+ .xfaSelect{
+ background:transparent;
+ }
+
+ .xfaSelect{
+ -webkit-appearance:none;
+ -moz-appearance:none;
+ appearance:none;
+ text-indent:1px;
+ text-overflow:"";
+ }
+}
+
+.canvasWrapper svg{
+ transform:none;
+ }
+
+.moving:is(.canvasWrapper svg){
+ z-index:100000;
+ }
+
+[data-main-rotation="90"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation="90"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){
+ transform:matrix(0, 1, -1, 0, 1, 0);
+ }
+
+[data-main-rotation="180"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation="180"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){
+ transform:matrix(-1, 0, 0, -1, 1, 1);
+ }
+
+[data-main-rotation="270"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) mask,[data-main-rotation="270"]:is(.highlight:is(.canvasWrapper svg),.highlightOutline:is(.canvasWrapper svg)) use:not(.clip,.mask){
+ transform:matrix(0, -1, 1, 0, 0, 1);
+ }
+
+.draw:is(.canvasWrapper svg){
+ position:absolute;
+ mix-blend-mode:normal;
+ }
+
+.draw[data-draw-rotation="90"]:is(.canvasWrapper svg){
+ transform:rotate(90deg);
+ }
+
+.draw[data-draw-rotation="180"]:is(.canvasWrapper svg){
+ transform:rotate(180deg);
+ }
+
+.draw[data-draw-rotation="270"]:is(.canvasWrapper svg){
+ transform:rotate(270deg);
+ }
+
+.highlight:is(.canvasWrapper svg){
+ --blend-mode:multiply;
+ }
+
+@media screen and (forced-colors: active){
+
+.highlight:is(.canvasWrapper svg){
+ --blend-mode:difference;
+ }
+ }
+
+.highlight:is(.canvasWrapper svg){
+
+ position:absolute;
+ mix-blend-mode:var(--blend-mode);
+ }
+
+.highlight:is(.canvasWrapper svg):not(.free){
+ fill-rule:evenodd;
+ }
+
+.highlightOutline:is(.canvasWrapper svg){
+ position:absolute;
+ mix-blend-mode:normal;
+ fill-rule:evenodd;
+ fill:none;
+ }
+
+.highlightOutline.hovered:is(.canvasWrapper svg):not(.free):not(.selected){
+ stroke:var(--hover-outline-color);
+ stroke-width:var(--outline-width);
+ }
+
+.highlightOutline.selected:is(.canvasWrapper svg):not(.free) .mainOutline{
+ stroke:var(--outline-around-color);
+ stroke-width:calc(
+ var(--outline-width) + 2 * var(--outline-around-width)
+ );
+ }
+
+.highlightOutline.selected:is(.canvasWrapper svg):not(.free) .secondaryOutline{
+ stroke:var(--outline-color);
+ stroke-width:var(--outline-width);
+ }
+
+.highlightOutline.free.hovered:is(.canvasWrapper svg):not(.selected){
+ stroke:var(--hover-outline-color);
+ stroke-width:calc(2 * var(--outline-width));
+ }
+
+.highlightOutline.free.selected:is(.canvasWrapper svg) .mainOutline{
+ stroke:var(--outline-around-color);
+ stroke-width:calc(
+ 2 * (var(--outline-width) + var(--outline-around-width))
+ );
+ }
+
+.highlightOutline.free.selected:is(.canvasWrapper svg) .secondaryOutline{
+ stroke:var(--outline-color);
+ stroke-width:calc(2 * var(--outline-width));
+ }
+
+.toggle-button{
+ --button-background-color:color-mix(in srgb, currentColor 7%, transparent);
+ --button-background-color-hover:color-mix(
+ in srgb,
+ currentColor 14%,
+ transparent
+ );
+ --button-background-color-active:color-mix(
+ in srgb,
+ currentColor 21%,
+ transparent
+ );
+ --csstools-light-dark-toggle--35:var(--csstools-color-scheme--light) #0df;
+ --color-accent-primary:var(--csstools-light-dark-toggle--35, #0060df);
+ --csstools-light-dark-toggle--36:var(--csstools-color-scheme--light) #80ebff;
+ --color-accent-primary-hover:var(--csstools-light-dark-toggle--36, #0250bb);
+ --csstools-light-dark-toggle--37:var(--csstools-color-scheme--light) #aaf2ff;
+ --color-accent-primary-active:var(--csstools-light-dark-toggle--37, #054096);
+ --border-radius-circle:9999px;
+ --border-width:1px;
+ --size-item-small:16px;
+ --size-item-large:32px;
+ --csstools-light-dark-toggle--38:var(--csstools-color-scheme--light) #1c1b22;
+ --color-canvas:var(--csstools-light-dark-toggle--38, white);
+ --background-color-canvas:var(--color-canvas);
+ --csstools-light-dark-toggle--39:var(--csstools-color-scheme--light) #f9f9fa;
+ --border-color-interactive:var(--csstools-light-dark-toggle--39, #8f8f9d);
+ --border-color-interactive-hover:var(--border-color-interactive);
+ --border-color-interactive-active:var(--border-color-interactive);
+ --focus-outline-offset:2px;
+}
+
+@supports (color: light-dark(red, red)){
+.toggle-button{
+ --color-accent-primary:light-dark(#0060df, #0df);
+ --color-accent-primary-hover:light-dark(#0250bb, #80ebff);
+ --color-accent-primary-active:light-dark(#054096, #aaf2ff);
+ --color-canvas:light-dark(white, #1c1b22);
+ --border-color-interactive:light-dark(#8f8f9d, #f9f9fa);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.toggle-button *{
+ --csstools-light-dark-toggle--35:var(--csstools-color-scheme--light) #0df;
+ --color-accent-primary:var(--csstools-light-dark-toggle--35, #0060df);
+ --csstools-light-dark-toggle--36:var(--csstools-color-scheme--light) #80ebff;
+ --color-accent-primary-hover:var(--csstools-light-dark-toggle--36, #0250bb);
+ --csstools-light-dark-toggle--37:var(--csstools-color-scheme--light) #aaf2ff;
+ --color-accent-primary-active:var(--csstools-light-dark-toggle--37, #054096);
+ --csstools-light-dark-toggle--38:var(--csstools-color-scheme--light) #1c1b22;
+ --color-canvas:var(--csstools-light-dark-toggle--38, white);
+ --csstools-light-dark-toggle--39:var(--csstools-color-scheme--light) #f9f9fa;
+ --border-color-interactive:var(--csstools-light-dark-toggle--39, #8f8f9d);
+ }
+}
+
+@media (forced-colors: active){
+
+.toggle-button{
+ --color-accent-primary:ButtonText;
+ --color-accent-primary-hover:SelectedItem;
+ --color-accent-primary-active:SelectedItem;
+ --button-background-color:ButtonFace;
+ --border-color-interactive:ButtonText;
+ --border-color-interactive-hover:SelectedItem;
+ --border-color-interactive-active:ButtonText;
+ --color-canvas:ButtonText;
+ --background-color-canvas:Canvas;
+}
+ }
+
+.toggle-button{
+ --toggle-background-color:var(--button-background-color);
+ --toggle-background-color-hover:var(--button-background-color-hover);
+ --toggle-background-color-active:var(--button-background-color-active);
+ --toggle-background-color-pressed:var(--color-accent-primary);
+ --toggle-background-color-pressed-hover:var(--color-accent-primary-hover);
+ --toggle-background-color-pressed-active:var(--color-accent-primary-active);
+ --toggle-border-color:var(--border-color-interactive);
+ --toggle-border-color-hover:var(--toggle-border-color);
+ --toggle-border-color-active:var(--toggle-border-color);
+ --toggle-border-radius:var(--border-radius-circle);
+ --toggle-border-width:var(--border-width);
+ --toggle-height:var(--size-item-small);
+ --toggle-width:var(--size-item-large);
+ --toggle-dot-background-color:var(--toggle-border-color);
+ --toggle-dot-background-color-hover:var(--toggle-dot-background-color);
+ --toggle-dot-background-color-active:var(--toggle-dot-background-color);
+ --toggle-dot-background-color-on-pressed:var(--background-color-canvas);
+ --toggle-dot-margin:1px;
+ --toggle-dot-height:calc(
+ var(--toggle-height) - 2 * var(--toggle-dot-margin) - 2 *
+ var(--toggle-border-width)
+ );
+ --toggle-dot-width:var(--toggle-dot-height);
+ --toggle-dot-transform-x:calc(
+ var(--toggle-width) - 4 * var(--toggle-dot-margin) - var(--toggle-dot-width)
+ );
+ --input-width:var(--toggle-width);
+
+ -webkit-appearance:none;
+
+ -moz-appearance:none;
+
+ appearance:none;
+ padding:0;
+ border:var(--toggle-border-width) solid var(--toggle-border-color);
+ height:var(--toggle-height);
+ width:var(--toggle-width);
+ border-radius:var(--toggle-border-radius);
+ background-color:var(--toggle-background-color);
+ box-sizing:border-box;
+}
+
+.toggle-button:focus-visible{
+ outline:var(--focus-outline);
+ outline-offset:var(--focus-outline-offset);
+ }
+
+.toggle-button:enabled:hover{
+ background-color:var(--toggle-background-color-hover);
+ border-color:var(--toggle-border-color);
+ }
+
+.toggle-button:enabled:hover:active{
+ background-color:var(--toggle-background-color-active);
+ border-color:var(--toggle-border-color);
+ }
+
+.toggle-button::before{
+ display:block;
+ content:"";
+ background-color:var(--toggle-dot-background-color);
+ height:var(--toggle-dot-height);
+ width:var(--toggle-dot-width);
+ margin:var(--toggle-dot-margin);
+ border-radius:var(--toggle-border-radius);
+ translate:0;
+ }
+
+.toggle-button[aria-pressed="true"]{
+ background-color:var(--toggle-background-color-pressed);
+ border-color:transparent;
+}
+
+.toggle-button[aria-pressed="true"]:enabled:hover{
+ background-color:var(--toggle-background-color-pressed-hover);
+ border-color:transparent;
+ }
+
+.toggle-button[aria-pressed="true"]:enabled:hover:active{
+ background-color:var(--toggle-background-color-pressed-active);
+ border-color:transparent;
+ }
+
+.toggle-button[aria-pressed="true"]::before{
+ translate:var(--toggle-dot-transform-x);
+ background-color:var(--toggle-dot-background-color-on-pressed);
+ }
+
+.toggle-button[aria-pressed="true"]:enabled:hover::before,.toggle-button[aria-pressed="true"]:enabled:hover:active::before{
+ background-color:var(--toggle-dot-background-color-on-pressed);
+ }
+
+.toggle-button[aria-pressed="true"]:-moz-locale-dir(rtl)::before,[dir="rtl"] .toggle-button[aria-pressed="true"]::before{
+ translate:calc(-1 * var(--toggle-dot-transform-x));
+ }
+
+@media (prefers-reduced-motion: no-preference){
+ .toggle-button::before{
+ transition:translate 100ms;
+ }
+}
+
+@media (prefers-contrast){
+ .toggle-button:enabled:hover{
+ border-color:var(--toggle-border-color-hover);
+ }
+
+ .toggle-button:enabled:hover:active{
+ border-color:var(--toggle-border-color-active);
+ }
+
+ .toggle-button[aria-pressed="true"]:enabled{
+ border-color:var(--toggle-border-color);
+ position:relative;
+ }
+
+ .toggle-button[aria-pressed="true"]:enabled:hover{
+ border-color:var(--toggle-border-color-hover);
+ }
+
+ .toggle-button[aria-pressed="true"]:enabled:hover:active{
+ background-color:var(--toggle-dot-background-color-active);
+ border-color:var(--toggle-dot-background-color-hover);
+ }
+
+ .toggle-button:enabled:hover::before,
+ .toggle-button:enabled:hover:active::before{
+ background-color:var(--toggle-dot-background-color-hover);
+ }
+}
+
+@media (forced-colors){
+ .toggle-button{
+ --toggle-dot-background-color:var(--color-accent-primary);
+ --toggle-dot-background-color-hover:var(--color-accent-primary-hover);
+ --toggle-dot-background-color-active:var(--color-accent-primary-active);
+ --toggle-dot-background-color-on-pressed:var(--button-background-color);
+ --toggle-border-color-hover:var(--border-color-interactive-hover);
+ --toggle-border-color-active:var(--border-color-interactive-active);
+ }
+
+ .toggle-button[aria-pressed="true"]:enabled::after{
+ border:1px solid var(--button-background-color);
+ content:"";
+ position:absolute;
+ height:var(--toggle-height);
+ width:var(--toggle-width);
+ display:block;
+ border-radius:var(--toggle-border-radius);
+ inset:-2px;
+ }
+
+ .toggle-button[aria-pressed="true"]:enabled:hover:active::after{
+ border-color:var(--toggle-border-color-active);
+ }
+}
+
+:root{
+ --clear-signature-button-icon:url(images/editor-toolbar-delete.svg);
+ --csstools-light-dark-toggle--40:var(--csstools-color-scheme--light) #2b2a33;
+ --signature-bg:var(--csstools-light-dark-toggle--40, #f9f9fb);
+ --csstools-light-dark-toggle--41:var(--csstools-color-scheme--light) var(--signature-bg);
+ --signature-hover-bg:var(--csstools-light-dark-toggle--41, #f0f0f4);
+ --button-signature-bg:transparent;
+ --button-signature-color:var(--main-color);
+ --csstools-light-dark-toggle--42:var(--csstools-color-scheme--light) #5b5b66;
+ --button-signature-active-bg:var(--csstools-light-dark-toggle--42, #cfcfd8);
+ --button-signature-active-border:none;
+ --button-signature-active-color:var(--button-signature-color);
+ --button-signature-border:none;
+ --csstools-light-dark-toggle--43:var(--csstools-color-scheme--light) #52525e;
+ --button-signature-hover-bg:var(--csstools-light-dark-toggle--43, #e0e0e6);
+ --button-signature-hover-color:var(--button-signature-color);
+}
+
+@supports (color: light-dark(red, red)){
+:root{
+ --signature-bg:light-dark(#f9f9fb, #2b2a33);
+ --signature-hover-bg:light-dark(#f0f0f4, var(--signature-bg));
+ --button-signature-active-bg:light-dark(#cfcfd8, #5b5b66);
+ --button-signature-hover-bg:light-dark(#e0e0e6, #52525e);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:root *{
+ --csstools-light-dark-toggle--40:var(--csstools-color-scheme--light) #2b2a33;
+ --signature-bg:var(--csstools-light-dark-toggle--40, #f9f9fb);
+ --csstools-light-dark-toggle--41:var(--csstools-color-scheme--light) var(--signature-bg);
+ --signature-hover-bg:var(--csstools-light-dark-toggle--41, #f0f0f4);
+ --csstools-light-dark-toggle--42:var(--csstools-color-scheme--light) #5b5b66;
+ --button-signature-active-bg:var(--csstools-light-dark-toggle--42, #cfcfd8);
+ --csstools-light-dark-toggle--43:var(--csstools-color-scheme--light) #52525e;
+ --button-signature-hover-bg:var(--csstools-light-dark-toggle--43, #e0e0e6);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+:root{
+ --signature-bg:HighlightText;
+ --signature-hover-bg:var(--signature-bg);
+ --button-signature-bg:HighlightText;
+ --button-signature-color:ButtonText;
+ --button-signature-active-bg:ButtonText;
+ --button-signature-active-color:HighlightText;
+ --button-signature-border:1px solid ButtonText;
+ --button-signature-hover-bg:Highlight;
+ --button-signature-hover-color:HighlightText;
+}
+ }
+
+.signatureDialog{
+ --primary-color:var(--text-primary-color);
+ --border-color:#8f8f9d;
+ --open-link-fg:var(--link-fg-color);
+ --open-link-hover-fg:var(--link-hover-fg-color);
+}
+
+@media screen and (forced-colors: active){
+
+.signatureDialog{
+ --primary-color:ButtonText;
+ --border-color:ButtonText;
+ --open-link-fg:ButtonText;
+ --open-link-hover-fg:ButtonText;
+}
+ }
+
+.signatureDialog{
+
+ width:570px;
+ max-width:100%;
+ min-width:300px;
+ padding:16px 0;
+}
+
+.signatureDialog .mainContainer{
+ width:100%;
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:12px;
+ }
+
+:is(.signatureDialog .mainContainer) span:not([role="sectionhead"]){
+ font-size:13px;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ }
+
+:is(.signatureDialog .mainContainer) .title{
+ margin-inline-start:16px;
+ }
+
+.signatureDialog .inputWithClearButton{
+ --button-dimension:24px;
+ --clear-button-icon:url(images/messageBar_closingButton.svg);
+
+ width:100%;
+ position:relative;
+ display:flex;
+ align-items:center;
+ justify-content:center;
+ }
+
+:is(.signatureDialog .inputWithClearButton) > input{
+ width:100%;
+ height:32px;
+ padding-inline:8px calc(4px + var(--button-dimension));
+ box-sizing:border-box;
+ border-radius:4px;
+ border:1px solid var(--border-color);
+ }
+
+:is(.signatureDialog .inputWithClearButton) .clearInputButton{
+ position:absolute;
+ inset-block-start:4px;
+ inset-inline-end:4px;
+ display:inline-block;
+ width:var(--button-dimension);
+ height:var(--button-dimension);
+ background-color:var(--input-text-fg-color);
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ -webkit-mask-image:var(--clear-button-icon);
+ mask-image:var(--clear-button-icon);
+ padding:0;
+ border:0;
+ }
+
+#addSignatureDialog{
+ --secondary-color:var(--text-secondary-color);
+ --bg-hover:#e0e0e6;
+ --tab-top-line-active-color:#0060df;
+ --tab-top-line-active-hover-color:var(--tab-text-hover-color);
+ --tab-top-line-hover-color:#8f8f9d;
+ --tab-top-line-inactive-color:#cfcfd8;
+ --tab-bottom-line-active-color:var(--tab-top-line-inactive-color);
+ --tab-bottom-line-hover-color:var(--tab-top-line-inactive-color);
+ --tab-bottom-line-inactive-color:var(--tab-top-line-inactive-color);
+ --tab-bg:var(--dialog-bg-color);
+ --tab-bg-active-color:var(--tab-bg);
+ --tab-bg-active-hover-color:var(--bg-hover);
+ --tab-bg-hover:var(--bg-hover);
+ --tab-panel-border:none;
+ --tab-panel-border-radius:4px;
+ --tab-text-color:var(--primary-color);
+ --tab-text-active-color:var(--tab-top-line-active-color);
+ --tab-text-active-hover-color:var(--tab-text-hover-color);
+ --tab-text-hover-color:var(--tab-text-color);
+ --signature-placeholder-color:var(--secondary-color);
+ --signature-draw-placeholder-color:var(--primary-color);
+ --signature-color:var(--primary-color);
+ --clear-signature-button-border-width:0;
+ --clear-signature-button-border-style:solid;
+ --clear-signature-button-border-color:transparent;
+ --clear-signature-button-border-disabled-color:transparent;
+ --clear-signature-button-color:var(--primary-color);
+ --clear-signature-button-hover-color:var(--clear-signature-button-color);
+ --clear-signature-button-active-color:var(--clear-signature-button-color);
+ --clear-signature-button-disabled-color:var(--clear-signature-button-color);
+ --clear-signature-button-focus-color:var(--clear-signature-button-color);
+ --clear-signature-button-bg:var(--dialog-bg-color);
+ --clear-signature-button-bg-hover:var(--bg-hover);
+ --clear-signature-button-bg-active:#cfcfd8;
+ --clear-signature-button-bg-focus:#f0f0f4;
+ --clear-signature-button-bg-disabled:color-mix(
+ in srgb,
+ #f0f0f4,
+ transparent 40%
+ );
+ --save-warning-color:var(--secondary-color);
+ --thickness-bg:var(--dialog-bg-color);
+ --thickness-label-color:var(--primary-color);
+ --thickness-slider-color:var(--primary-color);
+ --thickness-border:none;
+ --draw-cursor:url(images/cursor-editorInk.svg) 0 16, pointer;
+}
+
+@media (prefers-color-scheme: dark){
+
+#addSignatureDialog{
+ --dialog-bg-color:#42414d;
+ --bg-hover:#52525e;
+ --primary-color:#fbfbfe;
+ --secondary-color:#cfcfd8;
+ --tab-top-line-active-color:#0df;
+ --tab-top-line-inactive-color:#8f8f9d;
+ --clear-signature-button-bg-active:#5b5b66;
+ --clear-signature-button-bg-focus:#2b2a33;
+ --clear-signature-button-bg-disabled:color-mix(
+ in srgb,
+ #2b2a33,
+ transparent 40%
+ );
+}
+ }
+
+@media screen and (forced-colors: active){
+
+#addSignatureDialog{
+ --secondary-color:ButtonText;
+ --bg:HighlightText;
+ --bg-hover:var(--bg);
+ --tab-top-line-active-color:ButtonText;
+ --tab-top-line-active-hover-color:HighlightText;
+ --tab-top-line-hover-color:SelectedItem;
+ --tab-top-line-inactive-color:ButtonText;
+ --tab-bottom-line-active-color:var(--tab-top-line-active-color);
+ --tab-bottom-line-hover-color:var(--tab-top-line-hover-color);
+ --tab-bg:var(--bg);
+ --tab-bg-active-color:SelectedItem;
+ --tab-bg-active-hover-color:SelectedItem;
+ --tab-panel-border:1px solid ButtonText;
+ --tab-panel-border-radius:8px;
+ --tab-text-color:ButtonText;
+ --tab-text-active-color:HighlightText;
+ --tab-text-active-hover-color:HighlightText;
+ --tab-text-hover-color:SelectedItem;
+ --signature-color:ButtonText;
+ --clear-signature-button-border-width:1px;
+ --clear-signature-button-border-style:solid;
+ --clear-signature-button-border-color:ButtonText;
+ --clear-signature-button-border-disabled-color:GrayText;
+ --clear-signature-button-color:ButtonText;
+ --clear-signature-button-hover-color:HighlightText;
+ --clear-signature-button-active-color:SelectedItem;
+ --clear-signature-button-focus-color:CanvasText;
+ --clear-signature-button-disabled-color:GrayText;
+ --clear-signature-button-bg:var(--bg);
+ --clear-signature-button-bg-hover:SelectedItem;
+ --clear-signature-button-bg-active:var(--bg);
+ --clear-signature-button-bg-focus:var(--bg);
+ --clear-signature-button-bg-disabled:var(--bg);
+ --thickness-bg:Canvas;
+ --thickness-label-color:CanvasText;
+ --thickness-slider-color:ButtonText;
+ --thickness-border:1px solid var(--border-color);
+}
+ }
+
+#addSignatureDialog #addSignatureDialogLabel{
+ overflow:hidden;
+ position:absolute;
+ inset:0;
+ width:0;
+ height:0;
+ }
+
+#addSignatureDialog.waiting::after{
+ content:"";
+ cursor:wait;
+ position:absolute;
+ inset:0;
+ width:100%;
+ height:100%;
+ }
+
+:is(#addSignatureDialog .mainContainer) [role="tablist"]{
+ width:100%;
+ display:flex;
+ align-items:flex-start;
+ gap:0;
+ }
+
+:is(:is(#addSignatureDialog .mainContainer) [role="tablist"]) > [role="tab"]{
+ flex:1 0 0;
+ align-self:stretch;
+ background-color:var(--tab-bg);
+ padding-inline:0;
+ cursor:default;
+
+ border-inline:0;
+ border-block-width:1px;
+ border-block-style:solid;
+ border-block-start-color:var(--tab-top-line-inactive-color);
+ border-block-end-color:var(--tab-bottom-line-inactive-color);
+ border-radius:0;
+
+ font:menu;
+ font-size:13px;
+ font-style:normal;
+ line-height:normal;
+ font-weight:400;
+ color:var(--tab-text-color);
+ }
+
+:is(:is(:is(#addSignatureDialog .mainContainer) [role="tablist"]) > [role="tab"]):hover{
+ border-block-start-width:2px;
+ border-block-start-color:var(--tab-top-line-hover-color);
+ border-block-end-color:var(--tab-bottom-line-hover-color);
+ background-color:var(--tab-bg-hover);
+ color:var(--tab-text-hover-color);
+ }
+
+:is(:is(:is(#addSignatureDialog .mainContainer) [role="tablist"]) > [role="tab"]):focus-visible{
+ outline:2px solid var(--tab-top-line-active-color);
+ outline-offset:-2px;
+ }
+
+[aria-selected="true"]:is(:is(:is(#addSignatureDialog .mainContainer) [role="tablist"]) > [role="tab"]){
+ border-block-start-width:2px;
+ border-block-start-color:var(--tab-top-line-active-color);
+ border-block-end-color:var(--tab-bottom-line-active-color);
+ background-color:var(--tab-bg-active-color);
+ font-weight:590;
+ color:var(--tab-text-active-color);
+ }
+
+[aria-selected="true"]:is(:is(:is(#addSignatureDialog .mainContainer) [role="tablist"]) > [role="tab"]):hover{
+ border-block-start-color:var(--tab-top-line-active-hover-color);
+ background-color:var(--tab-bg-active-hover-color);
+ color:var(--tab-text-active-hover-color);
+ }
+
+:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer{
+ width:100%;
+ height:auto;
+ display:flex;
+ flex-direction:column;
+ align-items:flex-end;
+ align-self:stretch;
+ gap:12px;
+ padding-inline:16px;
+ box-sizing:border-box;
+ }
+
+:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]{
+ position:relative;
+ width:100%;
+ height:220px;
+ background-color:var(--signature-bg);
+ border:var(--tab-panel-border);
+ border-radius:var(--tab-panel-border-radius);
+ }
+
+:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) > svg{
+ position:absolute;
+ inset:0;
+ width:100%;
+ height:100%;
+ background-color:transparent;
+ }
+
+#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]){
+ display:none;
+ }
+
+#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #addSignatureTypeInput{
+ position:absolute;
+ inset:0;
+ width:100%;
+ height:100%;
+ border:0;
+ padding:0;
+ text-align:center;
+ color:var(--signature-color);
+ background-color:transparent;
+ border-radius:var(--tab-panel-border-radius);
+
+ font-family:"Brush script", "Apple Chancery", "Segoe script", "Freestyle Script", "Palace Script MT", "Brush Script MT", TK, cursive, serif;
+ font-size:44px;
+ font-style:italic;
+ font-weight:400;
+ }
+
+:is(#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #addSignatureTypeInput)::-moz-placeholder{
+ color:var(--signature-placeholder-color);
+ text-align:center;
+
+ font:menu;
+ font-style:normal;
+ font-weight:274;
+ font-size:44px;
+ line-height:normal;
+ }
+
+:is(#addSignatureTypeContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #addSignatureTypeInput)::placeholder{
+ color:var(--signature-placeholder-color);
+ text-align:center;
+
+ font:menu;
+ font-style:normal;
+ font-weight:274;
+ font-size:44px;
+ line-height:normal;
+ }
+
+#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]){
+ display:none;
+ }
+
+#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) > span{
+ position:absolute;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ display:grid;
+ align-items:center;
+ justify-content:center;
+
+ background-color:transparent;
+ color:var(--signature-placeholder-color);
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) > svg{
+ stroke:var(--signature-color);
+ fill:none;
+ stroke-opacity:1;
+ stroke-linecap:round;
+ stroke-linejoin:round;
+ stroke-miterlimit:10;
+ }
+
+:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) > svg):hover{
+ cursor:var(--draw-cursor);
+ }
+
+#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness{
+ position:absolute;
+ width:100%;
+ inset-block-end:0;
+ display:grid;
+ align-items:center;
+ justify-content:center;
+ pointer-events:none;
+ }
+
+:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > span{
+ color:var(--signature-draw-placeholder-color);
+ }
+
+:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > div{
+ width:auto;
+ height:auto;
+ display:flex;
+ align-items:center;
+ justify-content:center;
+ gap:8px;
+ padding:6px 8px 7px;
+ margin:0;
+ background-color:var(--thickness-bg);
+ border-radius:4px 4px 0 0;
+ border-inline:var(--thickness-border);
+ border-top:var(--thickness-border);
+ pointer-events:auto;
+ position:relative;
+ top:1px;
+ }
+
+:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > div) > label{
+ color:var(--thickness-label-color);
+ }
+
+:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > div) > input{
+ width:100px;
+ height:14px;
+ background-color:transparent;
+ }
+
+:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > div) > input)::-webkit-slider-runnable-track,:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > div) > input)::-moz-range-track,:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > div) > input)::-moz-range-progress{
+ background-color:var(--thickness-slider-color);
+ }
+
+:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > div) > input)::-webkit-slider-thumb,:is(:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > div) > input)::-moz-range-thumb{
+ background-color:var(--thickness-bg);
+ }
+
+:is(:is(#addSignatureDrawContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #thickness) > div) > input{
+
+ border-radius:4.5px;
+ border:0;
+ color:var(--signature-color);
+ }
+
+#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]){
+ display:none;
+ }
+
+#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) > svg{
+ stroke:none;
+ stroke-width:0;
+ fill:var(--signature-color);
+ fill-opacity:1;
+ }
+
+#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #addSignatureImagePlaceholder{
+ position:absolute;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ background-color:transparent;
+ display:flex;
+ flex-direction:column;
+ align-items:center;
+ justify-content:center;
+ }
+
+:is(#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #addSignatureImagePlaceholder) span{
+ color:var(--signature-placeholder-color);
+ }
+
+:is(#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #addSignatureImagePlaceholder) a{
+ color:var(--open-link-fg);
+ text-decoration:underline;
+ cursor:pointer;
+ }
+
+:is(:is(#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #addSignatureImagePlaceholder) a):hover{
+ color:var(--open-link-hover-fg);
+ }
+
+#addSignatureImageContainer:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > [role="tabpanel"]) #addSignatureFilePicker{
+ visibility:hidden;
+ position:relative;
+ width:0;
+ height:0;
+ }
+
+[data-selected="type"]:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > #addSignatureTypeContainer,[data-selected="draw"]:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > #addSignatureDrawContainer,[data-selected="image"]:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) > #addSignatureImageContainer{
+ display:block;
+ }
+
+:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls{
+ display:flex;
+ flex-direction:column;
+ justify-content:center;
+ align-items:flex-start;
+ gap:12px;
+ align-self:stretch;
+ }
+
+:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer{
+ display:flex;
+ align-items:flex-end;
+ gap:16px;
+ align-self:stretch;
+ }
+
+:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:4px;
+ flex:1 0 0;
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer):has(input:disabled) > label{
+ opacity:0.4;
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #addSignatureDescriptionContainer) > label{
+ width:auto;
+ }
+
+:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton{
+ display:flex;
+ height:32px;
+ padding:4px 8px;
+ align-items:center;
+ background-color:var(--clear-signature-button-bg);
+ border-width:var(--clear-signature-button-border-width);
+ border-style:var(--clear-signature-button-border-style);
+ border-color:var(--clear-signature-button-border-color);
+ border-radius:4px;
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton) > span{
+ display:flex;
+ height:24px;
+ align-items:center;
+ gap:4px;
+ flex-shrink:0;
+
+ color:var(--clear-signature-button-color);
+ }
+
+:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton) > span)::after{
+ content:"";
+ display:inline-block;
+ width:16px;
+ height:16px;
+ -webkit-mask-image:var(--clear-signature-button-icon);
+ mask-image:var(--clear-signature-button-icon);
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ background-color:var(--clear-signature-button-color);
+ flex-shrink:0;
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):hover{
+ background-color:var(--clear-signature-button-bg-hover);
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):hover > span{
+ color:var(--clear-signature-button-hover-color);
+ }
+
+:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):hover > span)::after{
+ background-color:var(--clear-signature-button-hover-color);
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):active{
+ background-color:var(--clear-signature-button-bg-active);
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):active > span{
+ color:var(--clear-signature-button-active-color);
+ }
+
+:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):active > span)::after{
+ background-color:var(--clear-signature-button-active-color);
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):focus-visible{
+ background-color:var(--clear-signature-button-bg-focus);
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):focus-visible > span{
+ color:var(--clear-signature-button-focus-color);
+ }
+
+:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):focus-visible > span)::after{
+ background-color:var(--clear-signature-button-focus-color);
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):disabled{
+ background-color:var(--clear-signature-button-bg-disabled);
+ border-color:var(--clear-signature-button-border-disabled-color);
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):disabled > span{
+ color:var(--clear-signature-button-disabled-color);
+ }
+
+:is(:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #horizontalContainer) #clearSignatureButton):disabled > span)::after{
+ background-color:var(
+ --clear-signature-button-disabled-color
+ );
+ }
+
+:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer{
+ display:grid;
+ grid-template-columns:max-content auto;
+ gap:4px;
+ width:100%;
+ }
+
+:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer) > input{
+ margin:0;
+ }
+
+:is(:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer) > input):disabled + label{
+ opacity:0.4;
+ }
+
+:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer) > label{
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer):not(.fullStorage) #addSignatureSaveWarning{
+ display:none;
+ }
+
+.fullStorage:is(:is(:is(:is(#addSignatureDialog .mainContainer) #addSignatureActionContainer) #addSignatureControls) #addSignatureSaveContainer) #addSignatureSaveWarning{
+ display:block;
+ opacity:1;
+ color:var(--save-warning-color);
+ font-size:11px;
+ }
+
+#editSignatureDescriptionDialog .mainContainer{
+ padding-inline:16px;
+ box-sizing:border-box;
+ }
+
+:is(#editSignatureDescriptionDialog .mainContainer) .title{
+ margin-inline-start:0;
+ }
+
+:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView{
+ width:auto;
+ display:flex;
+ justify-content:flex-end;
+ align-items:flex-start;
+ gap:12px;
+ align-self:stretch;
+ }
+
+:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView) #editSignatureDescriptionContainer{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:4px;
+ flex:1 1 auto;
+ }
+
+:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView) > svg{
+ width:210px;
+ height:180px;
+ padding:8px;
+ background-color:var(--signature-bg);
+ }
+
+:is(:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView) > svg) > path{
+ stroke:var(--button-signature-color);
+ stroke-width:1px;
+ stroke-linecap:round;
+ stroke-linejoin:round;
+ stroke-miterlimit:10;
+ vector-effect:non-scaling-stroke;
+ fill:none;
+ }
+
+.contours:is(:is(:is(:is(#editSignatureDescriptionDialog .mainContainer) #editSignatureDescriptionAndView) > svg) > path){
+ fill:var(--button-signature-color);
+ stroke-width:0.5px;
+ }
+
+#editorSignatureParamsToolbar{
+ padding:8px;
+}
+
+#editorSignatureParamsToolbar #addSignatureDoorHanger{
+ gap:8px;
+ padding:2px;
+ }
+
+:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer{
+ height:32px;
+ display:flex;
+ justify-content:space-between;
+ align-items:center;
+ align-self:stretch;
+ gap:8px;
+ }
+
+:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button{
+ border:var(--button-signature-border);
+ border-radius:4px;
+ background-color:var(--button-signature-bg);
+ color:var(--button-signature-color);
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):hover{
+ background-color:var(--button-signature-hover-bg);
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):active{
+ border:var(--button-signature-active-border);
+ background-color:var(--button-signature-active-bg);
+ color:var(--button-signature-active-color);
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):active::before{
+ background-color:var(--button-signature-active-color);
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):focus-visible{
+ outline:var(--focus-ring-outline);
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) button):focus-visible::before{
+ background-color:var(--button-signature-color);
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .deleteButton)::before{
+ -webkit-mask-image:var(--clear-signature-button-icon);
+ mask-image:var(--clear-signature-button-icon);
+ }
+
+:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton{
+ width:calc(0.8 * var(--editor-toolbar-min-width));
+ height:100%;
+ min-height:var(--menuitem-height);
+ aspect-ratio:unset;
+ display:flex;
+ align-items:center;
+ justify-content:flex-start;
+ outline:none;
+ border-radius:4px;
+ box-sizing:border-box;
+ font:message-box;
+ position:relative;
+ flex:1 1 auto;
+ padding:0;
+ gap:8px;
+ text-align:start;
+ white-space:normal;
+ cursor:default;
+ overflow:hidden;
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton) > svg{
+ display:inline-block;
+ height:100%;
+ aspect-ratio:1;
+ background-color:var(--signature-bg);
+ flex:none;
+ padding:4px;
+ box-sizing:border-box;
+ border:none;
+ border-radius:4px;
+ }
+
+:is(:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton) > svg) > path{
+ stroke:var(--button-signature-color);
+ stroke-width:1px;
+ stroke-linecap:round;
+ stroke-linejoin:round;
+ stroke-miterlimit:10;
+ vector-effect:non-scaling-stroke;
+ fill:none;
+ }
+
+.contours:is(:is(:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton) > svg) > path){
+ fill:var(--button-signature-color);
+ stroke-width:0.5px;
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):is(:hover,:active) > svg{
+ border-radius:4px 0 0 4px;
+ background-color:var(--signature-hover-bg);
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):hover > span{
+ color:var(--button-signature-hover-color);
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):active{
+ background-color:var(--button-signature-active-bg);
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton):is([disabled="disabled"],[disabled]){
+ opacity:0.5;
+ pointer-events:none;
+ }
+
+:is(:is(:is(#editorSignatureParamsToolbar #addSignatureDoorHanger) .toolbarAddSignatureButtonContainer) .toolbarAddSignatureButton) > span{
+ height:auto;
+ text-overflow:ellipsis;
+ white-space:nowrap;
+ flex:1 1 auto;
+ font:menu;
+ font-size:13px;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ overflow:hidden;
+ }
+
+.editDescription.altText{
+ --alt-text-add-image:url(images/editor-toolbar-edit.svg) !important;
+}
+
+.editDescription.altText::before{
+ width:16px !important;
+ height:16px !important;
+ }
+
+.commentPopup,
+#commentManagerDialog{
+ width:360px;
+ max-width:100%;
+ min-width:200px;
+ position:absolute;
+ padding:8px 16px 16px;
+ margin-left:0;
+ margin-top:0;
+ box-sizing:border-box;
+
+ border-radius:8px;
+}
+
+#commentManagerDialog{
+ --comment-close-button-icon:url(images/comment-closeButton.svg);
+}
+
+#commentManagerDialog .mainContainer{
+ width:100%;
+ height:auto;
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:4px;
+ }
+
+:is(#commentManagerDialog .mainContainer) #commentManagerToolbar{
+ width:100%;
+ height:32px;
+ display:flex;
+ justify-content:flex-start;
+ align-items:flex-start;
+ gap:8px;
+ align-self:stretch;
+
+ cursor:move;
+ }
+
+:is(#commentManagerDialog .mainContainer) #commentManagerTextInput{
+ width:100%;
+ min-height:132px;
+ margin-bottom:12px;
+ }
+
+.annotationLayer.disabled :is(.annotationCommentButton){
+ display:none;
+}
+
+:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{
+ --csstools-color-scheme--light:initial;
+ color-scheme:light dark;
+ --csstools-light-dark-toggle--44:var(--csstools-color-scheme--light) #1c1b22;
+ --comment-button-bg:var(--csstools-light-dark-toggle--44, white);
+ --csstools-light-dark-toggle--45:var(--csstools-color-scheme--light) #fbfbfe;
+ --comment-button-fg:var(--csstools-light-dark-toggle--45, #5b5b66);
+ --csstools-light-dark-toggle--46:var(--csstools-color-scheme--light) #a6ecf4;
+ --comment-button-active-bg:var(--csstools-light-dark-toggle--46, #0041a4);
+ --csstools-light-dark-toggle--47:var(--csstools-color-scheme--light) #15141a;
+ --comment-button-active-fg:var(--csstools-light-dark-toggle--47, white);
+ --csstools-light-dark-toggle--48:var(--csstools-color-scheme--light) #61dce9;
+ --comment-button-hover-bg:var(--csstools-light-dark-toggle--48, #0053cb);
+ --csstools-light-dark-toggle--49:var(--csstools-color-scheme--light) #15141a;
+ --comment-button-hover-fg:var(--csstools-light-dark-toggle--49, white);
+ --csstools-light-dark-toggle--50:var(--csstools-color-scheme--light) #00cadb;
+ --comment-button-selected-bg:var(--csstools-light-dark-toggle--50, #0062fa);
+ --csstools-light-dark-toggle--51:var(--csstools-color-scheme--light) #bfbfc9;
+ --comment-button-border-color:var(--csstools-light-dark-toggle--51, #8f8f9d);
+ --comment-button-active-border-color:var(--comment-button-active-bg);
+ --csstools-light-dark-toggle--52:var(--csstools-color-scheme--light) #3a3944;
+ --comment-button-focus-border-color:var(--csstools-light-dark-toggle--52, #cfcfd8);
+ --comment-button-hover-border-color:var(--comment-button-hover-bg);
+ --comment-button-selected-border-color:var(--comment-button-selected-bg);
+ --csstools-light-dark-toggle--53:var(--csstools-color-scheme--light) #15141a;
+ --comment-button-selected-fg:var(--csstools-light-dark-toggle--53, white);
+ --comment-button-dim:24px;
+ --csstools-light-dark-toggle--54:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--55:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --comment-button-box-shadow:0 0.25px 0.75px 0 var(--csstools-light-dark-toggle--54, rgb(0 0 0 / 0.05)), 0 2px 6px 0 var(--csstools-light-dark-toggle--55, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--56:var(--csstools-color-scheme--light) #00cadb;
+ --comment-button-focus-outline-color:var(--csstools-light-dark-toggle--56, #0062fa);
+ }
+
+@supports (color: light-dark(red, red)){
+:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{
+ --comment-button-bg:light-dark(white, #1c1b22);
+ --comment-button-fg:light-dark(#5b5b66, #fbfbfe);
+ --comment-button-active-bg:light-dark(#0041a4, #a6ecf4);
+ --comment-button-active-fg:light-dark(white, #15141a);
+ --comment-button-hover-bg:light-dark(#0053cb, #61dce9);
+ --comment-button-hover-fg:light-dark(white, #15141a);
+ --comment-button-selected-bg:light-dark(#0062fa, #00cadb);
+ --comment-button-border-color:light-dark(#8f8f9d, #bfbfc9);
+ --comment-button-focus-border-color:light-dark(#cfcfd8, #3a3944);
+ --comment-button-selected-fg:light-dark(white, #15141a);
+ }
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{
+ --comment-button-box-shadow:0 0.25px 0.75px 0 light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 2px 6px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));
+ }
+}
+
+@supports (color: light-dark(red, red)){
+:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{
+ --comment-button-focus-outline-color:light-dark(#0062fa, #00cadb);
+ }
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton) *{
+ --csstools-light-dark-toggle--44:var(--csstools-color-scheme--light) #1c1b22;
+ --comment-button-bg:var(--csstools-light-dark-toggle--44, white);
+ --csstools-light-dark-toggle--45:var(--csstools-color-scheme--light) #fbfbfe;
+ --comment-button-fg:var(--csstools-light-dark-toggle--45, #5b5b66);
+ --csstools-light-dark-toggle--46:var(--csstools-color-scheme--light) #a6ecf4;
+ --comment-button-active-bg:var(--csstools-light-dark-toggle--46, #0041a4);
+ --csstools-light-dark-toggle--47:var(--csstools-color-scheme--light) #15141a;
+ --comment-button-active-fg:var(--csstools-light-dark-toggle--47, white);
+ --csstools-light-dark-toggle--48:var(--csstools-color-scheme--light) #61dce9;
+ --comment-button-hover-bg:var(--csstools-light-dark-toggle--48, #0053cb);
+ --csstools-light-dark-toggle--49:var(--csstools-color-scheme--light) #15141a;
+ --comment-button-hover-fg:var(--csstools-light-dark-toggle--49, white);
+ --csstools-light-dark-toggle--50:var(--csstools-color-scheme--light) #00cadb;
+ --comment-button-selected-bg:var(--csstools-light-dark-toggle--50, #0062fa);
+ --csstools-light-dark-toggle--51:var(--csstools-color-scheme--light) #bfbfc9;
+ --comment-button-border-color:var(--csstools-light-dark-toggle--51, #8f8f9d);
+ --csstools-light-dark-toggle--52:var(--csstools-color-scheme--light) #3a3944;
+ --comment-button-focus-border-color:var(--csstools-light-dark-toggle--52, #cfcfd8);
+ --csstools-light-dark-toggle--53:var(--csstools-color-scheme--light) #15141a;
+ --comment-button-selected-fg:var(--csstools-light-dark-toggle--53, white);
+ --csstools-light-dark-toggle--54:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--55:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --comment-button-box-shadow:0 0.25px 0.75px 0 var(--csstools-light-dark-toggle--54, rgb(0 0 0 / 0.05)), 0 2px 6px 0 var(--csstools-light-dark-toggle--55, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--56:var(--csstools-color-scheme--light) #00cadb;
+ --comment-button-focus-outline-color:var(--csstools-light-dark-toggle--56, #0062fa);
+ }
+}
+
+@media (prefers-color-scheme: dark){
+
+:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{
+ --csstools-color-scheme--light:;
+ }
+}
+
+@media screen and (forced-colors: active){
+
+:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{
+ --comment-button-bg:ButtonFace;
+ --comment-button-fg:ButtonText;
+ --comment-button-hover-bg:SelectedItemText;
+ --comment-button-hover-fg:SelectedItem;
+ --comment-button-active-bg:SelectedItemText;
+ --comment-button-active-fg:SelectedItem;
+ --comment-button-border-color:ButtonBorder;
+ --comment-button-active-border-color:ButtonBorder;
+ --comment-button-hover-border-color:SelectedItem;
+ --comment-button-box-shadow:none;
+ --comment-button-focus-outline-color:CanvasText;
+ --comment-button-selected-bg:ButtonBorder;
+ --comment-button-selected-fg:ButtonFace;
+ }
+ }
+
+:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton{
+
+ position:absolute;
+ width:var(--comment-button-dim);
+ height:var(--comment-button-dim);
+ background-color:var(--comment-button-bg);
+ border-radius:6px 6px 6px 0;
+ border:1px solid var(--comment-button-border-color);
+ box-shadow:var(--comment-button-box-shadow);
+ cursor:auto;
+ z-index:1;
+ padding:4px;
+ margin:0;
+ box-sizing:border-box;
+ pointer-events:auto;
+ }
+
+[dir="rtl"] :is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton){
+ border-radius:6px 6px 0;
+ }
+
+:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton)::before{
+ content:"";
+ display:inline-block;
+ width:100%;
+ height:100%;
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ -webkit-mask-image:var(--comment-edit-button-icon);
+ mask-image:var(--comment-edit-button-icon);
+ background-color:var(--comment-button-fg);
+ margin:0;
+ padding:0;
+ transform:scaleX(var(--dir-factor));
+ }
+
+:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):focus-visible{
+ outline:2px solid var(--comment-button-focus-outline-color);
+ outline-offset:1px;
+ border-color:var(--comment-button-focus-border-color);
+ }
+
+:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):hover{
+ background-color:var(--comment-button-hover-bg) !important;
+ border-color:var(--comment-button-hover-border-color);
+ }
+
+:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):hover::before{
+ background-color:var(--comment-button-hover-fg);
+ }
+
+:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):active{
+ background-color:var(--comment-button-active-bg) !important;
+ border-color:var(--comment-button-active-border-color);
+ }
+
+:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton):active::before{
+ background-color:var(--comment-button-active-fg);
+ }
+
+.selected:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton){
+ background-color:var(--comment-button-selected-bg) !important;
+ border-color:var(--comment-button-selected-border-color);
+ }
+
+.selected:is(:is(.annotationLayer,.annotationEditorLayer) .annotationCommentButton)::before{
+ background-color:var(--comment-button-selected-fg);
+ }
+
+#editorCommentsSidebar,
+.commentPopup{
+ --comment-close-button-icon:url(images/comment-closeButton.svg);
+ --comment-popup-edit-button-icon:url(images/comment-popup-editButton.svg);
+ --comment-popup-delete-button-icon:url(images/editor-toolbar-delete.svg);
+
+ --csstools-light-dark-toggle--57:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.69);
+
+ --comment-date-fg-color:var(--csstools-light-dark-toggle--57, rgb(21 20 26 / 0.69));
+ --csstools-light-dark-toggle--58:var(--csstools-color-scheme--light) #1c1b22;
+ --comment-bg-color:var(--csstools-light-dark-toggle--58, #f9f9fb);
+ --csstools-light-dark-toggle--59:var(--csstools-color-scheme--light) #2c2b33;
+ --comment-hover-bg-color:var(--csstools-light-dark-toggle--59, #e0e0e6);
+ --csstools-light-dark-toggle--60:var(--csstools-color-scheme--light) #3a3944;
+ --comment-active-bg-color:var(--csstools-light-dark-toggle--60, #d1d1d9);
+ --comment-hover-brightness:0.89;
+ --comment-hover-filter:brightness(var(--comment-hover-brightness));
+ --comment-active-brightness:0.825;
+ --comment-active-filter:brightness(var(--comment-active-brightness));
+ --csstools-light-dark-toggle--61:var(--csstools-color-scheme--light) #52525e;
+ --comment-border-color:var(--csstools-light-dark-toggle--61, #f0f0f4);
+ --csstools-light-dark-toggle--62:var(--csstools-color-scheme--light) #00cadb;
+ --comment-focus-outline-color:var(--csstools-light-dark-toggle--62, #0062fa);
+ --csstools-light-dark-toggle--63:var(--csstools-color-scheme--light) #fbfbfe;
+ --comment-fg-color:var(--csstools-light-dark-toggle--63, #15141a);
+ --csstools-light-dark-toggle--64:var(--csstools-color-scheme--light) #00317e;
+ --comment-count-bg-color:var(--csstools-light-dark-toggle--64, #e2f7ff);
+ --csstools-light-dark-toggle--65:var(--csstools-color-scheme--light) #a6ecf4;
+ --comment-indicator-active-fg-color:var(--csstools-light-dark-toggle--65, #0041a4);
+ --comment-indicator-active-filter:brightness(
+ calc(1 / var(--comment-active-brightness))
+ );
+ --csstools-light-dark-toggle--66:var(--csstools-color-scheme--light) #fbfbfe;
+ --comment-indicator-focus-fg-color:var(--csstools-light-dark-toggle--66, #5b5b66);
+ --csstools-light-dark-toggle--67:var(--csstools-color-scheme--light) #61dce9;
+ --comment-indicator-hover-fg-color:var(--csstools-light-dark-toggle--67, #0053cb);
+ --comment-indicator-hover-filter:brightness(
+ calc(1 / var(--comment-hover-brightness))
+ );
+ --csstools-light-dark-toggle--68:var(--csstools-color-scheme--light) #00cadb;
+ --comment-indicator-selected-fg-color:var(--csstools-light-dark-toggle--68, #0062fa);
+
+ --button-comment-bg:transparent;
+ --button-comment-color:var(--main-color);
+ --csstools-light-dark-toggle--69:var(--csstools-color-scheme--light) #5b5b66;
+ --button-comment-active-bg:var(--csstools-light-dark-toggle--69, #cfcfd8);
+ --button-comment-active-border:none;
+ --button-comment-active-color:var(--button-comment-color);
+ --button-comment-border:none;
+ --csstools-light-dark-toggle--70:var(--csstools-color-scheme--light) #52525e;
+ --button-comment-hover-bg:var(--csstools-light-dark-toggle--70, #e0e0e6);
+ --button-comment-hover-color:var(--button-comment-color);
+
+ --csstools-light-dark-toggle--71:var(--csstools-color-scheme--light) #0df;
+
+ --link-fg-color:var(--csstools-light-dark-toggle--71, #0060df);
+ --csstools-light-dark-toggle--72:var(--csstools-color-scheme--light) #80ebff;
+ --link-hover-fg-color:var(--csstools-light-dark-toggle--72, #0250bb);
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+#editorCommentsSidebar,
+.commentPopup{
+
+ --comment-date-fg-color:light-dark(
+ rgb(21 20 26 / 0.69),
+ rgb(251 251 254 / 0.69)
+ );
+}
+}
+
+@supports (color: light-dark(red, red)){
+#editorCommentsSidebar,
+.commentPopup{
+ --comment-bg-color:light-dark(#f9f9fb, #1c1b22);
+ --comment-hover-bg-color:light-dark(#e0e0e6, #2c2b33);
+ --comment-active-bg-color:light-dark(#d1d1d9, #3a3944);
+ --comment-border-color:light-dark(#f0f0f4, #52525e);
+ --comment-focus-outline-color:light-dark(#0062fa, #00cadb);
+ --comment-fg-color:light-dark(#15141a, #fbfbfe);
+ --comment-count-bg-color:light-dark(#e2f7ff, #00317e);
+ --comment-indicator-active-fg-color:light-dark(#0041a4, #a6ecf4);
+ --comment-indicator-focus-fg-color:light-dark(#5b5b66, #fbfbfe);
+ --comment-indicator-hover-fg-color:light-dark(#0053cb, #61dce9);
+ --comment-indicator-selected-fg-color:light-dark(#0062fa, #00cadb);
+ --button-comment-active-bg:light-dark(#cfcfd8, #5b5b66);
+ --button-comment-hover-bg:light-dark(#e0e0e6, #52525e);
+
+ --link-fg-color:light-dark(#0060df, #0df);
+ --link-hover-fg-color:light-dark(#0250bb, #80ebff);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:is(#editorCommentsSidebar,.commentPopup) *{
+
+ --csstools-light-dark-toggle--57:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.69);
+
+ --comment-date-fg-color:var(--csstools-light-dark-toggle--57, rgb(21 20 26 / 0.69));
+ --csstools-light-dark-toggle--58:var(--csstools-color-scheme--light) #1c1b22;
+ --comment-bg-color:var(--csstools-light-dark-toggle--58, #f9f9fb);
+ --csstools-light-dark-toggle--59:var(--csstools-color-scheme--light) #2c2b33;
+ --comment-hover-bg-color:var(--csstools-light-dark-toggle--59, #e0e0e6);
+ --csstools-light-dark-toggle--60:var(--csstools-color-scheme--light) #3a3944;
+ --comment-active-bg-color:var(--csstools-light-dark-toggle--60, #d1d1d9);
+ --csstools-light-dark-toggle--61:var(--csstools-color-scheme--light) #52525e;
+ --comment-border-color:var(--csstools-light-dark-toggle--61, #f0f0f4);
+ --csstools-light-dark-toggle--62:var(--csstools-color-scheme--light) #00cadb;
+ --comment-focus-outline-color:var(--csstools-light-dark-toggle--62, #0062fa);
+ --csstools-light-dark-toggle--63:var(--csstools-color-scheme--light) #fbfbfe;
+ --comment-fg-color:var(--csstools-light-dark-toggle--63, #15141a);
+ --csstools-light-dark-toggle--64:var(--csstools-color-scheme--light) #00317e;
+ --comment-count-bg-color:var(--csstools-light-dark-toggle--64, #e2f7ff);
+ --csstools-light-dark-toggle--65:var(--csstools-color-scheme--light) #a6ecf4;
+ --comment-indicator-active-fg-color:var(--csstools-light-dark-toggle--65, #0041a4);
+ --csstools-light-dark-toggle--66:var(--csstools-color-scheme--light) #fbfbfe;
+ --comment-indicator-focus-fg-color:var(--csstools-light-dark-toggle--66, #5b5b66);
+ --csstools-light-dark-toggle--67:var(--csstools-color-scheme--light) #61dce9;
+ --comment-indicator-hover-fg-color:var(--csstools-light-dark-toggle--67, #0053cb);
+ --csstools-light-dark-toggle--68:var(--csstools-color-scheme--light) #00cadb;
+ --comment-indicator-selected-fg-color:var(--csstools-light-dark-toggle--68, #0062fa);
+ --csstools-light-dark-toggle--69:var(--csstools-color-scheme--light) #5b5b66;
+ --button-comment-active-bg:var(--csstools-light-dark-toggle--69, #cfcfd8);
+ --csstools-light-dark-toggle--70:var(--csstools-color-scheme--light) #52525e;
+ --button-comment-hover-bg:var(--csstools-light-dark-toggle--70, #e0e0e6);
+
+ --csstools-light-dark-toggle--71:var(--csstools-color-scheme--light) #0df;
+
+ --link-fg-color:var(--csstools-light-dark-toggle--71, #0060df);
+ --csstools-light-dark-toggle--72:var(--csstools-color-scheme--light) #80ebff;
+ --link-hover-fg-color:var(--csstools-light-dark-toggle--72, #0250bb);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+#editorCommentsSidebar,
+.commentPopup{
+ --comment-date-fg-color:CanvasText;
+ --comment-bg-color:Canvas;
+ --comment-hover-bg-color:Canvas;
+ --comment-hover-filter:none;
+ --comment-active-bg-color:Canvas;
+ --comment-active-filter:none;
+ --comment-border-color:CanvasText;
+ --comment-fg-color:CanvasText;
+ --comment-count-bg-color:Canvas;
+ --comment-indicator-active-fg-color:SelectedItem;
+ --comment-indicator-focus-fg-color:CanvasText;
+ --comment-indicator-hover-fg-color:CanvasText;
+ --comment-indicator-selected-fg-color:SelectedItem;
+ --button-comment-bg:ButtonFace;
+ --button-comment-color:ButtonText;
+ --button-comment-active-bg:Highlight;
+ --button-comment-active-color:HighlightText;
+ --button-comment-border:1px solid ButtonText;
+ --button-comment-hover-bg:Highlight;
+ --button-comment-hover-color:HighlightText;
+ --link-fg-color:LinkText;
+ --link-hover-fg-color:LinkText;
+}
+ }
+
+#editorCommentsSidebar{
+ display:flex;
+ height:auto;
+ padding-bottom:16px;
+ flex-direction:column;
+ align-items:flex-start;
+ overflow-y:visible;
+}
+
+#editorCommentsSidebar #editorCommentsSidebarHeader{
+ width:100%;
+ box-sizing:border-box;
+ padding:16px;
+ display:flex;
+ align-items:center;
+ justify-content:space-between;
+ }
+
+:is(#editorCommentsSidebar #editorCommentsSidebarHeader) .commentCount{
+ display:flex;
+ align-items:baseline;
+ gap:6px;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) .commentCount) #editorCommentsSidebarTitle{
+ font:menu;
+ font-style:normal;
+ font-weight:590;
+ line-height:normal;
+ font-size:17px;
+ color:var(--comment-fg-color);
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) .commentCount) #editorCommentsSidebarCount{
+ padding:0 4px;
+ border-radius:4px;
+ background-color:var(--comment-count-bg-color);
+
+ color:var(--comment-fg-color);
+ text-align:center;
+
+ font:menu;
+ font-size:13px;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ }
+
+:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton{
+ width:32px;
+ height:32px;
+ padding:8px;
+ border-radius:4px;
+ border:var(--button-comment-border);
+ background-color:var(--button-comment-bg);
+ cursor:pointer;
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton)::before{
+ content:"";
+ display:inline-block;
+ width:100%;
+ height:100%;
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ -webkit-mask-image:var(--comment-close-button-icon);
+ mask-image:var(--comment-close-button-icon);
+ background-color:var(--button-comment-color);
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):hover{
+ background-color:var(--button-comment-hover-bg);
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):hover::before{
+ background-color:var(--button-comment-hover-color);
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):active{
+ border:var(--button-comment-active-border);
+ background-color:var(--button-comment-active-bg);
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):active::before{
+ background-color:var(--button-comment-active-color);
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton):focus-visible{
+ outline:var(--focus-ring-outline);
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarHeader) #editorCommentsSidebarCloseButton) > span{
+ display:inline-block;
+ width:0;
+ height:0;
+ overflow:hidden;
+ }
+
+#editorCommentsSidebar #editorCommentsSidebarListContainer{
+ overflow:auto;
+ width:100%;
+ }
+
+:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList{
+ display:flex;
+ width:auto;
+ padding:4px 16px;
+ gap:10px;
+ align-items:flex-start;
+ flex-direction:column;
+ list-style-type:none;
+ }
+
+:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment{
+ display:flex;
+ width:auto;
+ padding:8px 16px 16px;
+ flex-direction:column;
+ align-items:flex-start;
+ align-self:stretch;
+ gap:4px;
+
+ border-radius:8px;
+ border:0.5px solid var(--comment-border-color);
+ background-color:var(--comment-bg-color);
+ }
+
+@media screen and (forced-colors: active){
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):hover{
+ background-color:var(--comment-hover-bg-color);
+ }
+ }
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):hover{
+ filter:var(--comment-hover-filter);
+ }
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):hover time::after{
+ display:inline-block;
+ background-color:var(--comment-indicator-hover-fg-color);
+ filter:var(--comment-indicator-hover-filter);
+ }
+
+@media screen and (forced-colors: active){
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):active{
+ background-color:var(--comment-active-bg-color);
+ }
+ }
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):active{
+ filter:var(--comment-active-filter);
+ }
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):active time::after{
+ display:inline-block;
+ background-color:var(--comment-indicator-active-fg-color);
+ filter:var(--comment-indicator-active-filter);
+ }
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):is(:focus,:focus-visible) time::after{
+ display:inline-block;
+ background-color:var(--comment-indicator-focus-fg-color);
+ }
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments):focus-visible{
+ outline:2px solid var(--comment-focus-outline-color);
+ outline-offset:2px;
+ }
+
+.selected:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments) .sidebarCommentText{
+ max-height:-moz-fit-content;
+ max-height:fit-content;
+ -webkit-line-clamp:unset;
+ }
+
+.selected:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment):not(.noComments) time::after{
+ display:inline-block;
+ background-color:var(--comment-indicator-selected-fg-color);
+ }
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) .sidebarCommentText{
+ font:menu;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ font-size:15px;
+ width:100%;
+ height:-moz-fit-content;
+ height:fit-content;
+ max-height:80px;
+ display:-webkit-box;
+ -webkit-box-orient:vertical;
+ -webkit-line-clamp:2;
+ overflow:hidden;
+ overflow-wrap:break-word;
+ }
+
+:is(:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) .sidebarCommentText) .richText{
+ --total-scale-factor:1.5;
+ }
+
+.noComments:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) .sidebarCommentText{
+ max-height:-moz-fit-content;
+ max-height:fit-content;
+ -webkit-line-clamp:unset;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+.noComments:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) a{
+ font:menu;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ font-size:15px;
+ width:100%;
+ height:auto;
+ overflow-wrap:break-word;
+ margin-block-start:15px;
+ color:var(--link-fg-color);
+ }
+
+:is(.noComments:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) a):focus-visible{
+ outline:var(--focus-ring-outline);
+ }
+
+:is(.noComments:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) a):hover{
+ color:var(--link-hover-fg-color);
+ }
+
+:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) time{
+ width:100%;
+ display:inline-flex;
+ align-items:center;
+ justify-content:space-between;
+
+ font:menu;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ font-size:13px;
+ }
+
+:is(:is(:is(:is(#editorCommentsSidebar #editorCommentsSidebarListContainer) #editorCommentsSidebarList) .sidebarComment) time)::after{
+ content:"";
+ display:none;
+ width:16px;
+ height:16px;
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ -webkit-mask-image:var(--comment-edit-button-icon);
+ mask-image:var(--comment-edit-button-icon);
+ transform:scaleX(var(--dir-factor));
+ }
+
+.commentPopup{
+ --csstools-color-scheme--light:initial;
+ color-scheme:light dark;
+
+ --csstools-light-dark-toggle--73:var(--csstools-color-scheme--light) #3a3944;
+
+ --divider-color:var(--csstools-light-dark-toggle--73, #cfcfd8);
+ --csstools-light-dark-toggle--74:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--75:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --comment-shadow:0 0.5px 2px 0 var(--csstools-light-dark-toggle--74, rgb(0 0 0 / 0.05)), 0 4px 16px 0 var(--csstools-light-dark-toggle--75, rgb(0 0 0 / 0.1));
+}
+
+@supports (color: light-dark(red, red)){
+.commentPopup{
+
+ --divider-color:light-dark(#cfcfd8, #3a3944);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+.commentPopup{
+ --comment-shadow:0 0.5px 2px 0 light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 4px 16px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.commentPopup *{
+
+ --csstools-light-dark-toggle--73:var(--csstools-color-scheme--light) #3a3944;
+
+ --divider-color:var(--csstools-light-dark-toggle--73, #cfcfd8);
+ --csstools-light-dark-toggle--74:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--75:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --comment-shadow:0 0.5px 2px 0 var(--csstools-light-dark-toggle--74, rgb(0 0 0 / 0.05)), 0 4px 16px 0 var(--csstools-light-dark-toggle--75, rgb(0 0 0 / 0.1));
+ }
+}
+
+@media (prefers-color-scheme: dark){
+
+.commentPopup{
+ --csstools-color-scheme--light:;
+}
+}
+
+@media screen and (forced-colors: active){
+
+.commentPopup{
+ --divider-color:CanvasText;
+ --comment-shadow:none;
+}
+ }
+
+.commentPopup{
+
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:12px;
+ z-index:100001;
+ pointer-events:auto;
+ margin-top:2px;
+
+ border:0.5px solid var(--comment-border-color);
+ background:var(--comment-bg-color);
+ box-shadow:var(--comment-shadow);
+}
+
+.commentPopup:focus-visible{
+ outline:none;
+ }
+
+.commentPopup.dragging{
+ cursor:move !important;
+ }
+
+.commentPopup.dragging *{
+ cursor:move !important;
+ }
+
+.commentPopup.dragging button{
+ pointer-events:none !important;
+ }
+
+.commentPopup:not(.selected) .commentPopupButtons{
+ visibility:hidden !important;
+ }
+
+.commentPopup hr{
+ width:100%;
+ height:1px;
+ border:none;
+ border-top:1px solid var(--divider-color);
+ margin:0;
+ padding:0;
+ }
+
+.commentPopup .commentPopupTop{
+ display:flex;
+ width:100%;
+ height:auto;
+ padding-bottom:4px;
+ justify-content:space-between;
+ align-items:center;
+ align-self:stretch;
+ cursor:move;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+:is(.commentPopup .commentPopupTop) .commentPopupTime{
+ font:menu;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ font-size:13px;
+ color:var(--comment-date-fg-color);
+ }
+
+:is(.commentPopup .commentPopupTop) .commentPopupButtons{
+ display:flex;
+ align-items:center;
+ gap:2px;
+ cursor:default;
+ }
+
+:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button{
+ width:32px;
+ height:32px;
+ padding:8px;
+ border:var(--button-comment-border);
+ border-radius:4px;
+ background-color:var(--button-comment-bg);
+ color:var(--button-comment-color);
+ }
+
+:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):hover{
+ background-color:var(--button-comment-hover-bg);
+ }
+
+:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):hover::before{
+ background-color:var(--button-comment-hover-color);
+ }
+
+:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):active{
+ border:var(--button-comment-active-border);
+ background-color:var(--button-comment-active-bg);
+ color:var(--button-comment-active-color);
+ }
+
+:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):active::before{
+ background-color:var(--button-comment-active-color);
+ }
+
+:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button):focus-visible{
+ background-color:var(--button-comment-hover-bg);
+ outline:2px solid var(--comment-focus-outline-color);
+ outline-offset:0;
+ }
+
+:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button)::before{
+ content:"";
+ display:inline-block;
+ width:100%;
+ height:100%;
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ }
+
+.commentPopupEdit:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button)::before{
+ -webkit-mask-image:var(--comment-popup-edit-button-icon);
+ mask-image:var(--comment-popup-edit-button-icon);
+ }
+
+.commentPopupDelete:is(:is(:is(.commentPopup .commentPopupTop) .commentPopupButtons) > button)::before{
+ -webkit-mask-image:var(--comment-popup-delete-button-icon);
+ mask-image:var(--comment-popup-delete-button-icon);
+ }
+
+.commentPopup .commentPopupText{
+ width:100%;
+ height:auto;
+
+ font:menu;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ font-size:15px;
+ color:var(--comment-fg-color);
+ }
+
+.commentPopupText,
+.sidebarCommentText .richText{
+ margin-block:0;
+}
+
+:is(.commentPopupText,.sidebarCommentText .richText) p:first-of-type{
+ margin-block:0;
+ }
+
+:is(.commentPopupText,.sidebarCommentText .richText) > *{
+ white-space:pre-wrap;
+ font-size:max(15px, calc(10px * var(--total-scale-factor)));
+ overflow-wrap:break-word;
+ }
+
+:is(.commentPopupText,.sidebarCommentText .richText) span{
+ color:var(--comment-fg-color) !important;
+ }
+
+:root{
+ --editor-toolbar-vert-offset:6px;
+ --outline-width:2px;
+ --outline-color:#0060df;
+ --outline-around-width:1px;
+ --outline-around-color:#f0f0f4;
+ --hover-outline-around-color:var(--outline-around-color);
+ --focus-outline:solid var(--outline-width) var(--outline-color);
+ --unfocus-outline:solid var(--outline-width) transparent;
+ --focus-outline-around:solid var(--outline-around-width) var(--outline-around-color);
+ --hover-outline-color:#8f8f9d;
+ --hover-outline:solid var(--outline-width) var(--hover-outline-color);
+ --hover-outline-around:solid var(--outline-around-width) var(--hover-outline-around-color);
+ --freetext-line-height:1.35;
+ --freetext-padding:2px;
+ --resizer-bg-color:var(--outline-color);
+ --resizer-size:6px;
+ --resizer-shift:calc(
+ 0px - (var(--outline-width) + var(--resizer-size)) / 2 -
+ var(--outline-around-width)
+ );
+ --editorFreeText-editing-cursor:text;
+ --editorInk-editing-cursor:url(images/cursor-editorInk.svg) 0 16, pointer;
+ --editorHighlight-editing-cursor:url(images/cursor-editorTextHighlight.svg) 24 24, text;
+ --editorFreeHighlight-editing-cursor:url(images/cursor-editorFreeHighlight.svg) 1 18, pointer;
+
+ --new-alt-text-warning-image:url(images/altText_warning.svg);
+}
+
+.textLayer.highlighting{
+ cursor:var(--editorFreeHighlight-editing-cursor);
+ }
+
+.textLayer.highlighting:not(.free) span{
+ cursor:var(--editorHighlight-editing-cursor);
+ }
+
+[role="img"]:is(.textLayer.highlighting:not(.free) span){
+ cursor:var(--editorFreeHighlight-editing-cursor);
+ }
+
+.textLayer.highlighting.free span{
+ cursor:var(--editorFreeHighlight-editing-cursor);
+ }
+
+.page:has(.annotationEditorLayer.nonEditing)
+ .annotationLayer
+ .editorAnnotation{
+ position:absolute;
+ pointer-events:none;
+}
+
+:is(#viewerContainer.pdfPresentationMode:fullscreen,.annotationEditorLayer.disabled) .noAltTextBadge{
+ display:none !important;
+ }
+
+@media (min-resolution: 1.1dppx){
+ :root{
+ --editorFreeText-editing-cursor:url(images/cursor-editorFreeText.svg) 0 16, text;
+ }
+}
+
+@media screen and (forced-colors: active){
+ :root{
+ --outline-color:CanvasText;
+ --outline-around-color:ButtonFace;
+ --resizer-bg-color:ButtonText;
+ --hover-outline-color:Highlight;
+ --hover-outline-around-color:SelectedItemText;
+ }
+}
+
+[data-editor-rotation="90"]{
+ transform:rotate(90deg);
+}
+
+[data-editor-rotation="180"]{
+ transform:rotate(180deg);
+}
+
+[data-editor-rotation="270"]{
+ transform:rotate(270deg);
+}
+
+.annotationEditorLayer{
+ background:transparent;
+ position:absolute;
+ inset:0;
+ font-size:calc(100px * var(--total-scale-factor));
+ transform-origin:0 0;
+ cursor:auto;
+}
+
+.annotationEditorLayer .selectedEditor{
+ z-index:100000 !important;
+ }
+
+.annotationEditorLayer.drawing *{
+ pointer-events:none !important;
+ }
+
+.annotationEditorLayer.getElements{
+ pointer-events:auto !important;
+ }
+
+.annotationEditorLayer.getElements > div{
+ pointer-events:auto !important;
+ }
+
+.annotationEditorLayer.waiting{
+ content:"";
+ cursor:wait;
+ position:absolute;
+ inset:0;
+ width:100%;
+ height:100%;
+}
+
+.annotationEditorLayer.disabled{
+ pointer-events:none;
+}
+
+.annotationEditorLayer.disabled.highlightEditing :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor,.commentPopup){
+ pointer-events:auto;
+ }
+
+.annotationEditorLayer.freetextEditing{
+ cursor:var(--editorFreeText-editing-cursor);
+}
+
+.annotationEditorLayer.inkEditing{
+ cursor:var(--editorInk-editing-cursor);
+}
+
+.annotationEditorLayer .draw{
+ box-sizing:border-box;
+}
+
+.annotationEditorLayer
+ :is(.freeTextEditor, .inkEditor, .stampEditor, .signatureEditor){
+ position:absolute;
+ background:transparent;
+ z-index:1;
+ transform-origin:0 0;
+ cursor:auto;
+ max-width:100%;
+ max-height:100%;
+ border:var(--unfocus-outline);
+}
+
+.draggable.selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)){
+ cursor:move;
+ }
+
+.selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)){
+ border:var(--focus-outline);
+ outline:var(--focus-outline-around);
+ }
+
+.selectedEditor:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor))::before{
+ content:"";
+ position:absolute;
+ inset:0;
+ border:var(--focus-outline-around);
+ pointer-events:none;
+ }
+
+:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)):hover:not(.selectedEditor){
+ border:var(--hover-outline);
+ outline:var(--hover-outline-around);
+ }
+
+:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)):hover:not(.selectedEditor)::before{
+ content:"";
+ position:absolute;
+ inset:0;
+ border:var(--focus-outline-around);
+ }
+
+:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{
+ --editor-toolbar-delete-image:url(images/editor-toolbar-delete.svg);
+ --csstools-light-dark-toggle--76:var(--csstools-color-scheme--light) #2b2a33;
+ --editor-toolbar-bg-color:var(--csstools-light-dark-toggle--76, #f0f0f4);
+ --editor-toolbar-highlight-image:url(images/toolbarButton-editorHighlight.svg);
+ --csstools-light-dark-toggle--77:var(--csstools-color-scheme--light) #fbfbfe;
+ --editor-toolbar-fg-color:var(--csstools-light-dark-toggle--77, #2e2e56);
+ --editor-toolbar-border-color:#8f8f9d;
+ --editor-toolbar-hover-border-color:var(--editor-toolbar-border-color);
+ --csstools-light-dark-toggle--78:var(--csstools-color-scheme--light) #52525e;
+ --editor-toolbar-hover-bg-color:var(--csstools-light-dark-toggle--78, #e0e0e6);
+ --editor-toolbar-hover-fg-color:var(--editor-toolbar-fg-color);
+ --editor-toolbar-hover-outline:none;
+ --csstools-light-dark-toggle--79:var(--csstools-color-scheme--light) #0df;
+ --editor-toolbar-focus-outline-color:var(--csstools-light-dark-toggle--79, #0060df);
+ --editor-toolbar-shadow:0 2px 6px 0 rgb(58 57 68 / 0.2);
+ --editor-toolbar-height:28px;
+ --editor-toolbar-padding:2px;
+ --csstools-light-dark-toggle--80:var(--csstools-color-scheme--light) #54ffbd;
+ --alt-text-done-color:var(--csstools-light-dark-toggle--80, #2ac3a2);
+ --csstools-light-dark-toggle--81:var(--csstools-color-scheme--light) #80ebff;
+ --alt-text-warning-color:var(--csstools-light-dark-toggle--81, #0090ed);
+ --alt-text-hover-done-color:var(--alt-text-done-color);
+ --alt-text-hover-warning-color:var(--alt-text-warning-color);
+ }
+
+@supports (color: light-dark(red, red)){
+:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{
+ --editor-toolbar-bg-color:light-dark(#f0f0f4, #2b2a33);
+ --editor-toolbar-fg-color:light-dark(#2e2e56, #fbfbfe);
+ --editor-toolbar-hover-bg-color:light-dark(#e0e0e6, #52525e);
+ --editor-toolbar-focus-outline-color:light-dark(#0060df, #0df);
+ --alt-text-done-color:light-dark(#2ac3a2, #54ffbd);
+ --alt-text-warning-color:light-dark(#0090ed, #80ebff);
+ }
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) *{
+ --csstools-light-dark-toggle--76:var(--csstools-color-scheme--light) #2b2a33;
+ --editor-toolbar-bg-color:var(--csstools-light-dark-toggle--76, #f0f0f4);
+ --csstools-light-dark-toggle--77:var(--csstools-color-scheme--light) #fbfbfe;
+ --editor-toolbar-fg-color:var(--csstools-light-dark-toggle--77, #2e2e56);
+ --csstools-light-dark-toggle--78:var(--csstools-color-scheme--light) #52525e;
+ --editor-toolbar-hover-bg-color:var(--csstools-light-dark-toggle--78, #e0e0e6);
+ --csstools-light-dark-toggle--79:var(--csstools-color-scheme--light) #0df;
+ --editor-toolbar-focus-outline-color:var(--csstools-light-dark-toggle--79, #0060df);
+ --csstools-light-dark-toggle--80:var(--csstools-color-scheme--light) #54ffbd;
+ --alt-text-done-color:var(--csstools-light-dark-toggle--80, #2ac3a2);
+ --csstools-light-dark-toggle--81:var(--csstools-color-scheme--light) #80ebff;
+ --alt-text-warning-color:var(--csstools-light-dark-toggle--81, #0090ed);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{
+ --editor-toolbar-bg-color:ButtonFace;
+ --editor-toolbar-fg-color:ButtonText;
+ --editor-toolbar-border-color:ButtonText;
+ --editor-toolbar-hover-border-color:AccentColor;
+ --editor-toolbar-hover-bg-color:ButtonFace;
+ --editor-toolbar-hover-fg-color:AccentColor;
+ --editor-toolbar-hover-outline:2px solid var(--editor-toolbar-hover-border-color);
+ --editor-toolbar-focus-outline-color:ButtonBorder;
+ --editor-toolbar-shadow:none;
+ --alt-text-done-color:var(--editor-toolbar-fg-color);
+ --alt-text-warning-color:var(--editor-toolbar-fg-color);
+ --alt-text-hover-done-color:var(--editor-toolbar-hover-fg-color);
+ --alt-text-hover-warning-color:var(--editor-toolbar-hover-fg-color);
+ }
+ }
+
+:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar{
+
+ display:flex;
+ width:-moz-fit-content;
+ width:fit-content;
+ height:var(--editor-toolbar-height);
+ flex-direction:column;
+ justify-content:center;
+ align-items:center;
+ cursor:default;
+ pointer-events:auto;
+ box-sizing:content-box;
+ padding:var(--editor-toolbar-padding);
+
+ position:absolute;
+ inset-inline-end:0;
+ inset-block-start:calc(100% + var(--editor-toolbar-vert-offset));
+
+ border-radius:6px;
+ background-color:var(--editor-toolbar-bg-color);
+ border:1px solid var(--editor-toolbar-border-color);
+ box-shadow:var(--editor-toolbar-shadow);
+ }
+
+.hidden:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar){
+ display:none;
+ }
+
+:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar):has(:focus-visible){
+ border-color:transparent;
+ }
+
+[dir="ltr"] :is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar){
+ transform-origin:100% 0;
+ }
+
+[dir="rtl"] :is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar){
+ transform-origin:0 0;
+ }
+
+:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons{
+ display:flex;
+ justify-content:center;
+ align-items:center;
+ gap:0;
+ height:100%;
+ }
+
+:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) button{
+ padding:0;
+ }
+
+:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .divider{
+ width:0;
+ height:calc(
+ 2 * var(--editor-toolbar-padding) + var(--editor-toolbar-height)
+ );
+ border-left:1px solid var(--editor-toolbar-border-color);
+ border-right:none;
+ display:inline-block;
+ margin-inline:2px;
+ }
+
+:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic{
+ width:var(--editor-toolbar-height);
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic)::before{
+ content:"";
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ display:inline-block;
+ background-color:var(--editor-toolbar-fg-color);
+ width:100%;
+ height:100%;
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic):hover::before{
+ background-color:var(--editor-toolbar-hover-fg-color);
+ }
+
+.highlightButton:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic)::before{
+ -webkit-mask-image:var(--editor-toolbar-highlight-image);
+ mask-image:var(--editor-toolbar-highlight-image);
+ }
+
+.commentButton:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic)::before{
+ -webkit-mask-image:var(--comment-edit-button-icon);
+ mask-image:var(--comment-edit-button-icon);
+ }
+
+.deleteButton:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .basic)::before{
+ -webkit-mask-image:var(--editor-toolbar-delete-image);
+ mask-image:var(--editor-toolbar-delete-image);
+ }
+
+:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) > *{
+ height:var(--editor-toolbar-height);
+ }
+
+:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) > :not(.divider){
+ border:none;
+ background-color:transparent;
+ cursor:pointer;
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) > :not(.divider)):hover{
+ border-radius:2px;
+ background-color:var(--editor-toolbar-hover-bg-color);
+ color:var(--editor-toolbar-hover-fg-color);
+ outline:var(--editor-toolbar-hover-outline);
+ outline-offset:1px;
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) > :not(.divider)):hover:active{
+ outline:none;
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) > :not(.divider)):focus-visible{
+ border-radius:2px;
+ outline:2px solid var(--editor-toolbar-focus-outline-color);
+ }
+
+:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText{
+ --alt-text-add-image:url(images/altText_add.svg);
+ --alt-text-done-image:url(images/altText_done.svg);
+
+ display:flex;
+ align-items:center;
+ justify-content:center;
+ width:-moz-max-content;
+ width:max-content;
+ padding-inline:8px;
+ pointer-events:all;
+ font:menu;
+ font-weight:590;
+ font-size:12px;
+ color:var(--editor-toolbar-fg-color);
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):disabled{
+ pointer-events:none;
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText)::before{
+ content:"";
+ -webkit-mask-image:var(--alt-text-add-image);
+ mask-image:var(--alt-text-add-image);
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ display:inline-block;
+ width:12px;
+ height:13px;
+ background-color:var(--editor-toolbar-fg-color);
+ margin-inline-end:4px;
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):hover::before{
+ background-color:var(--editor-toolbar-hover-fg-color);
+ }
+
+.done:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText)::before{
+ -webkit-mask-image:var(--alt-text-done-image);
+ mask-image:var(--alt-text-done-image);
+ }
+
+.new:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText)::before{
+ width:16px;
+ height:16px;
+ -webkit-mask-image:var(--new-alt-text-warning-image);
+ mask-image:var(--new-alt-text-warning-image);
+ background-color:var(--alt-text-warning-color);
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ }
+
+.new:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):hover::before{
+ background-color:var(--alt-text-hover-warning-color);
+ }
+
+.new.done:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText)::before{
+ -webkit-mask-image:var(--alt-text-done-image);
+ mask-image:var(--alt-text-done-image);
+ background-color:var(--alt-text-done-color);
+ }
+
+.new.done:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText):hover::before{
+ background-color:var(--alt-text-hover-done-color);
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip{
+ display:none;
+ word-wrap:anywhere;
+ }
+
+.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){
+ --csstools-light-dark-toggle--82:var(--csstools-color-scheme--light) #1c1b22;
+ --alt-text-tooltip-bg:var(--csstools-light-dark-toggle--82, #f0f0f4);
+ --csstools-light-dark-toggle--83:var(--csstools-color-scheme--light) #fbfbfe;
+ --alt-text-tooltip-fg:var(--csstools-light-dark-toggle--83, #15141a);
+ --alt-text-tooltip-border:#8f8f9d;
+ --csstools-light-dark-toggle--84:var(--csstools-color-scheme--light) #15141a;
+ --alt-text-tooltip-shadow:0 2px 6px 0 var(--csstools-light-dark-toggle--84, rgb(58 57 68 / 0.2));
+ }
+
+@supports (color: light-dark(red, red)){
+.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){
+ --alt-text-tooltip-bg:light-dark(#f0f0f4, #1c1b22);
+ --alt-text-tooltip-fg:light-dark(#15141a, #fbfbfe);
+ }
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){
+ --alt-text-tooltip-shadow:0 2px 6px 0 light-dark(rgb(58 57 68 / 0.2), #15141a);
+ }
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip) *{
+ --csstools-light-dark-toggle--82:var(--csstools-color-scheme--light) #1c1b22;
+ --alt-text-tooltip-bg:var(--csstools-light-dark-toggle--82, #f0f0f4);
+ --csstools-light-dark-toggle--83:var(--csstools-color-scheme--light) #fbfbfe;
+ --alt-text-tooltip-fg:var(--csstools-light-dark-toggle--83, #15141a);
+ --csstools-light-dark-toggle--84:var(--csstools-color-scheme--light) #15141a;
+ --alt-text-tooltip-shadow:0 2px 6px 0 var(--csstools-light-dark-toggle--84, rgb(58 57 68 / 0.2));
+ }
+}
+
+@media screen and (forced-colors: active){
+
+.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){
+ --alt-text-tooltip-bg:Canvas;
+ --alt-text-tooltip-fg:CanvasText;
+ --alt-text-tooltip-border:CanvasText;
+ --alt-text-tooltip-shadow:none;
+ }
+ }
+
+.show:is(:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .altText) .tooltip){
+
+ display:inline-flex;
+ flex-direction:column;
+ align-items:center;
+ justify-content:center;
+ position:absolute;
+ top:calc(100% + 2px);
+ inset-inline-start:0;
+ padding-block:2px 3px;
+ padding-inline:3px;
+ max-width:300px;
+ width:-moz-max-content;
+ width:max-content;
+ height:auto;
+ font-size:12px;
+
+ border:0.5px solid var(--alt-text-tooltip-border);
+ background:var(--alt-text-tooltip-bg);
+ box-shadow:var(--alt-text-tooltip-shadow);
+ color:var(--alt-text-tooltip-fg);
+
+ pointer-events:none;
+ }
+
+:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .comment{
+ width:var(--editor-toolbar-height);
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.highlightEditor,.signatureEditor),.textLayer) .editToolbar) .buttons) .comment)::before{
+ content:"";
+ -webkit-mask-image:var(--comment-edit-button-icon);
+ mask-image:var(--comment-edit-button-icon);
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ display:inline-block;
+ background-color:var(--editor-toolbar-fg-color);
+ width:100%;
+ height:100%;
+ }
+
+.annotationEditorLayer .freeTextEditor{
+ padding:calc(var(--freetext-padding) * var(--total-scale-factor));
+ width:auto;
+ height:auto;
+ touch-action:none;
+}
+
+.annotationEditorLayer .freeTextEditor .internal{
+ background:transparent;
+ border:none;
+ inset:0;
+ overflow:visible;
+ white-space:nowrap;
+ font:10px sans-serif;
+ line-height:var(--freetext-line-height);
+ text-align:start;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+}
+
+.annotationEditorLayer .freeTextEditor .overlay{
+ position:absolute;
+ display:none;
+ background:transparent;
+ inset:0;
+ width:100%;
+ height:100%;
+}
+
+.annotationEditorLayer freeTextEditor .overlay.enabled{
+ display:block;
+}
+
+.annotationEditorLayer .freeTextEditor .internal:empty::before{
+ content:attr(default-content);
+ color:gray;
+}
+
+.annotationEditorLayer .freeTextEditor .internal:focus{
+ outline:none;
+ -webkit-user-select:auto;
+ -moz-user-select:auto;
+ user-select:auto;
+}
+
+.annotationEditorLayer .inkEditor{
+ width:100%;
+ height:100%;
+}
+
+.annotationEditorLayer .inkEditor.editing{
+ cursor:inherit;
+}
+
+.annotationEditorLayer .inkEditor .inkEditorCanvas{
+ position:absolute;
+ inset:0;
+ width:100%;
+ height:100%;
+ touch-action:none;
+}
+
+.annotationEditorLayer .stampEditor{
+ width:auto;
+ height:auto;
+}
+
+:is(.annotationEditorLayer .stampEditor) canvas{
+ position:absolute;
+ width:100%;
+ height:100%;
+ margin:0;
+ top:0;
+ left:0;
+ }
+
+:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{
+ --csstools-light-dark-toggle--85:var(--csstools-color-scheme--light) #52525e;
+ --no-alt-text-badge-border-color:var(--csstools-light-dark-toggle--85, #f0f0f4);
+ --csstools-light-dark-toggle--86:var(--csstools-color-scheme--light) #fbfbfe;
+ --no-alt-text-badge-bg-color:var(--csstools-light-dark-toggle--86, #cfcfd8);
+ --csstools-light-dark-toggle--87:var(--csstools-color-scheme--light) #15141a;
+ --no-alt-text-badge-fg-color:var(--csstools-light-dark-toggle--87, #5b5b66);
+ }
+
+@supports (color: light-dark(red, red)){
+:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{
+ --no-alt-text-badge-border-color:light-dark(#f0f0f4, #52525e);
+ --no-alt-text-badge-bg-color:light-dark(#cfcfd8, #fbfbfe);
+ --no-alt-text-badge-fg-color:light-dark(#5b5b66, #15141a);
+ }
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:is(:is(.annotationEditorLayer .stampEditor) .noAltTextBadge) *{
+ --csstools-light-dark-toggle--85:var(--csstools-color-scheme--light) #52525e;
+ --no-alt-text-badge-border-color:var(--csstools-light-dark-toggle--85, #f0f0f4);
+ --csstools-light-dark-toggle--86:var(--csstools-color-scheme--light) #fbfbfe;
+ --no-alt-text-badge-bg-color:var(--csstools-light-dark-toggle--86, #cfcfd8);
+ --csstools-light-dark-toggle--87:var(--csstools-color-scheme--light) #15141a;
+ --no-alt-text-badge-fg-color:var(--csstools-light-dark-toggle--87, #5b5b66);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{
+ --no-alt-text-badge-border-color:ButtonText;
+ --no-alt-text-badge-bg-color:ButtonFace;
+ --no-alt-text-badge-fg-color:ButtonText;
+ }
+ }
+
+:is(.annotationEditorLayer .stampEditor) .noAltTextBadge{
+
+ position:absolute;
+ inset-inline-end:5px;
+ inset-block-end:5px;
+ display:inline-flex;
+ width:32px;
+ height:32px;
+ padding:3px;
+ justify-content:center;
+ align-items:center;
+ pointer-events:none;
+ z-index:1;
+
+ border-radius:2px;
+ border:1px solid var(--no-alt-text-badge-border-color);
+ background:var(--no-alt-text-badge-bg-color);
+ }
+
+:is(:is(.annotationEditorLayer .stampEditor) .noAltTextBadge)::before{
+ content:"";
+ display:inline-block;
+ width:16px;
+ height:16px;
+ -webkit-mask-image:var(--new-alt-text-warning-image);
+ mask-image:var(--new-alt-text-warning-image);
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ background-color:var(--no-alt-text-badge-fg-color);
+ }
+
+:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers{
+ position:absolute;
+ inset:0;
+ z-index:1;
+ }
+
+.hidden:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers){
+ display:none;
+ }
+
+:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer{
+ width:var(--resizer-size);
+ height:var(--resizer-size);
+ background:content-box var(--resizer-bg-color);
+ border:var(--focus-outline-around);
+ border-radius:2px;
+ position:absolute;
+ }
+
+.topLeft:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){
+ top:var(--resizer-shift);
+ left:var(--resizer-shift);
+ }
+
+.topMiddle:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){
+ top:var(--resizer-shift);
+ left:calc(50% + var(--resizer-shift));
+ }
+
+.topRight:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){
+ top:var(--resizer-shift);
+ right:var(--resizer-shift);
+ }
+
+.middleRight:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){
+ top:calc(50% + var(--resizer-shift));
+ right:var(--resizer-shift);
+ }
+
+.bottomRight:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){
+ bottom:var(--resizer-shift);
+ right:var(--resizer-shift);
+ }
+
+.bottomMiddle:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){
+ bottom:var(--resizer-shift);
+ left:calc(50% + var(--resizer-shift));
+ }
+
+.bottomLeft:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){
+ bottom:var(--resizer-shift);
+ left:var(--resizer-shift);
+ }
+
+.middleLeft:is(:is(:is(.annotationEditorLayer :is(.freeTextEditor,.inkEditor,.stampEditor,.signatureEditor)) > .resizers) > .resizer){
+ top:calc(50% + var(--resizer-shift));
+ left:var(--resizer-shift);
+ }
+
+.topLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"])) > .resizers > .resizer),.bottomRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"])) > .resizers > .resizer){
+ cursor:nwse-resize;
+ }
+
+.topMiddle:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"])) > .resizers > .resizer),.bottomMiddle:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"])) > .resizers > .resizer){
+ cursor:ns-resize;
+ }
+
+.topRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"])) > .resizers > .resizer),.bottomLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"])) > .resizers > .resizer){
+ cursor:nesw-resize;
+ }
+
+.middleRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"])) > .resizers > .resizer),.middleLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="180"],[data-editor-rotation="0"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="90"],[data-editor-rotation="270"])) > .resizers > .resizer){
+ cursor:ew-resize;
+ }
+
+.topLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"])) > .resizers > .resizer),.bottomRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"])) > .resizers > .resizer){
+ cursor:nesw-resize;
+ }
+
+.topMiddle:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"])) > .resizers > .resizer),.bottomMiddle:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"])) > .resizers > .resizer){
+ cursor:ew-resize;
+ }
+
+.topRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"])) > .resizers > .resizer),.bottomLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"])) > .resizers > .resizer){
+ cursor:nwse-resize;
+ }
+
+.middleRight:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"])) > .resizers > .resizer),.middleLeft:is(:is(.annotationEditorLayer[data-main-rotation="0"] :is([data-editor-rotation="90"],[data-editor-rotation="270"]),.annotationEditorLayer[data-main-rotation="90"] :is([data-editor-rotation="0"],[data-editor-rotation="180"]),.annotationEditorLayer[data-main-rotation="180"] :is([data-editor-rotation="270"],[data-editor-rotation="90"]),.annotationEditorLayer[data-main-rotation="270"] :is([data-editor-rotation="180"],[data-editor-rotation="0"])) > .resizers > .resizer){
+ cursor:ns-resize;
+ }
+
+:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="90"],[data-main-rotation="90"] [data-editor-rotation="0"],[data-main-rotation="180"] [data-editor-rotation="270"],[data-main-rotation="270"] [data-editor-rotation="180"])) .editToolbar{
+ rotate:270deg;
+ }
+
+[dir="ltr"] :is(:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="90"],[data-main-rotation="90"] [data-editor-rotation="0"],[data-main-rotation="180"] [data-editor-rotation="270"],[data-main-rotation="270"] [data-editor-rotation="180"])) .editToolbar){
+ inset-inline-end:calc(0px - var(--editor-toolbar-vert-offset));
+ inset-block-start:0;
+ }
+
+[dir="rtl"] :is(:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="90"],[data-main-rotation="90"] [data-editor-rotation="0"],[data-main-rotation="180"] [data-editor-rotation="270"],[data-main-rotation="270"] [data-editor-rotation="180"])) .editToolbar){
+ inset-inline-end:calc(100% + var(--editor-toolbar-vert-offset));
+ inset-block-start:0;
+ }
+
+:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="180"],[data-main-rotation="90"] [data-editor-rotation="90"],[data-main-rotation="180"] [data-editor-rotation="0"],[data-main-rotation="270"] [data-editor-rotation="270"])) .editToolbar{
+ rotate:180deg;
+ inset-inline-end:100%;
+ inset-block-start:calc(0px - var(--editor-toolbar-vert-offset));
+ }
+
+:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="270"],[data-main-rotation="90"] [data-editor-rotation="180"],[data-main-rotation="180"] [data-editor-rotation="90"],[data-main-rotation="270"] [data-editor-rotation="0"])) .editToolbar{
+ rotate:90deg;
+ }
+
+[dir="ltr"] :is(:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="270"],[data-main-rotation="90"] [data-editor-rotation="180"],[data-main-rotation="180"] [data-editor-rotation="90"],[data-main-rotation="270"] [data-editor-rotation="0"])) .editToolbar){
+ inset-inline-end:calc(100% + var(--editor-toolbar-vert-offset));
+ inset-block-start:100%;
+ }
+
+[dir="rtl"] :is(:is(.annotationEditorLayer :is([data-main-rotation="0"] [data-editor-rotation="270"],[data-main-rotation="90"] [data-editor-rotation="180"],[data-main-rotation="180"] [data-editor-rotation="90"],[data-main-rotation="270"] [data-editor-rotation="0"])) .editToolbar){
+ inset-inline-start:calc(0px - var(--editor-toolbar-vert-offset));
+ inset-block-start:0;
+ }
+
+.dialog.altText::backdrop{
+ -webkit-mask:url(#alttext-manager-mask);
+ mask:url(#alttext-manager-mask);
+ }
+
+.dialog.altText.positioned{
+ margin:0;
+ }
+
+.dialog.altText #altTextContainer{
+ width:300px;
+ height:-moz-fit-content;
+ height:fit-content;
+ display:inline-flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:16px;
+ }
+
+:is(.dialog.altText #altTextContainer) #overallDescription{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:4px;
+ align-self:stretch;
+ }
+
+:is(:is(.dialog.altText #altTextContainer) #overallDescription) span{
+ align-self:stretch;
+ }
+
+:is(:is(.dialog.altText #altTextContainer) #overallDescription) .title{
+ font-size:13px;
+ font-style:normal;
+ font-weight:590;
+ }
+
+:is(.dialog.altText #altTextContainer) #addDescription{
+ display:flex;
+ flex-direction:column;
+ align-items:stretch;
+ gap:8px;
+ }
+
+:is(:is(.dialog.altText #altTextContainer) #addDescription) .descriptionArea{
+ flex:1;
+ padding-inline:24px 10px;
+ }
+
+:is(:is(:is(.dialog.altText #altTextContainer) #addDescription) .descriptionArea) textarea{
+ width:100%;
+ min-height:75px;
+ }
+
+:is(.dialog.altText #altTextContainer) #buttons{
+ display:flex;
+ justify-content:flex-end;
+ align-items:flex-start;
+ gap:8px;
+ align-self:stretch;
+ }
+
+.dialog.newAltText{
+ --new-alt-text-ai-disclaimer-icon:url(images/altText_disclaimer.svg);
+ --new-alt-text-spinner-icon:url(images/altText_spinner.svg);
+ --csstools-light-dark-toggle--88:var(--csstools-color-scheme--light) #2b2a33;
+ --preview-image-bg-color:var(--csstools-light-dark-toggle--88, #f0f0f4);
+ --preview-image-border:none;
+}
+
+@supports (color: light-dark(red, red)){
+.dialog.newAltText{
+ --preview-image-bg-color:light-dark(#f0f0f4, #2b2a33);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.dialog.newAltText *{
+ --csstools-light-dark-toggle--88:var(--csstools-color-scheme--light) #2b2a33;
+ --preview-image-bg-color:var(--csstools-light-dark-toggle--88, #f0f0f4);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+.dialog.newAltText{
+ --preview-image-bg-color:ButtonFace;
+ --preview-image-border:1px solid ButtonText;
+}
+ }
+
+.dialog.newAltText{
+
+ width:80%;
+ max-width:570px;
+ min-width:300px;
+ padding:0;
+}
+
+.dialog.newAltText.noAi #newAltTextDisclaimer,.dialog.newAltText.noAi #newAltTextCreateAutomatically{
+ display:none !important;
+ }
+
+.dialog.newAltText.aiInstalling #newAltTextCreateAutomatically{
+ display:none !important;
+ }
+
+.dialog.newAltText.aiInstalling #newAltTextDownloadModel{
+ display:flex !important;
+ }
+
+.dialog.newAltText.error #newAltTextNotNow{
+ display:none !important;
+ }
+
+.dialog.newAltText.error #newAltTextCancel{
+ display:inline-block !important;
+ }
+
+.dialog.newAltText:not(.error) #newAltTextError{
+ display:none !important;
+ }
+
+.dialog.newAltText #newAltTextContainer{
+ display:flex;
+ width:auto;
+ padding:16px;
+ flex-direction:column;
+ justify-content:flex-end;
+ align-items:flex-start;
+ gap:12px;
+ flex:0 1 auto;
+ line-height:normal;
+ }
+
+:is(.dialog.newAltText #newAltTextContainer) #mainContent{
+ display:flex;
+ justify-content:flex-end;
+ align-items:flex-start;
+ gap:12px;
+ align-self:stretch;
+ flex:1 1 auto;
+ }
+
+:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionAndSettings{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:16px;
+ flex:1 0 0;
+ align-self:stretch;
+ }
+
+:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:8px;
+ align-self:stretch;
+ flex:1 1 auto;
+ }
+
+:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer{
+ width:100%;
+ height:70px;
+ position:relative;
+ }
+
+:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea{
+ width:100%;
+ height:100%;
+ padding:8px;
+ }
+
+:is(:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea)::-moz-placeholder{
+ color:var(--text-secondary-color);
+ }
+
+:is(:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea)::placeholder{
+ color:var(--text-secondary-color);
+ }
+
+:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) .altTextSpinner{
+ display:none;
+ position:absolute;
+ width:16px;
+ height:16px;
+ inset-inline-start:8px;
+ inset-block-start:8px;
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ background-color:var(--text-secondary-color);
+ pointer-events:none;
+ }
+
+.loading:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea::-moz-placeholder{
+ color:transparent;
+ }
+
+.loading:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) textarea::placeholder{
+ color:transparent;
+ }
+
+.loading:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescriptionContainer) .altTextSpinner{
+ display:inline-block;
+ -webkit-mask-image:var(--new-alt-text-spinner-icon);
+ mask-image:var(--new-alt-text-spinner-icon);
+ }
+
+:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDescription{
+ font-size:11px;
+ }
+
+:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDisclaimer{
+ display:flex;
+ flex-direction:row;
+ align-items:flex-start;
+ gap:4px;
+ font-size:11px;
+ }
+
+:is(:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #descriptionInstruction) #newAltTextDisclaimer)::before{
+ content:"";
+ display:inline-block;
+ width:17px;
+ height:16px;
+ -webkit-mask-image:var(--new-alt-text-ai-disclaimer-icon);
+ mask-image:var(--new-alt-text-ai-disclaimer-icon);
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ background-color:var(--text-secondary-color);
+ flex:1 0 auto;
+ }
+
+:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextDownloadModel{
+ display:flex;
+ align-items:center;
+ gap:4px;
+ align-self:stretch;
+ }
+
+:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextDownloadModel)::before{
+ content:"";
+ display:inline-block;
+ width:16px;
+ height:16px;
+ -webkit-mask-image:var(--new-alt-text-spinner-icon);
+ mask-image:var(--new-alt-text-spinner-icon);
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ background-color:var(--text-secondary-color);
+ }
+
+:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextImagePreview{
+ width:180px;
+ aspect-ratio:1;
+ display:flex;
+ justify-content:center;
+ align-items:center;
+ flex:0 0 auto;
+ background-color:var(--preview-image-bg-color);
+ border:var(--preview-image-border);
+ }
+
+:is(:is(:is(.dialog.newAltText #newAltTextContainer) #mainContent) #newAltTextImagePreview) > canvas{
+ max-width:100%;
+ max-height:100%;
+ }
+
+.colorPicker{
+ --csstools-light-dark-toggle--89:var(--csstools-color-scheme--light) #80ebff;
+ --hover-outline-color:var(--csstools-light-dark-toggle--89, #0250bb);
+ --csstools-light-dark-toggle--90:var(--csstools-color-scheme--light) #aaf2ff;
+ --selected-outline-color:var(--csstools-light-dark-toggle--90, #0060df);
+ --csstools-light-dark-toggle--91:var(--csstools-color-scheme--light) #52525e;
+ --swatch-border-color:var(--csstools-light-dark-toggle--91, #cfcfd8);
+}
+
+@supports (color: light-dark(red, red)){
+.colorPicker{
+ --hover-outline-color:light-dark(#0250bb, #80ebff);
+ --selected-outline-color:light-dark(#0060df, #aaf2ff);
+ --swatch-border-color:light-dark(#cfcfd8, #52525e);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.colorPicker *{
+ --csstools-light-dark-toggle--89:var(--csstools-color-scheme--light) #80ebff;
+ --hover-outline-color:var(--csstools-light-dark-toggle--89, #0250bb);
+ --csstools-light-dark-toggle--90:var(--csstools-color-scheme--light) #aaf2ff;
+ --selected-outline-color:var(--csstools-light-dark-toggle--90, #0060df);
+ --csstools-light-dark-toggle--91:var(--csstools-color-scheme--light) #52525e;
+ --swatch-border-color:var(--csstools-light-dark-toggle--91, #cfcfd8);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+.colorPicker{
+ --hover-outline-color:Highlight;
+ --selected-outline-color:var(--hover-outline-color);
+ --swatch-border-color:ButtonText;
+}
+ }
+
+.colorPicker .swatch{
+ width:16px;
+ height:16px;
+ border:1px solid var(--swatch-border-color);
+ border-radius:100%;
+ outline-offset:2px;
+ box-sizing:border-box;
+ forced-color-adjust:none;
+ }
+
+.colorPicker button:is(:hover,.selected) > .swatch{
+ border:none;
+ }
+
+.basicColorPicker{
+ width:28px;
+}
+
+.basicColorPicker::-moz-color-swatch{
+ border-radius:100%;
+ margin:0;
+ }
+
+.basicColorPicker::-webkit-color-swatch{
+ border-radius:100%;
+ margin:0;
+ }
+
+.annotationEditorLayer[data-main-rotation="0"] .highlightEditor:not(.free) > .editToolbar{
+ rotate:0deg;
+ }
+
+.annotationEditorLayer[data-main-rotation="90"] .highlightEditor:not(.free) > .editToolbar{
+ rotate:270deg;
+ }
+
+.annotationEditorLayer[data-main-rotation="180"] .highlightEditor:not(.free) > .editToolbar{
+ rotate:180deg;
+ }
+
+.annotationEditorLayer[data-main-rotation="270"] .highlightEditor:not(.free) > .editToolbar{
+ rotate:90deg;
+ }
+
+.annotationEditorLayer .highlightEditor{
+ position:absolute;
+ background:transparent;
+ z-index:1;
+ cursor:auto;
+ max-width:100%;
+ max-height:100%;
+ border:none;
+ outline:none;
+ pointer-events:none;
+ transform-origin:0 0;
+ }
+
+:is(.annotationEditorLayer .highlightEditor):not(.free){
+ transform:none;
+ }
+
+:is(.annotationEditorLayer .highlightEditor) .internal{
+ position:absolute;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ pointer-events:auto;
+ }
+
+.disabled:is(.annotationEditorLayer .highlightEditor) .internal{
+ pointer-events:none;
+ }
+
+.selectedEditor:is(.annotationEditorLayer .highlightEditor) .internal{
+ cursor:pointer;
+ }
+
+:is(.annotationEditorLayer .highlightEditor) .editToolbar{
+ --editor-toolbar-colorpicker-arrow-image:url(images/toolbarButton-menuArrow.svg);
+
+ transform-origin:center !important;
+ }
+
+:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker{
+ position:relative;
+ width:auto;
+ display:flex;
+ justify-content:center;
+ align-items:center;
+ gap:4px;
+ padding:4px;
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker)::after{
+ content:"";
+ -webkit-mask-image:var(--editor-toolbar-colorpicker-arrow-image);
+ mask-image:var(--editor-toolbar-colorpicker-arrow-image);
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ display:inline-block;
+ background-color:var(--editor-toolbar-fg-color);
+ width:12px;
+ height:12px;
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):hover::after{
+ background-color:var(--editor-toolbar-hover-fg-color);
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):has(.dropdown:not(.hidden)){
+ background-color:var(--editor-toolbar-hover-bg-color);
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker):has(.dropdown:not(.hidden))::after{
+ scale:-1;
+ }
+
+:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown{
+ position:absolute;
+ display:flex;
+ justify-content:center;
+ align-items:center;
+ flex-direction:column;
+ gap:11px;
+ padding-block:8px;
+ border-radius:6px;
+ background-color:var(--editor-toolbar-bg-color);
+ border:1px solid var(--editor-toolbar-border-color);
+ box-shadow:var(--editor-toolbar-shadow);
+ inset-block-start:calc(100% + 4px);
+ width:calc(100% + 2 * var(--editor-toolbar-padding));
+ }
+
+:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button{
+ width:100%;
+ height:auto;
+ border:none;
+ cursor:pointer;
+ display:flex;
+ justify-content:center;
+ align-items:center;
+ background:none;
+ }
+
+:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button):is(:active,:focus-visible){
+ outline:none;
+ }
+
+:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button) > .swatch{
+ outline-offset:2px;
+ }
+
+[aria-selected="true"]:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button) > .swatch{
+ outline:2px solid var(--selected-outline-color);
+ }
+
+:is(:is(:is(:is(:is(:is(.annotationEditorLayer .highlightEditor) .editToolbar) .buttons) .colorPicker) .dropdown) button):is(:hover,:active,:focus-visible) > .swatch{
+ outline:2px solid var(--hover-outline-color);
+ }
+
+.editorParamsToolbar:has(#highlightParamsToolbarContainer){
+ padding:unset;
+}
+
+#highlightParamsToolbarContainer{
+ gap:16px;
+ padding-inline:10px;
+ padding-block-end:12px;
+}
+
+#highlightParamsToolbarContainer .colorPicker{
+ display:flex;
+ flex-direction:column;
+ gap:8px;
+ }
+
+:is(#highlightParamsToolbarContainer .colorPicker) .dropdown{
+ display:flex;
+ justify-content:space-between;
+ align-items:center;
+ flex-direction:row;
+ height:auto;
+ }
+
+:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button{
+ width:auto;
+ height:auto;
+ border:none;
+ cursor:pointer;
+ display:flex;
+ justify-content:center;
+ align-items:center;
+ background:none;
+ flex:0 0 auto;
+ padding:0;
+ }
+
+:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button) .swatch{
+ width:24px;
+ height:24px;
+ }
+
+:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button):is(:active,:focus-visible){
+ outline:none;
+ }
+
+[aria-selected="true"]:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button) > .swatch{
+ outline:2px solid var(--selected-outline-color);
+ }
+
+:is(:is(:is(#highlightParamsToolbarContainer .colorPicker) .dropdown) button):is(:hover,:active,:focus-visible) > .swatch{
+ outline:2px solid var(--hover-outline-color);
+ }
+
+#highlightParamsToolbarContainer #editorHighlightThickness{
+ display:flex;
+ flex-direction:column;
+ align-items:center;
+ gap:4px;
+ align-self:stretch;
+ }
+
+:is(#highlightParamsToolbarContainer #editorHighlightThickness) .editorParamsLabel{
+ height:auto;
+ align-self:stretch;
+ }
+
+:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker{
+ display:flex;
+ justify-content:space-between;
+ align-items:center;
+ align-self:stretch;
+
+ --csstools-light-dark-toggle--92:var(--csstools-color-scheme--light) #80808e;
+
+ --example-color:var(--csstools-light-dark-toggle--92, #bfbfc9);
+ }
+
+@supports (color: light-dark(red, red)){
+:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker{
+
+ --example-color:light-dark(#bfbfc9, #80808e);
+ }
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker) *{
+
+ --csstools-light-dark-toggle--92:var(--csstools-color-scheme--light) #80808e;
+
+ --example-color:var(--csstools-light-dark-toggle--92, #bfbfc9);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker{
+ --example-color:CanvasText;
+ }
+ }
+
+:is(:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker) > .editorParamsSlider[disabled]){
+ opacity:0.4;
+ }
+
+:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker)::before,:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker)::after{
+ content:"";
+ width:8px;
+ aspect-ratio:1;
+ display:block;
+ border-radius:100%;
+ background-color:var(--example-color);
+ }
+
+:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker)::after{
+ width:24px;
+ }
+
+:is(:is(#highlightParamsToolbarContainer #editorHighlightThickness) .thicknessPicker) .editorParamsSlider{
+ width:unset;
+ height:14px;
+ }
+
+#highlightParamsToolbarContainer #editorHighlightVisibility{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ gap:8px;
+ align-self:stretch;
+ }
+
+:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{
+ --csstools-light-dark-toggle--93:var(--csstools-color-scheme--light) #8f8f9d;
+ --divider-color:var(--csstools-light-dark-toggle--93, #d7d7db);
+ }
+
+@supports (color: light-dark(red, red)){
+:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{
+ --divider-color:light-dark(#d7d7db, #8f8f9d);
+ }
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:is(:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider) *{
+ --csstools-light-dark-toggle--93:var(--csstools-color-scheme--light) #8f8f9d;
+ --divider-color:var(--csstools-light-dark-toggle--93, #d7d7db);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{
+ --divider-color:CanvasText;
+ }
+ }
+
+:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .divider{
+
+ margin-block:4px;
+ width:100%;
+ height:1px;
+ background-color:var(--divider-color);
+ }
+
+:is(#highlightParamsToolbarContainer #editorHighlightVisibility) .toggler{
+ display:flex;
+ justify-content:space-between;
+ align-items:center;
+ align-self:stretch;
+ }
+
+#altTextSettingsDialog{
+ padding:16px;
+}
+
+#altTextSettingsDialog #altTextSettingsContainer{
+ display:flex;
+ width:573px;
+ flex-direction:column;
+ gap:16px;
+ }
+
+:is(#altTextSettingsDialog #altTextSettingsContainer) .mainContainer{
+ gap:16px;
+ }
+
+:is(#altTextSettingsDialog #altTextSettingsContainer) .description{
+ color:var(--text-secondary-color);
+ }
+
+:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings{
+ display:flex;
+ flex-direction:column;
+ gap:12px;
+ }
+
+:is(#altTextSettingsDialog #altTextSettingsContainer) #automaticAltText,:is(#altTextSettingsDialog #altTextSettingsContainer) #altTextEditor{
+ display:flex;
+ flex-direction:column;
+ gap:8px;
+ }
+
+:is(#altTextSettingsDialog #altTextSettingsContainer) #createModelDescription,:is(#altTextSettingsDialog #altTextSettingsContainer) #aiModelSettings,:is(#altTextSettingsDialog #altTextSettingsContainer) #showAltTextDialogDescription{
+ padding-inline-start:40px;
+ }
+
+:is(#altTextSettingsDialog #altTextSettingsContainer) #automaticSettings{
+ display:flex;
+ flex-direction:column;
+ gap:16px;
+ }
+
+button.hasPopupMenu[aria-expanded="true"] + menu{
+ visibility:visible;
+ }
+
+button.hasPopupMenu[aria-expanded="false"] + menu{
+ visibility:hidden;
+ }
+
+.popupMenu{
+ --menuitem-checkmark-icon:url(images/checkmark.svg);
+ --menu-mark-icon-size:0;
+ --menu-icon-size:16px;
+ --menuitem-gap:5px;
+ --menuitem-border-color:transparent;
+ --menuitem-active-bg:color-mix(
+ in srgb,
+ var(--menu-text-color),
+ transparent 79%
+ );
+ --menuitem-text-active-fg:var(--menu-text-color);
+ --menuitem-active-border-color:var(--menuitem-border-color);
+ --menuitem-focus-bg:color-mix(
+ in srgb,
+ var(--menu-text-color),
+ transparent 93%
+ );
+ --csstools-light-dark-toggle--94:var(--csstools-color-scheme--light) #00cadb;
+ --menuitem-focus-outline-color:var(--csstools-light-dark-toggle--94, #0062fa);
+ --csstools-light-dark-toggle--95:var(--csstools-color-scheme--light) black;
+ --menuitem-focus-border-color:var(--csstools-light-dark-toggle--95, white);
+
+ --csstools-light-dark-toggle--96:var(--csstools-color-scheme--light) #23222b;
+
+ --menu-bg:var(--csstools-light-dark-toggle--96, white);
+ --menu-background-blend-mode:normal;
+ --csstools-light-dark-toggle--97:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--98:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --menu-box-shadow:0 0.375px 1.5px 0 var(--csstools-light-dark-toggle--97, rgb(0 0 0 / 0.05)), 0 3px 12px 0 var(--csstools-light-dark-toggle--98, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--99:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.1);
+ --menu-border-color:var(--csstools-light-dark-toggle--99, rgb(21 20 26 / 0.1));
+ --menuitem-border-radius:8px;
+ --menu-backdrop-filter:none;
+ --csstools-light-dark-toggle--100:var(--csstools-color-scheme--light) #fbfbfe;
+ --menu-text-color:var(--csstools-light-dark-toggle--100, #15141a);
+ --menu-text-disabled-color:var(--menu-text-color);
+ --menuitem-text-hover-fg:var(--menu-text-color);
+ --menuitem-hover-bg:color-mix(
+ in srgb,
+ var(--menu-text-color),
+ transparent 86%
+ );
+ --menuitem-hover-background-blend-mode:normal;
+ --disabled-opacity:0.62;
+}
+
+@supports (color: light-dark(red, red)){
+.popupMenu{
+ --menuitem-focus-outline-color:light-dark(#0062fa, #00cadb);
+ --menuitem-focus-border-color:light-dark(white, black);
+
+ --menu-bg:light-dark(white, #23222b);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+.popupMenu{
+ --menu-box-shadow:0 0.375px 1.5px 0 light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 3px 12px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));
+ --menu-border-color:light-dark(rgb(21 20 26 / 0.1), rgb(251 251 254 / 0.1));
+}
+}
+
+@supports (color: light-dark(red, red)){
+.popupMenu{
+ --menu-text-color:light-dark(#15141a, #fbfbfe);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.popupMenu *{
+ --csstools-light-dark-toggle--94:var(--csstools-color-scheme--light) #00cadb;
+ --menuitem-focus-outline-color:var(--csstools-light-dark-toggle--94, #0062fa);
+ --csstools-light-dark-toggle--95:var(--csstools-color-scheme--light) black;
+ --menuitem-focus-border-color:var(--csstools-light-dark-toggle--95, white);
+
+ --csstools-light-dark-toggle--96:var(--csstools-color-scheme--light) #23222b;
+
+ --menu-bg:var(--csstools-light-dark-toggle--96, white);
+ --csstools-light-dark-toggle--97:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--98:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --menu-box-shadow:0 0.375px 1.5px 0 var(--csstools-light-dark-toggle--97, rgb(0 0 0 / 0.05)), 0 3px 12px 0 var(--csstools-light-dark-toggle--98, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--99:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.1);
+ --menu-border-color:var(--csstools-light-dark-toggle--99, rgb(21 20 26 / 0.1));
+ --csstools-light-dark-toggle--100:var(--csstools-color-scheme--light) #fbfbfe;
+ --menu-text-color:var(--csstools-light-dark-toggle--100, #15141a);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+.popupMenu{
+ --menu-bg:Canvas;
+ --menu-background-blend-mode:normal;
+ --menu-box-shadow:none;
+ --menu-backdrop-filter:none;
+ --menu-text-color:ButtonText;
+ --menu-text-disabled-color:GrayText;
+ --menu-border-color:CanvasText;
+ --menuitem-border-color:none;
+ --menuitem-hover-bg:SelectedItemText;
+ --menuitem-text-hover-fg:SelectedItem;
+ --menuitem-active-bg:SelectedItemText;
+ --menuitem-active-border-color:ButtonText;
+ --menuitem-text-active-fg:SelectedItem;
+ --menuitem-focus-bg:ButtonFace;
+ --menuitem-focus-outline-color:CanvasText;
+ --menuitem-focus-border-color:none;
+ --disabled-opacity:1;
+}
+ }
+
+.popupMenu{
+
+ display:flex;
+ flex-direction:column;
+ width:-moz-max-content;
+ width:max-content;
+ height:auto;
+ position:relative;
+ left:0;
+ top:1px;
+ margin:0;
+ padding:5px;
+ box-sizing:border-box;
+
+ background:var(--menu-bg);
+ background-blend-mode:var(--menu-background-blend-mode);
+ box-shadow:var(--menu-box-shadow);
+ border-radius:6px;
+ border:1px solid var(--menu-border-color);
+ -webkit-backdrop-filter:var(--menu-backdrop-filter);
+ backdrop-filter:var(--menu-backdrop-filter);
+}
+
+.popupMenu.withMark{
+ --menu-mark-icon-size:16px;
+ }
+
+.popupMenu > button{
+ display:flex;
+ align-items:center;
+ position:relative;
+ width:100%;
+ height:26px;
+ padding-inline:calc(var(--menu-mark-icon-size) + var(--menuitem-gap)) var(--menuitem-gap);
+ gap:var(--menuitem-gap);
+ box-sizing:border-box;
+ border-radius:var(--menuitem-border-radius);
+ border:1px solid var(--menuitem-border-color);
+ background:transparent;
+ }
+
+.selected:is(.popupMenu > button)::after{
+ content:"";
+ display:inline-block;
+ width:11px;
+ height:11px;
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ -webkit-mask-image:var(--menuitem-checkmark-icon);
+ mask-image:var(--menuitem-checkmark-icon);
+ background-color:var(--menu-text-color);
+ position:absolute;
+ inset-inline-start:var(--menuitem-gap);
+ top:50%;
+ transform:translateY(-50%);
+ }
+
+:is(.popupMenu > button):disabled{
+ opacity:var(--disabled-opacity);
+ }
+
+.selected:is(.popupMenu > button):disabled::after{
+ background-color:var(--menu-text-disabled-color);
+ }
+
+:is(.popupMenu > button):disabled:not(.noIcon)::before{
+ background-color:var(--menu-text-disabled-color);
+ }
+
+:is(.popupMenu > button):disabled > span{
+ color:var(--menu-text-disabled-color);
+ }
+
+:is(.popupMenu > button):not(:disabled):hover{
+ background:var(--menuitem-hover-bg);
+ background-blend-mode:var(--menuitem-hover-background-blend-mode);
+ }
+
+:is(.popupMenu > button):not(:disabled):hover:not(.noIcon)::before{
+ background-color:var(--menuitem-text-hover-fg);
+ }
+
+:is(.popupMenu > button):not(:disabled):hover > span{
+ color:var(--menuitem-text-hover-fg);
+ }
+
+.selected:is(.popupMenu > button):not(:disabled):hover::after{
+ background-color:var(--menuitem-text-hover-fg);
+ }
+
+:is(.popupMenu > button):not(:disabled):active{
+ background-color:var(--menuitem-active-bg);
+ border-color:var(--menuitem-active-border-color);
+ }
+
+:is(.popupMenu > button):not(:disabled):active > span{
+ color:var(--menuitem-text-active-fg);
+ }
+
+:is(.popupMenu > button):not(:disabled):focus-visible{
+ border-color:var(--menuitem-focus-border-color);
+ background-color:var(--menuitem-focus-bg);
+ outline:2px solid var(--menuitem-focus-outline-color);
+ outline-offset:2px;
+ }
+
+:is(.popupMenu > button):not(.noIcon)::before{
+ display:inline-block;
+ width:var(--menu-icon-size);
+ height:var(--menu-icon-size);
+ content:"";
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ -webkit-mask-position:center;
+ mask-position:center;
+ background-color:var(--menu-text-color);
+ }
+
+:is(.popupMenu > button) > span{
+ display:flex;
+ align-items:center;
+ align-self:stretch;
+ width:100%;
+ min-width:-moz-max-content;
+ min-width:max-content;
+ text-align:start;
+ color:var(--menu-text-color);
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ padding-inline-start:6px;
+
+ font:menu;
+ font-size:13px;
+ font-style:normal;
+ font-weight:510;
+ line-height:normal;
+ }
+
+.treeView{
+ --csstools-light-dark-toggle--101:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.8);
+ --treeitem-color:var(--csstools-light-dark-toggle--101, rgb(0 0 0 / 0.8));
+ --csstools-light-dark-toggle--102:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.15);
+ --treeitem-bg-color:var(--csstools-light-dark-toggle--102, rgb(0 0 0 / 0.15));
+ --csstools-light-dark-toggle--103:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);
+ --treeitem-hover-color:var(--csstools-light-dark-toggle--103, rgb(0 0 0 / 0.9));
+ --csstools-light-dark-toggle--104:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);
+ --treeitem-selected-color:var(--csstools-light-dark-toggle--104, rgb(0 0 0 / 0.9));
+ --csstools-light-dark-toggle--105:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.25);
+ --treeitem-selected-bg-color:var(--csstools-light-dark-toggle--105, rgb(0 0 0 / 0.25));
+ --treeitem-expanded-icon:url(images/treeitem-expanded.svg);
+ --treeitem-collapsed-icon:url(images/treeitem-collapsed.svg);
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+.treeView{
+ --treeitem-color:light-dark(rgb(0 0 0 / 0.8), rgb(255 255 255 / 0.8));
+ --treeitem-bg-color:light-dark(rgb(0 0 0 / 0.15), rgb(255 255 255 / 0.15));
+ --treeitem-hover-color:light-dark(rgb(0 0 0 / 0.9), rgb(255 255 255 / 0.9));
+ --treeitem-selected-color:light-dark(
+ rgb(0 0 0 / 0.9),
+ rgb(255 255 255 / 0.9)
+ );
+ --treeitem-selected-bg-color:light-dark(
+ rgb(0 0 0 / 0.25),
+ rgb(255 255 255 / 0.25)
+ );
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.treeView *{
+ --csstools-light-dark-toggle--101:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.8);
+ --treeitem-color:var(--csstools-light-dark-toggle--101, rgb(0 0 0 / 0.8));
+ --csstools-light-dark-toggle--102:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.15);
+ --treeitem-bg-color:var(--csstools-light-dark-toggle--102, rgb(0 0 0 / 0.15));
+ --csstools-light-dark-toggle--103:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);
+ --treeitem-hover-color:var(--csstools-light-dark-toggle--103, rgb(0 0 0 / 0.9));
+ --csstools-light-dark-toggle--104:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);
+ --treeitem-selected-color:var(--csstools-light-dark-toggle--104, rgb(0 0 0 / 0.9));
+ --csstools-light-dark-toggle--105:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.25);
+ --treeitem-selected-bg-color:var(--csstools-light-dark-toggle--105, rgb(0 0 0 / 0.25));
+ }
+}
+
+:is(.treeView.withNesting .treeItemToggler)::before{
+ position:absolute;
+ display:inline-block;
+ width:16px;
+ height:16px;
+ inset-inline-end:4px;
+
+ content:"";
+ background-color:var(--toolbar-icon-bg-color);
+ -webkit-mask-image:var(--treeitem-expanded-icon);
+ mask-image:var(--treeitem-expanded-icon);
+ -webkit-mask-size:cover;
+ mask-size:cover;
+ }
+
+.treeView.withNesting .treeItemToggler{
+
+ position:relative;
+ float:inline-start;
+ height:0;
+ width:0;
+ color:rgb(255 255 255 / 0.5);
+ }
+
+.treeItemsHidden:is(.treeView.withNesting .treeItemToggler)::before{
+ -webkit-mask-image:var(--treeitem-collapsed-icon);
+ mask-image:var(--treeitem-collapsed-icon);
+ transform:scaleX(var(--dir-factor));
+ }
+
+.treeItemsHidden:is(.treeView.withNesting .treeItemToggler) ~ .treeItems{
+ display:none;
+ }
+
+:is(.treeView.withNesting .treeItemToggler):hover + a,:is(.treeView.withNesting .treeItemToggler):hover ~ .treeItems{
+ background-color:var(--treeitem-bg-color);
+ background-clip:padding-box;
+ border-radius:2px;
+ color:var(--treeitem-hover-color);
+ }
+
+.treeView.withNesting > .treeItem,.treeView.withNesting .treeItem > .treeItems{
+ margin-inline-start:20px;
+ }
+
+:is(#layersView.treeView .treeItem > a) *{
+ cursor:pointer;
+ }
+
+:is(#layersView.treeView .treeItem > a) > label{
+ display:flex;
+ align-items:center;
+ padding-inline-start:4px;
+ }
+
+:is(:is(#layersView.treeView .treeItem > a) > label) > input{
+ margin-top:1px;
+ }
+
+:is(.treeView .treeItem) > a{
+ text-decoration:none;
+ display:inline-block;
+ min-width:calc(100% - 4px);
+ height:auto;
+ margin-bottom:1px;
+ padding:2px 0 5px;
+ padding-inline-start:4px;
+ border-radius:2px;
+ color:var(--treeitem-color);
+ font-size:13px;
+ line-height:15px;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ white-space:normal;
+ cursor:default;
+ }
+
+:is(:is(.treeView .treeItem) > a):hover{
+ background-color:var(--treeitem-bg-color);
+ background-clip:padding-box;
+ border-radius:2px;
+ color:var(--treeitem-hover-color);
+ }
+
+.selected:is(.treeView .treeItem) > a{
+ background-color:var(--treeitem-selected-bg-color);
+ color:var(--treeitem-selected-color);
+ }
+
+#outerContainer.viewsManagerMoving #viewsManager{
+ visibility:visible;
+ }
+
+#outerContainer.viewsManagerOpen #viewsManager{
+ visibility:visible;
+ inset-inline-start:8px;
+ }
+
+#outerContainer.viewsManagerOpen #viewerContainer:not(.pdfPresentationMode){
+ inset-inline-start:var(--viewsManager-width, 0);
+ transition-property:inset-inline-start;
+ }
+
+#outerContainer.viewsManagerResizing :is(#sidebarContainer,#viewerContainer,#loadingBar){
+ transition-duration:0s;
+ }
+
+#viewsManager{
+ --views-manager-button-icon:url(images/pages_viewButton.svg);
+ --views-manager-button-arrow-icon:url(images/pages_viewArrow.svg);
+ --views-manager-add-file-button-icon:url(images/toolbarButton-zoomIn.svg);
+ --current-outline-button-icon:url(images/toolbarButton-currentOutlineItem.svg);
+ --menuitem-thumbnailsView-icon:url(images/pages_viewButton.svg);
+ --menuitem-outlinesView-icon:url(images/toolbarButton-viewOutline.svg);
+ --menuitem-attachmentsView-icon:url(images/toolbarButton-viewAttachments.svg);
+ --menuitem-layersView-icon:url(images/toolbarButton-viewLayers.svg);
+ --manage-button-icon:url(images/toolbarButton-pageDown.svg);
+ --close-button-icon:url(images/pages_closeButton.svg);
+ --undo-label-icon:url(images/altText_done.svg);
+ --pages-selected-icon:url(images/pages_selected.svg);
+ --spinner-icon:url(images/altText_spinner.svg);
+
+ --csstools-light-dark-toggle--106:var(--csstools-color-scheme--light) rgb(66 65 77 / 0.92);
+
+ --sidebar-bg-color:var(--csstools-light-dark-toggle--106, rgb(255 255 255 / 0.92));
+ --sidebar-backdrop-filter:blur(7px);
+ --sidebar-width:230px;
+ --sidebar-min-width:min-content;
+ --sidebar-max-width:50vw;
+ --sidebar-block-padding:8px;
+
+ --csstools-light-dark-toggle--107:var(--csstools-color-scheme--light) #fbfbfe;
+
+ --text-color:var(--csstools-light-dark-toggle--107, #15141a);
+ --button-fg:var(--text-color);
+ --button-no-bg:transparent;
+ --csstools-light-dark-toggle--108:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);
+ --button-bg:var(--csstools-light-dark-toggle--108, rgb(21 20 26 / 0.07));
+ --button-border-color:transparent;
+ --csstools-light-dark-toggle--109:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);
+ --button-hover-bg:var(--csstools-light-dark-toggle--109, rgb(21 20 26 / 0.14));
+ --button-hover-fg:var(--text-color);
+ --button-hover-border-color:var(--button-border-color);
+ --csstools-light-dark-toggle--110:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);
+ --button-active-bg:var(--csstools-light-dark-toggle--110, rgb(21 20 26 / 0.21));
+ --button-active-fg:var(--text-color);
+ --button-active-border-color:var(--button-border-color);
+ --button-focus-no-bg:color-mix(in srgb, var(--text-color), transparent 93%);
+ --csstools-light-dark-toggle--111:var(--csstools-color-scheme--light) #00cadb;
+ --button-focus-outline-color:var(--csstools-light-dark-toggle--111, #0062fa);
+ --csstools-light-dark-toggle--112:var(--csstools-color-scheme--light) black;
+ --button-focus-border-color:var(--csstools-light-dark-toggle--112, white);
+ --status-border-color:transparent;
+ --csstools-light-dark-toggle--113:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.03);
+ --status-actions-bg:var(--csstools-light-dark-toggle--113, rgb(21 20 26 / 0.03));
+ --csstools-light-dark-toggle--114:var(--csstools-color-scheme--light) rgb(0 202 219 / 0.08);
+ --status-undo-bg:var(--csstools-light-dark-toggle--114, rgb(0 98 250 / 0.08));
+ --status-waiting-bg:var(--status-undo-bg);
+ --csstools-light-dark-toggle--115:var(--csstools-color-scheme--light) #00cadb;
+ --indicator-color:var(--csstools-light-dark-toggle--115, #0062fa);
+ --csstools-light-dark-toggle--116:var(--csstools-color-scheme--light) #6e001f;
+ --status-warning-bg:var(--csstools-light-dark-toggle--116, #ffe8ea);
+ --csstools-light-dark-toggle--117:var(--csstools-color-scheme--light) #ffa0aa;
+ --indicator-warning-color:var(--csstools-light-dark-toggle--117, #b20037);
+ --csstools-light-dark-toggle--118:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--119:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --header-shadow:0 0.25px 0.75px -0.75px var(--csstools-light-dark-toggle--118, rgb(0 0 0 / 0.05)), 0 2px 6px -6px var(--csstools-light-dark-toggle--119, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--120:var(--csstools-color-scheme--light) #42414e;
+ --header-bg:var(--csstools-light-dark-toggle--120, rgb(255 255 255 / 0.92));
+ --image-outline:none;
+ --image-border-width:6px;
+ --csstools-light-dark-toggle--121:var(--csstools-color-scheme--light) #3a3944;
+ --image-border-color:var(--csstools-light-dark-toggle--121, #cfcfd8);
+ --image-hover-border-color:#bfbfc9;
+ --image-current-border-color:var(--button-focus-outline-color);
+ --image-current-focused-outline-color:var(--image-hover-border-color);
+ --csstools-light-dark-toggle--122:var(--csstools-color-scheme--light) #42414d;
+ --image-page-number-bg:var(--csstools-light-dark-toggle--122, #f0f0f4);
+ --image-page-number-fg:var(--text-color);
+ --image-page-number-border-color:transparent;
+ --image-hover-page-number-bg:var(--image-page-number-bg);
+ --image-hover-page-number-fg:var(--image-page-number-fg);
+ --image-current-page-number-bg:var(--image-current-border-color);
+ --csstools-light-dark-toggle--123:var(--csstools-color-scheme--light) #15141a;
+ --image-current-page-number-fg:var(--csstools-light-dark-toggle--123, #fff);
+ --image-current-hover-page-number-bg:var(--image-current-page-number-bg);
+ --image-current-hover-page-number-fg:var(--image-current-page-number-fg);
+ --csstools-light-dark-toggle--124:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--125:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --image-shadow:0 0.375px 1.5px 0 var(--csstools-light-dark-toggle--124, rgb(0 0 0 / 0.05)), 0 0 0 1px var(--image-border-color), 0 3px 12px 0 var(--csstools-light-dark-toggle--125, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--126:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--127:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.1);
+ --csstools-light-dark-toggle--128:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --image-hover-shadow:0 0.375px 1.5px 0 var(--csstools-light-dark-toggle--126, rgb(0 0 0 / 0.05)), 0 0 0 1px var(--csstools-light-dark-toggle--127, rgb(21 20 26 / 0.1)), 0 0 0 var(--image-border-width) var(--image-hover-border-color), 0 3px 12px 0 var(--csstools-light-dark-toggle--128, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--129:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--130:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --image-current-shadow:0 0.375px 1.5px 0 var(--csstools-light-dark-toggle--129, rgb(0 0 0 / 0.05)), 0 0 0 var(--image-border-width) var(--image-current-border-color), 0 3px 12px 0 var(--csstools-light-dark-toggle--130, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--131:var(--csstools-color-scheme--light) rgb(0 202 219 / 0.08);
+ --image-dragging-placeholder-bg:var(--csstools-light-dark-toggle--131, rgb(0 98 250 / 0.08));
+ --image-dragging-placeholder-border:var(--image-outline);
+ --multiple-dragging-bg:white;
+ --image-multiple-dragging-shadow:0 0 0 var(--image-border-width) var(--image-current-border-color), var(--image-border-width) var(--image-border-width) 0 calc(var(--image-border-width) / 2) var(--multiple-dragging-bg), var(--image-border-width) var(--image-border-width) 0 calc(3 * var(--image-border-width) / 2) var(--image-current-border-color);
+ --image-dragging-shadow:0 0 0 var(--image-border-width) var(--image-current-border-color);
+ --multiple-dragging-indicator-bg:var(--indicator-color);
+ --csstools-light-dark-toggle--132:var(--csstools-color-scheme--light) #15141a;
+ --multiple-dragging-text-color:var(--csstools-light-dark-toggle--132, #fbfbfe);
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+#viewsManager{
+
+ --sidebar-bg-color:light-dark(rgb(255 255 255 / 0.92), rgb(66 65 77 / 0.92));
+}
+}
+
+@supports (color: light-dark(red, red)){
+#viewsManager{
+
+ --text-color:light-dark(#15141a, #fbfbfe);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+#viewsManager{
+ --button-bg:light-dark(rgb(21 20 26 / 0.07), rgb(251 251 254 / 0.07));
+ --button-hover-bg:light-dark(rgb(21 20 26 / 0.14), rgb(251 251 254 / 0.14));
+ --button-active-bg:light-dark(rgb(21 20 26 / 0.21), rgb(251 251 254 / 0.21));
+}
+}
+
+@supports (color: light-dark(red, red)){
+#viewsManager{
+ --button-focus-outline-color:light-dark(#0062fa, #00cadb);
+ --button-focus-border-color:light-dark(white, black);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+#viewsManager{
+ --status-actions-bg:light-dark(
+ rgb(21 20 26 / 0.03),
+ rgb(251 251 254 / 0.03)
+ );
+ --status-undo-bg:light-dark(rgb(0 98 250 / 0.08), rgb(0 202 219 / 0.08));
+}
+}
+
+@supports (color: light-dark(red, red)){
+#viewsManager{
+ --indicator-color:light-dark(#0062fa, #00cadb);
+ --status-warning-bg:light-dark(#ffe8ea, #6e001f);
+ --indicator-warning-color:light-dark(#b20037, #ffa0aa);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+#viewsManager{
+ --header-shadow:0 0.25px 0.75px -0.75px light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 2px 6px -6px light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));
+ --header-bg:light-dark(rgb(255 255 255 / 0.92), #42414e);
+}
+}
+
+@supports (color: light-dark(red, red)){
+#viewsManager{
+ --image-border-color:light-dark(#cfcfd8, #3a3944);
+ --image-page-number-bg:light-dark(#f0f0f4, #42414d);
+ --image-current-page-number-fg:light-dark(#fff, #15141a);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+#viewsManager{
+ --image-shadow:0 0.375px 1.5px 0 light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 0 0 1px var(--image-border-color), 0 3px 12px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));
+ --image-hover-shadow:0 0.375px 1.5px 0 light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 0 0 1px light-dark(rgb(21 20 26 / 0.1), rgb(251 251 254 / 0.1)), 0 0 0 var(--image-border-width) var(--image-hover-border-color), 0 3px 12px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));
+ --image-current-shadow:0 0.375px 1.5px 0 light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 0 0 var(--image-border-width) var(--image-current-border-color), 0 3px 12px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));
+ --image-dragging-placeholder-bg:light-dark(
+ rgb(0 98 250 / 0.08),
+ rgb(0 202 219 / 0.08)
+ );
+}
+}
+
+@supports (color: light-dark(red, red)){
+#viewsManager{
+ --multiple-dragging-text-color:light-dark(#fbfbfe, #15141a);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+#viewsManager *{
+
+ --csstools-light-dark-toggle--106:var(--csstools-color-scheme--light) rgb(66 65 77 / 0.92);
+
+ --sidebar-bg-color:var(--csstools-light-dark-toggle--106, rgb(255 255 255 / 0.92));
+
+ --csstools-light-dark-toggle--107:var(--csstools-color-scheme--light) #fbfbfe;
+
+ --text-color:var(--csstools-light-dark-toggle--107, #15141a);
+ --csstools-light-dark-toggle--108:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.07);
+ --button-bg:var(--csstools-light-dark-toggle--108, rgb(21 20 26 / 0.07));
+ --csstools-light-dark-toggle--109:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.14);
+ --button-hover-bg:var(--csstools-light-dark-toggle--109, rgb(21 20 26 / 0.14));
+ --csstools-light-dark-toggle--110:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.21);
+ --button-active-bg:var(--csstools-light-dark-toggle--110, rgb(21 20 26 / 0.21));
+ --csstools-light-dark-toggle--111:var(--csstools-color-scheme--light) #00cadb;
+ --button-focus-outline-color:var(--csstools-light-dark-toggle--111, #0062fa);
+ --csstools-light-dark-toggle--112:var(--csstools-color-scheme--light) black;
+ --button-focus-border-color:var(--csstools-light-dark-toggle--112, white);
+ --csstools-light-dark-toggle--113:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.03);
+ --status-actions-bg:var(--csstools-light-dark-toggle--113, rgb(21 20 26 / 0.03));
+ --csstools-light-dark-toggle--114:var(--csstools-color-scheme--light) rgb(0 202 219 / 0.08);
+ --status-undo-bg:var(--csstools-light-dark-toggle--114, rgb(0 98 250 / 0.08));
+ --csstools-light-dark-toggle--115:var(--csstools-color-scheme--light) #00cadb;
+ --indicator-color:var(--csstools-light-dark-toggle--115, #0062fa);
+ --csstools-light-dark-toggle--116:var(--csstools-color-scheme--light) #6e001f;
+ --status-warning-bg:var(--csstools-light-dark-toggle--116, #ffe8ea);
+ --csstools-light-dark-toggle--117:var(--csstools-color-scheme--light) #ffa0aa;
+ --indicator-warning-color:var(--csstools-light-dark-toggle--117, #b20037);
+ --csstools-light-dark-toggle--118:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--119:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --header-shadow:0 0.25px 0.75px -0.75px var(--csstools-light-dark-toggle--118, rgb(0 0 0 / 0.05)), 0 2px 6px -6px var(--csstools-light-dark-toggle--119, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--120:var(--csstools-color-scheme--light) #42414e;
+ --header-bg:var(--csstools-light-dark-toggle--120, rgb(255 255 255 / 0.92));
+ --csstools-light-dark-toggle--121:var(--csstools-color-scheme--light) #3a3944;
+ --image-border-color:var(--csstools-light-dark-toggle--121, #cfcfd8);
+ --csstools-light-dark-toggle--122:var(--csstools-color-scheme--light) #42414d;
+ --image-page-number-bg:var(--csstools-light-dark-toggle--122, #f0f0f4);
+ --csstools-light-dark-toggle--123:var(--csstools-color-scheme--light) #15141a;
+ --image-current-page-number-fg:var(--csstools-light-dark-toggle--123, #fff);
+ --csstools-light-dark-toggle--124:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--125:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --image-shadow:0 0.375px 1.5px 0 var(--csstools-light-dark-toggle--124, rgb(0 0 0 / 0.05)), 0 0 0 1px var(--image-border-color), 0 3px 12px 0 var(--csstools-light-dark-toggle--125, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--126:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--127:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.1);
+ --csstools-light-dark-toggle--128:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --image-hover-shadow:0 0.375px 1.5px 0 var(--csstools-light-dark-toggle--126, rgb(0 0 0 / 0.05)), 0 0 0 1px var(--csstools-light-dark-toggle--127, rgb(21 20 26 / 0.1)), 0 0 0 var(--image-border-width) var(--image-hover-border-color), 0 3px 12px 0 var(--csstools-light-dark-toggle--128, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--129:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--130:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --image-current-shadow:0 0.375px 1.5px 0 var(--csstools-light-dark-toggle--129, rgb(0 0 0 / 0.05)), 0 0 0 var(--image-border-width) var(--image-current-border-color), 0 3px 12px 0 var(--csstools-light-dark-toggle--130, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--131:var(--csstools-color-scheme--light) rgb(0 202 219 / 0.08);
+ --image-dragging-placeholder-bg:var(--csstools-light-dark-toggle--131, rgb(0 98 250 / 0.08));
+ --csstools-light-dark-toggle--132:var(--csstools-color-scheme--light) #15141a;
+ --multiple-dragging-text-color:var(--csstools-light-dark-toggle--132, #fbfbfe);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+#viewsManager{
+ --text-color:CanvasText;
+ --button-fg:ButtonText;
+ --button-bg:ButtonFace;
+ --button-no-bg:ButtonFace;
+ --button-border-color:ButtonText;
+ --button-hover-bg:SelectedItemText;
+ --button-hover-fg:SelectedItem;
+ --button-hover-border-color:SelectedItem;
+ --button-active-bg:SelectedItemText;
+ --button-active-fg:SelectedItem;
+ --button-active-border-color:ButtonText;
+ --button-focus-no-bg:ButtonFace;
+ --button-focus-outline-color:CanvasText;
+ --button-focus-border-color:none;
+ --status-border-color:CanvasText;
+ --status-undo-bg:none;
+ --indicator-color:CanvasText;
+ --status-warning-bg:none;
+ --indicator-warning-color:CanvasText;
+ --header-shadow:none;
+ --image-shadow:none;
+ --image-outline:1px solid ButtonText;
+ --image-focus-outline-color:CanvasText;
+ --image-hover-border-color:SelectedItem;
+ --image-hover-page-number-bg:SelectedItemText;
+ --image-hover-page-number-fg:SelectedItem;
+ --image-current-page-number-bg:ButtonText;
+ --image-current-page-number-fg:ButtonFace;
+ --image-current-border-color:ButtonText;
+ --image-current-focused-outline-color:var(--image-hover-border-color);
+ --image-current-hover-page-number-bg:SelectedItem;
+ --image-current-hover-page-number-fg:SelectedItemText;
+ --image-page-number-bg:ButtonFace;
+ --image-page-number-fg:ButtonText;
+ --image-page-number-border-color:var(--image-page-number-fg);
+ --multiple-dragging-bg:Canvas;
+ --multiple-dragging-indicator-bg:ButtonBorder;
+ --multiple-dragging-text-color:Canvas;
+ --image-dragging-placeholder-bg:Canvas;
+ --image-dragging-placeholder-border:1px GrayText solid;
+}
+ }
+
+#viewsManager{
+
+ display:flex;
+ padding-bottom:16px;
+ flex-direction:column;
+ align-items:flex-start;
+ inset-block-start:calc(100% + var(--sidebar-block-padding));
+ height:calc(
+ var(--viewer-container-height) - 2 * var(--sidebar-block-padding)
+ );
+ position:absolute;
+
+ inset-inline-start:calc(
+ -1 * var(--viewsManager-width, --sidebar-width) - 1px
+ );
+ transition-property:inset-inline-start;
+ transition-duration:var(--sidebar-transition-duration);
+ transition-timing-function:var(--sidebar-transition-timing-function);
+}
+
+#viewsManager .sidebarResizer{
+ inset-inline-start:calc(100% + 4px);
+ }
+
+#viewsManager .viewsManagerButton{
+ width:auto;
+ color:var(--button-fg);
+ border-radius:8px;
+ border:1px solid var(--button-border-color);
+ background:var(--button-bg);
+ }
+
+:is(#viewsManager .viewsManagerButton):hover{
+ background-color:var(--button-hover-bg) !important;
+ color:var(--button-hover-fg) !important;
+ border-color:var(--button-hover-border-color) !important;
+ }
+
+:is(#viewsManager .viewsManagerButton):hover::before{
+ background-color:var(--button-hover-fg) !important;
+ }
+
+:is(#viewsManager .viewsManagerButton):active{
+ background:var(--button-active-bg) !important;
+ color:var(--button-active-fg) !important;
+ border-color:var(--button-active-border-color) !important;
+ }
+
+:is(#viewsManager .viewsManagerButton):active::before{
+ background-color:var(--button-active-fg) !important;
+ }
+
+:is(#viewsManager .viewsManagerButton):focus-visible{
+ outline:2px solid var(--button-focus-outline-color);
+ outline-offset:2px;
+ border-color:var(--button-focus-border-color);
+ }
+
+.viewsCloseButton:is(#viewsManager .viewsManagerButton){
+ width:26px;
+ height:26px;
+ padding:4px;
+ border-radius:8px;
+ background:none;
+ }
+
+.viewsCloseButton:is(#viewsManager .viewsManagerButton)::before{
+ -webkit-mask-image:var(--close-button-icon);
+ mask-image:var(--close-button-icon);
+ }
+
+#viewsManager #viewsManagerHeader{
+ display:flex;
+ flex-direction:column;
+ align-items:flex-start;
+ align-self:stretch;
+ width:100%;
+ box-shadow:var(--header-shadow);
+ flex:0 0 auto;
+ background-color:var(--header-bg);
+ }
+
+:is(#viewsManager #viewsManagerHeader) .viewsManagerLabel{
+ flex:1 1 auto;
+ color:var(--text-color);
+ text-align:center;
+ height:-moz-fit-content;
+ height:fit-content;
+ width:-moz-fit-content;
+ width:fit-content;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+
+ font:menu;
+ font-size:15px;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ }
+
+:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle{
+ display:flex;
+ flex-direction:row;
+ align-items:center;
+ align-self:stretch;
+ justify-content:space-between;
+ width:auto;
+ padding:12px 16px 12px 8px;
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle):not(:has(#viewsManagerHeaderLabel ~ button:not([hidden])))::after{
+
+ content:"";
+ flex:0 0 auto;
+ width:32px;
+ height:32px;
+ pointer-events:none;
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector{
+ width:48px;
+ height:32px;
+ display:block;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > button{
+ background:var(--button-no-bg);
+ width:100%;
+ height:100%;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > button):focus-visible{
+ background-color:var(--button-focus-no-bg);
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > button)::before{
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-image:var(--views-manager-button-icon);
+ mask-image:var(--views-manager-button-icon);
+ background-color:var(--button-fg);
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > button)::after{
+ content:"";
+ display:inline-block;
+ width:12px;
+ height:12px;
+ margin-left:8px;
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ -webkit-mask-image:var(--views-manager-button-arrow-icon);
+ mask-image:var(--views-manager-button-arrow-icon);
+ background-color:var(--button-fg);
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > button):hover::before,:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > button):hover::after{
+ background-color:var(--button-hover-fg) !important;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > button):active::before,:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > button):active::after{
+ background-color:var(--button-active-fg) !important;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > .popupMenu{
+ min-width:182px;
+ z-index:1;
+ }
+
+#thumbnailsViewMenu:is(:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > .popupMenu) > button)::before{
+ -webkit-mask-image:var(--menuitem-thumbnailsView-icon);
+ mask-image:var(--menuitem-thumbnailsView-icon);
+ }
+
+#outlinesViewMenu:is(:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > .popupMenu) > button)::before{
+ -webkit-mask-image:var(--menuitem-outlinesView-icon);
+ mask-image:var(--menuitem-outlinesView-icon);
+ }
+
+#attachmentsViewMenu:is(:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > .popupMenu) > button)::before{
+ -webkit-mask-image:var(--menuitem-attachmentsView-icon);
+ mask-image:var(--menuitem-attachmentsView-icon);
+ }
+
+#layersViewMenu:is(:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerSelector) > .popupMenu) > button)::before{
+ -webkit-mask-image:var(--menuitem-layersView-icon);
+ mask-image:var(--menuitem-layersView-icon);
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerAddFileButton{
+ background:var(--button-no-bg);
+ width:32px;
+ height:32px;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerAddFileButton):focus-visible{
+ background-color:var(--button-focus-no-bg);
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerAddFileButton)::before{
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-image:var(--views-manager-add-file-button-icon);
+ mask-image:var(--views-manager-add-file-button-icon);
+ background-color:var(--button-fg);
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerAddFileButton) > input{
+ display:none;
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerCurrentOutlineButton{
+ background:var(--button-no-bg);
+ width:32px;
+ height:32px;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerCurrentOutlineButton):focus-visible{
+ background-color:var(--button-focus-no-bg);
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerTitle) #viewsManagerCurrentOutlineButton)::before{
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-image:var(--current-outline-button-icon);
+ mask-image:var(--current-outline-button-icon);
+ background-color:var(--button-fg);
+ }
+
+:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus{
+ display:grid;
+ width:100%;
+ border:1px solid var(--status-border-color);
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) > div{
+ min-height:64px;
+ width:100%;
+ padding-inline:16px;
+ grid-area:1 / 1;
+ box-sizing:border-box;
+ }
+
+.hidden:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) > div){
+ visibility:hidden;
+ display:unset !important;
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) .viewsManagerStatusLabel{
+ display:flex;
+ align-items:center;
+ gap:8px;
+
+ font:menu;
+ font-size:13px;
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction{
+ display:flex;
+ justify-content:space-between;
+ align-items:center;
+ align-self:stretch;
+ background-color:var(--status-actions-bg);
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction) #viewsManagerStatusActionLabelContainer > button{
+ position:relative;
+ width:var(--icon-size);
+ height:var(--icon-size);
+ border:none;
+ padding:0;
+ flex:0 0 auto;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction) #viewsManagerStatusActionLabelContainer > button)::before{
+ content:"";
+ position:absolute;
+ inset:0;
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ background-color:var(--indicator-color);
+ -webkit-mask-image:var(--pages-selected-icon);
+ mask-image:var(--pages-selected-icon);
+ }
+
+#viewsManagerStatusActionDeselectButton:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction) #viewsManagerStatusActionLabelContainer > button):focus-visible{
+ outline:2px solid var(--button-focus-outline-color);
+ border:1px solid var(--button-focus-border-color);
+ border-radius:2px;
+ outline-offset:1px;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction) #actionSelector{
+ height:32px;
+ min-width:115px;
+ width:auto;
+ display:block;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction) #actionSelector) #viewsManagerStatusActionButton{
+ display:flex;
+ align-items:center;
+ justify-content:space-between;
+ gap:8px;
+ width:100%;
+ height:100%;
+ padding:4px 16px;
+ }
+
+:is(:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction) #actionSelector) #viewsManagerStatusActionButton)::after{
+ content:"";
+ display:inline-block;
+ width:var(--icon-size);
+ height:var(--icon-size);
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ -webkit-mask-image:var(--manage-button-icon);
+ mask-image:var(--manage-button-icon);
+ background-color:var(--button-fg);
+ }
+
+:is(:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction) #actionSelector) #viewsManagerStatusActionButton):hover::after{
+ background-color:var(--button-hover-fg) !important;
+ }
+
+:is(:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction) #actionSelector) #viewsManagerStatusActionButton):active::after{
+ background-color:var(--button-active-fg) !important;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusAction) #actionSelector) > .popupMenu{
+ width:100%;
+ min-width:-moz-fit-content;
+ min-width:fit-content;
+ z-index:1;
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusUndo{
+ display:flex;
+ justify-content:space-between;
+ align-items:center;
+ align-self:stretch;
+ background-color:var(--status-undo-bg);
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusUndo) > span::before{
+ content:"";
+ display:inline-block;
+ width:var(--icon-size);
+ height:var(--icon-size);
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ -webkit-mask-image:var(--undo-label-icon);
+ mask-image:var(--undo-label-icon);
+ background-color:var(--indicator-color);
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusUndo) > div{
+ display:flex;
+ align-items:center;
+ gap:8px;
+ width:auto;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusUndo) > div) #viewsManagerStatusUndoButton{
+ width:auto;
+ min-height:24px;
+ padding:4px 8px;
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusWarning{
+ display:flex;
+ align-items:center;
+ justify-content:space-between;
+ background-color:var(--status-warning-bg);
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusWarning) > span{
+ align-items:flex-start;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusWarning) > span)::before{
+ content:"";
+ display:inline-block;
+ width:var(--icon-size);
+ height:var(--icon-size);
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ background-color:var(--indicator-warning-color);
+ -webkit-mask-image:var(--undo-label-icon);
+ mask-image:var(--undo-label-icon);
+ flex:0 0 auto;
+ }
+
+:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusWaiting{
+ display:flex;
+ align-items:center;
+ justify-content:space-between;
+ background-color:var(--status-waiting-bg);
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerHeader) #viewsManagerStatus) #viewsManagerStatusWaiting) > span::before{
+ content:"";
+ display:inline-block;
+ width:var(--icon-size);
+ height:var(--icon-size);
+ -webkit-mask-repeat:no-repeat;
+ mask-repeat:no-repeat;
+ -webkit-mask-position:center;
+ mask-position:center;
+ background-color:var(--indicator-color);
+ -webkit-mask-image:var(--spinner-icon);
+ mask-image:var(--spinner-icon);
+ flex:0 0 auto;
+ }
+
+#viewsManager #viewsManagerContent{
+ width:100%;
+ flex:1 1 0%;
+ overflow:auto;
+ }
+
+:is(#viewsManager #viewsManagerContent):has(#thumbnailsView.isDragging){
+ overflow-x:hidden;
+ }
+
+:is(#viewsManager #viewsManagerContent) #thumbnailsView{
+ --thumbnail-width:126px;
+ --gap-between-input-and-thumbnail:16px;
+
+ display:flex;
+ flex-flow:row wrap;
+ align-items:center;
+ justify-content:space-evenly;
+ padding:20px 32px;
+ gap:44px;
+ width:100%;
+ box-sizing:border-box;
+ position:relative;
+ }
+
+.isDragging:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView){
+ cursor:grabbing;
+ }
+
+:is(.isDragging:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer:hover{
+ cursor:grabbing;
+ }
+
+:is(:is(.isDragging:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer:hover):not([aria-current="page"]){
+ box-shadow:var(--image-shadow);
+ }
+
+:is(.isDragging:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > input{
+ pointer-events:none;
+ }
+
+.isDragging:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .dragMarker{
+ position:absolute;
+ top:0;
+ left:0;
+ border:2px solid var(--indicator-color);
+ contain:strict;
+ }
+
+.pasteMode:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView){
+ gap:var(--gap-between-input-and-thumbnail);
+ }
+
+.pasteMode:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail{
+ flex-direction:column;
+ }
+
+:is(.pasteMode:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > input{
+ display:none;
+ }
+
+:is(.pasteMode:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailPasteButton{
+ display:flex;
+ justify-content:center;
+ align-items:center;
+ border-radius:16px;
+ min-height:24px;
+ padding:4px 16px;
+
+ font:menu;
+ font-size:13px;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ }
+
+:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView):not(.pasteMode) > .thumbnail > .thumbnailPasteButton{
+ display:none;
+ }
+
+:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail{
+ --input-dim:16px;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail):not(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail):has(input)){
+ --input-dim:0px;
+ --gap-between-input-and-thumbnail:0px;
+ }
+
+:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail{
+
+ display:inline-flex;
+ justify-content:flex-end;
+ align-items:center;
+ flex-direction:row-reverse;
+ gap:var(--gap-between-input-and-thumbnail);
+ width:calc(
+ var(--thumbnail-width) + 2 *
+ (var(--input-dim) + var(--gap-between-input-and-thumbnail))
+ );
+ height:auto;
+ position:relative;
+ scroll-margin-top:20px;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) .thumbnailPasteButton{
+ padding:8px 0;
+ text-align:center;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail):not(.isDragging) > .thumbnailImageContainer::after{
+ content:attr(page-number);
+ border-radius:8px;
+ border:1px solid var(--image-page-number-border-color);
+ background-color:var(--image-page-number-bg);
+ color:var(--image-page-number-fg);
+ position:absolute;
+ bottom:5px;
+ inset-inline-end:50%;
+ min-width:32px;
+ height:16px;
+ text-align:center;
+ box-sizing:content-box;
+ translate:calc(var(--dir-factor) * 50%);
+
+ font:menu;
+ font-size:12px;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+
+ pointer-events:none;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail):has([aria-current="page"]):not(.isDragging) > .thumbnailImageContainer::after{
+ background-color:var(--image-current-page-number-bg);
+ color:var(--image-current-page-number-fg);
+ outline:1px solid var(--image-current-border-color);
+ }
+
+.isDragging:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > input{
+ visibility:hidden;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > input{
+ margin:0;
+ width:var(--input-dim);
+ height:var(--input-dim);
+ accent-color:var(--indicator-color);
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer{
+ --thumbnail-dragging-scale:1.4;
+
+ width:var(--thumbnail-width);
+ border:none;
+ border-radius:8px;
+ box-shadow:var(--image-shadow);
+ box-sizing:content-box;
+ outline:var(--image-outline);
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ position:relative;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer) img{
+ width:100%;
+ height:100%;
+ border:none;
+ border-radius:8px;
+ outline:none;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ pointer-events:none;
+ }
+
+.missingThumbnailImage:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer){
+ content-visibility:hidden;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):hover{
+ cursor:pointer;
+ box-shadow:var(--image-hover-shadow);
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):hover::after{
+ background-color:var(--image-hover-page-number-bg);
+ color:var(--image-hover-page-number-fg);
+ }
+
+@media screen and (forced-colors: active){
+
+:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):hover{
+ box-shadow:none;
+ outline:var(--image-border-width) var(--image-hover-border-color) solid;
+ }
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):focus-visible:not([aria-current="page"]){
+ box-shadow:var(--image-hover-shadow);
+ outline:none;
+ }
+
+@media screen and (forced-colors: active){
+
+:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):focus-visible:not([aria-current="page"]){
+ box-shadow:none;
+ outline:var(--image-border-width) var(--image-focus-outline-color) solid;
+ }
+ }
+
+[aria-current="page"]:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):focus-visible{
+ outline:var(--image-border-width) solid var(--image-current-focused-outline-color);
+ outline-offset:var(--image-border-width);
+ }
+
+@media screen and (forced-colors: active){
+
+[aria-current="page"]:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):focus-visible{
+ box-shadow:none;
+ outline:var(--image-border-width) var(--image-current-border-color) solid;
+ outline-offset:0;
+ }
+
+ [aria-current="page"]:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):focus-visible > img{
+ outline:var(--image-border-width) var(--image-focus-outline-color) solid;
+ outline-offset:var(--image-border-width);
+ }
+ }
+
+@media screen and (forced-colors: active){
+
+:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):focus-visible{
+ box-shadow:none;
+ outline:var(--image-border-width) var(--image-current-border-color) solid;
+ }
+
+ :is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):focus-visible:hover > img{
+ outline:var(--image-border-width) var(--image-hover-border-color) solid;
+ outline-offset:var(--image-border-width);
+ }
+ }
+
+[aria-current="page"]:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer){
+ box-shadow:var(--image-current-shadow);
+ }
+
+[aria-current="page"]:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):hover::after{
+ background-color:var(--image-current-hover-page-number-bg);
+ color:var(--image-current-hover-page-number-fg);
+ }
+
+@media screen and (forced-colors: active){
+
+[aria-current="page"]:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer){
+ box-shadow:none;
+ outline:var(--image-border-width) var(--image-current-border-color) solid;
+ }
+
+ [aria-current="page"]:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer):hover > img{
+ outline:var(--image-border-width) var(--image-hover-border-color) solid;
+ outline-offset:var(--image-border-width);
+ }
+ }
+
+.placeholder:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer){
+ background-color:var(--image-dragging-placeholder-bg);
+ box-shadow:none !important;
+ outline:var(--image-dragging-placeholder-border);
+ }
+
+.draggingThumbnail:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer){
+ position:absolute;
+ left:0;
+ top:0;
+ z-index:1;
+ transform-origin:0 0 0;
+ scale:calc(1 / var(--thumbnail-dragging-scale));
+ pointer-events:none;
+ box-shadow:var(--image-dragging-shadow);
+ }
+
+.draggingThumbnail.multiple:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer){
+ box-shadow:var(--image-multiple-dragging-shadow);
+ }
+
+@media screen and (forced-colors: active){
+
+.draggingThumbnail.multiple:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer){
+ forced-color-adjust:none;
+ box-shadow:var(--image-multiple-dragging-shadow);
+ }
+ }
+
+.draggingThumbnail.multiple:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer) > .thumbnailImageContainer{
+ position:absolute;
+ top:0;
+ left:0;
+
+ width:var(--thumbnail-width);
+ border:none;
+ border-radius:8px;
+ box-sizing:content-box;
+ outline:none;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+.draggingThumbnail.multiple:is(:is(:is(:is(#viewsManager #viewsManagerContent) #thumbnailsView) > .thumbnail) > .thumbnailImageContainer)::after{
+ content:attr(data-multiple-count);
+ border-radius:calc(8px * var(--thumbnail-dragging-scale));
+ background-color:var(--multiple-dragging-indicator-bg);
+ color:var(--multiple-dragging-text-color);
+ position:absolute;
+ inset-block-end:calc(4px * var(--thumbnail-dragging-scale));
+ inset-inline-start:calc(4px * var(--thumbnail-dragging-scale));
+ min-width:calc(32px * var(--thumbnail-dragging-scale));
+ height:calc(16px * var(--thumbnail-dragging-scale));
+ text-align:center;
+ font:menu;
+ font-size:calc(13px * var(--thumbnail-dragging-scale));
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ contain:strict;
+ }
+
+:is(#viewsManager #viewsManagerContent) #attachmentsView{
+ --csstools-light-dark-toggle--133:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.8);
+ --attachment-color:var(--csstools-light-dark-toggle--133, rgb(0 0 0 / 0.8));
+ --csstools-light-dark-toggle--134:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.15);
+ --attachment-bg-color:var(--csstools-light-dark-toggle--134, rgb(0 0 0 / 0.15));
+ --csstools-light-dark-toggle--135:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);
+ --attachment-hover-color:var(--csstools-light-dark-toggle--135, rgb(0 0 0 / 0.9));
+ }
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+:is(#viewsManager #viewsManagerContent) #attachmentsView{
+ --attachment-color:light-dark(rgb(0 0 0 / 0.8), rgb(255 255 255 / 0.8));
+ --attachment-bg-color:light-dark(
+ rgb(0 0 0 / 0.15),
+ rgb(255 255 255 / 0.15)
+ );
+ --attachment-hover-color:light-dark(
+ rgb(0 0 0 / 0.9),
+ rgb(255 255 255 / 0.9)
+ );
+ }
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:is(:is(#viewsManager #viewsManagerContent) #attachmentsView) *{
+ --csstools-light-dark-toggle--133:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.8);
+ --attachment-color:var(--csstools-light-dark-toggle--133, rgb(0 0 0 / 0.8));
+ --csstools-light-dark-toggle--134:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.15);
+ --attachment-bg-color:var(--csstools-light-dark-toggle--134, rgb(0 0 0 / 0.15));
+ --csstools-light-dark-toggle--135:var(--csstools-color-scheme--light) rgb(255 255 255 / 0.9);
+ --attachment-hover-color:var(--csstools-light-dark-toggle--135, rgb(0 0 0 / 0.9));
+ }
+}
+
+:is(:is(#viewsManager #viewsManagerContent) #attachmentsView) > ul{
+ list-style-type:none;
+ padding:0;
+ }
+
+:is(:is(:is(#viewsManager #viewsManagerContent) #attachmentsView) > ul) > li > a{
+ text-decoration:none;
+ display:inline-block;
+ min-width:calc(100% - 4px);
+ height:auto;
+ margin-bottom:1px;
+ padding:2px 0 5px;
+ padding-inline-start:4px;
+ border-radius:2px;
+ color:var(--attachment-color);
+ font-size:13px;
+ line-height:15px;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ white-space:normal;
+ cursor:pointer;
+ }
+
+:is(:is(:is(:is(#viewsManager #viewsManagerContent) #attachmentsView) > ul) > li > a):hover{
+ background-color:var(--attachment-bg-color);
+ background-clip:padding-box;
+ border-radius:2px;
+ color:var(--attachment-hover-color);
+ }
+
+.sidebar{
+ --csstools-light-dark-toggle--136:var(--csstools-color-scheme--light) #23222b;
+ --sidebar-bg-color:var(--csstools-light-dark-toggle--136, #fff);
+ --csstools-light-dark-toggle--137:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.1);
+ --sidebar-border-color:var(--csstools-light-dark-toggle--137, rgb(21 20 26 / 0.1));
+ --csstools-light-dark-toggle--138:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--139:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --sidebar-box-shadow:0 0.25px 0.75px var(--csstools-light-dark-toggle--138, rgb(0 0 0 / 0.05)), 0 2px 6px 0 var(--csstools-light-dark-toggle--139, rgb(0 0 0 / 0.1));
+ --sidebar-backdrop-filter:none;
+ --sidebar-border-radius:8px;
+ --sidebar-padding:5px;
+ --sidebar-min-width:180px;
+ --sidebar-max-width:632px;
+ --sidebar-width:239px;
+ --resizer-width:4px;
+ --resizer-shift:calc(0px - var(--resizer-width) - 2px);
+ --csstools-light-dark-toggle--140:var(--csstools-color-scheme--light) #00cadb;
+ --resizer-hover-bg-color:var(--csstools-light-dark-toggle--140, #0062fa);
+}
+
+@supports (color: light-dark(red, red)){
+.sidebar{
+ --sidebar-bg-color:light-dark(#fff, #23222b);
+}
+}
+
+@supports (color: light-dark(red, red)) and (color: rgb(0 0 0 / 0)){
+.sidebar{
+ --sidebar-border-color:light-dark(
+ rgb(21 20 26 / 0.1),
+ rgb(251 251 254 / 0.1)
+ );
+ --sidebar-box-shadow:0 0.25px 0.75px light-dark(rgb(0 0 0 / 0.05), rgb(0 0 0 / 0.2)), 0 2px 6px 0 light-dark(rgb(0 0 0 / 0.1), rgb(0 0 0 / 0.4));
+}
+}
+
+@supports (color: light-dark(red, red)){
+.sidebar{
+ --resizer-hover-bg-color:light-dark(#0062fa, #00cadb);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+.sidebar *{
+ --csstools-light-dark-toggle--136:var(--csstools-color-scheme--light) #23222b;
+ --sidebar-bg-color:var(--csstools-light-dark-toggle--136, #fff);
+ --csstools-light-dark-toggle--137:var(--csstools-color-scheme--light) rgb(251 251 254 / 0.1);
+ --sidebar-border-color:var(--csstools-light-dark-toggle--137, rgb(21 20 26 / 0.1));
+ --csstools-light-dark-toggle--138:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.2);
+ --csstools-light-dark-toggle--139:var(--csstools-color-scheme--light) rgb(0 0 0 / 0.4);
+ --sidebar-box-shadow:0 0.25px 0.75px var(--csstools-light-dark-toggle--138, rgb(0 0 0 / 0.05)), 0 2px 6px 0 var(--csstools-light-dark-toggle--139, rgb(0 0 0 / 0.1));
+ --csstools-light-dark-toggle--140:var(--csstools-color-scheme--light) #00cadb;
+ --resizer-hover-bg-color:var(--csstools-light-dark-toggle--140, #0062fa);
+ }
+}
+
+@media screen and (forced-colors: active){
+
+.sidebar{
+ --sidebar-bg-color:Canvas;
+ --sidebar-border-color:CanvasText;
+ --sidebar-box-shadow:none;
+ --resizer-hover-bg-color:CanvasText;
+}
+ }
+
+.sidebar{
+
+ border-radius:var(--sidebar-border-radius);
+ box-shadow:var(--sidebar-box-shadow);
+ border:1px solid var(--sidebar-border-color);
+ background-color:var(--sidebar-bg-color);
+ inset-block-start:calc(100% + var(--doorhanger-height) - 2px);
+ padding-block:var(--sidebar-padding);
+ width:var(--sidebar-width);
+ min-width:var(--sidebar-min-width);
+ max-width:var(--sidebar-max-width);
+ -webkit-backdrop-filter:var(--sidebar-backdrop-filter);
+ backdrop-filter:var(--sidebar-backdrop-filter);
+ box-sizing:border-box;
+ position:relative;
+}
+
+.sidebar .sidebarResizer{
+ width:var(--resizer-width);
+ background-color:transparent;
+ forced-color-adjust:none;
+ cursor:ew-resize;
+ position:absolute;
+ inset-block:0;
+ inset-inline-start:var(--resizer-shift);
+ transition:background-color 0.5s ease-in-out, border-color 0.5s ease-in-out;
+ box-sizing:border-box;
+ border:1px solid transparent;
+ border-block-width:0;
+ background-clip:content-box;
+ }
+
+:is(.sidebar .sidebarResizer):hover{
+ background-color:var(--resizer-hover-bg-color);
+ border-color:white;
+ }
+
+:is(.sidebar .sidebarResizer):focus-visible{
+ background-color:var(--resizer-hover-bg-color);
+ outline:none;
+ }
+
+.sidebar.resizing{
+ cursor:ew-resize;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+ }
+
+.sidebar.resizing :not(.sidebarResizer){
+ pointer-events:none;
+ }
+
+.sidebar.resizing .sidebarResizer{
+ background-color:var(--resizer-hover-bg-color);
+ }
+
+:root{
+ --csstools-color-scheme--light:initial;
+ color-scheme:light dark;
+
+ --viewer-container-height:0;
+ --pdfViewer-padding-bottom:0;
+ --page-margin:1px auto -8px;
+ --page-border:9px solid transparent;
+ --spreadHorizontalWrapped-margin-LR:-3.5px;
+ --loading-icon-delay:400ms;
+ --csstools-light-dark-toggle--141:var(--csstools-color-scheme--light) #0df;
+ --focus-ring-color:var(--csstools-light-dark-toggle--141, #0060df);
+ --focus-ring-outline:2px solid var(--focus-ring-color);
+ --csstools-light-dark-toggle--142:var(--csstools-color-scheme--light) #37b847;
+ --new-badge-bg:var(--csstools-light-dark-toggle--142, #070);
+ --csstools-light-dark-toggle--143:var(--csstools-color-scheme--light) #15141a;
+ --new-badge-color:var(--csstools-light-dark-toggle--143, #fff);
+ --new-badge-border-color:light-dark(#fbfbfe / 40%, #15141a / 40%);
+}
+
+@supports (color: light-dark(red, red)){
+:root{
+ --focus-ring-color:light-dark(#0060df, #0df);
+ --new-badge-bg:light-dark(#070, #37b847);
+ --new-badge-color:light-dark(#fff, #15141a);
+}
+}
+
+@supports not (color: light-dark(tan, tan)){
+
+:root *{
+ --csstools-light-dark-toggle--141:var(--csstools-color-scheme--light) #0df;
+ --focus-ring-color:var(--csstools-light-dark-toggle--141, #0060df);
+ --csstools-light-dark-toggle--142:var(--csstools-color-scheme--light) #37b847;
+ --new-badge-bg:var(--csstools-light-dark-toggle--142, #070);
+ --csstools-light-dark-toggle--143:var(--csstools-color-scheme--light) #15141a;
+ --new-badge-color:var(--csstools-light-dark-toggle--143, #fff);
+ }
+}
+
+@media (prefers-color-scheme: dark){
+
+:root{
+ --csstools-color-scheme--light:;
+}
+}
+
+@media screen and (forced-colors: active){
+
+:root{
+ --pdfViewer-padding-bottom:9px;
+ --page-margin:8px auto -1px;
+ --page-border:1px solid CanvasText;
+ --spreadHorizontalWrapped-margin-LR:3.5px;
+ --focus-ring-color:CanvasText;
+ --new-badge-bg:AccentColor;
+ --new-badge-color:ButtonFace;
+ --new-badge-border-color:CanvasText;
+}
+ }
+
+.newBadge{
+ background-color:var(--new-badge-bg);
+ color:var(--new-badge-color);
+ border-radius:4px;
+ border:1px solid var(--new-badge-border-color);
+ padding-inline:4px;
+ margin-inline:4px;
+ font:menu;
+ font-size:12px;
+ font-style:normal;
+ font-weight:400;
+ line-height:normal;
+ flex:0 0 fit-content;
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+}
+
+[data-main-rotation="90"]{
+ transform:rotate(90deg) translateY(-100%);
+}
+[data-main-rotation="180"]{
+ transform:rotate(180deg) translate(-100%, -100%);
+}
+[data-main-rotation="270"]{
+ transform:rotate(270deg) translateX(-100%);
+}
+
+#hiddenCopyElement,
+.hiddenCanvasElement{
+ position:absolute;
+ top:0;
+ left:0;
+ width:0;
+ height:0;
+ display:none;
+}
+
+.pdfViewer{
+ --scale-factor:1;
+ --page-bg-color:unset;
+
+ padding-bottom:var(--pdfViewer-padding-bottom);
+
+ --hcm-highlight-filter:none;
+ --hcm-highlight-selected-filter:none;
+}
+
+@media screen and (forced-colors: active){
+
+.pdfViewer{
+ --hcm-highlight-filter:invert(100%);
+}
+ }
+
+.pdfViewer.copyAll{
+ cursor:wait;
+ }
+
+.pdfViewer .canvasWrapper{
+ overflow:hidden;
+ width:100%;
+ height:100%;
+ }
+
+:is(.pdfViewer .canvasWrapper) canvas{
+ position:absolute;
+ top:0;
+ left:0;
+ margin:0;
+ display:block;
+ width:100%;
+ height:100%;
+ contain:content;
+ }
+
+:is(:is(.pdfViewer .canvasWrapper) canvas) .structTree{
+ contain:strict;
+ }
+
+.detailView:is(:is(.pdfViewer .canvasWrapper) canvas){
+ image-rendering:pixelated;
+ }
+
+.pdfViewer .page{
+ --user-unit:1;
+ --total-scale-factor:calc(var(--scale-factor) * var(--user-unit));
+ --scale-round-x:1px;
+ --scale-round-y:1px;
+
+ direction:ltr;
+ width:816px;
+ height:1056px;
+ margin:var(--page-margin);
+ position:relative;
+ overflow:visible;
+ border:var(--page-border);
+ background-clip:content-box;
+ background-color:var(--page-bg-color, rgb(255 255 255));
+}
+
+.pdfViewer .dummyPage{
+ position:relative;
+ width:0;
+ height:var(--viewer-container-height);
+}
+
+.pdfViewer.noUserSelect{
+ -webkit-user-select:none;
+ -moz-user-select:none;
+ user-select:none;
+}
+
+.pdfViewer.removePageBorders .page{
+ margin:0 auto 10px;
+ border:none;
+}
+
+.pdfViewer.singlePageView{
+ display:inline-block;
+}
+
+.pdfViewer.singlePageView .page{
+ margin:0;
+ border:none;
+}
+
+.pdfViewer:is(.scrollHorizontal, .scrollWrapped),
+.spread{
+ margin-inline:3.5px;
+ text-align:center;
+}
+
+.pdfViewer.scrollHorizontal,
+.spread{
+ white-space:nowrap;
+}
+
+.pdfViewer.removePageBorders,
+.pdfViewer:is(.scrollHorizontal, .scrollWrapped) .spread{
+ margin-inline:0;
+}
+
+.spread :is(.page, .dummyPage),
+.pdfViewer:is(.scrollHorizontal, .scrollWrapped) :is(.page, .spread){
+ display:inline-block;
+ vertical-align:middle;
+}
+
+.spread .page,
+.pdfViewer:is(.scrollHorizontal, .scrollWrapped) .page{
+ margin-inline:var(--spreadHorizontalWrapped-margin-LR);
+}
+
+.pdfViewer.removePageBorders .spread .page,
+.pdfViewer.removePageBorders:is(.scrollHorizontal, .scrollWrapped) .page{
+ margin-inline:5px;
+}
+
+.pdfViewer .page.loadingIcon::after{
+ position:absolute;
+ top:0;
+ left:0;
+ content:"";
+ width:100%;
+ height:100%;
+ background:url("images/loading-icon.gif") center no-repeat;
+ display:none;
+ transition-property:display;
+ transition-delay:var(--loading-icon-delay);
+ z-index:5;
+ contain:strict;
+}
+
+.pdfViewer .page.loading::after{
+ display:block;
+}
+
+.pdfViewer .page:not(.loading)::after{
+ transition-property:none;
+ display:none;
+}
+
+.pdfPresentationMode .pdfViewer{
+ padding-bottom:0;
+}
+
+.pdfPresentationMode .spread{
+ margin:0;
+}
+
+.pdfPresentationMode .pdfViewer .page{
+ margin:0 auto;
+ border:2px solid transparent;
+}
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.d.mts b/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.d.mts
new file mode 100644
index 0000000..7c2b79f
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.d.mts
@@ -0,0 +1 @@
+export * from "../../types/web/pdf_viewer.component.js";
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.mjs b/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.mjs
new file mode 100644
index 0000000..aac19d9
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.mjs
@@ -0,0 +1,15250 @@
+/**
+ * @licstart The following is the entire license notice for the
+ * JavaScript code in this page
+ *
+ * Copyright 2024 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * @licend The above is the entire license notice for the
+ * JavaScript code in this page
+ */
+
+/**
+ * pdfjsVersion = 5.7.284
+ * pdfjsBuild = 7e5b36c2d
+ */
+/******/ var __webpack_modules__ = ({
+
+/***/ 9306
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isCallable = __webpack_require__(4901);
+var tryToString = __webpack_require__(6823);
+
+var $TypeError = TypeError;
+
+// `Assert: IsCallable(argument) is true`
+module.exports = function (argument) {
+ if (isCallable(argument)) return argument;
+ throw new $TypeError(tryToString(argument) + ' is not a function');
+};
+
+
+/***/ },
+
+/***/ 3506
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isPossiblePrototype = __webpack_require__(3925);
+
+var $String = String;
+var $TypeError = TypeError;
+
+module.exports = function (argument) {
+ if (isPossiblePrototype(argument)) return argument;
+ throw new $TypeError("Can't set " + $String(argument) + ' as a prototype');
+};
+
+
+/***/ },
+
+/***/ 7080
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var has = (__webpack_require__(4402).has);
+
+// Perform ? RequireInternalSlot(M, [[SetData]])
+module.exports = function (it) {
+ has(it);
+ return it;
+};
+
+
+/***/ },
+
+/***/ 3463
+(module) {
+
+
+var $TypeError = TypeError;
+
+module.exports = function (argument) {
+ if (typeof argument == 'string') return argument;
+ throw new $TypeError('Argument is not a string');
+};
+
+
+/***/ },
+
+/***/ 4328
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var WeakMapHelpers = __webpack_require__(4995);
+
+var weakmap = new WeakMapHelpers.WeakMap();
+var set = WeakMapHelpers.set;
+var remove = WeakMapHelpers.remove;
+
+module.exports = function (key) {
+ set(weakmap, key, 1);
+ remove(weakmap, key);
+ return key;
+};
+
+
+/***/ },
+
+/***/ 6557
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var has = (__webpack_require__(4995).has);
+
+// Perform ? RequireInternalSlot(M, [[WeakMapData]])
+module.exports = function (it) {
+ has(it);
+ return it;
+};
+
+
+/***/ },
+
+/***/ 6469
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var wellKnownSymbol = __webpack_require__(8227);
+var create = __webpack_require__(2360);
+var defineProperty = (__webpack_require__(4913).f);
+
+var UNSCOPABLES = wellKnownSymbol('unscopables');
+var ArrayPrototype = Array.prototype;
+
+// Array.prototype[@@unscopables]
+// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
+if (ArrayPrototype[UNSCOPABLES] === undefined) {
+ defineProperty(ArrayPrototype, UNSCOPABLES, {
+ configurable: true,
+ value: create(null)
+ });
+}
+
+// add a key to Array.prototype[@@unscopables]
+module.exports = function (key) {
+ ArrayPrototype[UNSCOPABLES][key] = true;
+};
+
+
+/***/ },
+
+/***/ 679
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isPrototypeOf = __webpack_require__(1625);
+
+var $TypeError = TypeError;
+
+module.exports = function (it, Prototype) {
+ if (isPrototypeOf(Prototype, it)) return it;
+ throw new $TypeError('Incorrect invocation');
+};
+
+
+/***/ },
+
+/***/ 8551
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isObject = __webpack_require__(34);
+
+var $String = String;
+var $TypeError = TypeError;
+
+// `Assert: Type(argument) is Object`
+module.exports = function (argument) {
+ if (isObject(argument)) return argument;
+ throw new $TypeError($String(argument) + ' is not an object');
+};
+
+
+/***/ },
+
+/***/ 7811
+(module) {
+
+
+// eslint-disable-next-line es/no-typed-arrays -- safe
+module.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';
+
+
+/***/ },
+
+/***/ 7394
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var uncurryThisAccessor = __webpack_require__(6706);
+var classof = __webpack_require__(2195);
+
+var ArrayBuffer = globalThis.ArrayBuffer;
+var TypeError = globalThis.TypeError;
+
+// Includes
+// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).
+// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.
+module.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {
+ if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');
+ return O.byteLength;
+};
+
+
+/***/ },
+
+/***/ 3238
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var NATIVE_ARRAY_BUFFER = __webpack_require__(7811);
+var arrayBufferByteLength = __webpack_require__(7394);
+
+var DataView = globalThis.DataView;
+
+module.exports = function (O) {
+ if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;
+ try {
+ // eslint-disable-next-line no-new -- thrower
+ new DataView(O);
+ return false;
+ } catch (error) {
+ return true;
+ }
+};
+
+
+/***/ },
+
+/***/ 5169
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isDetached = __webpack_require__(3238);
+
+var $TypeError = TypeError;
+
+module.exports = function (it) {
+ if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');
+ return it;
+};
+
+
+/***/ },
+
+/***/ 5636
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var uncurryThis = __webpack_require__(9504);
+var uncurryThisAccessor = __webpack_require__(6706);
+var toIndex = __webpack_require__(7696);
+var notDetached = __webpack_require__(5169);
+var arrayBufferByteLength = __webpack_require__(7394);
+var detachTransferable = __webpack_require__(4483);
+var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548);
+
+var structuredClone = globalThis.structuredClone;
+var ArrayBuffer = globalThis.ArrayBuffer;
+var DataView = globalThis.DataView;
+var max = Math.max;
+var min = Math.min;
+var ArrayBufferPrototype = ArrayBuffer.prototype;
+var DataViewPrototype = DataView.prototype;
+var slice = uncurryThis(ArrayBufferPrototype.slice);
+var isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');
+var maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');
+var getInt8 = uncurryThis(DataViewPrototype.getInt8);
+var setInt8 = uncurryThis(DataViewPrototype.setInt8);
+
+module.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {
+ var byteLength = arrayBufferByteLength(arrayBuffer);
+ var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);
+ var fixedLength = !isResizable || !isResizable(arrayBuffer);
+ var newBuffer;
+ notDetached(arrayBuffer);
+ if (PROPER_STRUCTURED_CLONE_TRANSFER) {
+ arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });
+ if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;
+ }
+ if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {
+ newBuffer = slice(arrayBuffer, 0, newByteLength);
+ } else {
+ var options = preserveResizability && !fixedLength && maxByteLength
+ ? { maxByteLength: max(newByteLength, maxByteLength(arrayBuffer)) }
+ : undefined;
+ newBuffer = new ArrayBuffer(newByteLength, options);
+ var a = new DataView(arrayBuffer);
+ var b = new DataView(newBuffer);
+ var copyLength = min(newByteLength, byteLength);
+ for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));
+ }
+ if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);
+ return newBuffer;
+};
+
+
+/***/ },
+
+/***/ 4644
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var NATIVE_ARRAY_BUFFER = __webpack_require__(7811);
+var DESCRIPTORS = __webpack_require__(3724);
+var globalThis = __webpack_require__(4576);
+var isCallable = __webpack_require__(4901);
+var isObject = __webpack_require__(34);
+var hasOwn = __webpack_require__(9297);
+var classof = __webpack_require__(6955);
+var tryToString = __webpack_require__(6823);
+var createNonEnumerableProperty = __webpack_require__(6699);
+var defineBuiltIn = __webpack_require__(6840);
+var defineBuiltInAccessor = __webpack_require__(2106);
+var isPrototypeOf = __webpack_require__(1625);
+var getPrototypeOf = __webpack_require__(2787);
+var setPrototypeOf = __webpack_require__(2967);
+var wellKnownSymbol = __webpack_require__(8227);
+var uid = __webpack_require__(3392);
+var InternalStateModule = __webpack_require__(1181);
+
+var enforceInternalState = InternalStateModule.enforce;
+var getInternalState = InternalStateModule.get;
+var Int8Array = globalThis.Int8Array;
+var Int8ArrayPrototype = Int8Array && Int8Array.prototype;
+var Uint8ClampedArray = globalThis.Uint8ClampedArray;
+var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;
+var TypedArray = Int8Array && getPrototypeOf(Int8Array);
+var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);
+var ObjectPrototype = Object.prototype;
+var TypeError = globalThis.TypeError;
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');
+var TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';
+// Fixing native typed arrays in Opera Presto crashes the browser, see #595
+var NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';
+var TYPED_ARRAY_TAG_REQUIRED = false;
+var NAME, Constructor, Prototype;
+
+var TypedArrayConstructorsList = {
+ Int8Array: 1,
+ Uint8Array: 1,
+ Uint8ClampedArray: 1,
+ Int16Array: 2,
+ Uint16Array: 2,
+ Int32Array: 4,
+ Uint32Array: 4,
+ Float32Array: 4,
+ Float64Array: 8
+};
+
+var BigIntArrayConstructorsList = {
+ BigInt64Array: 8,
+ BigUint64Array: 8
+};
+
+var isView = function isView(it) {
+ if (!isObject(it)) return false;
+ var klass = classof(it);
+ return klass === 'DataView'
+ || hasOwn(TypedArrayConstructorsList, klass)
+ || hasOwn(BigIntArrayConstructorsList, klass);
+};
+
+var getTypedArrayConstructor = function (it) {
+ var proto = getPrototypeOf(it);
+ if (!isObject(proto)) return;
+ var state = getInternalState(proto);
+ return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);
+};
+
+var isTypedArray = function (it) {
+ if (!isObject(it)) return false;
+ var klass = classof(it);
+ return hasOwn(TypedArrayConstructorsList, klass)
+ || hasOwn(BigIntArrayConstructorsList, klass);
+};
+
+var aTypedArray = function (it) {
+ if (isTypedArray(it)) return it;
+ throw new TypeError('Target is not a typed array');
+};
+
+var aTypedArrayConstructor = function (C) {
+ if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;
+ throw new TypeError(tryToString(C) + ' is not a typed array constructor');
+};
+
+var exportTypedArrayMethod = function (KEY, property, forced, options) {
+ if (!DESCRIPTORS) return;
+ if (forced) for (var ARRAY in TypedArrayConstructorsList) {
+ var TypedArrayConstructor = globalThis[ARRAY];
+ if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {
+ delete TypedArrayConstructor.prototype[KEY];
+ } catch (error) {
+ // old WebKit bug - some methods are non-configurable
+ try {
+ TypedArrayConstructor.prototype[KEY] = property;
+ } catch (error2) { /* empty */ }
+ }
+ }
+ if (!TypedArrayPrototype[KEY] || forced) {
+ defineBuiltIn(TypedArrayPrototype, KEY, forced ? property
+ : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);
+ }
+};
+
+var exportTypedArrayStaticMethod = function (KEY, property, forced) {
+ var ARRAY, TypedArrayConstructor;
+ if (!DESCRIPTORS) return;
+ if (setPrototypeOf) {
+ if (forced) for (ARRAY in TypedArrayConstructorsList) {
+ TypedArrayConstructor = globalThis[ARRAY];
+ if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {
+ delete TypedArrayConstructor[KEY];
+ } catch (error) { /* empty */ }
+ }
+ if (!TypedArray[KEY] || forced) {
+ // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable
+ try {
+ return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);
+ } catch (error) { /* empty */ }
+ } else return;
+ }
+ for (ARRAY in TypedArrayConstructorsList) {
+ TypedArrayConstructor = globalThis[ARRAY];
+ if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {
+ defineBuiltIn(TypedArrayConstructor, KEY, property);
+ }
+ }
+};
+
+for (NAME in TypedArrayConstructorsList) {
+ Constructor = globalThis[NAME];
+ Prototype = Constructor && Constructor.prototype;
+ if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;
+ else NATIVE_ARRAY_BUFFER_VIEWS = false;
+}
+
+for (NAME in BigIntArrayConstructorsList) {
+ Constructor = globalThis[NAME];
+ Prototype = Constructor && Constructor.prototype;
+ if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;
+}
+
+// WebKit bug - typed arrays constructors prototype is Object.prototype
+if (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {
+ // eslint-disable-next-line no-shadow -- safe
+ TypedArray = function TypedArray() {
+ throw new TypeError('Incorrect invocation');
+ };
+ if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
+ if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);
+ }
+}
+
+if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {
+ TypedArrayPrototype = TypedArray.prototype;
+ if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {
+ if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);
+ }
+}
+
+// WebKit bug - one more object in Uint8ClampedArray prototype chain
+if (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {
+ setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);
+}
+
+if (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {
+ TYPED_ARRAY_TAG_REQUIRED = true;
+ defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {
+ configurable: true,
+ get: function () {
+ return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;
+ }
+ });
+ for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {
+ createNonEnumerableProperty(globalThis[NAME].prototype, TYPED_ARRAY_TAG, NAME);
+ }
+}
+
+module.exports = {
+ NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,
+ TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,
+ aTypedArray: aTypedArray,
+ aTypedArrayConstructor: aTypedArrayConstructor,
+ exportTypedArrayMethod: exportTypedArrayMethod,
+ exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,
+ getTypedArrayConstructor: getTypedArrayConstructor,
+ isView: isView,
+ isTypedArray: isTypedArray,
+ TypedArray: TypedArray,
+ TypedArrayPrototype: TypedArrayPrototype
+};
+
+
+/***/ },
+
+/***/ 9617
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toIndexedObject = __webpack_require__(5397);
+var toAbsoluteIndex = __webpack_require__(5610);
+var lengthOfArrayLike = __webpack_require__(6198);
+
+// `Array.prototype.{ indexOf, includes }` methods implementation
+var createMethod = function (IS_INCLUDES) {
+ return function ($this, el, fromIndex) {
+ var O = toIndexedObject($this);
+ var length = lengthOfArrayLike(O);
+ if (length === 0) return !IS_INCLUDES && -1;
+ var index = toAbsoluteIndex(fromIndex, length);
+ var value;
+ // Array#includes uses SameValueZero equality algorithm
+ // eslint-disable-next-line no-self-compare -- NaN check
+ if (IS_INCLUDES && el !== el) while (length > index) {
+ value = O[index++];
+ // eslint-disable-next-line no-self-compare -- NaN check
+ if (value !== value) return true;
+ // Array#indexOf ignores holes, Array#includes - not
+ } else for (;length > index; index++) {
+ if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;
+ } return !IS_INCLUDES && -1;
+ };
+};
+
+module.exports = {
+ // `Array.prototype.includes` method
+ // https://tc39.es/ecma262/#sec-array.prototype.includes
+ includes: createMethod(true),
+ // `Array.prototype.indexOf` method
+ // https://tc39.es/ecma262/#sec-array.prototype.indexof
+ indexOf: createMethod(false)
+};
+
+
+/***/ },
+
+/***/ 4527
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var isArray = __webpack_require__(4376);
+
+var $TypeError = TypeError;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+// Safari < 13 does not throw an error in this case
+var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {
+ // makes no sense without proper strict mode support
+ if (this !== undefined) return true;
+ try {
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
+ Object.defineProperty([], 'length', { writable: false }).length = 1;
+ } catch (error) {
+ return error instanceof TypeError;
+ }
+}();
+
+module.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {
+ if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {
+ throw new $TypeError('Cannot set read only .length');
+ } return O.length = length;
+} : function (O, length) {
+ return O.length = length;
+};
+
+
+/***/ },
+
+/***/ 7680
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+module.exports = uncurryThis([].slice);
+
+
+/***/ },
+
+/***/ 6319
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var anObject = __webpack_require__(8551);
+var iteratorClose = __webpack_require__(9539);
+
+// call something on iterator step with safe closing on error
+module.exports = function (iterator, fn, value, ENTRIES) {
+ try {
+ return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
+ } catch (error) {
+ iteratorClose(iterator, 'throw', error);
+ }
+};
+
+
+/***/ },
+
+/***/ 2195
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+var toString = uncurryThis({}.toString);
+var stringSlice = uncurryThis(''.slice);
+
+module.exports = function (it) {
+ return stringSlice(toString(it), 8, -1);
+};
+
+
+/***/ },
+
+/***/ 6955
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var TO_STRING_TAG_SUPPORT = __webpack_require__(2140);
+var isCallable = __webpack_require__(4901);
+var classofRaw = __webpack_require__(2195);
+var wellKnownSymbol = __webpack_require__(8227);
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var $Object = Object;
+
+// ES3 wrong here
+var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';
+
+// fallback for IE11 Script Access Denied error
+var tryGet = function (it, key) {
+ try {
+ return it[key];
+ } catch (error) { /* empty */ }
+};
+
+// getting tag from ES6+ `Object.prototype.toString`
+module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
+ var O, tag, result;
+ return it === undefined ? 'Undefined' : it === null ? 'Null'
+ // @@toStringTag case
+ : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag
+ // builtinTag case
+ : CORRECT_ARGUMENTS ? classofRaw(O)
+ // ES3 arguments fallback
+ : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;
+};
+
+
+/***/ },
+
+/***/ 7740
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var hasOwn = __webpack_require__(9297);
+var ownKeys = __webpack_require__(5031);
+var getOwnPropertyDescriptorModule = __webpack_require__(7347);
+var definePropertyModule = __webpack_require__(4913);
+
+module.exports = function (target, source, exceptions) {
+ var keys = ownKeys(source);
+ var defineProperty = definePropertyModule.f;
+ var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {
+ defineProperty(target, key, getOwnPropertyDescriptor(source, key));
+ }
+ }
+};
+
+
+/***/ },
+
+/***/ 2211
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+
+module.exports = !fails(function () {
+ function F() { /* empty */ }
+ F.prototype.constructor = null;
+ // eslint-disable-next-line es/no-object-getprototypeof -- required for testing
+ return Object.getPrototypeOf(new F()) !== F.prototype;
+});
+
+
+/***/ },
+
+/***/ 2529
+(module) {
+
+
+// `CreateIterResultObject` abstract operation
+// https://tc39.es/ecma262/#sec-createiterresultobject
+module.exports = function (value, done) {
+ return { value: value, done: done };
+};
+
+
+/***/ },
+
+/***/ 6699
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var definePropertyModule = __webpack_require__(4913);
+var createPropertyDescriptor = __webpack_require__(6980);
+
+module.exports = DESCRIPTORS ? function (object, key, value) {
+ return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
+} : function (object, key, value) {
+ object[key] = value;
+ return object;
+};
+
+
+/***/ },
+
+/***/ 6980
+(module) {
+
+
+module.exports = function (bitmap, value) {
+ return {
+ enumerable: !(bitmap & 1),
+ configurable: !(bitmap & 2),
+ writable: !(bitmap & 4),
+ value: value
+ };
+};
+
+
+/***/ },
+
+/***/ 4659
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var definePropertyModule = __webpack_require__(4913);
+var createPropertyDescriptor = __webpack_require__(6980);
+
+module.exports = function (object, key, value) {
+ if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));
+ else object[key] = value;
+};
+
+
+/***/ },
+
+/***/ 2106
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var makeBuiltIn = __webpack_require__(283);
+var defineProperty = __webpack_require__(4913);
+
+module.exports = function (target, name, descriptor) {
+ if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });
+ if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });
+ return defineProperty.f(target, name, descriptor);
+};
+
+
+/***/ },
+
+/***/ 6840
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isCallable = __webpack_require__(4901);
+var definePropertyModule = __webpack_require__(4913);
+var makeBuiltIn = __webpack_require__(283);
+var defineGlobalProperty = __webpack_require__(9433);
+
+module.exports = function (O, key, value, options) {
+ if (!options) options = {};
+ var simple = options.enumerable;
+ var name = options.name !== undefined ? options.name : key;
+ if (isCallable(value)) makeBuiltIn(value, name, options);
+ if (options.global) {
+ if (simple) O[key] = value;
+ else defineGlobalProperty(key, value);
+ } else {
+ try {
+ if (!options.unsafe) delete O[key];
+ else if (O[key]) simple = true;
+ } catch (error) { /* empty */ }
+ if (simple) O[key] = value;
+ else definePropertyModule.f(O, key, {
+ value: value,
+ enumerable: false,
+ configurable: !options.nonConfigurable,
+ writable: !options.nonWritable
+ });
+ } return O;
+};
+
+
+/***/ },
+
+/***/ 6279
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var defineBuiltIn = __webpack_require__(6840);
+
+module.exports = function (target, src, options) {
+ for (var key in src) defineBuiltIn(target, key, src[key], options);
+ return target;
+};
+
+
+/***/ },
+
+/***/ 9433
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+
+// eslint-disable-next-line es/no-object-defineproperty -- safe
+var defineProperty = Object.defineProperty;
+
+module.exports = function (key, value) {
+ try {
+ defineProperty(globalThis, key, { value: value, configurable: true, writable: true });
+ } catch (error) {
+ globalThis[key] = value;
+ } return value;
+};
+
+
+/***/ },
+
+/***/ 3724
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+
+// Detect IE8's incomplete defineProperty implementation
+module.exports = !fails(function () {
+ // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+ return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;
+});
+
+
+/***/ },
+
+/***/ 4483
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var getBuiltInNodeModule = __webpack_require__(9429);
+var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548);
+
+var structuredClone = globalThis.structuredClone;
+var $ArrayBuffer = globalThis.ArrayBuffer;
+var $MessageChannel = globalThis.MessageChannel;
+var detach = false;
+var WorkerThreads, channel, buffer, $detach;
+
+if (PROPER_STRUCTURED_CLONE_TRANSFER) {
+ detach = function (transferable) {
+ structuredClone(transferable, { transfer: [transferable] });
+ };
+} else if ($ArrayBuffer) try {
+ if (!$MessageChannel) {
+ WorkerThreads = getBuiltInNodeModule('worker_threads');
+ if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;
+ }
+
+ if ($MessageChannel) {
+ channel = new $MessageChannel();
+ buffer = new $ArrayBuffer(2);
+
+ $detach = function (transferable) {
+ channel.port1.postMessage(null, [transferable]);
+ };
+
+ if (buffer.byteLength === 2) {
+ $detach(buffer);
+ if (buffer.byteLength === 0) detach = $detach;
+ }
+ }
+} catch (error) { /* empty */ }
+
+module.exports = detach;
+
+
+/***/ },
+
+/***/ 4055
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var isObject = __webpack_require__(34);
+
+var document = globalThis.document;
+// typeof document.createElement is 'object' in old IE
+var EXISTS = isObject(document) && isObject(document.createElement);
+
+module.exports = function (it) {
+ return EXISTS ? document.createElement(it) : {};
+};
+
+
+/***/ },
+
+/***/ 6837
+(module) {
+
+
+var $TypeError = TypeError;
+var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991
+
+module.exports = function (it) {
+ if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');
+ return it;
+};
+
+
+/***/ },
+
+/***/ 8727
+(module) {
+
+
+// IE8- don't enum bug keys
+module.exports = [
+ 'constructor',
+ 'hasOwnProperty',
+ 'isPrototypeOf',
+ 'propertyIsEnumerable',
+ 'toLocaleString',
+ 'toString',
+ 'valueOf'
+];
+
+
+/***/ },
+
+/***/ 6193
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var ENVIRONMENT = __webpack_require__(4215);
+
+module.exports = ENVIRONMENT === 'NODE';
+
+
+/***/ },
+
+/***/ 2839
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+
+var navigator = globalThis.navigator;
+var userAgent = navigator && navigator.userAgent;
+
+module.exports = userAgent ? String(userAgent) : '';
+
+
+/***/ },
+
+/***/ 9519
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var userAgent = __webpack_require__(2839);
+
+var process = globalThis.process;
+var Deno = globalThis.Deno;
+var versions = process && process.versions || Deno && Deno.version;
+var v8 = versions && versions.v8;
+var match, version;
+
+if (v8) {
+ match = v8.split('.');
+ // in old Chrome, versions of V8 isn't V8 = Chrome / 10
+ // but their correct versions are not interesting for us
+ version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
+}
+
+// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`
+// so check `userAgent` even if `.v8` exists, but 0
+if (!version && userAgent) {
+ match = userAgent.match(/Edge\/(\d+)/);
+ if (!match || match[1] >= 74) {
+ match = userAgent.match(/Chrome\/(\d+)/);
+ if (match) version = +match[1];
+ }
+}
+
+module.exports = version;
+
+
+/***/ },
+
+/***/ 4215
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* global Bun, Deno -- detection */
+var globalThis = __webpack_require__(4576);
+var userAgent = __webpack_require__(2839);
+var classof = __webpack_require__(2195);
+
+var userAgentStartsWith = function (string) {
+ return userAgent.slice(0, string.length) === string;
+};
+
+module.exports = (function () {
+ if (userAgentStartsWith('Bun/')) return 'BUN';
+ if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';
+ if (userAgentStartsWith('Deno/')) return 'DENO';
+ if (userAgentStartsWith('Node.js/')) return 'NODE';
+ if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';
+ if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';
+ if (classof(globalThis.process) === 'process') return 'NODE';
+ if (globalThis.window && globalThis.document) return 'BROWSER';
+ return 'REST';
+})();
+
+
+/***/ },
+
+/***/ 6518
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var getOwnPropertyDescriptor = (__webpack_require__(7347).f);
+var createNonEnumerableProperty = __webpack_require__(6699);
+var defineBuiltIn = __webpack_require__(6840);
+var defineGlobalProperty = __webpack_require__(9433);
+var copyConstructorProperties = __webpack_require__(7740);
+var isForced = __webpack_require__(2796);
+
+/*
+ options.target - name of the target object
+ options.global - target is the global object
+ options.stat - export as static methods of target
+ options.proto - export as prototype methods of target
+ options.real - real prototype method for the `pure` version
+ options.forced - export even if the native feature is available
+ options.bind - bind methods to the target, required for the `pure` version
+ options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
+ options.unsafe - use the simple assignment of property instead of delete + defineProperty
+ options.sham - add a flag to not completely full polyfills
+ options.enumerable - export as enumerable property
+ options.dontCallGetSet - prevent calling a getter on target
+ options.name - the .name of the function if it does not match the key
+*/
+module.exports = function (options, source) {
+ var TARGET = options.target;
+ var GLOBAL = options.global;
+ var STATIC = options.stat;
+ var FORCED, target, key, targetProperty, sourceProperty, descriptor;
+ if (GLOBAL) {
+ target = globalThis;
+ } else if (STATIC) {
+ target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});
+ } else {
+ target = globalThis[TARGET] && globalThis[TARGET].prototype;
+ }
+ if (target) for (key in source) {
+ sourceProperty = source[key];
+ if (options.dontCallGetSet) {
+ descriptor = getOwnPropertyDescriptor(target, key);
+ targetProperty = descriptor && descriptor.value;
+ } else targetProperty = target[key];
+ FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
+ // contained in target
+ if (!FORCED && targetProperty !== undefined) {
+ if (typeof sourceProperty == typeof targetProperty) continue;
+ copyConstructorProperties(sourceProperty, targetProperty);
+ }
+ // add a flag to not completely full polyfills
+ if (options.sham || (targetProperty && targetProperty.sham)) {
+ createNonEnumerableProperty(sourceProperty, 'sham', true);
+ }
+ defineBuiltIn(target, key, sourceProperty, options);
+ }
+};
+
+
+/***/ },
+
+/***/ 9039
+(module) {
+
+
+module.exports = function (exec) {
+ try {
+ return !!exec();
+ } catch (error) {
+ return true;
+ }
+};
+
+
+/***/ },
+
+/***/ 8745
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var NATIVE_BIND = __webpack_require__(616);
+
+var FunctionPrototype = Function.prototype;
+var apply = FunctionPrototype.apply;
+var call = FunctionPrototype.call;
+
+// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe
+module.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {
+ return call.apply(apply, arguments);
+});
+
+
+/***/ },
+
+/***/ 6080
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(7476);
+var aCallable = __webpack_require__(9306);
+var NATIVE_BIND = __webpack_require__(616);
+
+var bind = uncurryThis(uncurryThis.bind);
+
+// optional / simple context binding
+module.exports = function (fn, that) {
+ aCallable(fn);
+ return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {
+ return fn.apply(that, arguments);
+ };
+};
+
+
+/***/ },
+
+/***/ 616
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+
+module.exports = !fails(function () {
+ // eslint-disable-next-line es/no-function-prototype-bind -- safe
+ var test = function () { /* empty */ }.bind();
+ // eslint-disable-next-line no-prototype-builtins -- safe
+ return typeof test != 'function' || test.hasOwnProperty('prototype');
+});
+
+
+/***/ },
+
+/***/ 9565
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var NATIVE_BIND = __webpack_require__(616);
+
+var call = Function.prototype.call;
+// eslint-disable-next-line es/no-function-prototype-bind -- safe
+module.exports = NATIVE_BIND ? call.bind(call) : function () {
+ return call.apply(call, arguments);
+};
+
+
+/***/ },
+
+/***/ 350
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var hasOwn = __webpack_require__(9297);
+
+var FunctionPrototype = Function.prototype;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;
+
+var EXISTS = hasOwn(FunctionPrototype, 'name');
+// additional protection from minified / mangled / dropped function names
+var PROPER = EXISTS && function something() { /* empty */ }.name === 'something';
+var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));
+
+module.exports = {
+ EXISTS: EXISTS,
+ PROPER: PROPER,
+ CONFIGURABLE: CONFIGURABLE
+};
+
+
+/***/ },
+
+/***/ 6706
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var aCallable = __webpack_require__(9306);
+
+module.exports = function (object, key, method) {
+ try {
+ // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+ return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));
+ } catch (error) { /* empty */ }
+};
+
+
+/***/ },
+
+/***/ 7476
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classofRaw = __webpack_require__(2195);
+var uncurryThis = __webpack_require__(9504);
+
+module.exports = function (fn) {
+ // Nashorn bug:
+ // https://github.com/zloirock/core-js/issues/1128
+ // https://github.com/zloirock/core-js/issues/1130
+ if (classofRaw(fn) === 'Function') return uncurryThis(fn);
+};
+
+
+/***/ },
+
+/***/ 9504
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var NATIVE_BIND = __webpack_require__(616);
+
+var FunctionPrototype = Function.prototype;
+var call = FunctionPrototype.call;
+// eslint-disable-next-line es/no-function-prototype-bind -- safe
+var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);
+
+module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {
+ return function () {
+ return call.apply(fn, arguments);
+ };
+};
+
+
+/***/ },
+
+/***/ 9429
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var IS_NODE = __webpack_require__(6193);
+
+module.exports = function (name) {
+ if (IS_NODE) {
+ try {
+ return globalThis.process.getBuiltinModule(name);
+ } catch (error) { /* empty */ }
+ try {
+ // eslint-disable-next-line no-new-func -- safe
+ return Function('return require("' + name + '")')();
+ } catch (error) { /* empty */ }
+ }
+};
+
+
+/***/ },
+
+/***/ 7751
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var isCallable = __webpack_require__(4901);
+
+var aFunction = function (argument) {
+ return isCallable(argument) ? argument : undefined;
+};
+
+module.exports = function (namespace, method) {
+ return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];
+};
+
+
+/***/ },
+
+/***/ 1767
+(module) {
+
+
+// `GetIteratorDirect(obj)` abstract operation
+// https://tc39.es/ecma262/#sec-getiteratordirect
+module.exports = function (obj) {
+ return {
+ iterator: obj,
+ next: obj.next,
+ done: false
+ };
+};
+
+
+/***/ },
+
+/***/ 851
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classof = __webpack_require__(6955);
+var getMethod = __webpack_require__(5966);
+var isNullOrUndefined = __webpack_require__(4117);
+var Iterators = __webpack_require__(6269);
+var wellKnownSymbol = __webpack_require__(8227);
+
+var ITERATOR = wellKnownSymbol('iterator');
+
+module.exports = function (it) {
+ if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)
+ || getMethod(it, '@@iterator')
+ || Iterators[classof(it)];
+};
+
+
+/***/ },
+
+/***/ 81
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var tryToString = __webpack_require__(6823);
+var getIteratorMethod = __webpack_require__(851);
+
+var $TypeError = TypeError;
+
+module.exports = function (argument, usingIterator) {
+ var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;
+ if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));
+ throw new $TypeError(tryToString(argument) + ' is not iterable');
+};
+
+
+/***/ },
+
+/***/ 5966
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aCallable = __webpack_require__(9306);
+var isNullOrUndefined = __webpack_require__(4117);
+
+// `GetMethod` abstract operation
+// https://tc39.es/ecma262/#sec-getmethod
+module.exports = function (V, P) {
+ var func = V[P];
+ return isNullOrUndefined(func) ? undefined : aCallable(func);
+};
+
+
+/***/ },
+
+/***/ 3789
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var call = __webpack_require__(9565);
+var toIntegerOrInfinity = __webpack_require__(1291);
+var getIteratorDirect = __webpack_require__(1767);
+
+var INVALID_SIZE = 'Invalid size';
+var $RangeError = RangeError;
+var $TypeError = TypeError;
+var max = Math.max;
+
+var SetRecord = function (set, intSize) {
+ this.set = set;
+ this.size = max(intSize, 0);
+ this.has = aCallable(set.has);
+ this.keys = aCallable(set.keys);
+};
+
+SetRecord.prototype = {
+ getIterator: function () {
+ return getIteratorDirect(anObject(call(this.keys, this.set)));
+ },
+ includes: function (it) {
+ return call(this.has, this.set, it);
+ }
+};
+
+// `GetSetRecord` abstract operation
+// https://tc39.es/proposal-set-methods/#sec-getsetrecord
+module.exports = function (obj) {
+ anObject(obj);
+ var numSize = +obj.size;
+ // NOTE: If size is undefined, then numSize will be NaN
+ // eslint-disable-next-line no-self-compare -- NaN check
+ if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);
+ var intSize = toIntegerOrInfinity(numSize);
+ if (intSize < 0) throw new $RangeError(INVALID_SIZE);
+ return new SetRecord(obj, intSize);
+};
+
+
+/***/ },
+
+/***/ 4576
+(module) {
+
+
+var check = function (it) {
+ return it && it.Math === Math && it;
+};
+
+// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
+module.exports =
+ // eslint-disable-next-line es/no-global-this -- safe
+ check(typeof globalThis == 'object' && globalThis) ||
+ check(typeof window == 'object' && window) ||
+ // eslint-disable-next-line no-restricted-globals -- safe
+ check(typeof self == 'object' && self) ||
+ check(typeof global == 'object' && global) ||
+ check(typeof this == 'object' && this) ||
+ // eslint-disable-next-line no-new-func -- fallback
+ (function () { return this; })() || Function('return this')();
+
+
+/***/ },
+
+/***/ 9297
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var toObject = __webpack_require__(8981);
+
+var hasOwnProperty = uncurryThis({}.hasOwnProperty);
+
+// `HasOwnProperty` abstract operation
+// https://tc39.es/ecma262/#sec-hasownproperty
+// eslint-disable-next-line es/no-object-hasown -- safe
+module.exports = Object.hasOwn || function hasOwn(it, key) {
+ return hasOwnProperty(toObject(it), key);
+};
+
+
+/***/ },
+
+/***/ 421
+(module) {
+
+
+module.exports = {};
+
+
+/***/ },
+
+/***/ 397
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var getBuiltIn = __webpack_require__(7751);
+
+module.exports = getBuiltIn('document', 'documentElement');
+
+
+/***/ },
+
+/***/ 5917
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var fails = __webpack_require__(9039);
+var createElement = __webpack_require__(4055);
+
+// Thanks to IE8 for its funny defineProperty
+module.exports = !DESCRIPTORS && !fails(function () {
+ // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+ return Object.defineProperty(createElement('div'), 'a', {
+ get: function () { return 7; }
+ }).a !== 7;
+});
+
+
+/***/ },
+
+/***/ 7055
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var fails = __webpack_require__(9039);
+var classof = __webpack_require__(2195);
+
+var $Object = Object;
+var split = uncurryThis(''.split);
+
+// fallback for non-array-like ES3 and non-enumerable old V8 strings
+module.exports = fails(function () {
+ // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
+ // eslint-disable-next-line no-prototype-builtins -- safe
+ return !$Object('z').propertyIsEnumerable(0);
+}) ? function (it) {
+ return classof(it) === 'String' ? split(it, '') : $Object(it);
+} : $Object;
+
+
+/***/ },
+
+/***/ 3706
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var isCallable = __webpack_require__(4901);
+var store = __webpack_require__(7629);
+
+var functionToString = uncurryThis(Function.toString);
+
+// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper
+if (!isCallable(store.inspectSource)) {
+ store.inspectSource = function (it) {
+ return functionToString(it);
+ };
+}
+
+module.exports = store.inspectSource;
+
+
+/***/ },
+
+/***/ 1181
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var NATIVE_WEAK_MAP = __webpack_require__(8622);
+var globalThis = __webpack_require__(4576);
+var isObject = __webpack_require__(34);
+var createNonEnumerableProperty = __webpack_require__(6699);
+var hasOwn = __webpack_require__(9297);
+var shared = __webpack_require__(7629);
+var sharedKey = __webpack_require__(6119);
+var hiddenKeys = __webpack_require__(421);
+
+var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
+var TypeError = globalThis.TypeError;
+var WeakMap = globalThis.WeakMap;
+var set, get, has;
+
+var enforce = function (it) {
+ return has(it) ? get(it) : set(it, {});
+};
+
+var getterFor = function (TYPE) {
+ return function (it) {
+ var state;
+ if (!isObject(it) || (state = get(it)).type !== TYPE) {
+ throw new TypeError('Incompatible receiver, ' + TYPE + ' required');
+ } return state;
+ };
+};
+
+if (NATIVE_WEAK_MAP || shared.state) {
+ var store = shared.state || (shared.state = new WeakMap());
+ /* eslint-disable no-self-assign -- prototype methods protection */
+ store.get = store.get;
+ store.has = store.has;
+ store.set = store.set;
+ /* eslint-enable no-self-assign -- prototype methods protection */
+ set = function (it, metadata) {
+ if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
+ metadata.facade = it;
+ store.set(it, metadata);
+ return metadata;
+ };
+ get = function (it) {
+ return store.get(it) || {};
+ };
+ has = function (it) {
+ return store.has(it);
+ };
+} else {
+ var STATE = sharedKey('state');
+ hiddenKeys[STATE] = true;
+ set = function (it, metadata) {
+ if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);
+ metadata.facade = it;
+ createNonEnumerableProperty(it, STATE, metadata);
+ return metadata;
+ };
+ get = function (it) {
+ return hasOwn(it, STATE) ? it[STATE] : {};
+ };
+ has = function (it) {
+ return hasOwn(it, STATE);
+ };
+}
+
+module.exports = {
+ set: set,
+ get: get,
+ has: has,
+ enforce: enforce,
+ getterFor: getterFor
+};
+
+
+/***/ },
+
+/***/ 4209
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var wellKnownSymbol = __webpack_require__(8227);
+var Iterators = __webpack_require__(6269);
+
+var ITERATOR = wellKnownSymbol('iterator');
+var ArrayPrototype = Array.prototype;
+
+// check on default Array iterator
+module.exports = function (it) {
+ return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
+};
+
+
+/***/ },
+
+/***/ 4376
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classof = __webpack_require__(2195);
+
+// `IsArray` abstract operation
+// https://tc39.es/ecma262/#sec-isarray
+// eslint-disable-next-line es/no-array-isarray -- safe
+module.exports = Array.isArray || function isArray(argument) {
+ return classof(argument) === 'Array';
+};
+
+
+/***/ },
+
+/***/ 1108
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classof = __webpack_require__(6955);
+
+module.exports = function (it) {
+ var klass = classof(it);
+ return klass === 'BigInt64Array' || klass === 'BigUint64Array';
+};
+
+
+/***/ },
+
+/***/ 4901
+(module) {
+
+
+// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot
+var documentAll = typeof document == 'object' && document.all;
+
+// `IsCallable` abstract operation
+// https://tc39.es/ecma262/#sec-iscallable
+// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing
+module.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {
+ return typeof argument == 'function' || argument === documentAll;
+} : function (argument) {
+ return typeof argument == 'function';
+};
+
+
+/***/ },
+
+/***/ 2796
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+var isCallable = __webpack_require__(4901);
+
+var replacement = /#|\.prototype\./;
+
+var isForced = function (feature, detection) {
+ var value = data[normalize(feature)];
+ return value === POLYFILL ? true
+ : value === NATIVE ? false
+ : isCallable(detection) ? fails(detection)
+ : !!detection;
+};
+
+var normalize = isForced.normalize = function (string) {
+ return String(string).replace(replacement, '.').toLowerCase();
+};
+
+var data = isForced.data = {};
+var NATIVE = isForced.NATIVE = 'N';
+var POLYFILL = isForced.POLYFILL = 'P';
+
+module.exports = isForced;
+
+
+/***/ },
+
+/***/ 4117
+(module) {
+
+
+// we can't use just `it == null` since of `document.all` special case
+// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec
+module.exports = function (it) {
+ return it === null || it === undefined;
+};
+
+
+/***/ },
+
+/***/ 34
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isCallable = __webpack_require__(4901);
+
+module.exports = function (it) {
+ return typeof it == 'object' ? it !== null : isCallable(it);
+};
+
+
+/***/ },
+
+/***/ 3925
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isObject = __webpack_require__(34);
+
+module.exports = function (argument) {
+ return isObject(argument) || argument === null;
+};
+
+
+/***/ },
+
+/***/ 6395
+(module) {
+
+
+module.exports = false;
+
+
+/***/ },
+
+/***/ 5810
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isObject = __webpack_require__(34);
+var getInternalState = (__webpack_require__(1181).get);
+
+module.exports = function isRawJSON(O) {
+ if (!isObject(O)) return false;
+ var state = getInternalState(O);
+ return !!state && state.type === 'RawJSON';
+};
+
+
+/***/ },
+
+/***/ 757
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var getBuiltIn = __webpack_require__(7751);
+var isCallable = __webpack_require__(4901);
+var isPrototypeOf = __webpack_require__(1625);
+var USE_SYMBOL_AS_UID = __webpack_require__(7040);
+
+var $Object = Object;
+
+module.exports = USE_SYMBOL_AS_UID ? function (it) {
+ return typeof it == 'symbol';
+} : function (it) {
+ var $Symbol = getBuiltIn('Symbol');
+ return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));
+};
+
+
+/***/ },
+
+/***/ 507
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+
+module.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {
+ var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;
+ var next = record.next;
+ var step, result;
+ while (!(step = call(next, iterator)).done) {
+ result = fn(step.value);
+ if (result !== undefined) return result;
+ }
+};
+
+
+/***/ },
+
+/***/ 2652
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var bind = __webpack_require__(6080);
+var call = __webpack_require__(9565);
+var anObject = __webpack_require__(8551);
+var tryToString = __webpack_require__(6823);
+var isArrayIteratorMethod = __webpack_require__(4209);
+var lengthOfArrayLike = __webpack_require__(6198);
+var isPrototypeOf = __webpack_require__(1625);
+var getIterator = __webpack_require__(81);
+var getIteratorMethod = __webpack_require__(851);
+var iteratorClose = __webpack_require__(9539);
+
+var $TypeError = TypeError;
+
+var Result = function (stopped, result) {
+ this.stopped = stopped;
+ this.result = result;
+};
+
+var ResultPrototype = Result.prototype;
+
+module.exports = function (iterable, unboundFunction, options) {
+ var that = options && options.that;
+ var AS_ENTRIES = !!(options && options.AS_ENTRIES);
+ var IS_RECORD = !!(options && options.IS_RECORD);
+ var IS_ITERATOR = !!(options && options.IS_ITERATOR);
+ var INTERRUPTED = !!(options && options.INTERRUPTED);
+ var fn = bind(unboundFunction, that);
+ var iterator, iterFn, index, length, result, next, step;
+
+ var stop = function (condition) {
+ var $iterator = iterator;
+ iterator = undefined;
+ if ($iterator) iteratorClose($iterator, 'normal');
+ return new Result(true, condition);
+ };
+
+ var callFn = function (value) {
+ if (AS_ENTRIES) {
+ anObject(value);
+ return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
+ } return INTERRUPTED ? fn(value, stop) : fn(value);
+ };
+
+ if (IS_RECORD) {
+ iterator = iterable.iterator;
+ } else if (IS_ITERATOR) {
+ iterator = iterable;
+ } else {
+ iterFn = getIteratorMethod(iterable);
+ if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');
+ // optimisation for array iterators
+ if (isArrayIteratorMethod(iterFn)) {
+ for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {
+ result = callFn(iterable[index]);
+ if (result && isPrototypeOf(ResultPrototype, result)) return result;
+ } return new Result(false);
+ }
+ iterator = getIterator(iterable, iterFn);
+ }
+
+ next = IS_RECORD ? iterable.next : iterator.next;
+ while (!(step = call(next, iterator)).done) {
+ // `IteratorValue` errors should propagate without closing the iterator
+ var value = step.value;
+ try {
+ result = callFn(value);
+ } catch (error) {
+ if (iterator) iteratorClose(iterator, 'throw', error);
+ else throw error;
+ }
+ if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;
+ } return new Result(false);
+};
+
+
+/***/ },
+
+/***/ 1385
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var iteratorClose = __webpack_require__(9539);
+
+module.exports = function (iters, kind, value) {
+ for (var i = iters.length - 1; i >= 0; i--) {
+ if (iters[i] === undefined) continue;
+ try {
+ value = iteratorClose(iters[i].iterator, kind, value);
+ } catch (error) {
+ kind = 'throw';
+ value = error;
+ }
+ }
+ if (kind === 'throw') throw value;
+ return value;
+};
+
+
+/***/ },
+
+/***/ 9539
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var anObject = __webpack_require__(8551);
+var getMethod = __webpack_require__(5966);
+
+module.exports = function (iterator, kind, value) {
+ var innerResult, innerError;
+ anObject(iterator);
+ try {
+ innerResult = getMethod(iterator, 'return');
+ if (!innerResult) {
+ if (kind === 'throw') throw value;
+ return value;
+ }
+ innerResult = call(innerResult, iterator);
+ } catch (error) {
+ innerError = true;
+ innerResult = error;
+ }
+ if (kind === 'throw') throw value;
+ if (innerError) throw innerResult;
+ anObject(innerResult);
+ return value;
+};
+
+
+/***/ },
+
+/***/ 9462
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var create = __webpack_require__(2360);
+var createNonEnumerableProperty = __webpack_require__(6699);
+var defineBuiltIns = __webpack_require__(6279);
+var wellKnownSymbol = __webpack_require__(8227);
+var InternalStateModule = __webpack_require__(1181);
+var getMethod = __webpack_require__(5966);
+var IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);
+var createIterResultObject = __webpack_require__(2529);
+var iteratorClose = __webpack_require__(9539);
+var iteratorCloseAll = __webpack_require__(1385);
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var ITERATOR_HELPER = 'IteratorHelper';
+var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';
+var NORMAL = 'normal';
+var THROW = 'throw';
+var setInternalState = InternalStateModule.set;
+
+var createIteratorProxyPrototype = function (IS_ITERATOR) {
+ var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);
+
+ return defineBuiltIns(create(IteratorPrototype), {
+ next: function next() {
+ var state = getInternalState(this);
+ // for simplification:
+ // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`
+ // for `%IteratorHelperPrototype%.next` - just a value
+ if (IS_ITERATOR) return state.nextHandler();
+ if (state.done) return createIterResultObject(undefined, true);
+ try {
+ var result = state.nextHandler();
+ return state.returnHandlerResult ? result : createIterResultObject(result, state.done);
+ } catch (error) {
+ state.done = true;
+ throw error;
+ }
+ },
+ 'return': function () {
+ var state = getInternalState(this);
+ var iterator = state.iterator;
+ var done = state.done;
+ state.done = true;
+ if (IS_ITERATOR) {
+ var returnMethod = getMethod(iterator, 'return');
+ return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);
+ }
+ if (done) return createIterResultObject(undefined, true);
+ if (state.inner) try {
+ iteratorClose(state.inner.iterator, NORMAL);
+ } catch (error) {
+ return iteratorClose(iterator, THROW, error);
+ }
+ if (state.openIters) try {
+ iteratorCloseAll(state.openIters, NORMAL);
+ } catch (error) {
+ if (iterator) return iteratorClose(iterator, THROW, error);
+ throw error;
+ }
+ if (iterator) iteratorClose(iterator, NORMAL);
+ return createIterResultObject(undefined, true);
+ }
+ });
+};
+
+var WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);
+var IteratorHelperPrototype = createIteratorProxyPrototype(false);
+
+createNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');
+
+module.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {
+ var IteratorProxy = function Iterator(record, state) {
+ if (state) {
+ state.iterator = record.iterator;
+ state.next = record.next;
+ } else state = record;
+ state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;
+ state.returnHandlerResult = !!RETURN_HANDLER_RESULT;
+ state.nextHandler = nextHandler;
+ state.counter = 0;
+ state.done = false;
+ setInternalState(this, state);
+ };
+
+ IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;
+
+ return IteratorProxy;
+};
+
+
+/***/ },
+
+/***/ 684
+(module) {
+
+
+// Should throw an error on invalid iterator
+// https://issues.chromium.org/issues/336839115
+module.exports = function (methodName, argument) {
+ // eslint-disable-next-line es/no-iterator -- required for testing
+ var method = typeof Iterator == 'function' && Iterator.prototype[methodName];
+ if (method) try {
+ method.call({ next: null }, argument).next();
+ } catch (error) {
+ return true;
+ }
+};
+
+
+/***/ },
+
+/***/ 4549
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+
+// https://github.com/tc39/ecma262/pull/3467
+module.exports = function (METHOD_NAME, ExpectedError) {
+ var Iterator = globalThis.Iterator;
+ var IteratorPrototype = Iterator && Iterator.prototype;
+ var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];
+
+ var CLOSED = false;
+
+ if (method) try {
+ method.call({
+ next: function () { return { done: true }; },
+ 'return': function () { CLOSED = true; }
+ }, -1);
+ } catch (error) {
+ // https://bugs.webkit.org/show_bug.cgi?id=291195
+ if (!(error instanceof ExpectedError)) CLOSED = false;
+ }
+
+ if (!CLOSED) return method;
+};
+
+
+/***/ },
+
+/***/ 7657
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+var isCallable = __webpack_require__(4901);
+var isObject = __webpack_require__(34);
+var create = __webpack_require__(2360);
+var getPrototypeOf = __webpack_require__(2787);
+var defineBuiltIn = __webpack_require__(6840);
+var wellKnownSymbol = __webpack_require__(8227);
+var IS_PURE = __webpack_require__(6395);
+
+var ITERATOR = wellKnownSymbol('iterator');
+var BUGGY_SAFARI_ITERATORS = false;
+
+// `%IteratorPrototype%` object
+// https://tc39.es/ecma262/#sec-%iteratorprototype%-object
+var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
+
+/* eslint-disable es/no-array-prototype-keys -- safe */
+if ([].keys) {
+ arrayIterator = [].keys();
+ // Safari 8 has buggy iterators w/o `next`
+ if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;
+ else {
+ PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
+ if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;
+ }
+}
+
+var NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {
+ var test = {};
+ // FF44- legacy iterators case
+ return IteratorPrototype[ITERATOR].call(test) !== test;
+});
+
+if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};
+else if (IS_PURE) IteratorPrototype = create(IteratorPrototype);
+
+// `%IteratorPrototype%[@@iterator]()` method
+// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator
+if (!isCallable(IteratorPrototype[ITERATOR])) {
+ defineBuiltIn(IteratorPrototype, ITERATOR, function () {
+ return this;
+ });
+}
+
+module.exports = {
+ IteratorPrototype: IteratorPrototype,
+ BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
+};
+
+
+/***/ },
+
+/***/ 6269
+(module) {
+
+
+module.exports = {};
+
+
+/***/ },
+
+/***/ 6198
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toLength = __webpack_require__(8014);
+
+// `LengthOfArrayLike` abstract operation
+// https://tc39.es/ecma262/#sec-lengthofarraylike
+module.exports = function (obj) {
+ return toLength(obj.length);
+};
+
+
+/***/ },
+
+/***/ 283
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var fails = __webpack_require__(9039);
+var isCallable = __webpack_require__(4901);
+var hasOwn = __webpack_require__(9297);
+var DESCRIPTORS = __webpack_require__(3724);
+var CONFIGURABLE_FUNCTION_NAME = (__webpack_require__(350).CONFIGURABLE);
+var inspectSource = __webpack_require__(3706);
+var InternalStateModule = __webpack_require__(1181);
+
+var enforceInternalState = InternalStateModule.enforce;
+var getInternalState = InternalStateModule.get;
+var $String = String;
+// eslint-disable-next-line es/no-object-defineproperty -- safe
+var defineProperty = Object.defineProperty;
+var stringSlice = uncurryThis(''.slice);
+var replace = uncurryThis(''.replace);
+var join = uncurryThis([].join);
+
+var CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {
+ return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;
+});
+
+var TEMPLATE = String(String).split('String');
+
+var makeBuiltIn = module.exports = function (value, name, options) {
+ if (stringSlice($String(name), 0, 7) === 'Symbol(') {
+ name = '[' + replace($String(name), /^Symbol\(([^)]*)\).*$/, '$1') + ']';
+ }
+ if (options && options.getter) name = 'get ' + name;
+ if (options && options.setter) name = 'set ' + name;
+ if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {
+ if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });
+ else value.name = name;
+ }
+ if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {
+ defineProperty(value, 'length', { value: options.arity });
+ }
+ try {
+ if (options && hasOwn(options, 'constructor') && options.constructor) {
+ if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });
+ // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable
+ } else if (value.prototype) value.prototype = undefined;
+ } catch (error) { /* empty */ }
+ var state = enforceInternalState(value);
+ if (!hasOwn(state, 'source')) {
+ state.source = join(TEMPLATE, typeof name == 'string' ? name : '');
+ } return value;
+};
+
+// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
+// eslint-disable-next-line no-extend-native -- required
+Function.prototype.toString = makeBuiltIn(function toString() {
+ return isCallable(this) && getInternalState(this).source || inspectSource(this);
+}, 'toString');
+
+
+/***/ },
+
+/***/ 2248
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+// eslint-disable-next-line es/no-map -- safe
+var MapPrototype = Map.prototype;
+
+module.exports = {
+ // eslint-disable-next-line es/no-map -- safe
+ Map: Map,
+ set: uncurryThis(MapPrototype.set),
+ get: uncurryThis(MapPrototype.get),
+ has: uncurryThis(MapPrototype.has),
+ remove: uncurryThis(MapPrototype['delete']),
+ proto: MapPrototype
+};
+
+
+/***/ },
+
+/***/ 741
+(module) {
+
+
+var ceil = Math.ceil;
+var floor = Math.floor;
+
+// `Math.trunc` method
+// https://tc39.es/ecma262/#sec-math.trunc
+// eslint-disable-next-line es/no-math-trunc -- safe
+module.exports = Math.trunc || function trunc(x) {
+ var n = +x;
+ return (n > 0 ? floor : ceil)(n);
+};
+
+
+/***/ },
+
+/***/ 7819
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* eslint-disable es/no-json -- safe */
+var fails = __webpack_require__(9039);
+
+module.exports = !fails(function () {
+ var unsafeInt = '9007199254740993';
+ // eslint-disable-next-line es/no-json-rawjson -- feature detection
+ var raw = JSON.rawJSON(unsafeInt);
+ // eslint-disable-next-line es/no-json-israwjson -- feature detection
+ return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;
+});
+
+
+/***/ },
+
+/***/ 6043
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aCallable = __webpack_require__(9306);
+
+var $TypeError = TypeError;
+
+var PromiseCapability = function (C) {
+ var resolve, reject;
+ this.promise = new C(function ($$resolve, $$reject) {
+ if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');
+ resolve = $$resolve;
+ reject = $$reject;
+ });
+ this.resolve = aCallable(resolve);
+ this.reject = aCallable(reject);
+};
+
+// `NewPromiseCapability` abstract operation
+// https://tc39.es/ecma262/#sec-newpromisecapability
+module.exports.f = function (C) {
+ return new PromiseCapability(C);
+};
+
+
+/***/ },
+
+/***/ 2360
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* global ActiveXObject -- old IE, WSH */
+var anObject = __webpack_require__(8551);
+var definePropertiesModule = __webpack_require__(6801);
+var enumBugKeys = __webpack_require__(8727);
+var hiddenKeys = __webpack_require__(421);
+var html = __webpack_require__(397);
+var documentCreateElement = __webpack_require__(4055);
+var sharedKey = __webpack_require__(6119);
+
+var GT = '>';
+var LT = '<';
+var PROTOTYPE = 'prototype';
+var SCRIPT = 'script';
+var IE_PROTO = sharedKey('IE_PROTO');
+
+var EmptyConstructor = function () { /* empty */ };
+
+var scriptTag = function (content) {
+ return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
+};
+
+// Create object with fake `null` prototype: use ActiveX Object with cleared prototype
+var NullProtoObjectViaActiveX = function (activeXDocument) {
+ activeXDocument.write(scriptTag(''));
+ activeXDocument.close();
+ var temp = activeXDocument.parentWindow.Object;
+ // eslint-disable-next-line no-useless-assignment -- avoid memory leak
+ activeXDocument = null;
+ return temp;
+};
+
+// Create object with fake `null` prototype: use iframe Object with cleared prototype
+var NullProtoObjectViaIFrame = function () {
+ // Thrash, waste and sodomy: IE GC bug
+ var iframe = documentCreateElement('iframe');
+ var JS = 'java' + SCRIPT + ':';
+ var iframeDocument;
+ iframe.style.display = 'none';
+ html.appendChild(iframe);
+ // https://github.com/zloirock/core-js/issues/475
+ iframe.src = String(JS);
+ iframeDocument = iframe.contentWindow.document;
+ iframeDocument.open();
+ iframeDocument.write(scriptTag('document.F=Object'));
+ iframeDocument.close();
+ return iframeDocument.F;
+};
+
+// Check for document.domain and active x support
+// No need to use active x approach when document.domain is not set
+// see https://github.com/es-shims/es5-shim/issues/150
+// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346
+// avoid IE GC bug
+var activeXDocument;
+var NullProtoObject = function () {
+ try {
+ activeXDocument = new ActiveXObject('htmlfile');
+ } catch (error) { /* ignore */ }
+ NullProtoObject = typeof document != 'undefined'
+ ? document.domain && activeXDocument
+ ? NullProtoObjectViaActiveX(activeXDocument) // old IE
+ : NullProtoObjectViaIFrame()
+ : NullProtoObjectViaActiveX(activeXDocument); // WSH
+ var length = enumBugKeys.length;
+ while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
+ return NullProtoObject();
+};
+
+hiddenKeys[IE_PROTO] = true;
+
+// `Object.create` method
+// https://tc39.es/ecma262/#sec-object.create
+// eslint-disable-next-line es/no-object-create -- safe
+module.exports = Object.create || function create(O, Properties) {
+ var result;
+ if (O !== null) {
+ EmptyConstructor[PROTOTYPE] = anObject(O);
+ result = new EmptyConstructor();
+ EmptyConstructor[PROTOTYPE] = null;
+ // add "__proto__" for Object.getPrototypeOf polyfill
+ result[IE_PROTO] = O;
+ } else result = NullProtoObject();
+ return Properties === undefined ? result : definePropertiesModule.f(result, Properties);
+};
+
+
+/***/ },
+
+/***/ 6801
+(__unused_webpack_module, exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686);
+var definePropertyModule = __webpack_require__(4913);
+var anObject = __webpack_require__(8551);
+var toIndexedObject = __webpack_require__(5397);
+var objectKeys = __webpack_require__(1072);
+
+// `Object.defineProperties` method
+// https://tc39.es/ecma262/#sec-object.defineproperties
+// eslint-disable-next-line es/no-object-defineproperties -- safe
+exports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
+ anObject(O);
+ var props = toIndexedObject(Properties);
+ var keys = objectKeys(Properties);
+ var length = keys.length;
+ var index = 0;
+ var key;
+ while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);
+ return O;
+};
+
+
+/***/ },
+
+/***/ 4913
+(__unused_webpack_module, exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var IE8_DOM_DEFINE = __webpack_require__(5917);
+var V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(8686);
+var anObject = __webpack_require__(8551);
+var toPropertyKey = __webpack_require__(6969);
+
+var $TypeError = TypeError;
+// eslint-disable-next-line es/no-object-defineproperty -- safe
+var $defineProperty = Object.defineProperty;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+var ENUMERABLE = 'enumerable';
+var CONFIGURABLE = 'configurable';
+var WRITABLE = 'writable';
+
+// `Object.defineProperty` method
+// https://tc39.es/ecma262/#sec-object.defineproperty
+exports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {
+ anObject(O);
+ P = toPropertyKey(P);
+ anObject(Attributes);
+ if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {
+ var current = $getOwnPropertyDescriptor(O, P);
+ if (current && current[WRITABLE]) {
+ O[P] = Attributes.value;
+ Attributes = {
+ configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],
+ enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],
+ writable: false
+ };
+ }
+ } return $defineProperty(O, P, Attributes);
+} : $defineProperty : function defineProperty(O, P, Attributes) {
+ anObject(O);
+ P = toPropertyKey(P);
+ anObject(Attributes);
+ if (IE8_DOM_DEFINE) try {
+ return $defineProperty(O, P, Attributes);
+ } catch (error) { /* empty */ }
+ if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');
+ if ('value' in Attributes) O[P] = Attributes.value;
+ return O;
+};
+
+
+/***/ },
+
+/***/ 7347
+(__unused_webpack_module, exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var call = __webpack_require__(9565);
+var propertyIsEnumerableModule = __webpack_require__(8773);
+var createPropertyDescriptor = __webpack_require__(6980);
+var toIndexedObject = __webpack_require__(5397);
+var toPropertyKey = __webpack_require__(6969);
+var hasOwn = __webpack_require__(9297);
+var IE8_DOM_DEFINE = __webpack_require__(5917);
+
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+// `Object.getOwnPropertyDescriptor` method
+// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor
+exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
+ O = toIndexedObject(O);
+ P = toPropertyKey(P);
+ if (IE8_DOM_DEFINE) try {
+ return $getOwnPropertyDescriptor(O, P);
+ } catch (error) { /* empty */ }
+ if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);
+};
+
+
+/***/ },
+
+/***/ 8480
+(__unused_webpack_module, exports, __webpack_require__) {
+
+
+var internalObjectKeys = __webpack_require__(1828);
+var enumBugKeys = __webpack_require__(8727);
+
+var hiddenKeys = enumBugKeys.concat('length', 'prototype');
+
+// `Object.getOwnPropertyNames` method
+// https://tc39.es/ecma262/#sec-object.getownpropertynames
+// eslint-disable-next-line es/no-object-getownpropertynames -- safe
+exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
+ return internalObjectKeys(O, hiddenKeys);
+};
+
+
+/***/ },
+
+/***/ 3717
+(__unused_webpack_module, exports) {
+
+
+// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe
+exports.f = Object.getOwnPropertySymbols;
+
+
+/***/ },
+
+/***/ 2787
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var hasOwn = __webpack_require__(9297);
+var isCallable = __webpack_require__(4901);
+var toObject = __webpack_require__(8981);
+var sharedKey = __webpack_require__(6119);
+var CORRECT_PROTOTYPE_GETTER = __webpack_require__(2211);
+
+var IE_PROTO = sharedKey('IE_PROTO');
+var $Object = Object;
+var ObjectPrototype = $Object.prototype;
+
+// `Object.getPrototypeOf` method
+// https://tc39.es/ecma262/#sec-object.getprototypeof
+// eslint-disable-next-line es/no-object-getprototypeof -- safe
+module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
+ var object = toObject(O);
+ if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
+ var constructor = object.constructor;
+ if (isCallable(constructor) && object instanceof constructor) {
+ return constructor.prototype;
+ } return object instanceof $Object ? ObjectPrototype : null;
+};
+
+
+/***/ },
+
+/***/ 1625
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+module.exports = uncurryThis({}.isPrototypeOf);
+
+
+/***/ },
+
+/***/ 1828
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var hasOwn = __webpack_require__(9297);
+var toIndexedObject = __webpack_require__(5397);
+var indexOf = (__webpack_require__(9617).indexOf);
+var hiddenKeys = __webpack_require__(421);
+
+var push = uncurryThis([].push);
+
+module.exports = function (object, names) {
+ var O = toIndexedObject(object);
+ var i = 0;
+ var result = [];
+ var key;
+ for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);
+ // Don't enum bug & hidden keys
+ while (names.length > i) if (hasOwn(O, key = names[i++])) {
+ ~indexOf(result, key) || push(result, key);
+ }
+ return result;
+};
+
+
+/***/ },
+
+/***/ 1072
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var internalObjectKeys = __webpack_require__(1828);
+var enumBugKeys = __webpack_require__(8727);
+
+// `Object.keys` method
+// https://tc39.es/ecma262/#sec-object.keys
+// eslint-disable-next-line es/no-object-keys -- safe
+module.exports = Object.keys || function keys(O) {
+ return internalObjectKeys(O, enumBugKeys);
+};
+
+
+/***/ },
+
+/***/ 8773
+(__unused_webpack_module, exports) {
+
+
+var $propertyIsEnumerable = {}.propertyIsEnumerable;
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+
+// Nashorn ~ JDK8 bug
+var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);
+
+// `Object.prototype.propertyIsEnumerable` method implementation
+// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable
+exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
+ var descriptor = getOwnPropertyDescriptor(this, V);
+ return !!descriptor && descriptor.enumerable;
+} : $propertyIsEnumerable;
+
+
+/***/ },
+
+/***/ 2967
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* eslint-disable no-proto -- safe */
+var uncurryThisAccessor = __webpack_require__(6706);
+var isObject = __webpack_require__(34);
+var requireObjectCoercible = __webpack_require__(7750);
+var aPossiblePrototype = __webpack_require__(3506);
+
+// `Object.setPrototypeOf` method
+// https://tc39.es/ecma262/#sec-object.setprototypeof
+// Works with __proto__ only. Old v8 can't work with null proto objects.
+// eslint-disable-next-line es/no-object-setprototypeof -- safe
+module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
+ var CORRECT_SETTER = false;
+ var test = {};
+ var setter;
+ try {
+ setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');
+ setter(test, []);
+ CORRECT_SETTER = test instanceof Array;
+ } catch (error) { /* empty */ }
+ return function setPrototypeOf(O, proto) {
+ requireObjectCoercible(O);
+ aPossiblePrototype(proto);
+ if (!isObject(O)) return O;
+ if (CORRECT_SETTER) setter(O, proto);
+ else O.__proto__ = proto;
+ return O;
+ };
+}() : undefined);
+
+
+/***/ },
+
+/***/ 4270
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var isCallable = __webpack_require__(4901);
+var isObject = __webpack_require__(34);
+
+var $TypeError = TypeError;
+
+// `OrdinaryToPrimitive` abstract operation
+// https://tc39.es/ecma262/#sec-ordinarytoprimitive
+module.exports = function (input, pref) {
+ var fn, val;
+ if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
+ if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;
+ if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;
+ throw new $TypeError("Can't convert object to primitive value");
+};
+
+
+/***/ },
+
+/***/ 5031
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var getBuiltIn = __webpack_require__(7751);
+var uncurryThis = __webpack_require__(9504);
+var getOwnPropertyNamesModule = __webpack_require__(8480);
+var getOwnPropertySymbolsModule = __webpack_require__(3717);
+var anObject = __webpack_require__(8551);
+
+var concat = uncurryThis([].concat);
+
+// all object keys, includes non-enumerable and symbols
+module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
+ var keys = getOwnPropertyNamesModule.f(anObject(it));
+ var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
+ return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
+};
+
+
+/***/ },
+
+/***/ 8235
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var hasOwn = __webpack_require__(9297);
+
+var $SyntaxError = SyntaxError;
+var $parseInt = parseInt;
+var fromCharCode = String.fromCharCode;
+var at = uncurryThis(''.charAt);
+var slice = uncurryThis(''.slice);
+var exec = uncurryThis(/./.exec);
+
+var codePoints = {
+ '\\"': '"',
+ '\\\\': '\\',
+ '\\/': '/',
+ '\\b': '\b',
+ '\\f': '\f',
+ '\\n': '\n',
+ '\\r': '\r',
+ '\\t': '\t'
+};
+
+var IS_4_HEX_DIGITS = /^[\da-f]{4}$/i;
+// eslint-disable-next-line regexp/no-control-character -- safe
+var IS_C0_CONTROL_CODE = /^[\u0000-\u001F]$/;
+
+module.exports = function (source, i) {
+ var unterminated = true;
+ var value = '';
+ while (i < source.length) {
+ var chr = at(source, i);
+ if (chr === '\\') {
+ var twoChars = slice(source, i, i + 2);
+ if (hasOwn(codePoints, twoChars)) {
+ value += codePoints[twoChars];
+ i += 2;
+ } else if (twoChars === '\\u') {
+ i += 2;
+ var fourHexDigits = slice(source, i, i + 4);
+ if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);
+ value += fromCharCode($parseInt(fourHexDigits, 16));
+ i += 4;
+ } else throw new $SyntaxError('Unknown escape sequence: "' + twoChars + '"');
+ } else if (chr === '"') {
+ unterminated = false;
+ i++;
+ break;
+ } else {
+ if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);
+ value += chr;
+ i++;
+ }
+ }
+ if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);
+ return { value: value, end: i };
+};
+
+
+/***/ },
+
+/***/ 7750
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var isNullOrUndefined = __webpack_require__(4117);
+
+var $TypeError = TypeError;
+
+// `RequireObjectCoercible` abstract operation
+// https://tc39.es/ecma262/#sec-requireobjectcoercible
+module.exports = function (it) {
+ if (isNullOrUndefined(it)) throw new $TypeError("Can't call method on " + it);
+ return it;
+};
+
+
+/***/ },
+
+/***/ 9286
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var SetHelpers = __webpack_require__(4402);
+var iterate = __webpack_require__(8469);
+
+var Set = SetHelpers.Set;
+var add = SetHelpers.add;
+
+module.exports = function (set) {
+ var result = new Set();
+ iterate(set, function (it) {
+ add(result, it);
+ });
+ return result;
+};
+
+
+/***/ },
+
+/***/ 3440
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var SetHelpers = __webpack_require__(4402);
+var clone = __webpack_require__(9286);
+var size = __webpack_require__(5170);
+var getSetRecord = __webpack_require__(3789);
+var iterateSet = __webpack_require__(8469);
+var iterateSimple = __webpack_require__(507);
+
+var has = SetHelpers.has;
+var remove = SetHelpers.remove;
+
+// `Set.prototype.difference` method
+// https://tc39.es/ecma262/#sec-set.prototype.difference
+module.exports = function difference(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ var result = clone(O);
+ if (size(result) <= otherRec.size) iterateSet(result, function (e) {
+ if (otherRec.includes(e)) remove(result, e);
+ });
+ else iterateSimple(otherRec.getIterator(), function (e) {
+ if (has(result, e)) remove(result, e);
+ });
+ return result;
+};
+
+
+/***/ },
+
+/***/ 4402
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+// eslint-disable-next-line es/no-set -- safe
+var SetPrototype = Set.prototype;
+
+module.exports = {
+ // eslint-disable-next-line es/no-set -- safe
+ Set: Set,
+ add: uncurryThis(SetPrototype.add),
+ has: uncurryThis(SetPrototype.has),
+ remove: uncurryThis(SetPrototype['delete']),
+ proto: SetPrototype
+};
+
+
+/***/ },
+
+/***/ 8750
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var SetHelpers = __webpack_require__(4402);
+var size = __webpack_require__(5170);
+var getSetRecord = __webpack_require__(3789);
+var iterateSet = __webpack_require__(8469);
+var iterateSimple = __webpack_require__(507);
+
+var Set = SetHelpers.Set;
+var add = SetHelpers.add;
+var has = SetHelpers.has;
+
+// `Set.prototype.intersection` method
+// https://tc39.es/ecma262/#sec-set.prototype.intersection
+module.exports = function intersection(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ var result = new Set();
+
+ if (size(O) > otherRec.size) {
+ iterateSimple(otherRec.getIterator(), function (e) {
+ if (has(O, e)) add(result, e);
+ });
+ } else {
+ iterateSet(O, function (e) {
+ if (otherRec.includes(e)) add(result, e);
+ });
+ }
+
+ return result;
+};
+
+
+/***/ },
+
+/***/ 4449
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var has = (__webpack_require__(4402).has);
+var size = __webpack_require__(5170);
+var getSetRecord = __webpack_require__(3789);
+var iterateSet = __webpack_require__(8469);
+var iterateSimple = __webpack_require__(507);
+var iteratorClose = __webpack_require__(9539);
+
+// `Set.prototype.isDisjointFrom` method
+// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom
+module.exports = function isDisjointFrom(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ if (size(O) <= otherRec.size) return iterateSet(O, function (e) {
+ if (otherRec.includes(e)) return false;
+ }, true) !== false;
+ var iterator = otherRec.getIterator();
+ return iterateSimple(iterator, function (e) {
+ if (has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);
+ }) !== false;
+};
+
+
+/***/ },
+
+/***/ 3838
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var size = __webpack_require__(5170);
+var iterate = __webpack_require__(8469);
+var getSetRecord = __webpack_require__(3789);
+
+// `Set.prototype.isSubsetOf` method
+// https://tc39.es/ecma262/#sec-set.prototype.issubsetof
+module.exports = function isSubsetOf(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ if (size(O) > otherRec.size) return false;
+ return iterate(O, function (e) {
+ if (!otherRec.includes(e)) return false;
+ }, true) !== false;
+};
+
+
+/***/ },
+
+/***/ 8527
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var has = (__webpack_require__(4402).has);
+var size = __webpack_require__(5170);
+var getSetRecord = __webpack_require__(3789);
+var iterateSimple = __webpack_require__(507);
+var iteratorClose = __webpack_require__(9539);
+
+// `Set.prototype.isSupersetOf` method
+// https://tc39.es/ecma262/#sec-set.prototype.issupersetof
+module.exports = function isSupersetOf(other) {
+ var O = aSet(this);
+ var otherRec = getSetRecord(other);
+ if (size(O) < otherRec.size) return false;
+ var iterator = otherRec.getIterator();
+ return iterateSimple(iterator, function (e) {
+ if (!has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);
+ }) !== false;
+};
+
+
+/***/ },
+
+/***/ 8469
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var iterateSimple = __webpack_require__(507);
+var SetHelpers = __webpack_require__(4402);
+
+var Set = SetHelpers.Set;
+var SetPrototype = SetHelpers.proto;
+var forEach = uncurryThis(SetPrototype.forEach);
+var keys = uncurryThis(SetPrototype.keys);
+var next = keys(new Set()).next;
+
+module.exports = function (set, fn, interruptible) {
+ return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);
+};
+
+
+/***/ },
+
+/***/ 4916
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var getBuiltIn = __webpack_require__(7751);
+
+var createSetLike = function (size) {
+ return {
+ size: size,
+ has: function () {
+ return false;
+ },
+ keys: function () {
+ return {
+ next: function () {
+ return { done: true };
+ }
+ };
+ }
+ };
+};
+
+var createSetLikeWithInfinitySize = function (size) {
+ return {
+ size: size,
+ has: function () {
+ return true;
+ },
+ keys: function () {
+ throw new Error('e');
+ }
+ };
+};
+
+module.exports = function (name, callback) {
+ var Set = getBuiltIn('Set');
+ try {
+ new Set()[name](createSetLike(0));
+ try {
+ // late spec change, early WebKit ~ Safari 17 implementation does not pass it
+ // https://github.com/tc39/proposal-set-methods/pull/88
+ // also covered engines with
+ // https://bugs.webkit.org/show_bug.cgi?id=272679
+ new Set()[name](createSetLike(-1));
+ return false;
+ } catch (error2) {
+ if (!callback) return true;
+ // early V8 implementation bug
+ // https://issues.chromium.org/issues/351332634
+ try {
+ new Set()[name](createSetLikeWithInfinitySize(-Infinity));
+ return false;
+ } catch (error) {
+ var set = new Set([1, 2]);
+ return callback(set[name](createSetLikeWithInfinitySize(Infinity)));
+ }
+ }
+ } catch (error) {
+ return false;
+ }
+};
+
+
+/***/ },
+
+/***/ 9835
+(module) {
+
+
+// Should get iterator record of a set-like object before cloning this
+// https://bugs.webkit.org/show_bug.cgi?id=289430
+module.exports = function (METHOD_NAME) {
+ try {
+ // eslint-disable-next-line es/no-set -- needed for test
+ var baseSet = new Set();
+ var setLike = {
+ size: 0,
+ has: function () { return true; },
+ keys: function () {
+ // eslint-disable-next-line es/no-object-defineproperty -- needed for test
+ return Object.defineProperty({}, 'next', {
+ get: function () {
+ baseSet.clear();
+ baseSet.add(4);
+ return function () {
+ return { done: true };
+ };
+ }
+ });
+ }
+ };
+ var result = baseSet[METHOD_NAME](setLike);
+
+ return result.size === 1 && result.values().next().value === 4;
+ } catch (error) {
+ return false;
+ }
+};
+
+
+/***/ },
+
+/***/ 5170
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThisAccessor = __webpack_require__(6706);
+var SetHelpers = __webpack_require__(4402);
+
+module.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {
+ return set.size;
+};
+
+
+/***/ },
+
+/***/ 3650
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var SetHelpers = __webpack_require__(4402);
+var clone = __webpack_require__(9286);
+var getSetRecord = __webpack_require__(3789);
+var iterateSimple = __webpack_require__(507);
+
+var add = SetHelpers.add;
+var has = SetHelpers.has;
+var remove = SetHelpers.remove;
+
+// `Set.prototype.symmetricDifference` method
+// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
+module.exports = function symmetricDifference(other) {
+ var O = aSet(this);
+ var keysIter = getSetRecord(other).getIterator();
+ var result = clone(O);
+ iterateSimple(keysIter, function (e) {
+ if (has(O, e)) remove(result, e);
+ else add(result, e);
+ });
+ return result;
+};
+
+
+/***/ },
+
+/***/ 4204
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var aSet = __webpack_require__(7080);
+var add = (__webpack_require__(4402).add);
+var clone = __webpack_require__(9286);
+var getSetRecord = __webpack_require__(3789);
+var iterateSimple = __webpack_require__(507);
+
+// `Set.prototype.union` method
+// https://tc39.es/ecma262/#sec-set.prototype.union
+module.exports = function union(other) {
+ var O = aSet(this);
+ var keysIter = getSetRecord(other).getIterator();
+ var result = clone(O);
+ iterateSimple(keysIter, function (it) {
+ add(result, it);
+ });
+ return result;
+};
+
+
+/***/ },
+
+/***/ 6119
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var shared = __webpack_require__(5745);
+var uid = __webpack_require__(3392);
+
+var keys = shared('keys');
+
+module.exports = function (key) {
+ return keys[key] || (keys[key] = uid(key));
+};
+
+
+/***/ },
+
+/***/ 7629
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var IS_PURE = __webpack_require__(6395);
+var globalThis = __webpack_require__(4576);
+var defineGlobalProperty = __webpack_require__(9433);
+
+var SHARED = '__core-js_shared__';
+var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});
+
+(store.versions || (store.versions = [])).push({
+ version: '3.49.0',
+ mode: IS_PURE ? 'pure' : 'global',
+ copyright: 'Β© 2013β2025 Denis Pushkarev (zloirock.ru), 2025β2026 CoreJS Company (core-js.io). All rights reserved.',
+ license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',
+ source: 'https://github.com/zloirock/core-js'
+});
+
+
+/***/ },
+
+/***/ 5745
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var store = __webpack_require__(7629);
+
+module.exports = function (key, value) {
+ return store[key] || (store[key] = value || {});
+};
+
+
+/***/ },
+
+/***/ 533
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+var toLength = __webpack_require__(8014);
+var toString = __webpack_require__(655);
+var $repeat = __webpack_require__(2333);
+var requireObjectCoercible = __webpack_require__(7750);
+
+var repeat = uncurryThis($repeat);
+var stringSlice = uncurryThis(''.slice);
+var ceil = Math.ceil;
+
+// `String.prototype.{ padStart, padEnd }` methods implementation
+var createMethod = function (IS_END) {
+ return function ($this, maxLength, fillString) {
+ var S = toString(requireObjectCoercible($this));
+ var intMaxLength = toLength(maxLength);
+ var stringLength = S.length;
+ if (intMaxLength <= stringLength) return S;
+ var fillStr = fillString === undefined ? ' ' : toString(fillString);
+ var fillLen, stringFiller;
+ if (fillStr === '') return S;
+ fillLen = intMaxLength - stringLength;
+ stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));
+ if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);
+ return IS_END ? S + stringFiller : stringFiller + S;
+ };
+};
+
+module.exports = {
+ // `String.prototype.padStart` method
+ // https://tc39.es/ecma262/#sec-string.prototype.padstart
+ start: createMethod(false),
+ // `String.prototype.padEnd` method
+ // https://tc39.es/ecma262/#sec-string.prototype.padend
+ end: createMethod(true)
+};
+
+
+/***/ },
+
+/***/ 2333
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toIntegerOrInfinity = __webpack_require__(1291);
+var toString = __webpack_require__(655);
+var requireObjectCoercible = __webpack_require__(7750);
+
+var $RangeError = RangeError;
+var floor = Math.floor;
+
+// `String.prototype.repeat` method implementation
+// https://tc39.es/ecma262/#sec-string.prototype.repeat
+module.exports = function repeat(count) {
+ var str = toString(requireObjectCoercible(this));
+ var result = '';
+ var n = toIntegerOrInfinity(count);
+ if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');
+ for (;n > 0; (n = floor(n / 2)) && (str += str)) if (n % 2) result += str;
+ return result;
+};
+
+
+/***/ },
+
+/***/ 1548
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var fails = __webpack_require__(9039);
+var V8 = __webpack_require__(9519);
+var ENVIRONMENT = __webpack_require__(4215);
+
+var structuredClone = globalThis.structuredClone;
+
+module.exports = !!structuredClone && !fails(function () {
+ // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation
+ // https://github.com/zloirock/core-js/issues/679
+ if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;
+ var buffer = new ArrayBuffer(8);
+ var clone = structuredClone(buffer, { transfer: [buffer] });
+ return buffer.byteLength !== 0 || clone.byteLength !== 8;
+});
+
+
+/***/ },
+
+/***/ 4495
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* eslint-disable es/no-symbol -- required for testing */
+var V8_VERSION = __webpack_require__(9519);
+var fails = __webpack_require__(9039);
+var globalThis = __webpack_require__(4576);
+
+var $String = globalThis.String;
+
+// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing
+module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
+ var symbol = Symbol('symbol detection');
+ // Chrome 38 Symbol has incorrect toString conversion
+ // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances
+ // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,
+ // of course, fail.
+ return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||
+ // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances
+ !Symbol.sham && V8_VERSION && V8_VERSION < 41;
+});
+
+
+/***/ },
+
+/***/ 5610
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toIntegerOrInfinity = __webpack_require__(1291);
+
+var max = Math.max;
+var min = Math.min;
+
+// Helper for a popular repeating case of the spec:
+// Let integer be ? ToInteger(index).
+// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).
+module.exports = function (index, length) {
+ var integer = toIntegerOrInfinity(index);
+ return integer < 0 ? max(integer + length, 0) : min(integer, length);
+};
+
+
+/***/ },
+
+/***/ 5854
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toPrimitive = __webpack_require__(2777);
+
+var $TypeError = TypeError;
+
+// `ToBigInt` abstract operation
+// https://tc39.es/ecma262/#sec-tobigint
+module.exports = function (argument) {
+ var prim = toPrimitive(argument, 'number');
+ if (typeof prim == 'number') throw new $TypeError("Can't convert number to bigint");
+ // eslint-disable-next-line es/no-bigint -- safe
+ return BigInt(prim);
+};
+
+
+/***/ },
+
+/***/ 7696
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toIntegerOrInfinity = __webpack_require__(1291);
+var toLength = __webpack_require__(8014);
+
+var $RangeError = RangeError;
+
+// `ToIndex` abstract operation
+// https://tc39.es/ecma262/#sec-toindex
+module.exports = function (it) {
+ if (it === undefined) return 0;
+ var number = toIntegerOrInfinity(it);
+ var length = toLength(number);
+ if (number !== length) throw new $RangeError('Wrong length or index');
+ return length;
+};
+
+
+/***/ },
+
+/***/ 5397
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+// toObject with fallback for non-array-like ES3 strings
+var IndexedObject = __webpack_require__(7055);
+var requireObjectCoercible = __webpack_require__(7750);
+
+module.exports = function (it) {
+ return IndexedObject(requireObjectCoercible(it));
+};
+
+
+/***/ },
+
+/***/ 1291
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var trunc = __webpack_require__(741);
+
+// `ToIntegerOrInfinity` abstract operation
+// https://tc39.es/ecma262/#sec-tointegerorinfinity
+module.exports = function (argument) {
+ var number = +argument;
+ // eslint-disable-next-line no-self-compare -- NaN check
+ return number !== number || number === 0 ? 0 : trunc(number);
+};
+
+
+/***/ },
+
+/***/ 8014
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toIntegerOrInfinity = __webpack_require__(1291);
+
+var min = Math.min;
+
+// `ToLength` abstract operation
+// https://tc39.es/ecma262/#sec-tolength
+module.exports = function (argument) {
+ var len = toIntegerOrInfinity(argument);
+ return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991
+};
+
+
+/***/ },
+
+/***/ 8981
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var requireObjectCoercible = __webpack_require__(7750);
+
+var $Object = Object;
+
+// `ToObject` abstract operation
+// https://tc39.es/ecma262/#sec-toobject
+module.exports = function (argument) {
+ return $Object(requireObjectCoercible(argument));
+};
+
+
+/***/ },
+
+/***/ 2777
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var call = __webpack_require__(9565);
+var isObject = __webpack_require__(34);
+var isSymbol = __webpack_require__(757);
+var getMethod = __webpack_require__(5966);
+var ordinaryToPrimitive = __webpack_require__(4270);
+var wellKnownSymbol = __webpack_require__(8227);
+
+var $TypeError = TypeError;
+var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
+
+// `ToPrimitive` abstract operation
+// https://tc39.es/ecma262/#sec-toprimitive
+module.exports = function (input, pref) {
+ if (!isObject(input) || isSymbol(input)) return input;
+ var exoticToPrim = getMethod(input, TO_PRIMITIVE);
+ var result;
+ if (exoticToPrim) {
+ if (pref === undefined) pref = 'default';
+ result = call(exoticToPrim, input, pref);
+ if (!isObject(result) || isSymbol(result)) return result;
+ throw new $TypeError("Can't convert object to primitive value");
+ }
+ if (pref === undefined) pref = 'number';
+ return ordinaryToPrimitive(input, pref);
+};
+
+
+/***/ },
+
+/***/ 6969
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var toPrimitive = __webpack_require__(2777);
+var isSymbol = __webpack_require__(757);
+
+// `ToPropertyKey` abstract operation
+// https://tc39.es/ecma262/#sec-topropertykey
+module.exports = function (argument) {
+ var key = toPrimitive(argument, 'string');
+ return isSymbol(key) ? key : key + '';
+};
+
+
+/***/ },
+
+/***/ 2140
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var wellKnownSymbol = __webpack_require__(8227);
+
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+var test = {};
+// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation
+test[TO_STRING_TAG] = 'z';
+
+module.exports = String(test) === '[object z]';
+
+
+/***/ },
+
+/***/ 655
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var classof = __webpack_require__(6955);
+
+var $String = String;
+
+module.exports = function (argument) {
+ if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');
+ return $String(argument);
+};
+
+
+/***/ },
+
+/***/ 6823
+(module) {
+
+
+var $String = String;
+
+module.exports = function (argument) {
+ try {
+ return $String(argument);
+ } catch (error) {
+ return 'Object';
+ }
+};
+
+
+/***/ },
+
+/***/ 3392
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+var id = 0;
+var postfix = Math.random();
+var toString = uncurryThis(1.1.toString);
+
+module.exports = function (key) {
+ return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);
+};
+
+
+/***/ },
+
+/***/ 7416
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var fails = __webpack_require__(9039);
+var wellKnownSymbol = __webpack_require__(8227);
+var DESCRIPTORS = __webpack_require__(3724);
+var IS_PURE = __webpack_require__(6395);
+
+var ITERATOR = wellKnownSymbol('iterator');
+
+module.exports = !fails(function () {
+ // eslint-disable-next-line unicorn/relative-url-style -- required for testing
+ var url = new URL('b?a=1&b=2&c=3', 'https://a');
+ var params = url.searchParams;
+ var params2 = new URLSearchParams('a=1&a=2&b=3');
+ var result = '';
+ url.pathname = 'c%20d';
+ params.forEach(function (value, key) {
+ params['delete']('b');
+ result += key + value;
+ });
+ params2['delete']('a', 2);
+ // `undefined` case is a Chromium 117 bug
+ // https://bugs.chromium.org/p/v8/issues/detail?id=14222
+ params2['delete']('b', undefined);
+ return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))
+ || (!params.size && (IS_PURE || !DESCRIPTORS))
+ || !params.sort
+ || url.href !== 'https://a/c%20d?a=1&c=3'
+ || params.get('c') !== '3'
+ || String(new URLSearchParams('?a=1')) !== 'a=1'
+ || !params[ITERATOR]
+ // throws in Edge
+ || new URL('https://a@b').username !== 'a'
+ || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'
+ // not punycoded in Edge
+ || new URL('https://ΡΠ΅ΡΡ').host !== 'xn--e1aybc'
+ // not escaped in Chrome 62-
+ || new URL('https://a#Π±').hash !== '#%D0%B1'
+ // fails in Chrome 66-
+ || result !== 'a1c3'
+ // throws in Safari
+ || new URL('https://x', undefined).host !== 'x';
+});
+
+
+/***/ },
+
+/***/ 7040
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+/* eslint-disable es/no-symbol -- required for testing */
+var NATIVE_SYMBOL = __webpack_require__(4495);
+
+module.exports = NATIVE_SYMBOL &&
+ !Symbol.sham &&
+ typeof Symbol.iterator == 'symbol';
+
+
+/***/ },
+
+/***/ 8686
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var fails = __webpack_require__(9039);
+
+// V8 ~ Chrome 36-
+// https://bugs.chromium.org/p/v8/issues/detail?id=3334
+module.exports = DESCRIPTORS && fails(function () {
+ // eslint-disable-next-line es/no-object-defineproperty -- required for testing
+ return Object.defineProperty(function () { /* empty */ }, 'prototype', {
+ value: 42,
+ writable: false
+ }).prototype !== 42;
+});
+
+
+/***/ },
+
+/***/ 2812
+(module) {
+
+
+var $TypeError = TypeError;
+
+module.exports = function (passed, required) {
+ if (passed < required) throw new $TypeError('Not enough arguments');
+ return passed;
+};
+
+
+/***/ },
+
+/***/ 8622
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var isCallable = __webpack_require__(4901);
+
+var WeakMap = globalThis.WeakMap;
+
+module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));
+
+
+/***/ },
+
+/***/ 4995
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var uncurryThis = __webpack_require__(9504);
+
+// eslint-disable-next-line es/no-weak-map -- safe
+var WeakMapPrototype = WeakMap.prototype;
+
+module.exports = {
+ // eslint-disable-next-line es/no-weak-map -- safe
+ WeakMap: WeakMap,
+ set: uncurryThis(WeakMapPrototype.set),
+ get: uncurryThis(WeakMapPrototype.get),
+ has: uncurryThis(WeakMapPrototype.has),
+ remove: uncurryThis(WeakMapPrototype['delete'])
+};
+
+
+/***/ },
+
+/***/ 8227
+(module, __unused_webpack_exports, __webpack_require__) {
+
+
+var globalThis = __webpack_require__(4576);
+var shared = __webpack_require__(5745);
+var hasOwn = __webpack_require__(9297);
+var uid = __webpack_require__(3392);
+var NATIVE_SYMBOL = __webpack_require__(4495);
+var USE_SYMBOL_AS_UID = __webpack_require__(7040);
+
+var Symbol = globalThis.Symbol;
+var WellKnownSymbolsStore = shared('wks');
+var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;
+
+module.exports = function (name) {
+ if (!hasOwn(WellKnownSymbolsStore, name)) {
+ WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)
+ ? Symbol[name]
+ : createWellKnownSymbol('Symbol.' + name);
+ } return WellKnownSymbolsStore[name];
+};
+
+
+/***/ },
+
+/***/ 7452
+(module) {
+
+
+// a string of all valid unicode whitespaces
+module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' +
+ '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
+
+
+/***/ },
+
+/***/ 6573
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var defineBuiltInAccessor = __webpack_require__(2106);
+var isDetached = __webpack_require__(3238);
+
+var ArrayBufferPrototype = ArrayBuffer.prototype;
+
+// `ArrayBuffer.prototype.detached` getter
+// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached
+if (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {
+ defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {
+ configurable: true,
+ get: function detached() {
+ return isDetached(this);
+ }
+ });
+}
+
+
+/***/ },
+
+/***/ 7936
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var $transfer = __webpack_require__(5636);
+
+// `ArrayBuffer.prototype.transferToFixedLength` method
+// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfertofixedlength
+if ($transfer) $({ target: 'ArrayBuffer', proto: true }, {
+ transferToFixedLength: function transferToFixedLength() {
+ return $transfer(this, arguments.length ? arguments[0] : undefined, false);
+ }
+});
+
+
+/***/ },
+
+/***/ 8100
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var $transfer = __webpack_require__(5636);
+
+// `ArrayBuffer.prototype.transfer` method
+// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfer
+if ($transfer) $({ target: 'ArrayBuffer', proto: true }, {
+ transfer: function transfer() {
+ return $transfer(this, arguments.length ? arguments[0] : undefined, true);
+ }
+});
+
+
+/***/ },
+
+/***/ 4423
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var $includes = (__webpack_require__(9617).includes);
+var fails = __webpack_require__(9039);
+var addToUnscopables = __webpack_require__(6469);
+
+// FF99+ bug
+var BROKEN_ON_SPARSE = fails(function () {
+ // eslint-disable-next-line es/no-array-prototype-includes -- detection
+ return !Array(1).includes();
+});
+
+// Safari 26.4- bug
+var BROKEN_ON_SPARSE_WITH_FROM_INDEX = fails(function () {
+ // eslint-disable-next-line no-sparse-arrays, es/no-array-prototype-includes -- detection
+ return [, 1].includes(undefined, 1);
+});
+
+// `Array.prototype.includes` method
+// https://tc39.es/ecma262/#sec-array.prototype.includes
+$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE || BROKEN_ON_SPARSE_WITH_FROM_INDEX }, {
+ includes: function includes(el /* , fromIndex = 0 */) {
+ return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
+ }
+});
+
+// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables
+addToUnscopables('includes');
+
+
+/***/ },
+
+/***/ 4114
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var toObject = __webpack_require__(8981);
+var lengthOfArrayLike = __webpack_require__(6198);
+var setArrayLength = __webpack_require__(4527);
+var doesNotExceedSafeInteger = __webpack_require__(6837);
+var fails = __webpack_require__(9039);
+
+var INCORRECT_TO_LENGTH = fails(function () {
+ return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;
+});
+
+// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError
+// https://bugs.chromium.org/p/v8/issues/detail?id=12681
+var properErrorOnNonWritableLength = function () {
+ try {
+ // eslint-disable-next-line es/no-object-defineproperty -- safe
+ Object.defineProperty([], 'length', { writable: false }).push();
+ } catch (error) {
+ return error instanceof TypeError;
+ }
+};
+
+var FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();
+
+// `Array.prototype.push` method
+// https://tc39.es/ecma262/#sec-array.prototype.push
+$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {
+ // eslint-disable-next-line no-unused-vars -- required for `.length`
+ push: function push(item) {
+ var O = toObject(this);
+ var len = lengthOfArrayLike(O);
+ var argCount = arguments.length;
+ doesNotExceedSafeInteger(len + argCount);
+ for (var i = 0; i < argCount; i++) {
+ O[len] = arguments[i];
+ len++;
+ }
+ setArrayLength(O, len);
+ return len;
+ }
+});
+
+
+/***/ },
+
+/***/ 8111
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var globalThis = __webpack_require__(4576);
+var anInstance = __webpack_require__(679);
+var anObject = __webpack_require__(8551);
+var isCallable = __webpack_require__(4901);
+var getPrototypeOf = __webpack_require__(2787);
+var defineBuiltInAccessor = __webpack_require__(2106);
+var createProperty = __webpack_require__(4659);
+var fails = __webpack_require__(9039);
+var hasOwn = __webpack_require__(9297);
+var wellKnownSymbol = __webpack_require__(8227);
+var IteratorPrototype = (__webpack_require__(7657).IteratorPrototype);
+var DESCRIPTORS = __webpack_require__(3724);
+var IS_PURE = __webpack_require__(6395);
+
+var CONSTRUCTOR = 'constructor';
+var ITERATOR = 'Iterator';
+var TO_STRING_TAG = wellKnownSymbol('toStringTag');
+
+var $TypeError = TypeError;
+var NativeIterator = globalThis[ITERATOR];
+
+// FF56- have non-standard global helper `Iterator`
+var FORCED = IS_PURE
+ || !isCallable(NativeIterator)
+ || NativeIterator.prototype !== IteratorPrototype
+ // FF44- non-standard `Iterator` passes previous tests
+ || !fails(function () { NativeIterator({}); });
+
+var IteratorConstructor = function Iterator() {
+ anInstance(this, IteratorPrototype);
+ if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');
+};
+
+var defineIteratorPrototypeAccessor = function (key, value) {
+ if (DESCRIPTORS) {
+ defineBuiltInAccessor(IteratorPrototype, key, {
+ configurable: true,
+ get: function () {
+ return value;
+ },
+ set: function (replacement) {
+ anObject(this);
+ if (this === IteratorPrototype) throw new $TypeError("You can't redefine this property");
+ if (hasOwn(this, key)) this[key] = replacement;
+ else createProperty(this, key, replacement);
+ }
+ });
+ } else IteratorPrototype[key] = value;
+};
+
+if (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);
+
+if (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {
+ defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);
+}
+
+IteratorConstructor.prototype = IteratorPrototype;
+
+// `Iterator` constructor
+// https://tc39.es/ecma262/#sec-iterator
+$({ global: true, constructor: true, forced: FORCED }, {
+ Iterator: IteratorConstructor
+});
+
+
+/***/ },
+
+/***/ 1148
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var call = __webpack_require__(9565);
+var iterate = __webpack_require__(2652);
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var getIteratorDirect = __webpack_require__(1767);
+var iteratorClose = __webpack_require__(9539);
+var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
+
+var everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);
+
+// `Iterator.prototype.every` method
+// https://tc39.es/ecma262/#sec-iterator.prototype.every
+$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {
+ every: function every(predicate) {
+ anObject(this);
+ try {
+ aCallable(predicate);
+ } catch (error) {
+ iteratorClose(this, 'throw', error);
+ }
+
+ if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);
+
+ var record = getIteratorDirect(this);
+ var counter = 0;
+ return !iterate(record, function (value, stop) {
+ if (!predicate(value, counter++)) return stop();
+ }, { IS_RECORD: true, INTERRUPTED: true }).stopped;
+ }
+});
+
+
+/***/ },
+
+/***/ 2489
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var call = __webpack_require__(9565);
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var getIteratorDirect = __webpack_require__(1767);
+var createIteratorProxy = __webpack_require__(9462);
+var callWithSafeIterationClosing = __webpack_require__(6319);
+var IS_PURE = __webpack_require__(6395);
+var iteratorClose = __webpack_require__(9539);
+var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
+var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
+
+var FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });
+var filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR
+ && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);
+
+var FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;
+
+var IteratorProxy = createIteratorProxy(function () {
+ var iterator = this.iterator;
+ var predicate = this.predicate;
+ var next = this.next;
+ var result, done, value;
+ while (true) {
+ result = anObject(call(next, iterator));
+ done = this.done = !!result.done;
+ if (done) return;
+ value = result.value;
+ if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;
+ }
+});
+
+// `Iterator.prototype.filter` method
+// https://tc39.es/ecma262/#sec-iterator.prototype.filter
+$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
+ filter: function filter(predicate) {
+ anObject(this);
+ try {
+ aCallable(predicate);
+ } catch (error) {
+ iteratorClose(this, 'throw', error);
+ }
+
+ if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);
+
+ return new IteratorProxy(getIteratorDirect(this), {
+ predicate: predicate
+ });
+ }
+});
+
+
+/***/ },
+
+/***/ 7588
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var call = __webpack_require__(9565);
+var iterate = __webpack_require__(2652);
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var getIteratorDirect = __webpack_require__(1767);
+var iteratorClose = __webpack_require__(9539);
+var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
+
+var forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError);
+
+// `Iterator.prototype.forEach` method
+// https://tc39.es/ecma262/#sec-iterator.prototype.foreach
+$({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, {
+ forEach: function forEach(fn) {
+ anObject(this);
+ try {
+ aCallable(fn);
+ } catch (error) {
+ iteratorClose(this, 'throw', error);
+ }
+
+ if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);
+
+ var record = getIteratorDirect(this);
+ var counter = 0;
+ iterate(record, function (value) {
+ fn(value, counter++);
+ }, { IS_RECORD: true });
+ }
+});
+
+
+/***/ },
+
+/***/ 1701
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var call = __webpack_require__(9565);
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var getIteratorDirect = __webpack_require__(1767);
+var createIteratorProxy = __webpack_require__(9462);
+var callWithSafeIterationClosing = __webpack_require__(6319);
+var iteratorClose = __webpack_require__(9539);
+var iteratorHelperThrowsOnInvalidIterator = __webpack_require__(684);
+var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
+var IS_PURE = __webpack_require__(6395);
+
+var MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });
+var mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR
+ && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);
+
+var FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;
+
+var IteratorProxy = createIteratorProxy(function () {
+ var iterator = this.iterator;
+ var result = anObject(call(this.next, iterator));
+ var done = this.done = !!result.done;
+ if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);
+});
+
+// `Iterator.prototype.map` method
+// https://tc39.es/ecma262/#sec-iterator.prototype.map
+$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {
+ map: function map(mapper) {
+ anObject(this);
+ try {
+ aCallable(mapper);
+ } catch (error) {
+ iteratorClose(this, 'throw', error);
+ }
+
+ if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);
+
+ return new IteratorProxy(getIteratorDirect(this), {
+ mapper: mapper
+ });
+ }
+});
+
+
+/***/ },
+
+/***/ 3579
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var call = __webpack_require__(9565);
+var iterate = __webpack_require__(2652);
+var aCallable = __webpack_require__(9306);
+var anObject = __webpack_require__(8551);
+var getIteratorDirect = __webpack_require__(1767);
+var iteratorClose = __webpack_require__(9539);
+var iteratorHelperWithoutClosingOnEarlyError = __webpack_require__(4549);
+
+var someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError);
+
+// `Iterator.prototype.some` method
+// https://tc39.es/ecma262/#sec-iterator.prototype.some
+$({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, {
+ some: function some(predicate) {
+ anObject(this);
+ try {
+ aCallable(predicate);
+ } catch (error) {
+ iteratorClose(this, 'throw', error);
+ }
+
+ if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate);
+
+ var record = getIteratorDirect(this);
+ var counter = 0;
+ return iterate(record, function (value, stop) {
+ if (predicate(value, counter++)) return stop();
+ }, { IS_RECORD: true, INTERRUPTED: true }).stopped;
+ }
+});
+
+
+/***/ },
+
+/***/ 9112
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var DESCRIPTORS = __webpack_require__(3724);
+var globalThis = __webpack_require__(4576);
+var getBuiltIn = __webpack_require__(7751);
+var uncurryThis = __webpack_require__(9504);
+var call = __webpack_require__(9565);
+var isCallable = __webpack_require__(4901);
+var isObject = __webpack_require__(34);
+var isArray = __webpack_require__(4376);
+var hasOwn = __webpack_require__(9297);
+var toString = __webpack_require__(655);
+var lengthOfArrayLike = __webpack_require__(6198);
+var createProperty = __webpack_require__(4659);
+var fails = __webpack_require__(9039);
+var parseJSONString = __webpack_require__(8235);
+var NATIVE_SYMBOL = __webpack_require__(4495);
+
+var JSON = globalThis.JSON;
+var Number = globalThis.Number;
+var SyntaxError = globalThis.SyntaxError;
+var nativeParse = JSON && JSON.parse;
+var enumerableOwnProperties = getBuiltIn('Object', 'keys');
+// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe
+var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
+var at = uncurryThis(''.charAt);
+var slice = uncurryThis(''.slice);
+var exec = uncurryThis(/./.exec);
+var push = uncurryThis([].push);
+
+var IS_DIGIT = /^\d$/;
+var IS_NON_ZERO_DIGIT = /^[1-9]$/;
+var IS_NUMBER_START = /^[\d-]$/;
+var IS_WHITESPACE = /^[\t\n\r ]$/;
+
+var PRIMITIVE = 0;
+var OBJECT = 1;
+
+var $parse = function (source, reviver) {
+ source = toString(source);
+ var context = new Context(source, 0, '');
+ var root = context.parse();
+ var value = root.value;
+ var endIndex = context.skip(IS_WHITESPACE, root.end);
+ if (endIndex < source.length) {
+ throw new SyntaxError('Unexpected extra character: "' + at(source, endIndex) + '" after the parsed data at: ' + endIndex);
+ }
+ return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;
+};
+
+var internalize = function (holder, name, reviver, node) {
+ var val = holder[name];
+ var unmodified = node && val === node.value;
+ var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};
+ var elementRecordsLen, keys, len, i, P;
+ if (isObject(val)) {
+ var nodeIsArray = isArray(val);
+ var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};
+ if (nodeIsArray) {
+ elementRecordsLen = nodes.length;
+ len = lengthOfArrayLike(val);
+ for (i = 0; i < len; i++) {
+ internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));
+ }
+ } else {
+ keys = enumerableOwnProperties(val);
+ len = lengthOfArrayLike(keys);
+ for (i = 0; i < len; i++) {
+ P = keys[i];
+ internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));
+ }
+ }
+ }
+ return call(reviver, holder, name, val, context);
+};
+
+var internalizeProperty = function (object, key, value) {
+ if (DESCRIPTORS) {
+ var descriptor = getOwnPropertyDescriptor(object, key);
+ if (descriptor && !descriptor.configurable) return;
+ }
+ if (value === undefined) delete object[key];
+ else createProperty(object, key, value);
+};
+
+var Node = function (value, end, source, nodes) {
+ this.value = value;
+ this.end = end;
+ this.source = source;
+ this.nodes = nodes;
+};
+
+var Context = function (source, index) {
+ this.source = source;
+ this.index = index;
+};
+
+// https://www.json.org/json-en.html
+Context.prototype = {
+ fork: function (nextIndex) {
+ return new Context(this.source, nextIndex);
+ },
+ parse: function () {
+ var source = this.source;
+ var i = this.skip(IS_WHITESPACE, this.index);
+ var fork = this.fork(i);
+ var chr = at(source, i);
+ if (exec(IS_NUMBER_START, chr)) return fork.number();
+ switch (chr) {
+ case '{':
+ return fork.object();
+ case '[':
+ return fork.array();
+ case '"':
+ return fork.string();
+ case 't':
+ return fork.keyword(true);
+ case 'f':
+ return fork.keyword(false);
+ case 'n':
+ return fork.keyword(null);
+ } throw new SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
+ },
+ node: function (type, value, start, end, nodes) {
+ return new Node(value, end, type ? null : slice(this.source, start, end), nodes);
+ },
+ object: function () {
+ var source = this.source;
+ var i = this.index + 1;
+ var expectKeypair = false;
+ var object = {};
+ var nodes = {};
+ var closed = false;
+ while (i < source.length) {
+ i = this.until(['"', '}'], i);
+ if (at(source, i) === '}' && !expectKeypair) {
+ i++;
+ closed = true;
+ break;
+ }
+ // Parsing the key
+ var result = this.fork(i).string();
+ var key = result.value;
+ i = result.end;
+ i = this.until([':'], i) + 1;
+ // Parsing value
+ i = this.skip(IS_WHITESPACE, i);
+ result = this.fork(i).parse();
+ createProperty(nodes, key, result);
+ createProperty(object, key, result.value);
+ i = this.until([',', '}'], result.end);
+ var chr = at(source, i);
+ if (chr === ',') {
+ expectKeypair = true;
+ i++;
+ } else if (chr === '}') {
+ i++;
+ closed = true;
+ break;
+ }
+ }
+ if (!closed) throw new SyntaxError('Unterminated object at: ' + i);
+ return this.node(OBJECT, object, this.index, i, nodes);
+ },
+ array: function () {
+ var source = this.source;
+ var i = this.index + 1;
+ var expectElement = false;
+ var array = [];
+ var nodes = [];
+ var closed = false;
+ while (i < source.length) {
+ i = this.skip(IS_WHITESPACE, i);
+ if (at(source, i) === ']' && !expectElement) {
+ i++;
+ closed = true;
+ break;
+ }
+ var result = this.fork(i).parse();
+ push(nodes, result);
+ push(array, result.value);
+ i = this.until([',', ']'], result.end);
+ if (at(source, i) === ',') {
+ expectElement = true;
+ i++;
+ } else if (at(source, i) === ']') {
+ i++;
+ closed = true;
+ break;
+ }
+ }
+ if (!closed) throw new SyntaxError('Unterminated array at: ' + i);
+ return this.node(OBJECT, array, this.index, i, nodes);
+ },
+ string: function () {
+ var index = this.index;
+ var parsed = parseJSONString(this.source, this.index + 1);
+ return this.node(PRIMITIVE, parsed.value, index, parsed.end);
+ },
+ number: function () {
+ var source = this.source;
+ var startIndex = this.index;
+ var i = startIndex;
+ if (at(source, i) === '-') i++;
+ if (at(source, i) === '0') i++;
+ else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);
+ else throw new SyntaxError('Failed to parse number at: ' + i);
+ if (at(source, i) === '.') {
+ var fractionStartIndex = i + 1;
+ i = this.skip(IS_DIGIT, fractionStartIndex);
+ if (fractionStartIndex === i) throw new SyntaxError("Failed to parse number's fraction at: " + i);
+ }
+ if (at(source, i) === 'e' || at(source, i) === 'E') {
+ i++;
+ if (at(source, i) === '+' || at(source, i) === '-') i++;
+ var exponentStartIndex = i;
+ i = this.skip(IS_DIGIT, i);
+ if (exponentStartIndex === i) throw new SyntaxError("Failed to parse number's exponent value at: " + i);
+ }
+ return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);
+ },
+ keyword: function (value) {
+ var keyword = '' + value;
+ var index = this.index;
+ var endIndex = index + keyword.length;
+ if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);
+ return this.node(PRIMITIVE, value, index, endIndex);
+ },
+ skip: function (regex, i) {
+ var source = this.source;
+ for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;
+ return i;
+ },
+ until: function (array, i) {
+ i = this.skip(IS_WHITESPACE, i);
+ var chr = at(this.source, i);
+ for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;
+ throw new SyntaxError('Unexpected character: "' + chr + '" at: ' + i);
+ }
+};
+
+var NO_SOURCE_SUPPORT = fails(function () {
+ var unsafeInt = '9007199254740993';
+ var source;
+ nativeParse(unsafeInt, function (key, value, context) {
+ source = context.source;
+ });
+ return source !== unsafeInt;
+});
+
+var PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {
+ // Safari 9 bug
+ return 1 / nativeParse('-0 \t') !== -Infinity;
+});
+
+// `JSON.parse` method
+// https://tc39.es/ecma262/#sec-json.parse
+// https://github.com/tc39/proposal-json-parse-with-source
+$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {
+ parse: function parse(text, reviver) {
+ return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);
+ }
+});
+
+
+/***/ },
+
+/***/ 3110
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var getBuiltIn = __webpack_require__(7751);
+var apply = __webpack_require__(8745);
+var call = __webpack_require__(9565);
+var uncurryThis = __webpack_require__(9504);
+var fails = __webpack_require__(9039);
+var isArray = __webpack_require__(4376);
+var isCallable = __webpack_require__(4901);
+var isRawJSON = __webpack_require__(5810);
+var isSymbol = __webpack_require__(757);
+var classof = __webpack_require__(2195);
+var toString = __webpack_require__(655);
+var arraySlice = __webpack_require__(7680);
+var parseJSONString = __webpack_require__(8235);
+var uid = __webpack_require__(3392);
+var NATIVE_SYMBOL = __webpack_require__(4495);
+var NATIVE_RAW_JSON = __webpack_require__(7819);
+
+var $String = String;
+var $stringify = getBuiltIn('JSON', 'stringify');
+var exec = uncurryThis(/./.exec);
+var charAt = uncurryThis(''.charAt);
+var charCodeAt = uncurryThis(''.charCodeAt);
+var replace = uncurryThis(''.replace);
+var slice = uncurryThis(''.slice);
+var push = uncurryThis([].push);
+var numberToString = uncurryThis(1.1.toString);
+
+var surrogates = /[\uD800-\uDFFF]/g;
+var leadingSurrogates = /^[\uD800-\uDBFF]$/;
+var trailingSurrogates = /^[\uDC00-\uDFFF]$/;
+
+var MARK = uid();
+var MARK_LENGTH = MARK.length;
+
+var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {
+ var symbol = getBuiltIn('Symbol')('stringify detection');
+ // MS Edge converts symbol values to JSON as {}
+ return $stringify([symbol]) !== '[null]'
+ // WebKit converts symbol values to JSON as null
+ || $stringify({ a: symbol }) !== '{}'
+ // V8 throws on boxed symbols
+ || $stringify(Object(symbol)) !== '{}';
+});
+
+// https://github.com/tc39/proposal-well-formed-stringify
+var ILL_FORMED_UNICODE = fails(function () {
+ return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"'
+ || $stringify('\uDEAD') !== '"\\udead"';
+});
+
+var stringifyWithProperSymbolsConversion = WRONG_SYMBOLS_CONVERSION ? function (it, replacer) {
+ var args = arraySlice(arguments);
+ var $replacer = getReplacerFunction(replacer);
+ if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined
+ args[1] = function (key, value) {
+ // some old implementations (like WebKit) could pass numbers as keys
+ if (isCallable($replacer)) value = call($replacer, this, $String(key), value);
+ if (!isSymbol(value)) return value;
+ };
+ return apply($stringify, null, args);
+} : $stringify;
+
+var fixIllFormedJSON = function (match, offset, string) {
+ var prev = charAt(string, offset - 1);
+ var next = charAt(string, offset + 1);
+ if (
+ (exec(leadingSurrogates, match) && !exec(trailingSurrogates, next)) ||
+ (exec(trailingSurrogates, match) && !exec(leadingSurrogates, prev))
+ ) {
+ return '\\u' + numberToString(charCodeAt(match, 0), 16);
+ } return match;
+};
+
+var getReplacerFunction = function (replacer) {
+ if (isCallable(replacer)) return replacer;
+ if (!isArray(replacer)) return;
+ var rawLength = replacer.length;
+ var keys = [];
+ for (var i = 0; i < rawLength; i++) {
+ var element = replacer[i];
+ if (typeof element == 'string') push(keys, element);
+ else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));
+ }
+ var keysLength = keys.length;
+ var root = true;
+ return function (key, value) {
+ if (root) {
+ root = false;
+ return value;
+ }
+ if (isArray(this)) return value;
+ for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;
+ };
+};
+
+// `JSON.stringify` method
+// https://tc39.es/ecma262/#sec-json.stringify
+// https://github.com/tc39/proposal-json-parse-with-source
+if ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE || !NATIVE_RAW_JSON }, {
+ stringify: function stringify(text, replacer, space) {
+ var replacerFunction = getReplacerFunction(replacer);
+ var rawStrings = [];
+
+ var json = stringifyWithProperSymbolsConversion(text, function (key, value) {
+ // some old implementations (like WebKit) could pass numbers as keys
+ var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;
+ return !NATIVE_RAW_JSON && isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;
+ }, space);
+
+ if (typeof json != 'string') return json;
+
+ if (ILL_FORMED_UNICODE) json = replace(json, surrogates, fixIllFormedJSON);
+
+ if (NATIVE_RAW_JSON) return json;
+
+ var result = '';
+ var length = json.length;
+
+ for (var i = 0; i < length; i++) {
+ var chr = charAt(json, i);
+ if (chr === '"') {
+ var end = parseJSONString(json, ++i).end - 1;
+ var string = slice(json, i, end);
+ result += slice(string, 0, MARK_LENGTH) === MARK
+ ? rawStrings[slice(string, MARK_LENGTH)]
+ : '"' + string + '"';
+ i = end;
+ } else result += chr;
+ }
+
+ return result;
+ }
+});
+
+
+/***/ },
+
+/***/ 2731
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var aCallable = __webpack_require__(9306);
+var MapHelpers = __webpack_require__(2248);
+var IS_PURE = __webpack_require__(6395);
+
+var get = MapHelpers.get;
+var has = MapHelpers.has;
+var set = MapHelpers.set;
+
+// `Map.prototype.getOrInsertComputed` method
+// https://tc39.es/ecma262/#sec-map.prototype.getorinsertcomputed
+$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
+ getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {
+ var hasKey = has(this, key);
+ aCallable(callbackfn);
+ if (hasKey) return get(this, key);
+ // CanonicalizeKeyedCollectionKey
+ if (key === 0 && 1 / key === -Infinity) key = 0;
+ var value = callbackfn(key);
+ set(this, key, value);
+ return value;
+ }
+});
+
+
+/***/ },
+
+/***/ 5367
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var MapHelpers = __webpack_require__(2248);
+var IS_PURE = __webpack_require__(6395);
+
+var get = MapHelpers.get;
+var has = MapHelpers.has;
+var set = MapHelpers.set;
+
+// `Map.prototype.getOrInsert` method
+// https://tc39.es/ecma262/#sec-map.prototype.getorinsert
+$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {
+ getOrInsert: function getOrInsert(key, value) {
+ if (has(this, key)) return get(this, key);
+ set(this, key, value);
+ return value;
+ }
+});
+
+
+/***/ },
+
+/***/ 4628
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var newPromiseCapabilityModule = __webpack_require__(6043);
+
+// `Promise.withResolvers` method
+// https://tc39.es/ecma262/#sec-promise.withResolvers
+$({ target: 'Promise', stat: true }, {
+ withResolvers: function withResolvers() {
+ var promiseCapability = newPromiseCapabilityModule.f(this);
+ return {
+ promise: promiseCapability.promise,
+ resolve: promiseCapability.resolve,
+ reject: promiseCapability.reject
+ };
+ }
+});
+
+
+/***/ },
+
+/***/ 6069
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var uncurryThis = __webpack_require__(9504);
+var aString = __webpack_require__(3463);
+var hasOwn = __webpack_require__(9297);
+var padStart = (__webpack_require__(533).start);
+var WHITESPACES = __webpack_require__(7452);
+
+var $Array = Array;
+var $escape = RegExp.escape;
+var charAt = uncurryThis(''.charAt);
+var charCodeAt = uncurryThis(''.charCodeAt);
+var numberToString = uncurryThis(1.1.toString);
+var join = uncurryThis([].join);
+var FIRST_DIGIT_OR_ASCII = /^[0-9a-z]/i;
+var SYNTAX_SOLIDUS = /^[$()*+./?[\\\]^{|}]/;
+var OTHER_PUNCTUATORS_AND_WHITESPACES = RegExp('^[!"#%&\',\\-:;<=>@`~' + WHITESPACES + ']');
+var exec = uncurryThis(FIRST_DIGIT_OR_ASCII.exec);
+
+var ControlEscape = {
+ '\u0009': 't',
+ '\u000A': 'n',
+ '\u000B': 'v',
+ '\u000C': 'f',
+ '\u000D': 'r'
+};
+
+var escapeChar = function (chr) {
+ var hex = numberToString(charCodeAt(chr, 0), 16);
+ return hex.length < 3 ? '\\x' + padStart(hex, 2, '0') : '\\u' + padStart(hex, 4, '0');
+};
+
+// Avoiding the use of polyfills of the previous iteration of this proposal
+var FORCED = !$escape || $escape('ab') !== '\\x61b';
+
+// `RegExp.escape` method
+// https://tc39.es/ecma262/#sec-regexp.escape
+$({ target: 'RegExp', stat: true, forced: FORCED }, {
+ escape: function escape(S) {
+ aString(S);
+ var length = S.length;
+ var result = $Array(length);
+
+ for (var i = 0; i < length; i++) {
+ var chr = charAt(S, i);
+ if (i === 0 && exec(FIRST_DIGIT_OR_ASCII, chr)) {
+ result[i] = escapeChar(chr);
+ } else if (hasOwn(ControlEscape, chr)) {
+ result[i] = '\\' + ControlEscape[chr];
+ } else if (exec(SYNTAX_SOLIDUS, chr)) {
+ result[i] = '\\' + chr;
+ } else if (exec(OTHER_PUNCTUATORS_AND_WHITESPACES, chr)) {
+ result[i] = escapeChar(chr);
+ } else {
+ var charCode = charCodeAt(chr, 0);
+ // single UTF-16 code unit
+ if ((charCode & 0xF800) !== 0xD800) result[i] = chr;
+ // unpaired surrogate
+ else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = escapeChar(chr);
+ // surrogate pair
+ else {
+ result[i] = chr;
+ result[++i] = charAt(S, i);
+ }
+ }
+ }
+
+ return join(result, '');
+ }
+});
+
+
+/***/ },
+
+/***/ 7642
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var difference = __webpack_require__(3440);
+var fails = __webpack_require__(9039);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {
+ return result.size === 0;
+});
+
+var FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {
+ // https://bugs.webkit.org/show_bug.cgi?id=288595
+ var setLike = {
+ size: 1,
+ has: function () { return true; },
+ keys: function () {
+ var index = 0;
+ return {
+ next: function () {
+ var done = index++ > 1;
+ if (baseSet.has(1)) baseSet.clear();
+ return { done: done, value: 2 };
+ }
+ };
+ }
+ };
+ // eslint-disable-next-line es/no-set -- testing
+ var baseSet = new Set([1, 2, 3, 4]);
+ // eslint-disable-next-line es/no-set-prototype-difference -- testing
+ return baseSet.difference(setLike).size !== 3;
+});
+
+// `Set.prototype.difference` method
+// https://tc39.es/ecma262/#sec-set.prototype.difference
+$({ target: 'Set', proto: true, real: true, forced: FORCED }, {
+ difference: difference
+});
+
+
+/***/ },
+
+/***/ 8004
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var fails = __webpack_require__(9039);
+var intersection = __webpack_require__(8750);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {
+ return result.size === 2 && result.has(1) && result.has(2);
+}) || fails(function () {
+ // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing
+ return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';
+});
+
+// `Set.prototype.intersection` method
+// https://tc39.es/ecma262/#sec-set.prototype.intersection
+$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
+ intersection: intersection
+});
+
+
+/***/ },
+
+/***/ 3853
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var isDisjointFrom = __webpack_require__(4449);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {
+ return !result;
+});
+
+// `Set.prototype.isDisjointFrom` method
+// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom
+$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
+ isDisjointFrom: isDisjointFrom
+});
+
+
+/***/ },
+
+/***/ 5876
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var isSubsetOf = __webpack_require__(3838);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {
+ return result;
+});
+
+// `Set.prototype.isSubsetOf` method
+// https://tc39.es/ecma262/#sec-set.prototype.issubsetof
+$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
+ isSubsetOf: isSubsetOf
+});
+
+
+/***/ },
+
+/***/ 2475
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var isSupersetOf = __webpack_require__(8527);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {
+ return !result;
+});
+
+// `Set.prototype.isSupersetOf` method
+// https://tc39.es/ecma262/#sec-set.prototype.issupersetof
+$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {
+ isSupersetOf: isSupersetOf
+});
+
+
+/***/ },
+
+/***/ 5024
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var symmetricDifference = __webpack_require__(3650);
+var setMethodGetKeysBeforeCloning = __webpack_require__(9835);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');
+
+// `Set.prototype.symmetricDifference` method
+// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference
+$({ target: 'Set', proto: true, real: true, forced: FORCED }, {
+ symmetricDifference: symmetricDifference
+});
+
+
+/***/ },
+
+/***/ 1698
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var union = __webpack_require__(4204);
+var setMethodGetKeysBeforeCloning = __webpack_require__(9835);
+var setMethodAcceptSetLike = __webpack_require__(4916);
+
+var FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');
+
+// `Set.prototype.union` method
+// https://tc39.es/ecma262/#sec-set.prototype.union
+$({ target: 'Set', proto: true, real: true, forced: FORCED }, {
+ union: union
+});
+
+
+/***/ },
+
+/***/ 9577
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var ArrayBufferViewCore = __webpack_require__(4644);
+var isBigIntArray = __webpack_require__(1108);
+var lengthOfArrayLike = __webpack_require__(6198);
+var toIntegerOrInfinity = __webpack_require__(1291);
+var toBigInt = __webpack_require__(5854);
+
+var aTypedArray = ArrayBufferViewCore.aTypedArray;
+var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;
+var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;
+
+var $RangeError = RangeError;
+
+var PROPER_ORDER = function () {
+ try {
+ // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing
+ new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });
+ } catch (error) {
+ // some early implementations, like WebKit, does not follow the final semantic
+ // https://github.com/tc39/proposal-change-array-by-copy/pull/86
+ return error === 8;
+ }
+}();
+
+// Bug in WebKit. It should truncate a negative fractional index to zero, but instead throws an error
+var THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () {
+ try {
+ // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing
+ new Int8Array(1)['with'](-0.5, 1);
+ } catch (error) {
+ return true;
+ }
+}();
+
+// `%TypedArray%.prototype.with` method
+// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with
+exportTypedArrayMethod('with', { 'with': function (index, value) {
+ var O = aTypedArray(this);
+ var len = lengthOfArrayLike(O);
+ var relativeIndex = toIntegerOrInfinity(index);
+ var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;
+ var numericValue = isBigIntArray(O) ? toBigInt(value) : +value;
+ if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');
+ var A = new (getTypedArrayConstructor(O))(len);
+ var k = 0;
+ for (; k < len; k++) A[k] = k === actualIndex ? numericValue : O[k];
+ return A;
+} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX);
+
+
+/***/ },
+
+/***/ 9452
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var aCallable = __webpack_require__(9306);
+var aWeakMap = __webpack_require__(6557);
+var aWeakKey = __webpack_require__(4328);
+var WeakMapHelpers = __webpack_require__(4995);
+var IS_PURE = __webpack_require__(6395);
+
+var get = WeakMapHelpers.get;
+var has = WeakMapHelpers.has;
+var set = WeakMapHelpers.set;
+
+var FORCED = IS_PURE || !function () {
+ try {
+ // eslint-disable-next-line es/no-weak-map, no-throw-literal -- testing
+ if (WeakMap.prototype.getOrInsertComputed) new WeakMap().getOrInsertComputed(1, function () { throw 1; });
+ } catch (error) {
+ // FF144 Nightly - Beta 3 bug
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=1988369
+ return error instanceof TypeError;
+ }
+}();
+
+// `WeakMap.prototype.getOrInsertComputed` method
+// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsertcomputed
+$({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, {
+ getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {
+ if (!IS_PURE) aWeakMap(this);
+ aWeakKey(key);
+ aCallable(callbackfn);
+ if (has(this, key)) return get(this, key);
+ var value = callbackfn(key);
+ set(this, key, value);
+ return value;
+ }
+});
+
+
+/***/ },
+
+/***/ 8454
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var WeakMapHelpers = __webpack_require__(4995);
+var IS_PURE = __webpack_require__(6395);
+
+var get = WeakMapHelpers.get;
+var has = WeakMapHelpers.has;
+var set = WeakMapHelpers.set;
+
+// `WeakMap.prototype.getOrInsert` method
+// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsert
+$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {
+ getOrInsert: function getOrInsert(key, value) {
+ if (has(this, key)) return get(this, key);
+ set(this, key, value);
+ return value;
+ }
+});
+
+
+/***/ },
+
+/***/ 4603
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var defineBuiltIn = __webpack_require__(6840);
+var uncurryThis = __webpack_require__(9504);
+var toString = __webpack_require__(655);
+var validateArgumentsLength = __webpack_require__(2812);
+
+var $URLSearchParams = URLSearchParams;
+var URLSearchParamsPrototype = $URLSearchParams.prototype;
+var append = uncurryThis(URLSearchParamsPrototype.append);
+var $delete = uncurryThis(URLSearchParamsPrototype['delete']);
+var forEach = uncurryThis(URLSearchParamsPrototype.forEach);
+var push = uncurryThis([].push);
+var params = new $URLSearchParams('a=1&a=2&b=3');
+
+params['delete']('a', 1);
+// `undefined` case is a Chromium 117 bug
+// https://bugs.chromium.org/p/v8/issues/detail?id=14222
+params['delete']('b', undefined);
+
+if (params + '' !== 'a=2') {
+ defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {
+ var length = arguments.length;
+ var $value = length < 2 ? undefined : arguments[1];
+ if (length && $value === undefined) return $delete(this, name);
+ var entries = [];
+ forEach(this, function (v, k) { // also validates `this`
+ push(entries, { key: k, value: v });
+ });
+ validateArgumentsLength(length, 1);
+ var key = toString(name);
+ var value = toString($value);
+ var index = 0;
+ var entriesLength = entries.length;
+ var entry;
+ while (index < entriesLength) {
+ entry = entries[index];
+ $delete(this, entry.key);
+ index++;
+ }
+ index = 0;
+ while (index < entriesLength) {
+ entry = entries[index++];
+ if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);
+ }
+ }, { enumerable: true, unsafe: true });
+}
+
+
+/***/ },
+
+/***/ 7566
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var defineBuiltIn = __webpack_require__(6840);
+var uncurryThis = __webpack_require__(9504);
+var toString = __webpack_require__(655);
+var validateArgumentsLength = __webpack_require__(2812);
+
+var $URLSearchParams = URLSearchParams;
+var URLSearchParamsPrototype = $URLSearchParams.prototype;
+var getAll = uncurryThis(URLSearchParamsPrototype.getAll);
+var $has = uncurryThis(URLSearchParamsPrototype.has);
+var params = new $URLSearchParams('a=1');
+
+// `undefined` case is a Chromium 117 bug
+// https://bugs.chromium.org/p/v8/issues/detail?id=14222
+if (params.has('a', 2) || !params.has('a', undefined)) {
+ defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {
+ var length = arguments.length;
+ var $value = length < 2 ? undefined : arguments[1];
+ if (length && $value === undefined) return $has(this, name);
+ var values = getAll(this, name); // also validates `this`
+ validateArgumentsLength(length, 1);
+ var value = toString($value);
+ var index = 0;
+ while (index < values.length) {
+ if (values[index++] === value) return true;
+ } return false;
+ }, { enumerable: true, unsafe: true });
+}
+
+
+/***/ },
+
+/***/ 8721
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var DESCRIPTORS = __webpack_require__(3724);
+var uncurryThis = __webpack_require__(9504);
+var defineBuiltInAccessor = __webpack_require__(2106);
+
+var URLSearchParamsPrototype = URLSearchParams.prototype;
+var forEach = uncurryThis(URLSearchParamsPrototype.forEach);
+
+// `URLSearchParams.prototype.size` getter
+// https://github.com/whatwg/url/pull/734
+if (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {
+ defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {
+ get: function size() {
+ var count = 0;
+ forEach(this, function () { count++; });
+ return count;
+ },
+ configurable: true,
+ enumerable: true
+ });
+}
+
+
+/***/ },
+
+/***/ 5781
+(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
+
+
+var $ = __webpack_require__(6518);
+var getBuiltIn = __webpack_require__(7751);
+var validateArgumentsLength = __webpack_require__(2812);
+var toString = __webpack_require__(655);
+var USE_NATIVE_URL = __webpack_require__(7416);
+
+var URL = getBuiltIn('URL');
+
+// `URL.parse` method
+// https://url.spec.whatwg.org/#dom-url-parse
+$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {
+ parse: function parse(url) {
+ var length = validateArgumentsLength(arguments.length, 1);
+ var urlString = toString(url);
+ var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);
+ try {
+ return new URL(urlString, base);
+ } catch (error) {
+ return null;
+ }
+ }
+});
+
+
+/***/ }
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/************************************************************************/
+
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
+var es_array_push = __webpack_require__(4114);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.detached.js
+var es_array_buffer_detached = __webpack_require__(6573);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer.js
+var es_array_buffer_transfer = __webpack_require__(8100);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js
+var es_array_buffer_transfer_to_fixed_length = __webpack_require__(7936);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.constructor.js
+var es_iterator_constructor = __webpack_require__(8111);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.filter.js
+var es_iterator_filter = __webpack_require__(2489);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.for-each.js
+var es_iterator_for_each = __webpack_require__(7588);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.map.js
+var es_iterator_map = __webpack_require__(1701);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.json.stringify.js
+var es_json_stringify = __webpack_require__(3110);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.get-or-insert.js
+var es_map_get_or_insert = __webpack_require__(5367);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.map.get-or-insert-computed.js
+var es_map_get_or_insert_computed = __webpack_require__(2731);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.promise.with-resolvers.js
+var es_promise_with_resolvers = __webpack_require__(4628);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.escape.js
+var es_regexp_escape = __webpack_require__(6069);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.difference.v2.js
+var es_set_difference_v2 = __webpack_require__(7642);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.intersection.v2.js
+var es_set_intersection_v2 = __webpack_require__(8004);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js
+var es_set_is_disjoint_from_v2 = __webpack_require__(3853);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-subset-of.v2.js
+var es_set_is_subset_of_v2 = __webpack_require__(5876);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.is-superset-of.v2.js
+var es_set_is_superset_of_v2 = __webpack_require__(2475);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.symmetric-difference.v2.js
+var es_set_symmetric_difference_v2 = __webpack_require__(5024);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.set.union.v2.js
+var es_set_union_v2 = __webpack_require__(1698);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.with.js
+var es_typed_array_with = __webpack_require__(9577);
+;// ./web/pdfjs.js
+const {
+ AbortException,
+ AnnotationEditorLayer,
+ AnnotationEditorParamsType,
+ AnnotationEditorType,
+ AnnotationEditorUIManager,
+ AnnotationLayer,
+ AnnotationMode,
+ AnnotationType,
+ applyOpacity,
+ build,
+ ColorPicker,
+ createValidAbsoluteUrl,
+ CSSConstants,
+ DOMSVGFactory,
+ DrawLayer,
+ FeatureTest,
+ fetchData,
+ findContrastColor,
+ getDocument,
+ getFilenameFromUrl,
+ getPdfFilenameFromUrl,
+ getRGB,
+ getRGBA,
+ getUuid,
+ getXfaPageViewport,
+ GlobalWorkerOptions,
+ ImageKind,
+ InvalidPDFException,
+ isDataScheme,
+ isPdfFile,
+ isValidExplicitDest,
+ makeArr,
+ makeMap,
+ makeObj,
+ MathClamp,
+ noContextMenu,
+ normalizeUnicode,
+ OPS,
+ OutputScale,
+ PasswordResponses,
+ PDFDataRangeTransport,
+ PDFDateString,
+ PDFWorker,
+ PermissionFlag,
+ PixelsPerInch,
+ RenderingCancelledException,
+ renderRichText,
+ ResponseException,
+ setLayerDimensions,
+ shadow,
+ SignatureExtractor,
+ stopEvent,
+ SupportedImageMimeTypes,
+ TextLayer,
+ TextLayerImages,
+ TouchManager,
+ updateUrlHash,
+ Util,
+ VerbosityLevel,
+ version,
+ XfaLayer
+} = globalThis.pdfjsLib;
+
+;// ./web/pdf_find_utils.js
+
+
+const CharacterType = {
+ SPACE: 0,
+ ALPHA_LETTER: 1,
+ PUNCT: 2,
+ HAN_LETTER: 3,
+ KATAKANA_LETTER: 4,
+ HIRAGANA_LETTER: 5,
+ HALFWIDTH_KATAKANA_LETTER: 6,
+ THAI_LETTER: 7
+};
+function isAlphabeticalScript(charCode) {
+ return charCode < 0x2e80;
+}
+function isAscii(charCode) {
+ return (charCode & 0xff80) === 0;
+}
+function isAsciiAlpha(charCode) {
+ return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a;
+}
+function isAsciiDigit(charCode) {
+ return charCode >= 0x30 && charCode <= 0x39;
+}
+function isAsciiSpace(charCode) {
+ return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a;
+}
+function isHan(charCode) {
+ return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff;
+}
+function isKatakana(charCode) {
+ return charCode >= 0x30a0 && charCode <= 0x30ff;
+}
+function isHiragana(charCode) {
+ return charCode >= 0x3040 && charCode <= 0x309f;
+}
+function isHalfwidthKatakana(charCode) {
+ return charCode >= 0xff60 && charCode <= 0xff9f;
+}
+function isThai(charCode) {
+ return (charCode & 0xff80) === 0x0e00;
+}
+function getCharacterType(charCode) {
+ if (isAlphabeticalScript(charCode)) {
+ if (isAscii(charCode)) {
+ if (isAsciiSpace(charCode)) {
+ return CharacterType.SPACE;
+ } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) {
+ return CharacterType.ALPHA_LETTER;
+ }
+ return CharacterType.PUNCT;
+ } else if (isThai(charCode)) {
+ return CharacterType.THAI_LETTER;
+ } else if (charCode === 0xa0) {
+ return CharacterType.SPACE;
+ }
+ return CharacterType.ALPHA_LETTER;
+ }
+ if (isHan(charCode)) {
+ return CharacterType.HAN_LETTER;
+ } else if (isKatakana(charCode)) {
+ return CharacterType.KATAKANA_LETTER;
+ } else if (isHiragana(charCode)) {
+ return CharacterType.HIRAGANA_LETTER;
+ } else if (isHalfwidthKatakana(charCode)) {
+ return CharacterType.HALFWIDTH_KATAKANA_LETTER;
+ }
+ return CharacterType.ALPHA_LETTER;
+}
+let NormalizeWithNFKC;
+function getNormalizeWithNFKC() {
+ if (!NormalizeWithNFKC) {
+ const ranges = [];
+ const range = [];
+ const diacriticsRegex = /^\p{M}$/u;
+ for (let i = 0; i < 65536; i++) {
+ if (i >= 0xd800 && i <= 0xdfff) {
+ continue;
+ }
+ const c = String.fromCharCode(i);
+ if (c.normalize("NFKC") !== c && !diacriticsRegex.test(c)) {
+ if (range.length !== 2) {
+ range[0] = range[1] = i;
+ continue;
+ }
+ if (range[1] + 1 !== i) {
+ if (range[0] === range[1]) {
+ ranges.push(String.fromCharCode(range[0]));
+ } else {
+ ranges.push(`${String.fromCharCode(range[0])}-${String.fromCharCode(range[1])}`);
+ }
+ range[0] = range[1] = i;
+ } else {
+ range[1] = i;
+ }
+ }
+ }
+ const rangesStr = ranges.join("");
+ if (!NormalizeWithNFKC) {
+ NormalizeWithNFKC = rangesStr;
+ } else if (rangesStr !== NormalizeWithNFKC) {
+ for (let i = 1; i < rangesStr.length; i++) {
+ if (rangesStr[i] !== NormalizeWithNFKC[i]) {
+ console.log(`Difference at index ${i}: ` + `U+${rangesStr.charCodeAt(i).toString(16).toUpperCase().padStart(4, "0")}` + `!== U+${NormalizeWithNFKC.charCodeAt(i).toString(16).toUpperCase().padStart(4, "0")}`);
+ break;
+ }
+ }
+ throw new Error("getNormalizeWithNFKC - update the `NormalizeWithNFKC` string.");
+ }
+ }
+ return NormalizeWithNFKC;
+}
+
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.includes.js
+var es_array_includes = __webpack_require__(4423);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.delete.js
+var web_url_search_params_delete = __webpack_require__(4603);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.has.js
+var web_url_search_params_has = __webpack_require__(7566);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url-search-params.size.js
+var web_url_search_params_size = __webpack_require__(8721);
+;// ./web/ui_utils.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+const DEFAULT_SCALE_VALUE = "auto";
+const DEFAULT_SCALE = 1.0;
+const DEFAULT_SCALE_DELTA = 1.1;
+const MIN_SCALE = 0.1;
+const MAX_SCALE = 25.0;
+const UNKNOWN_SCALE = 0;
+const MAX_AUTO_SCALE = 1.25;
+const SCROLLBAR_PADDING = 40;
+const VERTICAL_PADDING = 5;
+const PresentationModeState = {
+ UNKNOWN: 0,
+ NORMAL: 1,
+ CHANGING: 2,
+ FULLSCREEN: 3
+};
+const SidebarView = {
+ UNKNOWN: -1,
+ NONE: 0,
+ THUMBS: 1,
+ OUTLINE: 2,
+ ATTACHMENTS: 3,
+ LAYERS: 4
+};
+const TextLayerMode = {
+ DISABLE: 0,
+ ENABLE: 1,
+ ENABLE_PERMISSIONS: 2
+};
+const ScrollMode = {
+ UNKNOWN: -1,
+ VERTICAL: 0,
+ HORIZONTAL: 1,
+ WRAPPED: 2,
+ PAGE: 3
+};
+const SpreadMode = {
+ UNKNOWN: -1,
+ NONE: 0,
+ ODD: 1,
+ EVEN: 2
+};
+const CursorTool = {
+ SELECT: 0,
+ HAND: 1,
+ ZOOM: 2
+};
+const AutoPrintRegExp = /\bprint\s*\(/;
+function scrollIntoView(element, spot) {
+ let parent = element.offsetParent;
+ if (!parent) {
+ console.error("offsetParent is not set -- cannot scroll");
+ return;
+ }
+ let offsetY = element.offsetTop + element.clientTop;
+ let offsetX = element.offsetLeft + element.clientLeft;
+ while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth) {
+ offsetY += parent.offsetTop;
+ offsetX += parent.offsetLeft;
+ parent = parent.offsetParent;
+ if (!parent) {
+ return;
+ }
+ }
+ if (spot) {
+ if (spot.top !== undefined) {
+ offsetY += spot.top;
+ }
+ if (spot.left !== undefined) {
+ offsetX += spot.left;
+ parent.scrollLeft = offsetX;
+ }
+ }
+ parent.scrollTop = offsetY;
+}
+function watchScroll(viewAreaElement, callback, abortSignal = undefined) {
+ const debounceScroll = function (evt) {
+ if (rAF) {
+ return;
+ }
+ rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {
+ rAF = null;
+ const currentX = viewAreaElement.scrollLeft;
+ const lastX = state.lastX;
+ if (currentX !== lastX) {
+ state.right = currentX > lastX;
+ }
+ state.lastX = currentX;
+ const currentY = viewAreaElement.scrollTop;
+ const lastY = state.lastY;
+ if (currentY !== lastY) {
+ state.down = currentY > lastY;
+ }
+ state.lastY = currentY;
+ callback(state);
+ });
+ };
+ const state = {
+ right: true,
+ down: true,
+ lastX: viewAreaElement.scrollLeft,
+ lastY: viewAreaElement.scrollTop,
+ _eventHandler: debounceScroll
+ };
+ let rAF = null;
+ viewAreaElement.addEventListener("scroll", debounceScroll, {
+ useCapture: true,
+ signal: abortSignal
+ });
+ abortSignal?.addEventListener("abort", () => window.cancelAnimationFrame(rAF), {
+ once: true
+ });
+ return state;
+}
+function parseQueryString(query) {
+ const params = new Map();
+ for (const [key, value] of new URLSearchParams(query)) {
+ params.set(key.toLowerCase(), value);
+ }
+ return params;
+}
+const InvisibleCharsRegExp = /[\x00-\x1F]/g;
+function removeNullCharacters(str, replaceInvisible = false) {
+ if (!InvisibleCharsRegExp.test(str)) {
+ return str;
+ }
+ if (replaceInvisible) {
+ return str.replaceAll(InvisibleCharsRegExp, m => m === "\x00" ? "" : " ");
+ }
+ return str.replaceAll("\x00", "");
+}
+function binarySearchFirstItem(items, condition, start = 0) {
+ let minIndex = start;
+ let maxIndex = items.length - 1;
+ if (maxIndex < 0 || !condition(items[maxIndex])) {
+ return items.length;
+ }
+ if (condition(items[minIndex])) {
+ return minIndex;
+ }
+ while (minIndex < maxIndex) {
+ const currentIndex = minIndex + maxIndex >> 1;
+ const currentItem = items[currentIndex];
+ if (condition(currentItem)) {
+ maxIndex = currentIndex;
+ } else {
+ minIndex = currentIndex + 1;
+ }
+ }
+ return minIndex;
+}
+function approximateFraction(x) {
+ if (Math.floor(x) === x) {
+ return [x, 1];
+ }
+ const xinv = 1 / x;
+ const limit = 8;
+ if (xinv > limit) {
+ return [1, limit];
+ } else if (Math.floor(xinv) === xinv) {
+ return [1, xinv];
+ }
+ const x_ = x > 1 ? xinv : x;
+ let a = 0,
+ b = 1,
+ c = 1,
+ d = 1;
+ while (true) {
+ const p = a + c,
+ q = b + d;
+ if (q > limit) {
+ break;
+ }
+ if (x_ <= p / q) {
+ c = p;
+ d = q;
+ } else {
+ a = p;
+ b = q;
+ }
+ }
+ let result;
+ if (x_ - a / b < c / d - x_) {
+ result = x_ === x ? [a, b] : [b, a];
+ } else {
+ result = x_ === x ? [c, d] : [d, c];
+ }
+ return result;
+}
+function floorToDivide(x, div) {
+ return x - x % div;
+}
+function getPageSizeInches({
+ view,
+ userUnit,
+ rotate
+}) {
+ const [x1, y1, x2, y2] = view;
+ const changeOrientation = rotate % 180 !== 0;
+ const width = (x2 - x1) / 72 * userUnit;
+ const height = (y2 - y1) / 72 * userUnit;
+ return {
+ width: changeOrientation ? height : width,
+ height: changeOrientation ? width : height
+ };
+}
+function backtrackBeforeAllVisibleElements(index, views, top) {
+ if (index < 2) {
+ return index;
+ }
+ let elt = views[index].div;
+ let pageTop = elt.offsetTop + elt.clientTop;
+ if (pageTop >= top) {
+ elt = views[index - 1].div;
+ pageTop = elt.offsetTop + elt.clientTop;
+ }
+ for (let i = index - 2; i >= 0; --i) {
+ elt = views[i].div;
+ if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {
+ break;
+ }
+ index = i;
+ }
+ return index;
+}
+function getVisibleElements({
+ scrollEl,
+ views,
+ sortByVisibility = false,
+ horizontal = false,
+ rtl = false
+}) {
+ const top = scrollEl.scrollTop,
+ bottom = top + scrollEl.clientHeight;
+ const left = scrollEl.scrollLeft,
+ right = left + scrollEl.clientWidth;
+ function isElementBottomAfterViewTop(view) {
+ const element = view.div;
+ const elementBottom = element.offsetTop + element.clientTop + element.clientHeight;
+ return elementBottom > top;
+ }
+ function isElementNextAfterViewHorizontally(view) {
+ const element = view.div;
+ const elementLeft = element.offsetLeft + element.clientLeft;
+ const elementRight = elementLeft + element.clientWidth;
+ return rtl ? elementLeft < right : elementRight > left;
+ }
+ const visible = [],
+ ids = new Set(),
+ numViews = views.length;
+ let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop);
+ if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {
+ firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);
+ }
+ let lastEdge = horizontal ? right : -1;
+ for (let i = firstVisibleElementInd; i < numViews; i++) {
+ const view = views[i],
+ element = view.div;
+ const currentWidth = element.offsetLeft + element.clientLeft;
+ const currentHeight = element.offsetTop + element.clientTop;
+ const viewWidth = element.clientWidth,
+ viewHeight = element.clientHeight;
+ const viewRight = currentWidth + viewWidth;
+ const viewBottom = currentHeight + viewHeight;
+ if (lastEdge === -1) {
+ if (viewBottom >= bottom) {
+ lastEdge = viewBottom;
+ }
+ } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {
+ break;
+ }
+ if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {
+ continue;
+ }
+ const minY = Math.max(0, top - currentHeight);
+ const minX = Math.max(0, left - currentWidth);
+ const hiddenHeight = minY + Math.max(0, viewBottom - bottom);
+ const hiddenWidth = minX + Math.max(0, viewRight - right);
+ const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,
+ fractionWidth = (viewWidth - hiddenWidth) / viewWidth;
+ const percent = fractionHeight * fractionWidth * 100 | 0;
+ visible.push({
+ id: view.id,
+ x: currentWidth,
+ y: currentHeight,
+ visibleArea: percent === 100 ? null : {
+ minX,
+ minY,
+ maxX: Math.min(viewRight, right) - currentWidth,
+ maxY: Math.min(viewBottom, bottom) - currentHeight
+ },
+ view,
+ percent,
+ widthPercent: fractionWidth * 100 | 0
+ });
+ ids.add(view.id);
+ }
+ const first = visible[0],
+ last = visible.at(-1);
+ if (sortByVisibility) {
+ visible.sort(function (a, b) {
+ const pc = a.percent - b.percent;
+ if (Math.abs(pc) > 0.001) {
+ return -pc;
+ }
+ return a.id - b.id;
+ });
+ }
+ return {
+ first,
+ last,
+ views: visible,
+ ids
+ };
+}
+function normalizeWheelEventDirection(evt) {
+ let delta = Math.hypot(evt.deltaX, evt.deltaY);
+ const angle = Math.atan2(evt.deltaY, evt.deltaX);
+ if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {
+ delta = -delta;
+ }
+ return delta;
+}
+function normalizeWheelEventDelta(evt) {
+ const deltaMode = evt.deltaMode;
+ let delta = normalizeWheelEventDirection(evt);
+ const MOUSE_PIXELS_PER_LINE = 30;
+ const MOUSE_LINES_PER_PAGE = 30;
+ if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) {
+ delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;
+ } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) {
+ delta /= MOUSE_LINES_PER_PAGE;
+ }
+ return delta;
+}
+function isValidRotation(angle) {
+ return Number.isInteger(angle) && angle % 90 === 0;
+}
+function isValidScrollMode(mode) {
+ return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;
+}
+function isValidSpreadMode(mode) {
+ return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;
+}
+function isPortraitOrientation(size) {
+ return size.width <= size.height;
+}
+const animationStarted = new Promise(function (resolve) {
+ window.requestAnimationFrame(resolve);
+});
+const docStyle = document.documentElement.style;
+class ProgressBar {
+ #classList = null;
+ #disableAutoFetchTimeout = null;
+ #percent = 0;
+ #style = null;
+ #visible = true;
+ constructor(bar) {
+ this.#classList = bar.classList;
+ this.#style = bar.style;
+ }
+ get percent() {
+ return this.#percent;
+ }
+ set percent(val) {
+ this.#percent = val;
+ if (isNaN(val)) {
+ this.#classList.add("indeterminate");
+ return;
+ }
+ this.#classList.remove("indeterminate");
+ this.#style.setProperty("--progressBar-percent", `${this.#percent}%`);
+ }
+ setWidth(viewer) {
+ if (!viewer) {
+ return;
+ }
+ const container = viewer.parentNode;
+ const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;
+ if (scrollbarWidth > 0) {
+ this.#style.setProperty("--progressBar-end-offset", `${scrollbarWidth}px`);
+ }
+ }
+ setDisableAutoFetch(delay = 5000) {
+ if (this.#percent === 100 || isNaN(this.#percent)) {
+ return;
+ }
+ if (this.#disableAutoFetchTimeout) {
+ clearTimeout(this.#disableAutoFetchTimeout);
+ }
+ this.show();
+ this.#disableAutoFetchTimeout = setTimeout(() => {
+ this.#disableAutoFetchTimeout = null;
+ this.hide();
+ }, delay);
+ }
+ hide() {
+ if (!this.#visible) {
+ return;
+ }
+ this.#visible = false;
+ this.#classList.add("hidden");
+ }
+ show() {
+ if (this.#visible) {
+ return;
+ }
+ this.#visible = true;
+ this.#classList.remove("hidden");
+ }
+}
+function getActiveOrFocusedElement() {
+ let curRoot = document;
+ let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus");
+ while (curActiveOrFocused?.shadowRoot) {
+ curRoot = curActiveOrFocused.shadowRoot;
+ curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus");
+ }
+ return curActiveOrFocused;
+}
+function apiPageLayoutToViewerModes(layout) {
+ let scrollMode = ScrollMode.VERTICAL,
+ spreadMode = SpreadMode.NONE;
+ switch (layout) {
+ case "SinglePage":
+ scrollMode = ScrollMode.PAGE;
+ break;
+ case "OneColumn":
+ break;
+ case "TwoPageLeft":
+ scrollMode = ScrollMode.PAGE;
+ case "TwoColumnLeft":
+ spreadMode = SpreadMode.ODD;
+ break;
+ case "TwoPageRight":
+ scrollMode = ScrollMode.PAGE;
+ case "TwoColumnRight":
+ spreadMode = SpreadMode.EVEN;
+ break;
+ }
+ return {
+ scrollMode,
+ spreadMode
+ };
+}
+function apiPageModeToSidebarView(mode) {
+ switch (mode) {
+ case "UseNone":
+ return SidebarView.NONE;
+ case "UseThumbs":
+ return SidebarView.THUMBS;
+ case "UseOutlines":
+ return SidebarView.OUTLINE;
+ case "UseAttachments":
+ return SidebarView.ATTACHMENTS;
+ case "UseOC":
+ return SidebarView.LAYERS;
+ }
+ return SidebarView.NONE;
+}
+function toggleCheckedBtn(button, toggle, view = null) {
+ button.classList.toggle("toggled", toggle);
+ button.setAttribute("aria-checked", toggle);
+ view?.classList.toggle("hidden", !toggle);
+}
+function toggleSelectedBtn(button, toggle, view = null) {
+ button.classList.toggle("selected", toggle);
+ button.setAttribute("aria-selected", toggle);
+ view?.classList.toggle("hidden", !toggle);
+}
+function toggleExpandedBtn(button, toggle, view = null) {
+ button.classList.toggle("toggled", toggle);
+ button.setAttribute("aria-expanded", toggle);
+ view?.classList.toggle("hidden", !toggle);
+}
+const calcRound = function () {
+ const e = document.createElement("div");
+ e.style.width = "round(down, calc(1.6666666666666665 * 792px), 1px)";
+ return e.style.width === "calc(1320px)" ? Math.fround : x => x;
+}();
+
+;// ./web/pdf_find_controller.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+const FindState = {
+ FOUND: 0,
+ NOT_FOUND: 1,
+ WRAPPED: 2,
+ PENDING: 3
+};
+const FIND_TIMEOUT = 250;
+const CHARACTERS_TO_NORMALIZE = {
+ "\u2010": "-",
+ "\u2018": "'",
+ "\u2019": "'",
+ "\u201A": "'",
+ "\u201B": "'",
+ "\u201C": '"',
+ "\u201D": '"',
+ "\u201E": '"',
+ "\u201F": '"',
+ "\u00BC": "1/4",
+ "\u00BD": "1/2",
+ "\u00BE": "3/4"
+};
+const DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]);
+let DIACRITICS_EXCEPTION_STR;
+const DIACRITICS_REG_EXP = /\p{M}+/gu;
+const SPECIAL_CHARS_REG_EXP = /([+^$|])|(\p{P}+)|(\s+)|(\p{M})|(\p{L})/gu;
+const NOT_DIACRITIC_FROM_END_REG_EXP = /([^\p{M}])\p{M}*$/u;
+const NOT_DIACRITIC_FROM_START_REG_EXP = /^\p{M}*([^\p{M}])/u;
+const SYLLABLES_REG_EXP = /[\uAC00-\uD7AF\uFA6C\uFACF-\uFAD1\uFAD5-\uFAD7]+/g;
+const SYLLABLES_LENGTHS = new Map();
+const FIRST_CHAR_SYLLABLES_REG_EXP = "[\\u1100-\\u1112\\ud7a4-\\ud7af\\ud84a\\ud84c\\ud850\\ud854\\ud857\\ud85f]";
+const NFKC_CHARS_TO_NORMALIZE = new Map();
+let noSyllablesRegExp = null;
+let withSyllablesRegExp = null;
+function normalize(text, options = {}) {
+ const syllablePositions = [];
+ let m;
+ while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) {
+ let {
+ index
+ } = m;
+ for (const char of m[0]) {
+ let len = SYLLABLES_LENGTHS.get(char);
+ if (!len) {
+ len = char.normalize("NFD").length;
+ SYLLABLES_LENGTHS.set(char, len);
+ }
+ syllablePositions.push([len, index++]);
+ }
+ }
+ const hasSyllables = syllablePositions.length > 0;
+ const ignoreDashEOL = options.ignoreDashEOL ?? false;
+ let normalizationRegex;
+ if (!hasSyllables && noSyllablesRegExp) {
+ normalizationRegex = noSyllablesRegExp;
+ } else if (hasSyllables && withSyllablesRegExp) {
+ normalizationRegex = withSyllablesRegExp;
+ } else {
+ const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join("");
+ const toNormalizeWithNFKC = getNormalizeWithNFKC();
+ const CJK = "(?:\\p{Ideographic}|[\u3040-\u30FF])";
+ const HKDiacritics = "(?:\u3099|\u309A)";
+ const BrokenWord = `\\p{Ll}-\\n(?=\\p{Ll})|\\p{Lu}-\\n(?=\\p{L})`;
+ const regexps = [`[${replace}]`, `[${toNormalizeWithNFKC}]`, `${HKDiacritics}\\n`, "\\p{M}+(?:-\\n)?", `${BrokenWord}`, "\\S-\\n", `${CJK}\\n`, "\\n", hasSyllables ? FIRST_CHAR_SYLLABLES_REG_EXP : "\\u0000"];
+ normalizationRegex = new RegExp(regexps.map(r => `(${r})`).join("|"), "gum");
+ if (hasSyllables) {
+ withSyllablesRegExp = normalizationRegex;
+ } else {
+ noSyllablesRegExp = normalizationRegex;
+ }
+ }
+ const rawDiacriticsPositions = [];
+ while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) {
+ rawDiacriticsPositions.push([m[0].length, m.index]);
+ }
+ let normalized = text.normalize("NFD");
+ const positions = [0, 0];
+ let rawDiacriticsIndex = 0;
+ let syllableIndex = 0;
+ let shift = 0;
+ let shiftOrigin = 0;
+ let eol = 0;
+ let hasDiacritics = false;
+ normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, p7, p8, p9, i) => {
+ i -= shiftOrigin;
+ if (p1) {
+ const replacement = CHARACTERS_TO_NORMALIZE[p1];
+ const jj = replacement.length;
+ for (let j = 1; j < jj; j++) {
+ positions.push(i - shift + j, shift - j);
+ }
+ shift -= jj - 1;
+ return replacement;
+ }
+ if (p2) {
+ let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2);
+ if (!replacement) {
+ replacement = p2.normalize("NFKC");
+ NFKC_CHARS_TO_NORMALIZE.set(p2, replacement);
+ }
+ const jj = replacement.length;
+ for (let j = 1; j < jj; j++) {
+ positions.push(i - shift + j, shift - j);
+ }
+ shift -= jj - 1;
+ return replacement;
+ }
+ if (p3) {
+ hasDiacritics = true;
+ if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {
+ ++rawDiacriticsIndex;
+ } else {
+ positions.push(i - 1 - shift + 1, shift - 1);
+ shift -= 1;
+ shiftOrigin += 1;
+ }
+ positions.push(i - shift + 1, shift);
+ shiftOrigin += 1;
+ eol += 1;
+ return p3.charAt(0);
+ }
+ if (p4) {
+ const hasTrailingDashEOL = p4.endsWith("\n");
+ const len = hasTrailingDashEOL ? p4.length - 2 : p4.length;
+ hasDiacritics = true;
+ let jj = len;
+ if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {
+ jj -= rawDiacriticsPositions[rawDiacriticsIndex][0];
+ ++rawDiacriticsIndex;
+ }
+ for (let j = 1; j <= jj; j++) {
+ positions.push(i - 1 - shift + j, shift - j);
+ }
+ shift -= jj;
+ shiftOrigin += jj;
+ if (hasTrailingDashEOL) {
+ i += len - 1;
+ positions.push(i - shift + 1, 1 + shift);
+ shift += 1;
+ shiftOrigin += 1;
+ eol += 1;
+ return p4.slice(0, len);
+ }
+ return p4;
+ }
+ if (p5) {
+ if (ignoreDashEOL) {
+ shiftOrigin += 1;
+ eol += 1;
+ return p5.slice(0, -1);
+ }
+ const len = p5.length - 2;
+ positions.push(i - shift + len, 1 + shift);
+ shift += 1;
+ shiftOrigin += 1;
+ eol += 1;
+ return p5.slice(0, -2);
+ }
+ if (p6) {
+ shiftOrigin += 1;
+ eol += 1;
+ return p6.slice(0, -1);
+ }
+ if (p7) {
+ const len = p7.length - 1;
+ positions.push(i - shift + len, shift);
+ shiftOrigin += 1;
+ eol += 1;
+ return p7.slice(0, -1);
+ }
+ if (p8) {
+ positions.push(i - shift + 1, shift - 1);
+ shift -= 1;
+ shiftOrigin += 1;
+ eol += 1;
+ return " ";
+ }
+ if (i + eol === syllablePositions[syllableIndex]?.[1]) {
+ const newCharLen = syllablePositions[syllableIndex][0] - 1;
+ ++syllableIndex;
+ for (let j = 1; j <= newCharLen; j++) {
+ positions.push(i - (shift - j), shift - j);
+ }
+ shift -= newCharLen;
+ shiftOrigin += newCharLen;
+ }
+ return p9;
+ });
+ positions.push(normalized.length, shift);
+ const starts = new Uint32Array(positions.length >> 1);
+ const shifts = new Int32Array(positions.length >> 1);
+ for (let i = 0, ii = positions.length; i < ii; i += 2) {
+ starts[i >> 1] = positions[i];
+ shifts[i >> 1] = positions[i + 1];
+ }
+ return [normalized, [starts, shifts], hasDiacritics];
+}
+function getOriginalIndex(diffs, pos, len) {
+ if (!diffs) {
+ return [pos, len];
+ }
+ const [starts, shifts] = diffs;
+ const start = pos;
+ const end = pos + len - 1;
+ let i = binarySearchFirstItem(starts, x => x >= start);
+ if (starts[i] > start) {
+ --i;
+ }
+ let j = binarySearchFirstItem(starts, x => x >= end, i);
+ if (starts[j] > end) {
+ --j;
+ }
+ const oldStart = start + shifts[i];
+ const oldEnd = end + shifts[j];
+ const oldLen = oldEnd + 1 - oldStart;
+ return [oldStart, oldLen];
+}
+class PDFFindController {
+ #state = null;
+ #updateMatchesCountOnProgress = true;
+ #visitedPagesCount = 0;
+ #copiedPageData = null;
+ #savedPageData = null;
+ constructor({
+ linkService,
+ eventBus,
+ updateMatchesCountOnProgress = true
+ }) {
+ this._linkService = linkService;
+ this._eventBus = eventBus;
+ this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress;
+ this.onIsPageVisible = null;
+ this.#reset();
+ eventBus._on("find", this.#onFind.bind(this));
+ eventBus._on("findbarclose", this.#onFindBarClose.bind(this));
+ eventBus._on("pagesedited", this.#onPagesEdited.bind(this));
+ }
+ get highlightMatches() {
+ return this._highlightMatches;
+ }
+ get pageMatches() {
+ return this._pageMatches;
+ }
+ get pageMatchesLength() {
+ return this._pageMatchesLength;
+ }
+ get selected() {
+ return this._selected;
+ }
+ get state() {
+ return this.#state;
+ }
+ setDocument(pdfDocument) {
+ if (this._pdfDocument) {
+ this.#reset();
+ }
+ if (!pdfDocument) {
+ return;
+ }
+ this._pdfDocument = pdfDocument;
+ this._firstPageCapability.resolve();
+ }
+ #onFind(state) {
+ if (!state) {
+ return;
+ }
+ const pdfDocument = this._pdfDocument;
+ const {
+ type
+ } = state;
+ if (this.#state === null || this.#shouldDirtyMatch(state)) {
+ this._dirtyMatch = true;
+ }
+ this.#state = state;
+ if (type !== "highlightallchange") {
+ this.#updateUIState(FindState.PENDING);
+ }
+ this._firstPageCapability.promise.then(() => {
+ if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {
+ return;
+ }
+ this.#extractText();
+ const findbarClosed = !this._highlightMatches;
+ const pendingTimeout = !!this._findTimeout;
+ if (this._findTimeout) {
+ clearTimeout(this._findTimeout);
+ this._findTimeout = null;
+ }
+ if (!type) {
+ this._findTimeout = setTimeout(() => {
+ this.#nextMatch();
+ this._findTimeout = null;
+ }, FIND_TIMEOUT);
+ } else if (this._dirtyMatch) {
+ this.#nextMatch();
+ } else if (type === "again") {
+ this.#nextMatch();
+ if (findbarClosed && this.#state.highlightAll) {
+ this.#updateAllPages();
+ }
+ } else if (type === "highlightallchange") {
+ if (pendingTimeout) {
+ this.#nextMatch();
+ } else {
+ this._highlightMatches = true;
+ }
+ this.#updateAllPages();
+ } else {
+ this.#nextMatch();
+ }
+ });
+ }
+ scrollMatchIntoView({
+ element = null,
+ pageIndex = -1,
+ matchIndex = -1
+ }) {
+ if (!this._scrollMatches || !element) {
+ return;
+ } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {
+ return;
+ } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {
+ return;
+ }
+ this._scrollMatches = false;
+ element.scrollIntoView({
+ block: "start",
+ inline: "center"
+ });
+ }
+ #reset() {
+ this._highlightMatches = false;
+ this._scrollMatches = false;
+ this._pdfDocument = null;
+ this._pageMatches = [];
+ this._pageMatchesLength = [];
+ this.#visitedPagesCount = 0;
+ this.#state = null;
+ this._selected = {
+ pageIdx: -1,
+ matchIdx: -1
+ };
+ this._offset = {
+ pageIdx: null,
+ matchIdx: null,
+ wrapped: false
+ };
+ this._extractTextPromises = [];
+ this._pageContents = [];
+ this._pageDiffs = [];
+ this._hasDiacritics = [];
+ this._matchesCountTotal = 0;
+ this._pagesToSearch = null;
+ this._pendingFindMatches = new Set();
+ this._resumePageIdx = null;
+ this._dirtyMatch = false;
+ clearTimeout(this._findTimeout);
+ this._findTimeout = null;
+ this.#copiedPageData = null;
+ this._firstPageCapability = Promise.withResolvers();
+ }
+ get #query() {
+ const {
+ query
+ } = this.#state;
+ if (typeof query === "string") {
+ if (query !== this._rawQuery) {
+ this._rawQuery = query;
+ [this._normalizedQuery] = normalize(query);
+ }
+ return this._normalizedQuery;
+ }
+ return (query || []).filter(q => !!q).map(q => normalize(q)[0]);
+ }
+ #shouldDirtyMatch(state) {
+ const newQuery = state.query,
+ prevQuery = this.#state.query;
+ const newType = typeof newQuery,
+ prevType = typeof prevQuery;
+ if (newType !== prevType) {
+ return true;
+ }
+ if (newType === "string") {
+ if (newQuery !== prevQuery) {
+ return true;
+ }
+ } else if (JSON.stringify(newQuery) !== JSON.stringify(prevQuery)) {
+ return true;
+ }
+ switch (state.type) {
+ case "again":
+ const pageNumber = this._selected.pageIdx + 1;
+ const linkService = this._linkService;
+ return pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !(this.onIsPageVisible?.(pageNumber) ?? true);
+ case "highlightallchange":
+ return false;
+ }
+ return true;
+ }
+ #isEntireWord(content, startIdx, length) {
+ let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP);
+ if (match) {
+ const first = content.charCodeAt(startIdx);
+ const limit = match[1].charCodeAt(0);
+ if (getCharacterType(first) === getCharacterType(limit)) {
+ return false;
+ }
+ }
+ match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP);
+ if (match) {
+ const last = content.charCodeAt(startIdx + length - 1);
+ const limit = match[1].charCodeAt(0);
+ if (getCharacterType(last) === getCharacterType(limit)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ #convertToRegExpString(query, hasDiacritics) {
+ const {
+ matchDiacritics
+ } = this.#state;
+ let isUnicode = false;
+ const addExtraWhitespaces = (original, fixed) => {
+ if (original === query) {
+ return fixed;
+ }
+ if (query.startsWith(original)) {
+ return `${fixed}[ ]*`;
+ }
+ if (query.endsWith(original)) {
+ return `[ ]*${fixed}`;
+ }
+ return `[ ]*${fixed}[ ]*`;
+ };
+ query = query.replaceAll(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => {
+ if (p1) {
+ return addExtraWhitespaces(p1, RegExp.escape(p1));
+ }
+ if (p2) {
+ return addExtraWhitespaces(p2, RegExp.escape(p2));
+ }
+ if (p3) {
+ return "[ ]+";
+ }
+ if (matchDiacritics) {
+ return p4 || p5;
+ }
+ if (p4) {
+ return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : "";
+ }
+ if (hasDiacritics) {
+ isUnicode = true;
+ return `${p5}\\p{M}*`;
+ }
+ return p5;
+ });
+ const trailingSpaces = "[ ]*";
+ if (query.endsWith(trailingSpaces)) {
+ query = query.slice(0, query.length - trailingSpaces.length);
+ }
+ if (matchDiacritics) {
+ if (hasDiacritics) {
+ DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(...DIACRITICS_EXCEPTION);
+ isUnicode = true;
+ query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\p{M}]|$)`;
+ }
+ }
+ return [isUnicode, query];
+ }
+ #calculateMatch(pageIndex) {
+ if (!this.#state) {
+ return;
+ }
+ const query = this.#query;
+ if (query.length === 0) {
+ return;
+ }
+ const pageContent = this._pageContents[pageIndex];
+ const matcherResult = this.match(query, pageContent, pageIndex);
+ const matches = this._pageMatches[pageIndex] = [];
+ const matchesLength = this._pageMatchesLength[pageIndex] = [];
+ const diffs = this._pageDiffs[pageIndex];
+ matcherResult?.forEach(({
+ index,
+ length
+ }) => {
+ const [matchPos, matchLen] = getOriginalIndex(diffs, index, length);
+ if (matchLen) {
+ matches.push(matchPos);
+ matchesLength.push(matchLen);
+ }
+ });
+ if (this.#state.highlightAll) {
+ this.#updatePage(pageIndex);
+ }
+ if (this._resumePageIdx === pageIndex) {
+ this._resumePageIdx = null;
+ this.#nextPageMatch();
+ }
+ const pageMatchesCount = matches.length;
+ this._matchesCountTotal += pageMatchesCount;
+ if (this.#updateMatchesCountOnProgress) {
+ if (pageMatchesCount > 0) {
+ this.#updateUIResultsCount();
+ }
+ } else if (++this.#visitedPagesCount === this._linkService.pagesCount) {
+ this.#updateUIResultsCount();
+ }
+ }
+ match(query, pageContent, pageIndex) {
+ const hasDiacritics = this._hasDiacritics[pageIndex];
+ let isUnicode = false;
+ if (typeof query === "string") {
+ [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics);
+ } else {
+ query = query.sort().reverse().map(q => {
+ const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics);
+ isUnicode ||= isUnicodePart;
+ return `(${queryPart})`;
+ }).join("|");
+ }
+ if (!query) {
+ return undefined;
+ }
+ const {
+ caseSensitive,
+ entireWord
+ } = this.#state;
+ const flags = `g${isUnicode ? "u" : ""}${caseSensitive ? "" : "i"}`;
+ query = new RegExp(query, flags);
+ const matches = [];
+ let match;
+ while ((match = query.exec(pageContent)) !== null) {
+ if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) {
+ continue;
+ }
+ matches.push({
+ index: match.index,
+ length: match[0].length
+ });
+ }
+ return matches;
+ }
+ #extractText() {
+ if (this._extractTextPromises.length > 0) {
+ return;
+ }
+ let deferred = Promise.resolve();
+ const textOptions = {
+ disableNormalization: true
+ };
+ const pdfDoc = this._pdfDocument;
+ for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) {
+ const {
+ promise,
+ resolve
+ } = Promise.withResolvers();
+ this._extractTextPromises[i] = promise;
+ deferred = deferred.then(async () => {
+ if (pdfDoc !== this._pdfDocument) {
+ resolve();
+ return;
+ }
+ await pdfDoc.getPage(i + 1).then(pdfPage => pdfPage.getTextContent(textOptions)).then(textContent => {
+ const strBuf = [];
+ for (const textItem of textContent.items) {
+ strBuf.push(textItem.str);
+ if (textItem.hasEOL) {
+ strBuf.push("\n");
+ }
+ }
+ [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join(""));
+ resolve();
+ }, reason => {
+ console.error(`Unable to get text content for page ${i + 1}`, reason);
+ this._pageContents[i] = "";
+ this._pageDiffs[i] = null;
+ this._hasDiacritics[i] = false;
+ resolve();
+ });
+ });
+ }
+ }
+ #updatePage(index) {
+ if (this._scrollMatches && this._selected.pageIdx === index) {
+ this._linkService.page = index + 1;
+ }
+ this._eventBus.dispatch("updatetextlayermatches", {
+ source: this,
+ pageIndex: index
+ });
+ }
+ #updateAllPages() {
+ this._eventBus.dispatch("updatetextlayermatches", {
+ source: this,
+ pageIndex: -1
+ });
+ }
+ #nextMatch() {
+ const previous = this.#state.findPrevious;
+ const currentPageIndex = this._linkService.page - 1;
+ const numPages = this._linkService.pagesCount;
+ this._highlightMatches = true;
+ if (this._dirtyMatch) {
+ this._dirtyMatch = false;
+ this._selected.pageIdx = this._selected.matchIdx = -1;
+ this._offset.pageIdx = currentPageIndex;
+ this._offset.matchIdx = null;
+ this._offset.wrapped = false;
+ this._resumePageIdx = null;
+ this._pageMatches.length = 0;
+ this._pageMatchesLength.length = 0;
+ this.#visitedPagesCount = 0;
+ this._matchesCountTotal = 0;
+ this.#updateAllPages();
+ for (let i = 0; i < numPages; i++) {
+ if (this._pendingFindMatches.has(i)) {
+ continue;
+ }
+ this._pendingFindMatches.add(i);
+ this._extractTextPromises[i].then(() => {
+ this._pendingFindMatches.delete(i);
+ this.#calculateMatch(i);
+ });
+ }
+ }
+ const query = this.#query;
+ if (query.length === 0) {
+ this.#updateUIState(FindState.FOUND);
+ return;
+ }
+ if (this._resumePageIdx) {
+ return;
+ }
+ const offset = this._offset;
+ this._pagesToSearch = numPages;
+ if (offset.matchIdx !== null) {
+ const numPageMatches = this._pageMatches[offset.pageIdx].length;
+ if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {
+ offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;
+ this.#updateMatch(true);
+ return;
+ }
+ this.#advanceOffsetPage(previous);
+ }
+ this.#nextPageMatch();
+ }
+ #matchesReady(matches) {
+ const offset = this._offset;
+ const numMatches = matches.length;
+ const previous = this.#state.findPrevious;
+ if (numMatches) {
+ offset.matchIdx = previous ? numMatches - 1 : 0;
+ this.#updateMatch(true);
+ return true;
+ }
+ this.#advanceOffsetPage(previous);
+ if (offset.wrapped) {
+ offset.matchIdx = null;
+ if (this._pagesToSearch < 0) {
+ this.#updateMatch(false);
+ return true;
+ }
+ }
+ return false;
+ }
+ #nextPageMatch() {
+ if (this._resumePageIdx !== null) {
+ console.error("There can only be one pending page.");
+ }
+ let matches = null;
+ do {
+ const pageIdx = this._offset.pageIdx;
+ matches = this._pageMatches[pageIdx];
+ if (!matches) {
+ this._resumePageIdx = pageIdx;
+ break;
+ }
+ } while (!this.#matchesReady(matches));
+ }
+ #advanceOffsetPage(previous) {
+ const offset = this._offset;
+ const numPages = this._linkService.pagesCount;
+ offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;
+ offset.matchIdx = null;
+ this._pagesToSearch--;
+ if (offset.pageIdx >= numPages || offset.pageIdx < 0) {
+ offset.pageIdx = previous ? numPages - 1 : 0;
+ offset.wrapped = true;
+ }
+ }
+ #updateMatch(found = false) {
+ let state = FindState.NOT_FOUND;
+ const wrapped = this._offset.wrapped;
+ this._offset.wrapped = false;
+ if (found) {
+ const previousPage = this._selected.pageIdx;
+ this._selected.pageIdx = this._offset.pageIdx;
+ this._selected.matchIdx = this._offset.matchIdx;
+ state = wrapped ? FindState.WRAPPED : FindState.FOUND;
+ if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {
+ this.#updatePage(previousPage);
+ }
+ }
+ this.#updateUIState(state, this.#state.findPrevious);
+ if (this._selected.pageIdx !== -1) {
+ this._scrollMatches = true;
+ this.#updatePage(this._selected.pageIdx);
+ }
+ }
+ #onPagesEdited({
+ pagesMapper,
+ type,
+ pageNumbers
+ }) {
+ if (this._extractTextPromises.length === 0) {
+ return;
+ }
+ if (type === "copy") {
+ const promises = new Map();
+ const contents = new Map();
+ const diffs = new Map();
+ const diacritics = new Map();
+ for (const pageNum of pageNumbers) {
+ promises.set(pageNum, this._extractTextPromises[pageNum - 1]);
+ contents.set(pageNum, this._pageContents[pageNum - 1]);
+ diffs.set(pageNum, this._pageDiffs[pageNum - 1]);
+ diacritics.set(pageNum, this._hasDiacritics[pageNum - 1]);
+ }
+ this.#copiedPageData = {
+ promises,
+ contents,
+ diffs,
+ diacritics
+ };
+ return;
+ }
+ if (type === "cancelCopy") {
+ this.#copiedPageData = null;
+ return;
+ }
+ if (type === "delete") {
+ this.#savedPageData = {
+ promises: this._extractTextPromises,
+ contents: this._pageContents,
+ diffs: this._pageDiffs,
+ diacritics: this._hasDiacritics
+ };
+ }
+ if (type === "cancelDelete") {
+ this._extractTextPromises = this.#savedPageData.promises;
+ this._pageContents = this.#savedPageData.contents;
+ this._pageDiffs = this.#savedPageData.diffs;
+ this._hasDiacritics = this.#savedPageData.diacritics;
+ return;
+ }
+ if (type === "cleanSavedData") {
+ this.#savedPageData = null;
+ return;
+ }
+ if (this._findTimeout) {
+ clearTimeout(this._findTimeout);
+ this._findTimeout = null;
+ }
+ this._resumePageIdx = null;
+ this._dirtyMatch = true;
+ const prevPromises = this._extractTextPromises;
+ const prevContents = this._pageContents;
+ const prevDiffs = this._pageDiffs;
+ const prevDiacritics = this._hasDiacritics;
+ const extractTextPromises = this._extractTextPromises = [];
+ const pageContents = this._pageContents = [];
+ const pageDiffs = this._pageDiffs = [];
+ const hasDiacritics = this._hasDiacritics = [];
+ for (let i = 1, ii = pagesMapper.pagesNumber; i <= ii; i++) {
+ const prevPageNumber = pagesMapper.getPrevPageNumber(i);
+ if (prevPageNumber < 0) {
+ const src = -prevPageNumber;
+ extractTextPromises.push(this.#copiedPageData?.promises.get(src) || Promise.resolve());
+ pageContents.push(this.#copiedPageData?.contents.get(src) ?? "");
+ pageDiffs.push(this.#copiedPageData?.diffs.get(src) ?? null);
+ hasDiacritics.push(this.#copiedPageData?.diacritics.get(src) ?? false);
+ continue;
+ }
+ extractTextPromises.push(prevPromises[prevPageNumber - 1] || Promise.resolve());
+ pageContents.push(prevContents[prevPageNumber - 1] ?? "");
+ pageDiffs.push(prevDiffs[prevPageNumber - 1] ?? null);
+ hasDiacritics.push(prevDiacritics[prevPageNumber - 1] ?? false);
+ }
+ if (this.#state) {
+ this.#nextMatch();
+ }
+ }
+ #onFindBarClose(evt) {
+ const pdfDocument = this._pdfDocument;
+ this._firstPageCapability.promise.then(() => {
+ if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) {
+ return;
+ }
+ if (this._findTimeout) {
+ clearTimeout(this._findTimeout);
+ this._findTimeout = null;
+ }
+ if (this._resumePageIdx) {
+ this._resumePageIdx = null;
+ this._dirtyMatch = true;
+ }
+ this.#updateUIState(FindState.FOUND);
+ this._highlightMatches = false;
+ this.#updateAllPages();
+ });
+ }
+ #requestMatchesCount() {
+ const {
+ pageIdx,
+ matchIdx
+ } = this._selected;
+ let current = 0,
+ total = this._matchesCountTotal;
+ if (matchIdx !== -1) {
+ for (let i = 0; i < pageIdx; i++) {
+ current += this._pageMatches[i]?.length || 0;
+ }
+ current += matchIdx + 1;
+ }
+ if (current < 1 || current > total) {
+ current = total = 0;
+ }
+ return {
+ current,
+ total
+ };
+ }
+ #updateUIResultsCount() {
+ this._eventBus.dispatch("updatefindmatchescount", {
+ source: this,
+ matchesCount: this.#requestMatchesCount()
+ });
+ }
+ #updateUIState(state, previous = false) {
+ if (!this.#updateMatchesCountOnProgress && (this.#visitedPagesCount !== this._linkService.pagesCount || state === FindState.PENDING)) {
+ return;
+ }
+ this._eventBus.dispatch("updatefindcontrolstate", {
+ source: this,
+ state,
+ previous,
+ entireWord: this.#state?.entireWord ?? null,
+ matchesCount: this.#requestMatchesCount(),
+ rawQuery: this.#state?.query ?? null
+ });
+ }
+}
+
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.json.parse.js
+var es_json_parse = __webpack_require__(9112);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.parse.js
+var web_url_parse = __webpack_require__(5781);
+;// ./web/pdf_link_service.js
+
+
+
+
+
+
+
+const DEFAULT_LINK_REL = "noopener noreferrer nofollow";
+const LinkTarget = {
+ NONE: 0,
+ SELF: 1,
+ BLANK: 2,
+ PARENT: 3,
+ TOP: 4
+};
+class PDFLinkService {
+ externalLinkEnabled = true;
+ constructor({
+ eventBus,
+ externalLinkTarget = null,
+ externalLinkRel = null,
+ ignoreDestinationZoom = false
+ } = {}) {
+ this.eventBus = eventBus;
+ this.externalLinkTarget = externalLinkTarget;
+ this.externalLinkRel = externalLinkRel;
+ this._ignoreDestinationZoom = ignoreDestinationZoom;
+ this.baseUrl = null;
+ this.pdfDocument = null;
+ this.pdfViewer = null;
+ this.pdfHistory = null;
+ }
+ setDocument(pdfDocument, baseUrl = null) {
+ this.baseUrl = baseUrl;
+ this.pdfDocument = pdfDocument;
+ }
+ setViewer(pdfViewer) {
+ this.pdfViewer = pdfViewer;
+ }
+ setHistory(pdfHistory) {
+ this.pdfHistory = pdfHistory;
+ }
+ get pagesCount() {
+ return this.pdfDocument?.pagesMapper.pagesNumber || 0;
+ }
+ get page() {
+ return this.pdfDocument ? this.pdfViewer.currentPageNumber : 1;
+ }
+ set page(value) {
+ if (this.pdfDocument) {
+ this.pdfViewer.currentPageNumber = value;
+ }
+ }
+ get rotation() {
+ return this.pdfDocument ? this.pdfViewer.pagesRotation : 0;
+ }
+ set rotation(value) {
+ if (this.pdfDocument) {
+ this.pdfViewer.pagesRotation = value;
+ }
+ }
+ get isInPresentationMode() {
+ return this.pdfDocument ? this.pdfViewer.isInPresentationMode : false;
+ }
+ async goToDestination(dest) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ let namedDest, explicitDest, pageNumber;
+ if (typeof dest === "string") {
+ namedDest = dest;
+ explicitDest = await this.pdfDocument.getDestination(dest);
+ } else {
+ namedDest = null;
+ explicitDest = await dest;
+ }
+ if (!Array.isArray(explicitDest)) {
+ console.error(`goToDestination: "${explicitDest}" is not a valid destination array, for dest="${dest}".`);
+ return;
+ }
+ const [destRef] = explicitDest;
+ if (destRef && typeof destRef === "object") {
+ pageNumber = this.pdfDocument.cachedPageNumber(destRef);
+ if (!pageNumber) {
+ try {
+ pageNumber = (await this.pdfDocument.getPageIndex(destRef)) + 1;
+ } catch {
+ console.error(`goToDestination: "${destRef}" is not a valid page reference, for dest="${dest}".`);
+ return;
+ }
+ }
+ } else if (Number.isInteger(destRef)) {
+ pageNumber = destRef + 1;
+ }
+ if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {
+ console.error(`goToDestination: "${pageNumber}" is not a valid page number, for dest="${dest}".`);
+ return;
+ }
+ if (this.pdfHistory) {
+ this.pdfHistory.pushCurrentPosition();
+ this.pdfHistory.push({
+ namedDest,
+ explicitDest,
+ pageNumber
+ });
+ }
+ this.pdfViewer.scrollPageIntoView({
+ pageNumber,
+ destArray: explicitDest,
+ ignoreDestinationZoom: this._ignoreDestinationZoom
+ });
+ const ac = new AbortController();
+ this.eventBus._on("textlayerrendered", evt => {
+ if (evt.pageNumber === pageNumber) {
+ evt.source.textLayer.div.focus();
+ ac.abort();
+ }
+ }, {
+ signal: ac.signal
+ });
+ }
+ goToPage(val) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ const pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0;
+ if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {
+ console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`);
+ return;
+ }
+ if (this.pdfHistory) {
+ this.pdfHistory.pushCurrentPosition();
+ this.pdfHistory.pushPage(pageNumber);
+ }
+ this.pdfViewer.scrollPageIntoView({
+ pageNumber
+ });
+ }
+ goToXY(pageNumber, x, y, options = {}) {
+ this.pdfViewer.scrollPageIntoView({
+ pageNumber,
+ destArray: [null, {
+ name: "XYZ"
+ }, x, y],
+ ignoreDestinationZoom: true,
+ ...options
+ });
+ }
+ addLinkAttributes(link, url, newWindow = false) {
+ if (!url || typeof url !== "string") {
+ throw new Error('A valid "url" parameter must provided.');
+ }
+ const target = newWindow ? LinkTarget.BLANK : this.externalLinkTarget,
+ rel = this.externalLinkRel;
+ let displayUrl = url;
+ const parsedUrl = URL.parse(url);
+ if (parsedUrl?.username || parsedUrl?.password) {
+ parsedUrl.username = parsedUrl.password = "";
+ displayUrl = parsedUrl.href;
+ }
+ if (this.externalLinkEnabled) {
+ link.href = url;
+ link.title = displayUrl;
+ } else {
+ link.href = "";
+ link.title = `Disabled: ${displayUrl}`;
+ link.onclick = () => false;
+ }
+ let targetStr = "";
+ switch (target) {
+ case LinkTarget.NONE:
+ break;
+ case LinkTarget.SELF:
+ targetStr = "_self";
+ break;
+ case LinkTarget.BLANK:
+ targetStr = "_blank";
+ break;
+ case LinkTarget.PARENT:
+ targetStr = "_parent";
+ break;
+ case LinkTarget.TOP:
+ targetStr = "_top";
+ break;
+ }
+ link.target = targetStr;
+ link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL;
+ }
+ getDestinationHash(dest) {
+ if (typeof dest === "string") {
+ if (dest.length > 0) {
+ return this.getAnchorUrl("#" + escape(dest));
+ }
+ } else if (Array.isArray(dest)) {
+ const str = JSON.stringify(dest);
+ if (str.length > 0) {
+ return this.getAnchorUrl("#" + escape(str));
+ }
+ }
+ return this.getAnchorUrl("");
+ }
+ getAnchorUrl(anchor) {
+ return this.baseUrl ? this.baseUrl + anchor : anchor;
+ }
+ setHash(hash) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ let pageNumber, dest;
+ if (hash.includes("=")) {
+ const params = parseQueryString(hash);
+ if (params.has("search")) {
+ const query = params.get("search").replaceAll('"', ""),
+ phrase = params.get("phrase") === "true";
+ this.eventBus.dispatch("findfromurlhash", {
+ source: this,
+ query: phrase ? query : query.match(/\S+/g)
+ });
+ }
+ if (params.has("page")) {
+ pageNumber = params.get("page") | 0 || 1;
+ }
+ if (params.has("zoom")) {
+ const zoomArgs = params.get("zoom").split(",");
+ const zoomArg = zoomArgs[0];
+ const zoomArgNumber = parseFloat(zoomArg);
+ if (!zoomArg.includes("Fit")) {
+ dest = [null, {
+ name: "XYZ"
+ }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];
+ } else if (zoomArg === "Fit" || zoomArg === "FitB") {
+ dest = [null, {
+ name: zoomArg
+ }];
+ } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") {
+ dest = [null, {
+ name: zoomArg
+ }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];
+ } else if (zoomArg === "FitR") {
+ if (zoomArgs.length !== 5) {
+ console.error('PDFLinkService.setHash: Not enough parameters for "FitR".');
+ } else {
+ dest = [null, {
+ name: zoomArg
+ }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];
+ }
+ } else {
+ console.error(`PDFLinkService.setHash: "${zoomArg}" is not a valid zoom value.`);
+ }
+ }
+ if (dest) {
+ this.pdfViewer.scrollPageIntoView({
+ pageNumber: pageNumber || this.page,
+ destArray: dest,
+ allowNegativeOffset: true
+ });
+ } else if (pageNumber) {
+ this.page = pageNumber;
+ }
+ if (params.has("pagemode")) {
+ this.eventBus.dispatch("pagemode", {
+ source: this,
+ mode: params.get("pagemode")
+ });
+ }
+ if (params.has("nameddest")) {
+ this.goToDestination(params.get("nameddest"));
+ }
+ return;
+ }
+ dest = unescape(hash);
+ try {
+ dest = JSON.parse(dest);
+ if (!Array.isArray(dest)) {
+ dest = dest.toString();
+ }
+ } catch {}
+ if (typeof dest === "string" || isValidExplicitDest(dest)) {
+ this.goToDestination(dest);
+ return;
+ }
+ console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not a valid destination.`);
+ }
+ executeNamedAction(action) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ switch (action) {
+ case "GoBack":
+ this.pdfHistory?.back();
+ break;
+ case "GoForward":
+ this.pdfHistory?.forward();
+ break;
+ case "NextPage":
+ this.pdfViewer.nextPage();
+ break;
+ case "PrevPage":
+ this.pdfViewer.previousPage();
+ break;
+ case "LastPage":
+ this.page = this.pagesCount;
+ break;
+ case "FirstPage":
+ this.page = 1;
+ break;
+ default:
+ break;
+ }
+ this.eventBus.dispatch("namedaction", {
+ source: this,
+ action
+ });
+ }
+ async executeSetOCGState(action) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ const pdfDocument = this.pdfDocument,
+ optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise;
+ if (pdfDocument !== this.pdfDocument) {
+ return;
+ }
+ optionalContentConfig.setOCGState(action);
+ this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig);
+ }
+}
+class SimpleLinkService extends PDFLinkService {
+ setDocument(pdfDocument, baseUrl = null) {}
+}
+
+;// ./web/annotation_layer_builder.js
+
+
+
+
+
+class AnnotationLayerBuilder {
+ #annotations = null;
+ #commentManager = null;
+ #externalHide = false;
+ #onAppend = null;
+ #eventAbortController = null;
+ #linksInjected = false;
+ constructor({
+ pdfPage,
+ linkService,
+ downloadManager,
+ annotationStorage = null,
+ imageResourcesPath = "",
+ renderForms = true,
+ enableComment = false,
+ commentManager = null,
+ enableScripting = false,
+ hasJSActionsPromise = null,
+ fieldObjectsPromise = null,
+ annotationCanvasMap = null,
+ accessibilityManager = null,
+ annotationEditorUIManager = null,
+ onAppend = null
+ }) {
+ this.pdfPage = pdfPage;
+ this.linkService = linkService;
+ this.downloadManager = downloadManager;
+ this.imageResourcesPath = imageResourcesPath;
+ this.renderForms = renderForms;
+ this.annotationStorage = annotationStorage;
+ this.enableComment = enableComment;
+ this.#commentManager = commentManager;
+ this.enableScripting = enableScripting;
+ this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false);
+ this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null);
+ this._annotationCanvasMap = annotationCanvasMap;
+ this._accessibilityManager = accessibilityManager;
+ this._annotationEditorUIManager = annotationEditorUIManager;
+ this.#onAppend = onAppend;
+ this.annotationLayer = null;
+ this.div = null;
+ this._cancelled = false;
+ this._eventBus = linkService.eventBus;
+ }
+ async render({
+ viewport,
+ intent = "display",
+ structTreeLayer = null
+ }) {
+ if (this.div) {
+ if (this._cancelled || !this.annotationLayer) {
+ return;
+ }
+ this.annotationLayer.update({
+ viewport: viewport.clone({
+ dontFlip: true
+ })
+ });
+ return;
+ }
+ const [annotations, hasJSActions, fieldObjects] = await Promise.all([this.pdfPage.getAnnotations({
+ intent
+ }), this._hasJSActionsPromise, this._fieldObjectsPromise]);
+ if (this._cancelled) {
+ return;
+ }
+ const div = this.div = document.createElement("div");
+ div.className = "annotationLayer";
+ this.#onAppend?.(div);
+ this.#initAnnotationLayer(viewport, structTreeLayer);
+ if (annotations.length === 0) {
+ this.#annotations = annotations;
+ setLayerDimensions(this.div, viewport);
+ return;
+ }
+ await this.annotationLayer.render({
+ annotations,
+ imageResourcesPath: this.imageResourcesPath,
+ renderForms: this.renderForms,
+ downloadManager: this.downloadManager,
+ enableComment: this.enableComment,
+ enableScripting: this.enableScripting,
+ hasJSActions,
+ fieldObjects
+ });
+ this.#annotations = annotations;
+ if (this.linkService.isInPresentationMode) {
+ this.#updatePresentationModeState(PresentationModeState.FULLSCREEN);
+ }
+ if (!this.#eventAbortController) {
+ this.#eventAbortController = new AbortController();
+ this._eventBus?._on("presentationmodechanged", evt => {
+ this.#updatePresentationModeState(evt.state);
+ }, {
+ signal: this.#eventAbortController.signal
+ });
+ }
+ }
+ #initAnnotationLayer(viewport, structTreeLayer) {
+ this.annotationLayer = new AnnotationLayer({
+ div: this.div,
+ accessibilityManager: this._accessibilityManager,
+ annotationCanvasMap: this._annotationCanvasMap,
+ annotationEditorUIManager: this._annotationEditorUIManager,
+ annotationStorage: this.annotationStorage,
+ page: this.pdfPage,
+ viewport: viewport.clone({
+ dontFlip: true
+ }),
+ structTreeLayer,
+ commentManager: this.#commentManager,
+ linkService: this.linkService
+ });
+ }
+ cancel() {
+ this._cancelled = true;
+ this.#eventAbortController?.abort();
+ this.#eventAbortController = null;
+ }
+ hide(internal = false) {
+ this.#externalHide = !internal;
+ if (!this.div) {
+ return;
+ }
+ this.div.hidden = true;
+ }
+ hasEditableAnnotations() {
+ return !!this.annotationLayer?.hasEditableAnnotations();
+ }
+ async injectLinkAnnotations(inferredLinks) {
+ if (this.#annotations === null) {
+ throw new Error("`render` method must be called before `injectLinkAnnotations`.");
+ }
+ if (this._cancelled || this.#linksInjected) {
+ return;
+ }
+ this.#linksInjected = true;
+ const newLinks = this.#annotations.length ? this.#checkInferredLinks(inferredLinks) : inferredLinks;
+ if (!newLinks.length) {
+ return;
+ }
+ await this.annotationLayer.addLinkAnnotations(newLinks);
+ if (!this.#externalHide) {
+ this.div.hidden = false;
+ }
+ }
+ #updatePresentationModeState(state) {
+ if (!this.div) {
+ return;
+ }
+ let disableFormElements = false;
+ switch (state) {
+ case PresentationModeState.FULLSCREEN:
+ disableFormElements = true;
+ break;
+ case PresentationModeState.NORMAL:
+ break;
+ default:
+ return;
+ }
+ for (const section of this.div.childNodes) {
+ if (section.hasAttribute("data-internal-link")) {
+ continue;
+ }
+ section.inert = disableFormElements;
+ }
+ }
+ #checkInferredLinks(inferredLinks) {
+ function annotationRects(annot) {
+ if (!annot.quadPoints) {
+ return [annot.rect];
+ }
+ const rects = [];
+ for (let i = 2, ii = annot.quadPoints.length; i < ii; i += 8) {
+ const trX = annot.quadPoints[i];
+ const trY = annot.quadPoints[i + 1];
+ const blX = annot.quadPoints[i + 2];
+ const blY = annot.quadPoints[i + 3];
+ rects.push([blX, blY, trX, trY]);
+ }
+ return rects;
+ }
+ function intersectAnnotations(annot1, annot2) {
+ const intersections = [];
+ const annot1Rects = annotationRects(annot1);
+ const annot2Rects = annotationRects(annot2);
+ for (const rect1 of annot1Rects) {
+ for (const rect2 of annot2Rects) {
+ const intersection = Util.intersect(rect1, rect2);
+ if (intersection) {
+ intersections.push(intersection);
+ }
+ }
+ }
+ return intersections;
+ }
+ function areaRects(rects) {
+ let totalArea = 0;
+ for (const rect of rects) {
+ totalArea += Math.abs((rect[2] - rect[0]) * (rect[3] - rect[1]));
+ }
+ return totalArea;
+ }
+ return inferredLinks.filter(link => {
+ let linkAreaRects;
+ for (const annotation of this.#annotations) {
+ if (annotation.annotationType !== AnnotationType.LINK || !annotation.url) {
+ continue;
+ }
+ const intersections = intersectAnnotations(annotation, link);
+ if (intersections.length === 0) {
+ continue;
+ }
+ linkAreaRects ??= areaRects(annotationRects(link));
+ if (areaRects(intersections) / linkAreaRects > 0.5) {
+ return false;
+ }
+ }
+ return true;
+ });
+ }
+}
+
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.get-or-insert.js
+var es_weak_map_get_or_insert = __webpack_require__(8454);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.get-or-insert-computed.js
+var es_weak_map_get_or_insert_computed = __webpack_require__(9452);
+;// ./web/base_download_manager.js
+
+
+
+
+
+
+class BaseDownloadManager {
+ #openBlobUrls = new WeakMap();
+ _triggerDownload(blobUrl, originalUrl, filename, isAttachment = false) {
+ throw new Error("Not implemented: _triggerDownload");
+ }
+ _getOpenDataUrl(blobUrl, filename, dest = null) {
+ throw new Error("Not implemented: _getOpenDataUrl");
+ }
+ downloadData(data, filename, contentType) {
+ const blobUrl = URL.createObjectURL(new Blob([data], {
+ type: contentType
+ }));
+ this._triggerDownload(blobUrl, blobUrl, filename, true);
+ }
+ openOrDownloadData(data, filename, dest = null) {
+ const isPdfData = isPdfFile(filename);
+ const contentType = isPdfData ? "application/pdf" : "";
+ if (isPdfData) {
+ const blobUrl = this.#openBlobUrls.getOrInsertComputed(data, () => URL.createObjectURL(new Blob([data], {
+ type: contentType
+ })));
+ try {
+ const viewerUrl = this._getOpenDataUrl(blobUrl, filename, dest);
+ window.open(viewerUrl);
+ return true;
+ } catch (ex) {
+ console.error("openOrDownloadData:", ex);
+ URL.revokeObjectURL(blobUrl);
+ this.#openBlobUrls.delete(data);
+ }
+ }
+ this.downloadData(data, filename, contentType);
+ return false;
+ }
+ download(data, url, filename) {
+ const blobUrl = data ? URL.createObjectURL(new Blob([data], {
+ type: "application/pdf"
+ })) : null;
+ this._triggerDownload(blobUrl, url, filename);
+ }
+}
+
+;// ./web/download_manager.js
+
+
+class DownloadManager extends BaseDownloadManager {
+ _triggerDownload(blobUrl, originalUrl, filename, isAttachment = false) {
+ if (!blobUrl && !isAttachment) {
+ if (!createValidAbsoluteUrl(originalUrl, "http://example.com")) {
+ throw new Error(`_triggerDownload - not a valid URL: ${originalUrl}`);
+ }
+ blobUrl = originalUrl + "#pdfjs.action=download";
+ }
+ const a = document.createElement("a");
+ a.href = blobUrl;
+ a.target = "_parent";
+ if ("download" in a) {
+ a.download = filename;
+ }
+ (document.body || document.documentElement).append(a);
+ a.click();
+ a.remove();
+ }
+ _getOpenDataUrl(blobUrl, filename, dest = null) {
+ throw new Error("Opening data is not supported in `COMPONENTS` builds.");
+ }
+}
+
+;// ./web/event_utils.js
+
+
+const WaitOnType = {
+ EVENT: "event",
+ TIMEOUT: "timeout"
+};
+async function waitOnEventOrTimeout({
+ target,
+ name,
+ delay = 0
+}) {
+ if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) {
+ throw new Error("waitOnEventOrTimeout - invalid parameters.");
+ }
+ const {
+ promise,
+ resolve
+ } = Promise.withResolvers();
+ const ac = new AbortController();
+ function handler(type) {
+ ac.abort();
+ clearTimeout(timeout);
+ resolve(type);
+ }
+ const evtMethod = target instanceof EventBus ? "_on" : "addEventListener";
+ target[evtMethod](name, handler.bind(null, WaitOnType.EVENT), {
+ signal: ac.signal
+ });
+ const timeout = setTimeout(handler.bind(null, WaitOnType.TIMEOUT), delay);
+ return promise;
+}
+class EventBus {
+ #listeners = Object.create(null);
+ on(eventName, listener, options = null) {
+ this._on(eventName, listener, {
+ external: true,
+ once: options?.once,
+ signal: options?.signal
+ });
+ }
+ off(eventName, listener, options = null) {
+ this._off(eventName, listener);
+ }
+ dispatch(eventName, data) {
+ const eventListeners = this.#listeners[eventName];
+ if (!eventListeners || eventListeners.length === 0) {
+ return;
+ }
+ let externalListeners;
+ for (const {
+ listener,
+ external,
+ once
+ } of eventListeners.slice(0)) {
+ if (once) {
+ this._off(eventName, listener);
+ }
+ if (external) {
+ (externalListeners ||= []).push(listener);
+ continue;
+ }
+ listener(data);
+ }
+ if (externalListeners) {
+ for (const listener of externalListeners) {
+ listener(data);
+ }
+ externalListeners = null;
+ }
+ }
+ _on(eventName, listener, options = null) {
+ let rmAbort = null;
+ if (options?.signal instanceof AbortSignal) {
+ const {
+ signal
+ } = options;
+ if (signal.aborted) {
+ console.error("Cannot use an `aborted` signal.");
+ return;
+ }
+ const onAbort = () => this._off(eventName, listener);
+ rmAbort = () => signal.removeEventListener("abort", onAbort);
+ signal.addEventListener("abort", onAbort);
+ }
+ const eventListeners = this.#listeners[eventName] ||= [];
+ eventListeners.push({
+ listener,
+ external: options?.external === true,
+ once: options?.once === true,
+ rmAbort
+ });
+ }
+ _off(eventName, listener, options = null) {
+ const eventListeners = this.#listeners[eventName];
+ if (!eventListeners) {
+ return;
+ }
+ for (let i = 0, ii = eventListeners.length; i < ii; i++) {
+ const evt = eventListeners[i];
+ if (evt.listener === listener) {
+ evt.rmAbort?.();
+ eventListeners.splice(i, 1);
+ return;
+ }
+ }
+ }
+}
+class FirefoxEventBus extends EventBus {
+ #externalServices;
+ #globalEventNames;
+ #isInAutomation;
+ constructor(globalEventNames, externalServices, isInAutomation) {
+ super();
+ this.#globalEventNames = globalEventNames;
+ this.#externalServices = externalServices;
+ this.#isInAutomation = isInAutomation;
+ }
+ dispatch(eventName, data) {
+ throw new Error("Not implemented: FirefoxEventBus.dispatch");
+ }
+}
+
+;// ./node_modules/@fluent/bundle/esm/types.js
+class FluentType {
+ constructor(value) {
+ this.value = value;
+ }
+ valueOf() {
+ return this.value;
+ }
+}
+class FluentNone extends FluentType {
+ constructor(value = "???") {
+ super(value);
+ }
+ toString(scope) {
+ return `{${this.value}}`;
+ }
+}
+class FluentNumber extends FluentType {
+ constructor(value, opts = {}) {
+ super(value);
+ this.opts = opts;
+ }
+ toString(scope) {
+ if (scope) {
+ try {
+ const nf = scope.memoizeIntlObject(Intl.NumberFormat, this.opts);
+ return nf.format(this.value);
+ } catch (err) {
+ scope.reportError(err);
+ }
+ }
+ return this.value.toString(10);
+ }
+}
+class FluentDateTime extends FluentType {
+ static supportsValue(value) {
+ if (typeof value === "number") return true;
+ if (value instanceof Date) return true;
+ if (value instanceof FluentType) return FluentDateTime.supportsValue(value.valueOf());
+ if ("Temporal" in globalThis) {
+ const _Temporal = globalThis.Temporal;
+ if (value instanceof _Temporal.Instant || value instanceof _Temporal.PlainDateTime || value instanceof _Temporal.PlainDate || value instanceof _Temporal.PlainMonthDay || value instanceof _Temporal.PlainTime || value instanceof _Temporal.PlainYearMonth) {
+ return true;
+ }
+ }
+ return false;
+ }
+ constructor(value, opts = {}) {
+ if (value instanceof FluentDateTime) {
+ opts = {
+ ...value.opts,
+ ...opts
+ };
+ value = value.value;
+ } else if (value instanceof FluentType) {
+ value = value.valueOf();
+ }
+ if (typeof value === "object" && "calendarId" in value && opts.calendar === undefined) {
+ opts = {
+ ...opts,
+ calendar: value.calendarId
+ };
+ }
+ super(value);
+ this.opts = opts;
+ }
+ [Symbol.toPrimitive](hint) {
+ return hint === "string" ? this.toString() : this.toNumber();
+ }
+ toNumber() {
+ const value = this.value;
+ if (typeof value === "number") return value;
+ if (value instanceof Date) return value.getTime();
+ if ("epochMilliseconds" in value) {
+ return value.epochMilliseconds;
+ }
+ if ("toZonedDateTime" in value) {
+ return value.toZonedDateTime("UTC").epochMilliseconds;
+ }
+ throw new TypeError("Unwrapping a non-number value as a number");
+ }
+ toString(scope) {
+ if (scope) {
+ try {
+ const dtf = scope.memoizeIntlObject(Intl.DateTimeFormat, this.opts);
+ return dtf.format(this.value);
+ } catch (err) {
+ scope.reportError(err);
+ }
+ }
+ if (typeof this.value === "number" || this.value instanceof Date) {
+ return new Date(this.value).toISOString();
+ }
+ return this.value.toString();
+ }
+}
+;// ./node_modules/@fluent/bundle/esm/resolver.js
+
+
+const MAX_PLACEABLES = 100;
+const FSI = "\u2068";
+const PDI = "\u2069";
+function match(scope, selector, key) {
+ if (key === selector) {
+ return true;
+ }
+ if (key instanceof FluentNumber && selector instanceof FluentNumber && key.value === selector.value) {
+ return true;
+ }
+ if (selector instanceof FluentNumber && typeof key === "string") {
+ let category = scope.memoizeIntlObject(Intl.PluralRules, selector.opts).select(selector.value);
+ if (key === category) {
+ return true;
+ }
+ }
+ return false;
+}
+function getDefault(scope, variants, star) {
+ if (variants[star]) {
+ return resolvePattern(scope, variants[star].value);
+ }
+ scope.reportError(new RangeError("No default"));
+ return new FluentNone();
+}
+function getArguments(scope, args) {
+ const positional = [];
+ const named = Object.create(null);
+ for (const arg of args) {
+ if (arg.type === "narg") {
+ named[arg.name] = resolveExpression(scope, arg.value);
+ } else {
+ positional.push(resolveExpression(scope, arg));
+ }
+ }
+ return {
+ positional,
+ named
+ };
+}
+function resolveExpression(scope, expr) {
+ switch (expr.type) {
+ case "str":
+ return expr.value;
+ case "num":
+ return new FluentNumber(expr.value, {
+ minimumFractionDigits: expr.precision
+ });
+ case "var":
+ return resolveVariableReference(scope, expr);
+ case "mesg":
+ return resolveMessageReference(scope, expr);
+ case "term":
+ return resolveTermReference(scope, expr);
+ case "func":
+ return resolveFunctionReference(scope, expr);
+ case "select":
+ return resolveSelectExpression(scope, expr);
+ default:
+ return new FluentNone();
+ }
+}
+function resolveVariableReference(scope, {
+ name
+}) {
+ let arg;
+ if (scope.params) {
+ if (Object.prototype.hasOwnProperty.call(scope.params, name)) {
+ arg = scope.params[name];
+ } else {
+ return new FluentNone(`$${name}`);
+ }
+ } else if (scope.args && Object.prototype.hasOwnProperty.call(scope.args, name)) {
+ arg = scope.args[name];
+ } else {
+ scope.reportError(new ReferenceError(`Unknown variable: $${name}`));
+ return new FluentNone(`$${name}`);
+ }
+ if (arg instanceof FluentType) {
+ return arg;
+ }
+ switch (typeof arg) {
+ case "string":
+ return arg;
+ case "number":
+ return new FluentNumber(arg);
+ case "object":
+ if (FluentDateTime.supportsValue(arg)) {
+ return new FluentDateTime(arg);
+ }
+ default:
+ scope.reportError(new TypeError(`Variable type not supported: $${name}, ${typeof arg}`));
+ return new FluentNone(`$${name}`);
+ }
+}
+function resolveMessageReference(scope, {
+ name,
+ attr
+}) {
+ const message = scope.bundle._messages.get(name);
+ if (!message) {
+ scope.reportError(new ReferenceError(`Unknown message: ${name}`));
+ return new FluentNone(name);
+ }
+ if (attr) {
+ const attribute = message.attributes[attr];
+ if (attribute) {
+ return resolvePattern(scope, attribute);
+ }
+ scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));
+ return new FluentNone(`${name}.${attr}`);
+ }
+ if (message.value) {
+ return resolvePattern(scope, message.value);
+ }
+ scope.reportError(new ReferenceError(`No value: ${name}`));
+ return new FluentNone(name);
+}
+function resolveTermReference(scope, {
+ name,
+ attr,
+ args
+}) {
+ const id = `-${name}`;
+ const term = scope.bundle._terms.get(id);
+ if (!term) {
+ scope.reportError(new ReferenceError(`Unknown term: ${id}`));
+ return new FluentNone(id);
+ }
+ if (attr) {
+ const attribute = term.attributes[attr];
+ if (attribute) {
+ scope.params = getArguments(scope, args).named;
+ const resolved = resolvePattern(scope, attribute);
+ scope.params = null;
+ return resolved;
+ }
+ scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`));
+ return new FluentNone(`${id}.${attr}`);
+ }
+ scope.params = getArguments(scope, args).named;
+ const resolved = resolvePattern(scope, term.value);
+ scope.params = null;
+ return resolved;
+}
+function resolveFunctionReference(scope, {
+ name,
+ args
+}) {
+ let func = scope.bundle._functions[name];
+ if (!func) {
+ scope.reportError(new ReferenceError(`Unknown function: ${name}()`));
+ return new FluentNone(`${name}()`);
+ }
+ if (typeof func !== "function") {
+ scope.reportError(new TypeError(`Function ${name}() is not callable`));
+ return new FluentNone(`${name}()`);
+ }
+ try {
+ let resolved = getArguments(scope, args);
+ return func(resolved.positional, resolved.named);
+ } catch (err) {
+ scope.reportError(err);
+ return new FluentNone(`${name}()`);
+ }
+}
+function resolveSelectExpression(scope, {
+ selector,
+ variants,
+ star
+}) {
+ let sel = resolveExpression(scope, selector);
+ if (sel instanceof FluentNone) {
+ return getDefault(scope, variants, star);
+ }
+ for (const variant of variants) {
+ const key = resolveExpression(scope, variant.key);
+ if (match(scope, sel, key)) {
+ return resolvePattern(scope, variant.value);
+ }
+ }
+ return getDefault(scope, variants, star);
+}
+function resolveComplexPattern(scope, ptn) {
+ if (scope.dirty.has(ptn)) {
+ scope.reportError(new RangeError("Cyclic reference"));
+ return new FluentNone();
+ }
+ scope.dirty.add(ptn);
+ const result = [];
+ const useIsolating = scope.bundle._useIsolating && ptn.length > 1;
+ for (const elem of ptn) {
+ if (typeof elem === "string") {
+ result.push(scope.bundle._transform(elem));
+ continue;
+ }
+ scope.placeables++;
+ if (scope.placeables > MAX_PLACEABLES) {
+ scope.dirty.delete(ptn);
+ throw new RangeError(`Too many placeables expanded: ${scope.placeables}, ` + `max allowed is ${MAX_PLACEABLES}`);
+ }
+ if (useIsolating) {
+ result.push(FSI);
+ }
+ result.push(resolveExpression(scope, elem).toString(scope));
+ if (useIsolating) {
+ result.push(PDI);
+ }
+ }
+ scope.dirty.delete(ptn);
+ return result.join("");
+}
+function resolvePattern(scope, value) {
+ if (typeof value === "string") {
+ return scope.bundle._transform(value);
+ }
+ return resolveComplexPattern(scope, value);
+}
+;// ./node_modules/@fluent/bundle/esm/scope.js
+
+
+class Scope {
+ constructor(bundle, errors, args) {
+ this.dirty = new WeakSet();
+ this.params = null;
+ this.placeables = 0;
+ this.bundle = bundle;
+ this.errors = errors;
+ this.args = args;
+ }
+ reportError(error) {
+ if (!this.errors || !(error instanceof Error)) {
+ throw error;
+ }
+ this.errors.push(error);
+ }
+ memoizeIntlObject(ctor, opts) {
+ let cache = this.bundle._intls.get(ctor);
+ if (!cache) {
+ cache = {};
+ this.bundle._intls.set(ctor, cache);
+ }
+ let id = JSON.stringify(opts);
+ if (!cache[id]) {
+ cache[id] = new ctor(this.bundle.locales, opts);
+ }
+ return cache[id];
+ }
+}
+;// ./node_modules/@fluent/bundle/esm/builtins.js
+
+
+function values(opts, allowed) {
+ const unwrapped = Object.create(null);
+ for (const [name, opt] of Object.entries(opts)) {
+ if (allowed.includes(name)) {
+ unwrapped[name] = opt.valueOf();
+ }
+ }
+ return unwrapped;
+}
+const NUMBER_ALLOWED = ["unitDisplay", "currencyDisplay", "useGrouping", "minimumIntegerDigits", "minimumFractionDigits", "maximumFractionDigits", "minimumSignificantDigits", "maximumSignificantDigits"];
+function NUMBER(args, opts) {
+ let arg = args[0];
+ if (arg instanceof FluentNone) {
+ return new FluentNone(`NUMBER(${arg.valueOf()})`);
+ }
+ if (arg instanceof FluentNumber) {
+ return new FluentNumber(arg.valueOf(), {
+ ...arg.opts,
+ ...values(opts, NUMBER_ALLOWED)
+ });
+ }
+ if (arg instanceof FluentDateTime) {
+ return new FluentNumber(arg.toNumber(), {
+ ...values(opts, NUMBER_ALLOWED)
+ });
+ }
+ throw new TypeError("Invalid argument to NUMBER");
+}
+const DATETIME_ALLOWED = ["dateStyle", "timeStyle", "fractionalSecondDigits", "dayPeriod", "hour12", "weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName"];
+function DATETIME(args, opts) {
+ let arg = args[0];
+ if (arg instanceof FluentNone) {
+ return new FluentNone(`DATETIME(${arg.valueOf()})`);
+ }
+ if (arg instanceof FluentDateTime || arg instanceof FluentNumber) {
+ return new FluentDateTime(arg, values(opts, DATETIME_ALLOWED));
+ }
+ throw new TypeError("Invalid argument to DATETIME");
+}
+;// ./node_modules/@fluent/bundle/esm/memoizer.js
+
+
+const cache = new Map();
+function getMemoizerForLocale(locales) {
+ const stringLocale = Array.isArray(locales) ? locales.join(" ") : locales;
+ let memoizer = cache.get(stringLocale);
+ if (memoizer === undefined) {
+ memoizer = new Map();
+ cache.set(stringLocale, memoizer);
+ }
+ return memoizer;
+}
+;// ./node_modules/@fluent/bundle/esm/bundle.js
+
+
+
+
+
+
+
+
+class FluentBundle {
+ constructor(locales, {
+ functions,
+ useIsolating = true,
+ transform = v => v
+ } = {}) {
+ this._terms = new Map();
+ this._messages = new Map();
+ this.locales = Array.isArray(locales) ? locales : [locales];
+ this._functions = {
+ NUMBER: NUMBER,
+ DATETIME: DATETIME,
+ ...functions
+ };
+ this._useIsolating = useIsolating;
+ this._transform = transform;
+ this._intls = getMemoizerForLocale(locales);
+ }
+ hasMessage(id) {
+ return this._messages.has(id);
+ }
+ getMessage(id) {
+ return this._messages.get(id);
+ }
+ addResource(res, {
+ allowOverrides = false
+ } = {}) {
+ const errors = [];
+ for (let i = 0; i < res.body.length; i++) {
+ let entry = res.body[i];
+ if (entry.id.startsWith("-")) {
+ if (allowOverrides === false && this._terms.has(entry.id)) {
+ errors.push(new Error(`Attempt to override an existing term: "${entry.id}"`));
+ continue;
+ }
+ this._terms.set(entry.id, entry);
+ } else {
+ if (allowOverrides === false && this._messages.has(entry.id)) {
+ errors.push(new Error(`Attempt to override an existing message: "${entry.id}"`));
+ continue;
+ }
+ this._messages.set(entry.id, entry);
+ }
+ }
+ return errors;
+ }
+ formatPattern(pattern, args = null, errors = null) {
+ if (typeof pattern === "string") {
+ return this._transform(pattern);
+ }
+ let scope = new Scope(this, errors, args);
+ try {
+ let value = resolveComplexPattern(scope, pattern);
+ return value.toString(scope);
+ } catch (err) {
+ if (scope.errors && err instanceof Error) {
+ scope.errors.push(err);
+ return new FluentNone().toString(scope);
+ }
+ throw err;
+ }
+ }
+}
+;// ./node_modules/@fluent/bundle/esm/resource.js
+
+const RE_MESSAGE_START = /^(-?[a-zA-Z][\w-]*) *= */gm;
+const RE_ATTRIBUTE_START = /\.([a-zA-Z][\w-]*) *= */y;
+const RE_VARIANT_START = /\*?\[/y;
+const RE_NUMBER_LITERAL = /(-?[0-9]+(?:\.([0-9]+))?)/y;
+const RE_IDENTIFIER = /([a-zA-Z][\w-]*)/y;
+const RE_REFERENCE = /([$-])?([a-zA-Z][\w-]*)(?:\.([a-zA-Z][\w-]*))?/y;
+const RE_FUNCTION_NAME = /^[A-Z][A-Z0-9_-]*$/;
+const RE_TEXT_RUN = /([^{}\n\r]+)/y;
+const RE_STRING_RUN = /([^\\"\n\r]*)/y;
+const RE_STRING_ESCAPE = /\\([\\"])/y;
+const RE_UNICODE_ESCAPE = /\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{6})/y;
+const RE_LEADING_NEWLINES = /^\n+/;
+const RE_TRAILING_SPACES = / +$/;
+const RE_BLANK_LINES = / *\r?\n/g;
+const RE_INDENT = /( *)$/;
+const TOKEN_BRACE_OPEN = /{\s*/y;
+const TOKEN_BRACE_CLOSE = /\s*}/y;
+const TOKEN_BRACKET_OPEN = /\[\s*/y;
+const TOKEN_BRACKET_CLOSE = /\s*] */y;
+const TOKEN_PAREN_OPEN = /\s*\(\s*/y;
+const TOKEN_ARROW = /\s*->\s*/y;
+const TOKEN_COLON = /\s*:\s*/y;
+const TOKEN_COMMA = /\s*,?\s*/y;
+const TOKEN_BLANK = /\s+/y;
+class FluentResource {
+ constructor(source) {
+ this.body = [];
+ RE_MESSAGE_START.lastIndex = 0;
+ let cursor = 0;
+ while (true) {
+ let next = RE_MESSAGE_START.exec(source);
+ if (next === null) {
+ break;
+ }
+ cursor = RE_MESSAGE_START.lastIndex;
+ try {
+ this.body.push(parseMessage(next[1]));
+ } catch (err) {
+ if (err instanceof SyntaxError) {
+ continue;
+ }
+ throw err;
+ }
+ }
+ function test(re) {
+ re.lastIndex = cursor;
+ return re.test(source);
+ }
+ function consumeChar(char, errorClass) {
+ if (source[cursor] === char) {
+ cursor++;
+ return true;
+ }
+ if (errorClass) {
+ throw new errorClass(`Expected ${char}`);
+ }
+ return false;
+ }
+ function consumeToken(re, errorClass) {
+ if (test(re)) {
+ cursor = re.lastIndex;
+ return true;
+ }
+ if (errorClass) {
+ throw new errorClass(`Expected ${re.toString()}`);
+ }
+ return false;
+ }
+ function match(re) {
+ re.lastIndex = cursor;
+ let result = re.exec(source);
+ if (result === null) {
+ throw new SyntaxError(`Expected ${re.toString()}`);
+ }
+ cursor = re.lastIndex;
+ return result;
+ }
+ function match1(re) {
+ return match(re)[1];
+ }
+ function parseMessage(id) {
+ let value = parsePattern();
+ let attributes = parseAttributes();
+ if (value === null && Object.keys(attributes).length === 0) {
+ throw new SyntaxError("Expected message value or attributes");
+ }
+ return {
+ id,
+ value,
+ attributes
+ };
+ }
+ function parseAttributes() {
+ let attrs = Object.create(null);
+ while (test(RE_ATTRIBUTE_START)) {
+ let name = match1(RE_ATTRIBUTE_START);
+ let value = parsePattern();
+ if (value === null) {
+ throw new SyntaxError("Expected attribute value");
+ }
+ attrs[name] = value;
+ }
+ return attrs;
+ }
+ function parsePattern() {
+ let first;
+ if (test(RE_TEXT_RUN)) {
+ first = match1(RE_TEXT_RUN);
+ }
+ if (source[cursor] === "{" || source[cursor] === "}") {
+ return parsePatternElements(first ? [first] : [], Infinity);
+ }
+ let indent = parseIndent();
+ if (indent) {
+ if (first) {
+ return parsePatternElements([first, indent], indent.length);
+ }
+ indent.value = trim(indent.value, RE_LEADING_NEWLINES);
+ return parsePatternElements([indent], indent.length);
+ }
+ if (first) {
+ return trim(first, RE_TRAILING_SPACES);
+ }
+ return null;
+ }
+ function parsePatternElements(elements = [], commonIndent) {
+ while (true) {
+ if (test(RE_TEXT_RUN)) {
+ elements.push(match1(RE_TEXT_RUN));
+ continue;
+ }
+ if (source[cursor] === "{") {
+ elements.push(parsePlaceable());
+ continue;
+ }
+ if (source[cursor] === "}") {
+ throw new SyntaxError("Unbalanced closing brace");
+ }
+ let indent = parseIndent();
+ if (indent) {
+ elements.push(indent);
+ commonIndent = Math.min(commonIndent, indent.length);
+ continue;
+ }
+ break;
+ }
+ let lastIndex = elements.length - 1;
+ let lastElement = elements[lastIndex];
+ if (typeof lastElement === "string") {
+ elements[lastIndex] = trim(lastElement, RE_TRAILING_SPACES);
+ }
+ let baked = [];
+ for (let element of elements) {
+ if (element instanceof Indent) {
+ element = element.value.slice(0, element.value.length - commonIndent);
+ }
+ if (element) {
+ baked.push(element);
+ }
+ }
+ return baked;
+ }
+ function parsePlaceable() {
+ consumeToken(TOKEN_BRACE_OPEN, SyntaxError);
+ let selector = parseInlineExpression();
+ if (consumeToken(TOKEN_BRACE_CLOSE)) {
+ return selector;
+ }
+ if (consumeToken(TOKEN_ARROW)) {
+ let variants = parseVariants();
+ consumeToken(TOKEN_BRACE_CLOSE, SyntaxError);
+ return {
+ type: "select",
+ selector,
+ ...variants
+ };
+ }
+ throw new SyntaxError("Unclosed placeable");
+ }
+ function parseInlineExpression() {
+ if (source[cursor] === "{") {
+ return parsePlaceable();
+ }
+ if (test(RE_REFERENCE)) {
+ let [, sigil, name, attr = null] = match(RE_REFERENCE);
+ if (sigil === "$") {
+ return {
+ type: "var",
+ name
+ };
+ }
+ if (consumeToken(TOKEN_PAREN_OPEN)) {
+ let args = parseArguments();
+ if (sigil === "-") {
+ return {
+ type: "term",
+ name,
+ attr,
+ args
+ };
+ }
+ if (RE_FUNCTION_NAME.test(name)) {
+ return {
+ type: "func",
+ name,
+ args
+ };
+ }
+ throw new SyntaxError("Function names must be all upper-case");
+ }
+ if (sigil === "-") {
+ return {
+ type: "term",
+ name,
+ attr,
+ args: []
+ };
+ }
+ return {
+ type: "mesg",
+ name,
+ attr
+ };
+ }
+ return parseLiteral();
+ }
+ function parseArguments() {
+ let args = [];
+ while (true) {
+ switch (source[cursor]) {
+ case ")":
+ cursor++;
+ return args;
+ case undefined:
+ throw new SyntaxError("Unclosed argument list");
+ }
+ args.push(parseArgument());
+ consumeToken(TOKEN_COMMA);
+ }
+ }
+ function parseArgument() {
+ let expr = parseInlineExpression();
+ if (expr.type !== "mesg") {
+ return expr;
+ }
+ if (consumeToken(TOKEN_COLON)) {
+ return {
+ type: "narg",
+ name: expr.name,
+ value: parseLiteral()
+ };
+ }
+ return expr;
+ }
+ function parseVariants() {
+ let variants = [];
+ let count = 0;
+ let star;
+ while (test(RE_VARIANT_START)) {
+ if (consumeChar("*")) {
+ star = count;
+ }
+ let key = parseVariantKey();
+ let value = parsePattern();
+ if (value === null) {
+ throw new SyntaxError("Expected variant value");
+ }
+ variants[count++] = {
+ key,
+ value
+ };
+ }
+ if (count === 0) {
+ return null;
+ }
+ if (star === undefined) {
+ throw new SyntaxError("Expected default variant");
+ }
+ return {
+ variants,
+ star
+ };
+ }
+ function parseVariantKey() {
+ consumeToken(TOKEN_BRACKET_OPEN, SyntaxError);
+ let key;
+ if (test(RE_NUMBER_LITERAL)) {
+ key = parseNumberLiteral();
+ } else {
+ key = {
+ type: "str",
+ value: match1(RE_IDENTIFIER)
+ };
+ }
+ consumeToken(TOKEN_BRACKET_CLOSE, SyntaxError);
+ return key;
+ }
+ function parseLiteral() {
+ if (test(RE_NUMBER_LITERAL)) {
+ return parseNumberLiteral();
+ }
+ if (source[cursor] === '"') {
+ return parseStringLiteral();
+ }
+ throw new SyntaxError("Invalid expression");
+ }
+ function parseNumberLiteral() {
+ let [, value, fraction = ""] = match(RE_NUMBER_LITERAL);
+ let precision = fraction.length;
+ return {
+ type: "num",
+ value: parseFloat(value),
+ precision
+ };
+ }
+ function parseStringLiteral() {
+ consumeChar('"', SyntaxError);
+ let value = "";
+ while (true) {
+ value += match1(RE_STRING_RUN);
+ if (source[cursor] === "\\") {
+ value += parseEscapeSequence();
+ continue;
+ }
+ if (consumeChar('"')) {
+ return {
+ type: "str",
+ value
+ };
+ }
+ throw new SyntaxError("Unclosed string literal");
+ }
+ }
+ function parseEscapeSequence() {
+ if (test(RE_STRING_ESCAPE)) {
+ return match1(RE_STRING_ESCAPE);
+ }
+ if (test(RE_UNICODE_ESCAPE)) {
+ let [, codepoint4, codepoint6] = match(RE_UNICODE_ESCAPE);
+ let codepoint = parseInt(codepoint4 || codepoint6, 16);
+ return codepoint <= 0xd7ff || 0xe000 <= codepoint ? String.fromCodePoint(codepoint) : "οΏ½";
+ }
+ throw new SyntaxError("Unknown escape sequence");
+ }
+ function parseIndent() {
+ let start = cursor;
+ consumeToken(TOKEN_BLANK);
+ switch (source[cursor]) {
+ case ".":
+ case "[":
+ case "*":
+ case "}":
+ case undefined:
+ return false;
+ case "{":
+ return makeIndent(source.slice(start, cursor));
+ }
+ if (source[cursor - 1] === " ") {
+ return makeIndent(source.slice(start, cursor));
+ }
+ return false;
+ }
+ function trim(text, re) {
+ return text.replace(re, "");
+ }
+ function makeIndent(blank) {
+ let value = blank.replace(RE_BLANK_LINES, "\n");
+ let length = RE_INDENT.exec(blank)[1].length;
+ return new Indent(value, length);
+ }
+ }
+}
+class Indent {
+ constructor(value, length) {
+ this.value = value;
+ this.length = length;
+ }
+}
+;// ./node_modules/@fluent/bundle/esm/index.js
+
+
+
+;// ./node_modules/@fluent/dom/esm/overlay.js
+
+
+
+const reOverlay = /<|?\w+;/;
+const TEXT_LEVEL_ELEMENTS = {
+ "http://www.w3.org/1999/xhtml": ["em", "strong", "small", "s", "cite", "q", "dfn", "abbr", "data", "time", "code", "var", "samp", "kbd", "sub", "sup", "i", "b", "u", "mark", "bdi", "bdo", "span", "br", "wbr"]
+};
+const LOCALIZABLE_ATTRIBUTES = {
+ "http://www.w3.org/1999/xhtml": {
+ global: ["title", "aria-description", "aria-label", "aria-valuetext"],
+ a: ["download"],
+ area: ["download", "alt"],
+ input: ["alt", "placeholder"],
+ menuitem: ["label"],
+ menu: ["label"],
+ optgroup: ["label"],
+ option: ["label"],
+ track: ["label"],
+ img: ["alt"],
+ textarea: ["placeholder"],
+ th: ["abbr"]
+ },
+ "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul": {
+ global: ["accesskey", "aria-label", "aria-valuetext", "label", "title", "tooltiptext"],
+ description: ["value"],
+ key: ["key", "keycode"],
+ label: ["value"],
+ textbox: ["placeholder", "value"]
+ }
+};
+function translateElement(element, translation) {
+ const {
+ value
+ } = translation;
+ if (typeof value === "string") {
+ if (element.localName === "title" && element.namespaceURI === "http://www.w3.org/1999/xhtml") {
+ element.textContent = value;
+ } else if (!reOverlay.test(value)) {
+ element.textContent = value;
+ } else {
+ const templateElement = element.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml", "template");
+ templateElement.innerHTML = value;
+ overlayChildNodes(templateElement.content, element);
+ }
+ }
+ overlayAttributes(translation, element);
+}
+function overlayChildNodes(fromFragment, toElement) {
+ for (const childNode of fromFragment.childNodes) {
+ if (childNode.nodeType === childNode.TEXT_NODE) {
+ continue;
+ }
+ if (childNode.hasAttribute("data-l10n-name")) {
+ const sanitized = getNodeForNamedElement(toElement, childNode);
+ fromFragment.replaceChild(sanitized, childNode);
+ continue;
+ }
+ if (isElementAllowed(childNode)) {
+ const sanitized = createSanitizedElement(childNode);
+ fromFragment.replaceChild(sanitized, childNode);
+ continue;
+ }
+ console.warn(`An element of forbidden type "${childNode.localName}" was found in ` + "the translation. Only safe text-level elements and elements with " + "data-l10n-name are allowed.");
+ fromFragment.replaceChild(createTextNodeFromTextContent(childNode), childNode);
+ }
+ toElement.textContent = "";
+ toElement.appendChild(fromFragment);
+}
+function hasAttribute(attributes, name) {
+ if (!attributes) {
+ return false;
+ }
+ for (let attr of attributes) {
+ if (attr.name === name) {
+ return true;
+ }
+ }
+ return false;
+}
+function overlayAttributes(fromElement, toElement) {
+ const explicitlyAllowed = toElement.hasAttribute("data-l10n-attrs") ? toElement.getAttribute("data-l10n-attrs").split(",").map(i => i.trim()) : null;
+ for (const attr of Array.from(toElement.attributes)) {
+ if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && !hasAttribute(fromElement.attributes, attr.name)) {
+ toElement.removeAttribute(attr.name);
+ }
+ }
+ if (!fromElement.attributes) {
+ return;
+ }
+ for (const attr of Array.from(fromElement.attributes)) {
+ if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && toElement.getAttribute(attr.name) !== attr.value) {
+ toElement.setAttribute(attr.name, attr.value);
+ }
+ }
+}
+function getNodeForNamedElement(sourceElement, translatedChild) {
+ const childName = translatedChild.getAttribute("data-l10n-name");
+ const sourceChild = sourceElement.querySelector(`[data-l10n-name="${childName}"]`);
+ if (!sourceChild) {
+ console.warn(`An element named "${childName}" wasn't found in the source.`);
+ return createTextNodeFromTextContent(translatedChild);
+ }
+ if (sourceChild.localName !== translatedChild.localName) {
+ console.warn(`An element named "${childName}" was found in the translation ` + `but its type ${translatedChild.localName} didn't match the ` + `element found in the source (${sourceChild.localName}).`);
+ return createTextNodeFromTextContent(translatedChild);
+ }
+ sourceElement.removeChild(sourceChild);
+ const clone = sourceChild.cloneNode(false);
+ return shallowPopulateUsing(translatedChild, clone);
+}
+function createSanitizedElement(element) {
+ const clone = element.ownerDocument.createElement(element.localName);
+ return shallowPopulateUsing(element, clone);
+}
+function createTextNodeFromTextContent(element) {
+ return element.ownerDocument.createTextNode(element.textContent);
+}
+function isElementAllowed(element) {
+ const allowed = TEXT_LEVEL_ELEMENTS[element.namespaceURI];
+ return allowed && allowed.includes(element.localName);
+}
+function isAttrNameLocalizable(name, element, explicitlyAllowed = null) {
+ if (explicitlyAllowed && explicitlyAllowed.includes(name)) {
+ return true;
+ }
+ const allowed = LOCALIZABLE_ATTRIBUTES[element.namespaceURI];
+ if (!allowed) {
+ return false;
+ }
+ const attrName = name.toLowerCase();
+ const elemName = element.localName;
+ if (allowed.global.includes(attrName)) {
+ return true;
+ }
+ if (!allowed[elemName]) {
+ return false;
+ }
+ if (allowed[elemName].includes(attrName)) {
+ return true;
+ }
+ if (element.namespaceURI === "http://www.w3.org/1999/xhtml" && elemName === "input" && attrName === "value") {
+ const type = element.type.toLowerCase();
+ if (type === "submit" || type === "button" || type === "reset") {
+ return true;
+ }
+ }
+ return false;
+}
+function shallowPopulateUsing(fromElement, toElement) {
+ toElement.textContent = fromElement.textContent;
+ overlayAttributes(fromElement, toElement);
+ return toElement;
+}
+;// ./node_modules/cached-iterable/src/cached_iterable.mjs
+class CachedIterable extends Array {
+ static from(iterable) {
+ if (iterable instanceof this) {
+ return iterable;
+ }
+ return new this(iterable);
+ }
+}
+;// ./node_modules/cached-iterable/src/cached_sync_iterable.mjs
+
+
+class CachedSyncIterable extends CachedIterable {
+ constructor(iterable) {
+ super();
+ if (Symbol.iterator in Object(iterable)) {
+ this.iterator = iterable[Symbol.iterator]();
+ } else {
+ throw new TypeError("Argument must implement the iteration protocol.");
+ }
+ }
+ [Symbol.iterator]() {
+ const cached = this;
+ let cur = 0;
+ return {
+ next() {
+ if (cached.length <= cur) {
+ cached.push(cached.iterator.next());
+ }
+ return cached[cur++];
+ }
+ };
+ }
+ touchNext(count = 1) {
+ let idx = 0;
+ while (idx++ < count) {
+ const last = this[this.length - 1];
+ if (last && last.done) {
+ break;
+ }
+ this.push(this.iterator.next());
+ }
+ return this[this.length - 1];
+ }
+}
+;// ./node_modules/cached-iterable/src/cached_async_iterable.mjs
+
+
+class CachedAsyncIterable extends CachedIterable {
+ constructor(iterable) {
+ super();
+ if (Symbol.asyncIterator in Object(iterable)) {
+ this.iterator = iterable[Symbol.asyncIterator]();
+ } else if (Symbol.iterator in Object(iterable)) {
+ this.iterator = iterable[Symbol.iterator]();
+ } else {
+ throw new TypeError("Argument must implement the iteration protocol.");
+ }
+ }
+ [Symbol.asyncIterator]() {
+ const cached = this;
+ let cur = 0;
+ return {
+ async next() {
+ if (cached.length <= cur) {
+ cached.push(cached.iterator.next());
+ }
+ return cached[cur++];
+ }
+ };
+ }
+ async touchNext(count = 1) {
+ let idx = 0;
+ while (idx++ < count) {
+ const last = this[this.length - 1];
+ if (last && (await last).done) {
+ break;
+ }
+ this.push(this.iterator.next());
+ }
+ return this[this.length - 1];
+ }
+}
+;// ./node_modules/cached-iterable/src/index.mjs
+
+
+;// ./node_modules/@fluent/dom/esm/localization.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+class Localization {
+ constructor(resourceIds = [], generateBundles) {
+ this.resourceIds = resourceIds;
+ this.generateBundles = generateBundles;
+ this.onChange(true);
+ }
+ addResourceIds(resourceIds, eager = false) {
+ this.resourceIds.push(...resourceIds);
+ this.onChange(eager);
+ return this.resourceIds.length;
+ }
+ removeResourceIds(resourceIds) {
+ this.resourceIds = this.resourceIds.filter(r => !resourceIds.includes(r));
+ this.onChange();
+ return this.resourceIds.length;
+ }
+ async formatWithFallback(keys, method) {
+ const translations = [];
+ let hasAtLeastOneBundle = false;
+ for await (const bundle of this.bundles) {
+ hasAtLeastOneBundle = true;
+ const missingIds = keysFromBundle(method, bundle, keys, translations);
+ if (missingIds.size === 0) {
+ break;
+ }
+ if (typeof console !== "undefined") {
+ const locale = bundle.locales[0];
+ const ids = Array.from(missingIds).join(", ");
+ console.warn(`[fluent] Missing translations in ${locale}: ${ids}`);
+ }
+ }
+ if (!hasAtLeastOneBundle && typeof console !== "undefined") {
+ console.warn(`[fluent] Request for keys failed because no resource bundles got generated.
+ keys: ${JSON.stringify(keys)}.
+ resourceIds: ${JSON.stringify(this.resourceIds)}.`);
+ }
+ return translations;
+ }
+ formatMessages(keys) {
+ return this.formatWithFallback(keys, messageFromBundle);
+ }
+ formatValues(keys) {
+ return this.formatWithFallback(keys, valueFromBundle);
+ }
+ async formatValue(id, args) {
+ const [val] = await this.formatValues([{
+ id,
+ args
+ }]);
+ return val;
+ }
+ handleEvent() {
+ this.onChange();
+ }
+ onChange(eager = false) {
+ this.bundles = CachedAsyncIterable.from(this.generateBundles(this.resourceIds));
+ if (eager) {
+ this.bundles.touchNext(2);
+ }
+ }
+}
+function valueFromBundle(bundle, errors, message, args) {
+ if (message.value) {
+ return bundle.formatPattern(message.value, args, errors);
+ }
+ return null;
+}
+function messageFromBundle(bundle, errors, message, args) {
+ const formatted = {
+ value: null,
+ attributes: null
+ };
+ if (message.value) {
+ formatted.value = bundle.formatPattern(message.value, args, errors);
+ }
+ let attrNames = Object.keys(message.attributes);
+ if (attrNames.length > 0) {
+ formatted.attributes = new Array(attrNames.length);
+ for (let [i, name] of attrNames.entries()) {
+ let value = bundle.formatPattern(message.attributes[name], args, errors);
+ formatted.attributes[i] = {
+ name,
+ value
+ };
+ }
+ }
+ return formatted;
+}
+function keysFromBundle(method, bundle, keys, translations) {
+ const messageErrors = [];
+ const missingIds = new Set();
+ keys.forEach(({
+ id,
+ args
+ }, i) => {
+ if (translations[i] !== undefined) {
+ return;
+ }
+ let message = bundle.getMessage(id);
+ if (message) {
+ messageErrors.length = 0;
+ translations[i] = method(bundle, messageErrors, message, args);
+ if (messageErrors.length > 0 && typeof console !== "undefined") {
+ const locale = bundle.locales[0];
+ const errors = messageErrors.join(", ");
+ console.warn(`[fluent][resolver] errors in ${locale}/${id}: ${errors}.`);
+ }
+ } else {
+ missingIds.add(id);
+ }
+ });
+ return missingIds;
+}
+;// ./node_modules/@fluent/dom/esm/dom_localization.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+const L10NID_ATTR_NAME = "data-l10n-id";
+const L10NARGS_ATTR_NAME = "data-l10n-args";
+const L10N_ELEMENT_QUERY = `[${L10NID_ATTR_NAME}]`;
+class DOMLocalization extends Localization {
+ constructor(resourceIds, generateBundles) {
+ super(resourceIds, generateBundles);
+ this.roots = new Set();
+ this.pendingrAF = null;
+ this.pendingElements = new Set();
+ this.windowElement = null;
+ this.mutationObserver = null;
+ this.observerConfig = {
+ attributes: true,
+ characterData: false,
+ childList: true,
+ subtree: true,
+ attributeFilter: [L10NID_ATTR_NAME, L10NARGS_ATTR_NAME]
+ };
+ }
+ onChange(eager = false) {
+ super.onChange(eager);
+ if (this.roots) {
+ this.translateRoots();
+ }
+ }
+ setAttributes(element, id, args) {
+ element.setAttribute(L10NID_ATTR_NAME, id);
+ if (args) {
+ element.setAttribute(L10NARGS_ATTR_NAME, JSON.stringify(args));
+ } else {
+ element.removeAttribute(L10NARGS_ATTR_NAME);
+ }
+ return element;
+ }
+ getAttributes(element) {
+ return {
+ id: element.getAttribute(L10NID_ATTR_NAME),
+ args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null)
+ };
+ }
+ connectRoot(newRoot) {
+ for (const root of this.roots) {
+ if (root === newRoot || root.contains(newRoot) || newRoot.contains(root)) {
+ throw new Error("Cannot add a root that overlaps with existing root.");
+ }
+ }
+ if (this.windowElement) {
+ if (this.windowElement !== newRoot.ownerDocument.defaultView) {
+ throw new Error(`Cannot connect a root:
+ DOMLocalization already has a root from a different window.`);
+ }
+ } else {
+ this.windowElement = newRoot.ownerDocument.defaultView;
+ this.mutationObserver = new this.windowElement.MutationObserver(mutations => this.translateMutations(mutations));
+ }
+ this.roots.add(newRoot);
+ this.mutationObserver.observe(newRoot, this.observerConfig);
+ }
+ disconnectRoot(root) {
+ this.roots.delete(root);
+ this.pauseObserving();
+ if (this.roots.size === 0) {
+ this.mutationObserver = null;
+ if (this.windowElement && this.pendingrAF) {
+ this.windowElement.cancelAnimationFrame(this.pendingrAF);
+ }
+ this.windowElement = null;
+ this.pendingrAF = null;
+ this.pendingElements.clear();
+ return true;
+ }
+ this.resumeObserving();
+ return false;
+ }
+ translateRoots() {
+ const roots = Array.from(this.roots);
+ return Promise.all(roots.map(root => this.translateFragment(root)));
+ }
+ pauseObserving() {
+ if (!this.mutationObserver) {
+ return;
+ }
+ this.translateMutations(this.mutationObserver.takeRecords());
+ this.mutationObserver.disconnect();
+ }
+ resumeObserving() {
+ if (!this.mutationObserver) {
+ return;
+ }
+ for (const root of this.roots) {
+ this.mutationObserver.observe(root, this.observerConfig);
+ }
+ }
+ translateMutations(mutations) {
+ for (const mutation of mutations) {
+ switch (mutation.type) {
+ case "attributes":
+ if (mutation.target.hasAttribute("data-l10n-id")) {
+ this.pendingElements.add(mutation.target);
+ }
+ break;
+ case "childList":
+ for (const addedNode of mutation.addedNodes) {
+ if (addedNode.nodeType === addedNode.ELEMENT_NODE) {
+ if (addedNode.childElementCount) {
+ for (const element of this.getTranslatables(addedNode)) {
+ this.pendingElements.add(element);
+ }
+ } else if (addedNode.hasAttribute(L10NID_ATTR_NAME)) {
+ this.pendingElements.add(addedNode);
+ }
+ }
+ }
+ break;
+ }
+ }
+ if (this.pendingElements.size > 0) {
+ if (this.pendingrAF === null) {
+ this.pendingrAF = this.windowElement.requestAnimationFrame(() => {
+ this.translateElements(Array.from(this.pendingElements));
+ this.pendingElements.clear();
+ this.pendingrAF = null;
+ });
+ }
+ }
+ }
+ translateFragment(frag) {
+ return this.translateElements(this.getTranslatables(frag));
+ }
+ async translateElements(elements) {
+ if (!elements.length) {
+ return undefined;
+ }
+ const keys = elements.map(this.getKeysForElement);
+ const translations = await this.formatMessages(keys);
+ return this.applyTranslations(elements, translations);
+ }
+ applyTranslations(elements, translations) {
+ this.pauseObserving();
+ for (let i = 0; i < elements.length; i++) {
+ if (translations[i] !== undefined) {
+ translateElement(elements[i], translations[i]);
+ }
+ }
+ this.resumeObserving();
+ }
+ getTranslatables(element) {
+ const nodes = Array.from(element.querySelectorAll(L10N_ELEMENT_QUERY));
+ if (typeof element.hasAttribute === "function" && element.hasAttribute(L10NID_ATTR_NAME)) {
+ nodes.push(element);
+ }
+ return nodes;
+ }
+ getKeysForElement(element) {
+ return {
+ id: element.getAttribute(L10NID_ATTR_NAME),
+ args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null)
+ };
+ }
+}
+;// ./node_modules/@fluent/dom/esm/index.js
+
+
+;// ./web/l10n.js
+
+
+
+
+
+
+
+
+
+
+class L10n {
+ #dir;
+ #elements;
+ #lang;
+ #l10n;
+ constructor({
+ lang,
+ isRTL
+ }, l10n = null) {
+ this.#lang = L10n.#fixupLangCode(lang);
+ this.#l10n = l10n;
+ this.#dir = isRTL ?? L10n.#isRTL(this.#lang) ? "rtl" : "ltr";
+ }
+ _setL10n(l10n) {
+ this.#l10n = l10n;
+ }
+ getLanguage() {
+ return this.#lang;
+ }
+ getDirection() {
+ return this.#dir;
+ }
+ async get(ids, args = null, fallback) {
+ if (Array.isArray(ids)) {
+ ids = ids.map(id => ({
+ id
+ }));
+ const messages = await this.#l10n.formatMessages(ids);
+ return messages.map(message => message.value);
+ }
+ const messages = await this.#l10n.formatMessages([{
+ id: ids,
+ args
+ }]);
+ return messages[0]?.value || fallback;
+ }
+ async translate(element) {
+ (this.#elements ||= new Set()).add(element);
+ try {
+ this.#l10n.connectRoot(element);
+ await this.#l10n.translateRoots();
+ } catch {}
+ }
+ async translateOnce(element) {
+ try {
+ await this.#l10n.translateElements([element]);
+ } catch (ex) {
+ console.error("translateOnce:", ex);
+ }
+ }
+ async destroy() {
+ if (this.#elements) {
+ for (const element of this.#elements) {
+ this.#l10n.disconnectRoot(element);
+ }
+ this.#elements.clear();
+ this.#elements = null;
+ }
+ this.#l10n.pauseObserving();
+ }
+ pause() {
+ this.#l10n.pauseObserving();
+ }
+ resume() {
+ this.#l10n.resumeObserving();
+ }
+ static #fixupLangCode(langCode) {
+ langCode = langCode?.toLowerCase() || "en-us";
+ const PARTIAL_LANG_CODES = {
+ en: "en-us",
+ es: "es-es",
+ fy: "fy-nl",
+ ga: "ga-ie",
+ gu: "gu-in",
+ hi: "hi-in",
+ hy: "hy-am",
+ nb: "nb-no",
+ ne: "ne-np",
+ nn: "nn-no",
+ pa: "pa-in",
+ pt: "pt-pt",
+ sv: "sv-se",
+ zh: "zh-cn"
+ };
+ return PARTIAL_LANG_CODES[langCode] || langCode;
+ }
+ static #isRTL(lang) {
+ const shortCode = lang.split("-", 1)[0];
+ return ["ar", "he", "fa", "ps", "ur"].includes(shortCode);
+ }
+}
+const GenericL10n = null;
+
+;// ./web/genericl10n.js
+
+
+
+
+
+
+
+
+function PLATFORM() {
+ const {
+ isAndroid,
+ isLinux,
+ isMac,
+ isWindows
+ } = FeatureTest.platform;
+ if (isLinux) {
+ return "linux";
+ }
+ if (isWindows) {
+ return "windows";
+ }
+ if (isMac) {
+ return "macos";
+ }
+ if (isAndroid) {
+ return "android";
+ }
+ return "other";
+}
+function createBundle(lang, text) {
+ const resource = new FluentResource(text);
+ const bundle = new FluentBundle(lang, {
+ functions: {
+ PLATFORM
+ }
+ });
+ const errors = bundle.addResource(resource);
+ if (errors.length) {
+ console.error("L10n errors", errors);
+ }
+ return bundle;
+}
+class genericl10n_GenericL10n extends L10n {
+ constructor(lang) {
+ super({
+ lang
+ });
+ const generateBundles = !lang ? genericl10n_GenericL10n.#generateBundlesFallback.bind(genericl10n_GenericL10n, this.getLanguage()) : genericl10n_GenericL10n.#generateBundles.bind(genericl10n_GenericL10n, "en-us", this.getLanguage());
+ this._setL10n(new DOMLocalization([], generateBundles));
+ }
+ static async *#generateBundles(defaultLang, baseLang) {
+ const {
+ baseURL,
+ paths
+ } = await this.#getPaths();
+ const langs = [baseLang];
+ if (defaultLang !== baseLang) {
+ const shortLang = baseLang.split("-", 1)[0];
+ if (shortLang !== baseLang) {
+ langs.push(shortLang);
+ }
+ langs.push(defaultLang);
+ }
+ const bundles = langs.map(lang => [lang, this.#createBundle(lang, baseURL, paths)]);
+ for (const [lang, bundlePromise] of bundles) {
+ const bundle = await bundlePromise;
+ if (bundle) {
+ yield bundle;
+ } else if (lang === "en-us") {
+ yield this.#createBundleFallback(lang);
+ }
+ }
+ }
+ static async #createBundle(lang, baseURL, paths) {
+ const path = paths[lang];
+ if (!path) {
+ return null;
+ }
+ const url = new URL(path, baseURL);
+ const text = await fetchData(url, "text");
+ return createBundle(lang, text);
+ }
+ static async #getPaths() {
+ try {
+ const {
+ href
+ } = document.querySelector(`link[type="application/l10n"]`);
+ const paths = await fetchData(href, "json");
+ return {
+ baseURL: href.substring(0, href.lastIndexOf("/") + 1) || "./",
+ paths
+ };
+ } catch {}
+ return {
+ baseURL: "./",
+ paths: Object.create(null)
+ };
+ }
+ static async *#generateBundlesFallback(lang) {
+ yield this.#createBundleFallback(lang);
+ }
+ static async #createBundleFallback(lang) {
+ const text = "pdfjs-previous-button =\n .title = Previous Page\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n .title = Next Page\npdfjs-next-button-label = Next\npdfjs-page-input =\n .title = Page\npdfjs-of-pages = of { $pagesCount }\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n .title = Zoom\npdfjs-presentation-mode-button =\n .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n .title = Print\npdfjs-print-button-label = Print\npdfjs-save-button =\n .title = Save\npdfjs-save-button-label = Save\npdfjs-download-button =\n .title = Download\npdfjs-download-button-label = Download\npdfjs-bookmark-button =\n .title = Current Page (View URL from Current Page)\npdfjs-bookmark-button-label = Current Page\npdfjs-tools-button =\n .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n .title = Rotate Counterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\npdfjs-cursor-text-select-tool-button =\n .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-page-button =\n .title = Use Page Scrolling\npdfjs-scroll-page-button-label = Page Scrolling\npdfjs-scroll-vertical-button =\n .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\npdfjs-document-properties-button =\n .title = Document Properties\u2026\npdfjs-document-properties-button-label = Document Properties\u2026\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\npdfjs-document-properties-size-kb = { NUMBER($kb, maximumSignificantDigits: 3) } KB ({ $b } bytes)\npdfjs-document-properties-size-mb = { NUMBER($mb, maximumSignificantDigits: 3) } MB ({ $b } bytes)\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\npdfjs-document-properties-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\npdfjs-document-properties-page-size-dimension-string = { $width } \xD7 { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } \xD7 { $height } { $unit } ({ $name }, { $orientation })\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\npdfjs-print-progress-message = Preparing document for printing\u2026\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\npdfjs-current-outline-item-button =\n .title = Find Current Outline Item\npdfjs-current-outline-item-button-label = Current Outline Item\npdfjs-findbar-button =\n .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Additional Layers\npdfjs-thumb-page-title1 =\n .title = Page { $page } of { $total }\npdfjs-thumb-page-canvas =\n .aria-label = Thumbnail of Page { $page }\npdfjs-thumb-page-checkbox1 =\n .title = Select page { $page }\npdfjs-find-input =\n .title = Find\n .placeholder = Find in document\u2026\npdfjs-find-previous-button =\n .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight All\npdfjs-find-match-case-checkbox-label = Match Case\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\npdfjs-find-entire-word-checkbox-label = Whole Words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\npdfjs-find-match-count =\n { $total ->\n [one] { $current } of { $total } match\n *[other] { $current } of { $total } matches\n }\npdfjs-find-match-count-limit =\n { $limit ->\n [one] More than { $limit } match\n *[other] More than { $limit } matches\n }\npdfjs-find-not-found = Phrase not found\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\npdfjs-page-scale-percent = { $scale }%\npdfjs-page-landmark =\n .aria-label = Page { $page }\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\npdfjs-annotation-date-time-string = { DATETIME($dateObj, dateStyle: \"short\", timeStyle: \"medium\") }\npdfjs-text-annotation-type =\n .alt = [{ $type } Annotation]\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\npdfjs-editor-free-text-button =\n .title = Text\npdfjs-editor-color-picker-free-text-input =\n .title = Change text color\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n .title = Draw\npdfjs-editor-color-picker-ink-input =\n .title = Change drawing color\npdfjs-editor-ink-button-label = Draw\npdfjs-editor-stamp-button =\n .title = Add or edit images\npdfjs-editor-stamp-button-label = Add or edit images\npdfjs-editor-highlight-button =\n .title = Highlight\npdfjs-editor-highlight-button-label = Highlight\npdfjs-highlight-floating-button1 =\n .title = Highlight\n .aria-label = Highlight\npdfjs-highlight-floating-button-label = Highlight\npdfjs-comment-floating-button =\n .title = Comment\n .aria-label = Comment\npdfjs-comment-floating-button-label = Comment\npdfjs-editor-comment-button =\n .title = Comment\n .aria-label = Comment\npdfjs-editor-comment-button-label = Comment\npdfjs-editor-signature-button =\n .title = Add signature\npdfjs-editor-signature-button-label = Add signature\npdfjs-editor-highlight-editor =\n .aria-label = Highlight editor\npdfjs-editor-ink-editor =\n .aria-label = Drawing editor\npdfjs-editor-signature-editor1 =\n .aria-description = Signature editor: { $description }\npdfjs-editor-stamp-editor =\n .aria-label = Image editor\npdfjs-editor-remove-ink-button =\n .title = Remove drawing\npdfjs-editor-remove-freetext-button =\n .title = Remove text\npdfjs-editor-remove-stamp-button =\n .title = Remove image\npdfjs-editor-remove-highlight-button =\n .title = Remove highlight\npdfjs-editor-remove-signature-button =\n .title = Remove signature\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Size\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Thickness\npdfjs-editor-ink-opacity-input = Opacity\npdfjs-editor-stamp-add-image-button =\n .title = Add image\npdfjs-editor-stamp-add-image-button-label = Add image\npdfjs-editor-free-highlight-thickness-input = Thickness\npdfjs-editor-free-highlight-thickness-title =\n .title = Change thickness when highlighting items other than text\npdfjs-editor-add-signature-container =\n .aria-label = Signature controls and saved signatures\npdfjs-editor-signature-add-signature-button =\n .title = Add new signature\npdfjs-editor-signature-add-signature-button-label = Add new signature\npdfjs-editor-add-saved-signature-button =\n .title = Saved signature: { $description }\npdfjs-free-text2 =\n .aria-label = Text Editor\n .default-content = Start typing\u2026\npdfjs-editor-comments-sidebar-title =\n { $count ->\n [one] Comment\n *[other] Comments\n }\npdfjs-editor-comments-sidebar-close-button =\n .title = Close the sidebar\n .aria-label = Close the sidebar\npdfjs-editor-comments-sidebar-close-button-label = Close the sidebar\npdfjs-editor-comments-sidebar-no-comments1 = See something noteworthy? Highlight it and leave a comment.\npdfjs-editor-comments-sidebar-no-comments-link = Learn more\npdfjs-editor-alt-text-button =\n .aria-label = Alt text\npdfjs-editor-alt-text-button-label = Alt text\npdfjs-editor-alt-text-edit-button =\n .aria-label = Edit alt text\npdfjs-editor-alt-text-dialog-label = Choose an option\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can\u2019t see the image or when it doesn\u2019t load.\npdfjs-editor-alt-text-add-description-label = Add a description\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\npdfjs-editor-alt-text-cancel-button = Cancel\npdfjs-editor-alt-text-save-button = Save\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\npdfjs-editor-alt-text-textarea =\n .placeholder = For example, \u201CA young man sits down at a table to eat a meal\u201D\npdfjs-editor-resizer-top-left =\n .aria-label = Top left corner \u2014 resize\npdfjs-editor-resizer-top-middle =\n .aria-label = Top middle \u2014 resize\npdfjs-editor-resizer-top-right =\n .aria-label = Top right corner \u2014 resize\npdfjs-editor-resizer-middle-right =\n .aria-label = Middle right \u2014 resize\npdfjs-editor-resizer-bottom-right =\n .aria-label = Bottom right corner \u2014 resize\npdfjs-editor-resizer-bottom-middle =\n .aria-label = Bottom middle \u2014 resize\npdfjs-editor-resizer-bottom-left =\n .aria-label = Bottom left corner \u2014 resize\npdfjs-editor-resizer-middle-left =\n .aria-label = Middle left \u2014 resize\npdfjs-editor-highlight-colorpicker-label = Highlight color\npdfjs-editor-colorpicker-button =\n .title = Change color\npdfjs-editor-colorpicker-dropdown =\n .aria-label = Color choices\npdfjs-editor-colorpicker-yellow =\n .title = Yellow\npdfjs-editor-colorpicker-green =\n .title = Green\npdfjs-editor-colorpicker-blue =\n .title = Blue\npdfjs-editor-colorpicker-pink =\n .title = Pink\npdfjs-editor-colorpicker-red =\n .title = Red\npdfjs-editor-highlight-show-all-button-label = Show all\npdfjs-editor-highlight-show-all-button =\n .title = Show all\npdfjs-editor-new-alt-text-dialog-edit-label = Edit alt text (image description)\npdfjs-editor-new-alt-text-dialog-add-label = Add alt text (image description)\npdfjs-editor-new-alt-text-textarea =\n .placeholder = Write your description here\u2026\npdfjs-editor-new-alt-text-description = Short description for people who can\u2019t see the image or when the image doesn\u2019t load.\npdfjs-editor-new-alt-text-disclaimer1 = This alt text was created automatically and may be inaccurate.\npdfjs-editor-new-alt-text-disclaimer-learn-more-url = Learn more\npdfjs-editor-new-alt-text-create-automatically-button-label = Create alt text automatically\npdfjs-editor-new-alt-text-not-now-button = Not now\npdfjs-editor-new-alt-text-error-title = Couldn\u2019t create alt text automatically\npdfjs-editor-new-alt-text-error-description = Please write your own alt text or try again later.\npdfjs-editor-new-alt-text-error-close-button = Close\npdfjs-editor-new-alt-text-ai-model-downloading-progress = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\n .aria-valuetext = Downloading alt text AI model ({ $downloadedSize } of { $totalSize } MB)\npdfjs-editor-new-alt-text-added-button =\n .aria-label = Alt text added\npdfjs-editor-new-alt-text-added-button-label = Alt text added\npdfjs-editor-new-alt-text-missing-button =\n .aria-label = Missing alt text\npdfjs-editor-new-alt-text-missing-button-label = Missing alt text\npdfjs-editor-new-alt-text-to-review-button =\n .aria-label = Review alt text\npdfjs-editor-new-alt-text-to-review-button-label = Review alt text\npdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer = Created automatically: { $generatedAltText }\npdfjs-image-alt-text-settings-button =\n .title = Image alt text settings\npdfjs-image-alt-text-settings-button-label = Image alt text settings\npdfjs-editor-alt-text-settings-dialog-label = Image alt text settings\npdfjs-editor-alt-text-settings-automatic-title = Automatic alt text\npdfjs-editor-alt-text-settings-create-model-button-label = Create alt text automatically\npdfjs-editor-alt-text-settings-create-model-description = Suggests descriptions to help people who can\u2019t see the image or when the image doesn\u2019t load.\npdfjs-editor-alt-text-settings-editor-title = Alt text editor\npdfjs-editor-alt-text-settings-show-dialog-button-label = Show alt text editor right away when adding an image\npdfjs-editor-alt-text-settings-show-dialog-description = Helps you make sure all your images have alt text.\npdfjs-editor-alt-text-settings-close-button = Close\npdfjs-editor-highlight-added-alert = Highlight added\npdfjs-editor-freetext-added-alert = Text added\npdfjs-editor-ink-added-alert = Drawing added\npdfjs-editor-stamp-added-alert = Image added\npdfjs-editor-signature-added-alert = Signature added\npdfjs-editor-undo-bar-message-highlight = Highlight removed\npdfjs-editor-undo-bar-message-freetext = Text removed\npdfjs-editor-undo-bar-message-ink = Drawing removed\npdfjs-editor-undo-bar-message-stamp = Image removed\npdfjs-editor-undo-bar-message-signature = Signature removed\npdfjs-editor-undo-bar-message-comment = Comment removed\npdfjs-editor-undo-bar-message-multiple =\n { $count ->\n [one] { $count } annotation removed\n *[other] { $count } annotations removed\n }\npdfjs-editor-undo-bar-undo-button =\n .title = Undo\npdfjs-editor-undo-bar-undo-button-label = Undo\npdfjs-editor-undo-bar-close-button =\n .title = Close\npdfjs-editor-undo-bar-close-button-label = Close\npdfjs-editor-add-signature-dialog-label = This modal allows the user to create a signature to add to a PDF document. The user can edit the name (which also serves as the alt text), and optionally save the signature for repeated use.\npdfjs-editor-add-signature-dialog-title = Add a signature\npdfjs-editor-add-signature-type-button = Type\n .title = Type\npdfjs-editor-add-signature-draw-button = Draw\n .title = Draw\npdfjs-editor-add-signature-image-button = Image\n .title = Image\npdfjs-editor-add-signature-type-input =\n .aria-label = Type your signature\n .placeholder = Type your signature\npdfjs-editor-add-signature-draw-placeholder = Draw your signature\npdfjs-editor-add-signature-draw-thickness-range-label = Thickness\npdfjs-editor-add-signature-draw-thickness-range =\n .title = Drawing thickness: { $thickness }\npdfjs-editor-add-signature-image-placeholder = Drag a file here to upload\npdfjs-editor-add-signature-image-browse-link =\n { PLATFORM() ->\n [macos] Or choose image files\n *[other] Or browse image files\n }\npdfjs-editor-add-signature-description-label = Description (alt text)\npdfjs-editor-add-signature-description-input =\n .title = Description (alt text)\npdfjs-editor-add-signature-description-default-when-drawing = Signature\npdfjs-editor-add-signature-clear-button-label = Clear signature\npdfjs-editor-add-signature-clear-button =\n .title = Clear signature\npdfjs-editor-add-signature-save-checkbox = Save signature\npdfjs-editor-add-signature-save-warning-message = You\u2019ve reached the limit of 5 saved signatures. Remove one to save more.\npdfjs-editor-add-signature-image-upload-error-title = Couldn\u2019t upload image\npdfjs-editor-add-signature-image-upload-error-description = Check your network connection or try another image.\npdfjs-editor-add-signature-image-no-data-error-title = Can\u2019t convert this image into a signature\npdfjs-editor-add-signature-image-no-data-error-description = Please try uploading a different image.\npdfjs-editor-add-signature-error-close-button = Close\npdfjs-editor-add-signature-cancel-button = Cancel\npdfjs-editor-add-signature-add-button = Add\npdfjs-editor-delete-signature-button1 =\n .title = Remove saved signature\npdfjs-editor-delete-signature-button-label1 = Remove saved signature\npdfjs-editor-add-signature-edit-button-label = Edit description\npdfjs-editor-edit-signature-dialog-title = Edit description\npdfjs-editor-edit-signature-update-button = Update\npdfjs-show-comment-button =\n .title = Show comment\npdfjs-editor-edit-comment-popup-button-label = Edit comment\npdfjs-editor-edit-comment-popup-button =\n .title = Edit comment\npdfjs-editor-delete-comment-popup-button-label = Remove comment\npdfjs-editor-delete-comment-popup-button =\n .title = Remove comment\npdfjs-editor-edit-comment-dialog-title-when-editing = Edit comment\npdfjs-editor-edit-comment-dialog-save-button-when-editing = Update\npdfjs-editor-edit-comment-dialog-title-when-adding = Add comment\npdfjs-editor-edit-comment-dialog-save-button-when-adding = Add\npdfjs-editor-edit-comment-dialog-text-input =\n .placeholder = Start typing\u2026\npdfjs-editor-edit-comment-dialog-cancel-button = Cancel\npdfjs-editor-add-comment-button =\n .title = Add comment\npdfjs-toggle-views-manager-button1 =\n .title = Manage pages\npdfjs-toggle-views-manager-notification-button =\n .title = Toggle Sidebar (document contains thumbnails/outline/attachments/layers)\npdfjs-toggle-views-manager-button1-label = Manage pages\npdfjs-views-manager-sidebar =\n .aria-label = Sidebar\npdfjs-views-manager-sidebar-resizer =\n .aria-label = Sidebar resizer\npdfjs-views-manager-view-selector-button =\n .title = Views\npdfjs-views-manager-view-selector-button-label = Views\npdfjs-views-manager-pages-title = Pages\npdfjs-views-manager-outlines-title1 = Document outline\n .title = Document outline (double-click to expand/collapse all items)\npdfjs-views-manager-attachments-title = Attachments\npdfjs-views-manager-layers-title1 = Layers\n .title = Layers (double-click to reset all layers to the default state)\npdfjs-views-manager-pages-option-label = Pages\npdfjs-views-manager-outlines-option-label = Document outline\npdfjs-views-manager-attachments-option-label = Attachments\npdfjs-views-manager-layers-option-label = Layers\npdfjs-views-manager-add-file-button =\n .title = Add file\npdfjs-views-manager-add-file-button-label = Add file\npdfjs-views-manager-pages-status-action-label =\n { $count ->\n [one] { $count } selected\n *[other] { $count } selected\n }\npdfjs-views-manager-pages-status-none-action-label = Select pages\npdfjs-views-manager-pages-status-action-button-label = Manage\npdfjs-views-manager-pages-status-copy-button-label = Copy\npdfjs-views-manager-pages-status-cut-button-label = Cut\npdfjs-views-manager-pages-status-delete-button-label = Delete\npdfjs-views-manager-pages-status-export-selected-button-label = Export selected\u2026\npdfjs-views-manager-status-undo-cut-label =\n { $count ->\n [one] 1 page cut\n *[other] { $count } pages cut\n }\npdfjs-views-manager-pages-status-undo-copy-label =\n { $count ->\n [one] 1 page copied\n *[other] { $count } pages copied\n }\npdfjs-views-manager-pages-status-undo-delete-label =\n { $count ->\n [one] 1 page deleted\n *[other] { $count } pages deleted\n }\npdfjs-views-manager-pages-status-waiting-ready-label = Getting your file ready\u2026\npdfjs-views-manager-pages-status-waiting-uploading-label = Uploading file\u2026\npdfjs-views-manager-status-warning-cut-label = Couldn\u2019t cut. Refresh page and try again.\npdfjs-views-manager-status-warning-copy-label = Couldn\u2019t copy. Refresh page and try again.\npdfjs-views-manager-status-warning-delete-label = Couldn\u2019t delete. Refresh page and try again.\npdfjs-views-manager-status-warning-save-label = Couldn\u2019t save. Refresh page and try again.\npdfjs-views-manager-status-undo-button-label = Undo\npdfjs-views-manager-status-done-button-label = Done\npdfjs-views-manager-status-close-button =\n .title = Close\npdfjs-views-manager-status-close-button-label = Close\npdfjs-views-manager-paste-button-label = Paste\npdfjs-views-manager-paste-button-before =\n .title = Paste before the first page\npdfjs-views-manager-paste-button-after =\n .title = Paste after page { $page }\npdfjs-new-badge-content = NEW\npdfjs-views-manager-waiting-for-file = Uploading file\u2026";
+ return createBundle(lang, text);
+ }
+}
+
+;// ./web/pdf_history.js
+
+
+
+
+const HASH_CHANGE_TIMEOUT = 1000;
+const POSITION_UPDATED_THRESHOLD = 50;
+const UPDATE_VIEWAREA_TIMEOUT = 1000;
+function getCurrentHash() {
+ return document.location.hash;
+}
+class PDFHistory {
+ #eventAbortController = null;
+ constructor({
+ linkService,
+ eventBus
+ }) {
+ this.linkService = linkService;
+ this.eventBus = eventBus;
+ this._initialized = false;
+ this._fingerprint = "";
+ this.reset();
+ this.eventBus._on("pagesinit", () => {
+ this._isPagesLoaded = false;
+ this.eventBus._on("pagesloaded", evt => {
+ this._isPagesLoaded = !!evt.pagesCount;
+ }, {
+ once: true
+ });
+ });
+ }
+ initialize({
+ fingerprint,
+ resetHistory = false,
+ updateUrl = false
+ }) {
+ if (!fingerprint || typeof fingerprint !== "string") {
+ console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.');
+ return;
+ }
+ if (this._initialized) {
+ this.reset();
+ }
+ const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint;
+ this._fingerprint = fingerprint;
+ this._updateUrl = updateUrl === true;
+ this._initialized = true;
+ this.#bindEvents();
+ const state = window.history.state;
+ this._popStateInProgress = false;
+ this._blockHashChange = 0;
+ this._currentHash = getCurrentHash();
+ this._numPositionUpdates = 0;
+ this._uid = this._maxUid = 0;
+ this._destination = null;
+ this._position = null;
+ if (!this.#isValidState(state, true) || resetHistory) {
+ const {
+ hash,
+ page,
+ rotation
+ } = this.#parseCurrentHash(true);
+ if (!hash || reInitialized || resetHistory) {
+ this.#pushOrReplaceState(null, true);
+ return;
+ }
+ this.#pushOrReplaceState({
+ hash,
+ page,
+ rotation
+ }, true);
+ return;
+ }
+ const destination = state.destination;
+ this.#updateInternalState(destination, state.uid, true);
+ if (destination.rotation !== undefined) {
+ this._initialRotation = destination.rotation;
+ }
+ if (destination.dest) {
+ this._initialBookmark = JSON.stringify(destination.dest);
+ this._destination.page = null;
+ } else if (destination.hash) {
+ this._initialBookmark = destination.hash;
+ } else if (destination.page) {
+ this._initialBookmark = `page=${destination.page}`;
+ }
+ }
+ reset() {
+ if (this._initialized) {
+ this.#pageHide();
+ this._initialized = false;
+ this.#unbindEvents();
+ }
+ if (this._updateViewareaTimeout) {
+ clearTimeout(this._updateViewareaTimeout);
+ this._updateViewareaTimeout = null;
+ }
+ this._initialBookmark = null;
+ this._initialRotation = null;
+ }
+ push({
+ namedDest = null,
+ explicitDest,
+ pageNumber
+ }) {
+ if (!this._initialized) {
+ return;
+ }
+ if (namedDest && typeof namedDest !== "string") {
+ console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`);
+ return;
+ } else if (!Array.isArray(explicitDest)) {
+ console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`);
+ return;
+ } else if (!this.#isValidPage(pageNumber)) {
+ if (pageNumber !== null || this._destination) {
+ console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`);
+ return;
+ }
+ }
+ const hash = namedDest || JSON.stringify(explicitDest);
+ if (!hash) {
+ return;
+ }
+ let forceReplace = false;
+ if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {
+ if (this._destination.page) {
+ return;
+ }
+ forceReplace = true;
+ }
+ if (this._popStateInProgress && !forceReplace) {
+ return;
+ }
+ this.#pushOrReplaceState({
+ dest: explicitDest,
+ hash,
+ page: pageNumber,
+ rotation: this.linkService.rotation
+ }, forceReplace);
+ if (!this._popStateInProgress) {
+ this._popStateInProgress = true;
+ Promise.resolve().then(() => {
+ this._popStateInProgress = false;
+ });
+ }
+ }
+ pushPage(pageNumber) {
+ if (!this._initialized) {
+ return;
+ }
+ if (!this.#isValidPage(pageNumber)) {
+ console.error(`PDFHistory.pushPage: "${pageNumber}" is not a valid page number.`);
+ return;
+ }
+ if (this._destination?.page === pageNumber) {
+ return;
+ }
+ if (this._popStateInProgress) {
+ return;
+ }
+ this.#pushOrReplaceState({
+ dest: null,
+ hash: `page=${pageNumber}`,
+ page: pageNumber,
+ rotation: this.linkService.rotation
+ });
+ if (!this._popStateInProgress) {
+ this._popStateInProgress = true;
+ Promise.resolve().then(() => {
+ this._popStateInProgress = false;
+ });
+ }
+ }
+ pushCurrentPosition() {
+ if (!this._initialized || this._popStateInProgress) {
+ return;
+ }
+ this.#tryPushCurrentPosition();
+ }
+ back() {
+ if (!this._initialized || this._popStateInProgress) {
+ return;
+ }
+ const state = window.history.state;
+ if (this.#isValidState(state) && state.uid > 0) {
+ window.history.back();
+ }
+ }
+ forward() {
+ if (!this._initialized || this._popStateInProgress) {
+ return;
+ }
+ const state = window.history.state;
+ if (this.#isValidState(state) && state.uid < this._maxUid) {
+ window.history.forward();
+ }
+ }
+ get popStateInProgress() {
+ return this._initialized && (this._popStateInProgress || this._blockHashChange > 0);
+ }
+ get initialBookmark() {
+ return this._initialized ? this._initialBookmark : null;
+ }
+ get initialRotation() {
+ return this._initialized ? this._initialRotation : null;
+ }
+ #pushOrReplaceState(destination, forceReplace = false) {
+ const shouldReplace = forceReplace || !this._destination;
+ const newState = {
+ fingerprint: this._fingerprint,
+ uid: shouldReplace ? this._uid : this._uid + 1,
+ destination
+ };
+ this.#updateInternalState(destination, newState.uid);
+ let newUrl;
+ if (this._updateUrl && destination?.hash) {
+ const {
+ href,
+ protocol
+ } = document.location;
+ if (protocol !== "file:") {
+ newUrl = updateUrlHash(href, destination.hash);
+ }
+ }
+ if (shouldReplace) {
+ window.history.replaceState(newState, "", newUrl);
+ } else {
+ window.history.pushState(newState, "", newUrl);
+ }
+ }
+ #tryPushCurrentPosition(temporary = false) {
+ if (!this._position) {
+ return;
+ }
+ let position = this._position;
+ if (temporary) {
+ position = Object.assign(Object.create(null), this._position);
+ position.temporary = true;
+ }
+ if (!this._destination) {
+ this.#pushOrReplaceState(position);
+ return;
+ }
+ if (this._destination.temporary) {
+ this.#pushOrReplaceState(position, true);
+ return;
+ }
+ if (this._destination.hash === position.hash) {
+ return;
+ }
+ if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {
+ return;
+ }
+ let forceReplace = false;
+ if (this._destination.page >= position.first && this._destination.page <= position.page) {
+ if (this._destination.dest !== undefined || !this._destination.first) {
+ return;
+ }
+ forceReplace = true;
+ }
+ this.#pushOrReplaceState(position, forceReplace);
+ }
+ #isValidPage(val) {
+ return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount;
+ }
+ #isValidState(state, checkReload = false) {
+ if (!state) {
+ return false;
+ }
+ if (state.fingerprint !== this._fingerprint) {
+ if (checkReload) {
+ if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) {
+ return false;
+ }
+ const [perfEntry] = performance.getEntriesByType("navigation");
+ if (perfEntry?.type !== "reload") {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ }
+ if (!Number.isInteger(state.uid) || state.uid < 0) {
+ return false;
+ }
+ if (state.destination === null || typeof state.destination !== "object") {
+ return false;
+ }
+ return true;
+ }
+ #updateInternalState(destination, uid, removeTemporary = false) {
+ if (this._updateViewareaTimeout) {
+ clearTimeout(this._updateViewareaTimeout);
+ this._updateViewareaTimeout = null;
+ }
+ if (removeTemporary && destination?.temporary) {
+ delete destination.temporary;
+ }
+ this._destination = destination;
+ this._uid = uid;
+ this._maxUid = Math.max(this._maxUid, uid);
+ this._numPositionUpdates = 0;
+ }
+ #parseCurrentHash(checkNameddest = false) {
+ const hash = unescape(getCurrentHash()).substring(1);
+ const params = parseQueryString(hash);
+ const nameddest = params.get("nameddest") || "";
+ let page = params.get("page") | 0;
+ if (!this.#isValidPage(page) || checkNameddest && nameddest.length > 0) {
+ page = null;
+ }
+ return {
+ hash,
+ page,
+ rotation: this.linkService.rotation
+ };
+ }
+ #updateViewarea({
+ location
+ }) {
+ if (this._updateViewareaTimeout) {
+ clearTimeout(this._updateViewareaTimeout);
+ this._updateViewareaTimeout = null;
+ }
+ this._position = {
+ hash: location.pdfOpenParams.substring(1),
+ page: this.linkService.page,
+ first: location.pageNumber,
+ rotation: location.rotation
+ };
+ if (this._popStateInProgress) {
+ return;
+ }
+ if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {
+ this._numPositionUpdates++;
+ }
+ if (UPDATE_VIEWAREA_TIMEOUT > 0) {
+ this._updateViewareaTimeout = setTimeout(() => {
+ if (!this._popStateInProgress) {
+ this.#tryPushCurrentPosition(true);
+ }
+ this._updateViewareaTimeout = null;
+ }, UPDATE_VIEWAREA_TIMEOUT);
+ }
+ }
+ #popState({
+ state
+ }) {
+ const newHash = getCurrentHash(),
+ hashChanged = this._currentHash !== newHash;
+ this._currentHash = newHash;
+ if (!state) {
+ this._uid++;
+ const {
+ hash,
+ page,
+ rotation
+ } = this.#parseCurrentHash();
+ this.#pushOrReplaceState({
+ hash,
+ page,
+ rotation
+ }, true);
+ return;
+ }
+ if (!this.#isValidState(state)) {
+ return;
+ }
+ this._popStateInProgress = true;
+ if (hashChanged) {
+ this._blockHashChange++;
+ waitOnEventOrTimeout({
+ target: window,
+ name: "hashchange",
+ delay: HASH_CHANGE_TIMEOUT
+ }).then(() => {
+ this._blockHashChange--;
+ });
+ }
+ const destination = state.destination;
+ this.#updateInternalState(destination, state.uid, true);
+ if (isValidRotation(destination.rotation)) {
+ this.linkService.rotation = destination.rotation;
+ }
+ if (destination.dest) {
+ this.linkService.goToDestination(destination.dest);
+ } else if (destination.hash) {
+ this.linkService.setHash(destination.hash);
+ } else if (destination.page) {
+ this.linkService.page = destination.page;
+ }
+ Promise.resolve().then(() => {
+ this._popStateInProgress = false;
+ });
+ }
+ #pageHide() {
+ if (!this._destination || this._destination.temporary) {
+ this.#tryPushCurrentPosition();
+ }
+ }
+ #bindEvents() {
+ if (this.#eventAbortController) {
+ return;
+ }
+ this.#eventAbortController = new AbortController();
+ const {
+ signal
+ } = this.#eventAbortController;
+ this.eventBus._on("updateviewarea", this.#updateViewarea.bind(this), {
+ signal
+ });
+ window.addEventListener("popstate", this.#popState.bind(this), {
+ signal
+ });
+ window.addEventListener("pagehide", this.#pageHide.bind(this), {
+ signal
+ });
+ }
+ #unbindEvents() {
+ this.#eventAbortController?.abort();
+ this.#eventAbortController = null;
+ }
+}
+function isDestHashesEqual(destHash, pushHash) {
+ if (typeof destHash !== "string" || typeof pushHash !== "string") {
+ return false;
+ }
+ if (destHash === pushHash) {
+ return true;
+ }
+ const nameddest = parseQueryString(destHash).get("nameddest");
+ if (nameddest === pushHash) {
+ return true;
+ }
+ return false;
+}
+function isDestArraysEqual(firstDest, secondDest) {
+ function isEntryEqual(first, second) {
+ if (typeof first !== typeof second) {
+ return false;
+ }
+ if (Array.isArray(first) || Array.isArray(second)) {
+ return false;
+ }
+ if (first !== null && typeof first === "object" && second !== null) {
+ if (Object.keys(first).length !== Object.keys(second).length) {
+ return false;
+ }
+ for (const key in first) {
+ if (!isEntryEqual(first[key], second[key])) {
+ return false;
+ }
+ }
+ return true;
+ }
+ return first === second || Number.isNaN(first) && Number.isNaN(second);
+ }
+ if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {
+ return false;
+ }
+ if (firstDest.length !== secondDest.length) {
+ return false;
+ }
+ for (let i = 0, ii = firstDest.length; i < ii; i++) {
+ if (!isEntryEqual(firstDest[i], secondDest[i])) {
+ return false;
+ }
+ }
+ return true;
+}
+
+;// ./web/annotation_editor_layer_builder.js
+
+
+class AnnotationEditorLayerBuilder {
+ #annotationLayer = null;
+ #drawLayer = null;
+ #onAppend = null;
+ #structTreeLayer = null;
+ #textLayer = null;
+ #uiManager;
+ constructor(options) {
+ this.pageIndex = options.pageIndex;
+ this.accessibilityManager = options.accessibilityManager;
+ this.l10n = options.l10n;
+ this.l10n ||= new genericl10n_GenericL10n();
+ this.annotationEditorLayer = null;
+ this.div = null;
+ this._cancelled = false;
+ this.#uiManager = options.uiManager;
+ this.#annotationLayer = options.annotationLayer || null;
+ this.#textLayer = options.textLayer || null;
+ this.#drawLayer = options.drawLayer || null;
+ this.#onAppend = options.onAppend || null;
+ this.#structTreeLayer = options.structTreeLayer || null;
+ }
+ updatePageIndex(newPageIndex) {
+ this.pageIndex = newPageIndex;
+ this.annotationEditorLayer?.updatePageIndex(newPageIndex);
+ }
+ async render({
+ viewport,
+ intent = "display"
+ }) {
+ if (intent !== "display") {
+ return;
+ }
+ if (this._cancelled) {
+ return;
+ }
+ const clonedViewport = viewport.clone({
+ dontFlip: true
+ });
+ if (this.div) {
+ this.annotationEditorLayer.update({
+ viewport: clonedViewport
+ });
+ this.show();
+ return;
+ }
+ const div = this.div = document.createElement("div");
+ div.className = "annotationEditorLayer";
+ div.hidden = true;
+ div.dir = this.#uiManager.direction;
+ this.#onAppend?.(div);
+ this.annotationEditorLayer = new AnnotationEditorLayer({
+ uiManager: this.#uiManager,
+ div,
+ structTreeLayer: this.#structTreeLayer,
+ accessibilityManager: this.accessibilityManager,
+ pageIndex: this.pageIndex,
+ l10n: this.l10n,
+ viewport: clonedViewport,
+ annotationLayer: this.#annotationLayer,
+ textLayer: this.#textLayer,
+ drawLayer: this.#drawLayer
+ });
+ const parameters = {
+ viewport: clonedViewport,
+ div,
+ annotations: null,
+ intent
+ };
+ await this.annotationEditorLayer.render(parameters);
+ this.show();
+ }
+ cancel() {
+ this._cancelled = true;
+ if (!this.div) {
+ return;
+ }
+ this.annotationEditorLayer.destroy();
+ }
+ hide() {
+ if (!this.div) {
+ return;
+ }
+ this.annotationEditorLayer.pause(true);
+ this.div.hidden = true;
+ }
+ show() {
+ if (!this.div || this.annotationEditorLayer.isInvisible) {
+ return;
+ }
+ this.div.hidden = false;
+ this.annotationEditorLayer.pause(false);
+ }
+}
+
+;// ./web/app_options.js
+
+
+{
+ var compatParams = new Map();
+ const {
+ maxTouchPoints,
+ platform,
+ userAgent
+ } = navigator;
+ const isAndroid = /Android/.test(userAgent);
+ const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1;
+ if (isIOS || isAndroid) {
+ compatParams.set("maxCanvasPixels", 5242880);
+ }
+ if (isAndroid) {
+ compatParams.set("useSystemFonts", false);
+ }
+}
+const OptionKind = {
+ BROWSER: 0x01,
+ VIEWER: 0x02,
+ API: 0x04,
+ WORKER: 0x08,
+ EVENT_DISPATCH: 0x10,
+ PREFERENCE: 0x80
+};
+const Type = {
+ BOOLEAN: 0x01,
+ NUMBER: 0x02,
+ OBJECT: 0x04,
+ STRING: 0x08,
+ UNDEFINED: 0x10
+};
+const defaultOptions = {
+ allowedGlobalEvents: {
+ value: null,
+ kind: OptionKind.BROWSER
+ },
+ canvasMaxAreaInBytes: {
+ value: -1,
+ kind: OptionKind.BROWSER + OptionKind.API
+ },
+ isInAutomation: {
+ value: false,
+ kind: OptionKind.BROWSER
+ },
+ localeProperties: {
+ value: {
+ lang: navigator.language || "en-US"
+ },
+ kind: OptionKind.BROWSER
+ },
+ maxCanvasDim: {
+ value: 32767,
+ kind: OptionKind.BROWSER + OptionKind.VIEWER
+ },
+ nimbusDataStr: {
+ value: "",
+ kind: OptionKind.BROWSER
+ },
+ supportsCaretBrowsingMode: {
+ value: false,
+ kind: OptionKind.BROWSER
+ },
+ supportsDocumentFonts: {
+ value: true,
+ kind: OptionKind.BROWSER
+ },
+ supportsIntegratedFind: {
+ value: false,
+ kind: OptionKind.BROWSER
+ },
+ supportsMouseWheelZoomCtrlKey: {
+ value: true,
+ kind: OptionKind.BROWSER
+ },
+ supportsMouseWheelZoomMetaKey: {
+ value: true,
+ kind: OptionKind.BROWSER
+ },
+ supportsPinchToZoom: {
+ value: true,
+ kind: OptionKind.BROWSER
+ },
+ supportsPrinting: {
+ value: true,
+ kind: OptionKind.BROWSER
+ },
+ toolbarDensity: {
+ value: 0,
+ kind: OptionKind.BROWSER + OptionKind.EVENT_DISPATCH
+ },
+ altTextLearnMoreUrl: {
+ value: "",
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ annotationEditorMode: {
+ value: 0,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ annotationMode: {
+ value: 2,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ capCanvasAreaFactor: {
+ value: 200,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ commentLearnMoreUrl: {
+ value: "",
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ cursorToolOnLoad: {
+ value: 0,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ debuggerSrc: {
+ value: "./debugger.mjs",
+ kind: OptionKind.VIEWER
+ },
+ defaultZoomDelay: {
+ value: 400,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ defaultZoomValue: {
+ value: "",
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ disableHistory: {
+ value: false,
+ kind: OptionKind.VIEWER
+ },
+ disablePageLabels: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableAltText: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableAltTextModelDownload: {
+ value: true,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE + OptionKind.EVENT_DISPATCH
+ },
+ enableAutoLinking: {
+ value: true,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableComment: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableDetailCanvas: {
+ value: true,
+ kind: OptionKind.VIEWER
+ },
+ enableGuessAltText: {
+ value: true,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE + OptionKind.EVENT_DISPATCH
+ },
+ enableHighlightFloatingButton: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableMerge: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableNewAltTextWhenAddingImage: {
+ value: true,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableNewBadge: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableOptimizedPartialRendering: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enablePermissions: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enablePrintAutoRotate: {
+ value: true,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableScripting: {
+ value: true,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableSignatureEditor: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableSplitMerge: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ enableUpdatedAddImage: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ externalLinkRel: {
+ value: "noopener noreferrer nofollow",
+ kind: OptionKind.VIEWER
+ },
+ externalLinkTarget: {
+ value: 0,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ highlightEditorColors: {
+ value: "yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F," + "yellow_HCM=#FFFFCC,green_HCM=#53FFBC,blue_HCM=#80EBFF,pink_HCM=#F6B8FF,red_HCM=#C50043",
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ historyUpdateUrl: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ ignoreDestinationZoom: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ imageResourcesPath: {
+ value: "./images/",
+ kind: OptionKind.VIEWER
+ },
+ imagesRightClickMinSize: {
+ value: -1,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ maxCanvasPixels: {
+ value: 2 ** 25,
+ kind: OptionKind.VIEWER
+ },
+ minDurationToUpdateCanvas: {
+ value: 500,
+ kind: OptionKind.VIEWER
+ },
+ forcePageColors: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ pageColorsBackground: {
+ value: "Canvas",
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ pageColorsForeground: {
+ value: "CanvasText",
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ pdfBugEnabled: {
+ value: false,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ printResolution: {
+ value: 150,
+ kind: OptionKind.VIEWER
+ },
+ sidebarViewOnLoad: {
+ value: -1,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ scrollModeOnLoad: {
+ value: -1,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ spreadModeOnLoad: {
+ value: -1,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ textLayerMode: {
+ value: 1,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ viewerCssTheme: {
+ value: 0,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ viewOnLoad: {
+ value: 0,
+ kind: OptionKind.VIEWER + OptionKind.PREFERENCE
+ },
+ cMapPacked: {
+ value: true,
+ kind: OptionKind.API
+ },
+ cMapUrl: {
+ value: "../web/cmaps/",
+ kind: OptionKind.API
+ },
+ disableAutoFetch: {
+ value: false,
+ kind: OptionKind.API + OptionKind.PREFERENCE
+ },
+ disableFontFace: {
+ value: false,
+ kind: OptionKind.API + OptionKind.PREFERENCE
+ },
+ disableRange: {
+ value: false,
+ kind: OptionKind.API + OptionKind.PREFERENCE
+ },
+ disableStream: {
+ value: false,
+ kind: OptionKind.API + OptionKind.PREFERENCE
+ },
+ docBaseUrl: {
+ value: "",
+ kind: OptionKind.API
+ },
+ enableHWA: {
+ value: true,
+ kind: OptionKind.API + OptionKind.PREFERENCE
+ },
+ enableWebGPU: {
+ value: true,
+ kind: OptionKind.API + OptionKind.PREFERENCE
+ },
+ enableXfa: {
+ value: true,
+ kind: OptionKind.API + OptionKind.PREFERENCE
+ },
+ fontExtraProperties: {
+ value: false,
+ kind: OptionKind.API
+ },
+ iccUrl: {
+ value: "../web/iccs/",
+ kind: OptionKind.API
+ },
+ isOffscreenCanvasSupported: {
+ value: true,
+ kind: OptionKind.API
+ },
+ maxImageSize: {
+ value: -1,
+ kind: OptionKind.API
+ },
+ pdfBug: {
+ value: false,
+ kind: OptionKind.API
+ },
+ standardFontDataUrl: {
+ value: "../web/standard_fonts/",
+ kind: OptionKind.API
+ },
+ useSystemFonts: {
+ value: undefined,
+ kind: OptionKind.API,
+ type: Type.BOOLEAN + Type.UNDEFINED
+ },
+ verbosity: {
+ value: 1,
+ kind: OptionKind.API
+ },
+ wasmUrl: {
+ value: "../web/wasm/",
+ kind: OptionKind.API
+ },
+ workerPort: {
+ value: null,
+ kind: OptionKind.WORKER
+ },
+ workerSrc: {
+ value: "../build/pdf.worker.mjs",
+ kind: OptionKind.WORKER
+ }
+};
+{
+ defaultOptions.defaultUrl = {
+ value: "compressed.tracemonkey-pldi-09.pdf",
+ kind: OptionKind.VIEWER
+ };
+ defaultOptions.sandboxBundleSrc = {
+ value: "../build/pdf.sandbox.mjs",
+ kind: OptionKind.VIEWER
+ };
+ defaultOptions.enableFakeMLManager = {
+ value: true,
+ kind: OptionKind.VIEWER
+ };
+}
+{
+ defaultOptions.disablePreferences = {
+ value: false,
+ kind: OptionKind.VIEWER
+ };
+}
+class AppOptions {
+ static eventBus;
+ static #opts = new Map();
+ static {
+ for (const name in defaultOptions) {
+ this.#opts.set(name, defaultOptions[name].value);
+ }
+ for (const [name, value] of compatParams) {
+ this.#opts.set(name, value);
+ }
+ this._hasInvokedSet = false;
+ this._checkDisablePreferences = () => {
+ if (this.get("disablePreferences")) {
+ return true;
+ }
+ if (this._hasInvokedSet) {
+ console.warn("The Preferences may override manually set AppOptions; " + 'please use the "disablePreferences"-option to prevent that.');
+ }
+ return false;
+ };
+ }
+ static get(name) {
+ return this.#opts.get(name);
+ }
+ static getAll(kind = null, defaultOnly = false) {
+ const options = Object.create(null);
+ for (const name in defaultOptions) {
+ const defaultOpt = defaultOptions[name];
+ if (kind && !(kind & defaultOpt.kind)) {
+ continue;
+ }
+ options[name] = !defaultOnly ? this.#opts.get(name) : defaultOpt.value;
+ }
+ return options;
+ }
+ static set(name, value) {
+ this.setAll({
+ [name]: value
+ });
+ }
+ static setAll(options, prefs = false) {
+ this._hasInvokedSet ||= true;
+ let events;
+ for (const name in options) {
+ const defaultOpt = defaultOptions[name],
+ userOpt = options[name];
+ if (!defaultOpt || !(typeof userOpt === typeof defaultOpt.value || Type[(typeof userOpt).toUpperCase()] & defaultOpt.type)) {
+ continue;
+ }
+ const {
+ kind
+ } = defaultOpt;
+ if (prefs && !(kind & OptionKind.BROWSER || kind & OptionKind.PREFERENCE)) {
+ continue;
+ }
+ if (this.eventBus && kind & OptionKind.EVENT_DISPATCH) {
+ (events ||= new Map()).set(name, userOpt);
+ }
+ this.#opts.set(name, userOpt);
+ }
+ if (events) {
+ for (const [name, value] of events) {
+ this.eventBus.dispatch(name.toLowerCase(), {
+ source: this,
+ value
+ });
+ }
+ }
+ }
+}
+
+;// ./web/autolinker.js
+
+
+
+
+
+
+function DOMRectToPDF({
+ width,
+ height,
+ left,
+ top
+}, pdfPageView) {
+ if (width === 0 || height === 0) {
+ return null;
+ }
+ const pageBox = pdfPageView.textLayer.div.getBoundingClientRect();
+ const bottomLeft = pdfPageView.getPagePoint(left - pageBox.left, top - pageBox.top);
+ const topRight = pdfPageView.getPagePoint(left - pageBox.left + width, top - pageBox.top + height);
+ return Util.normalizeRect([bottomLeft[0], bottomLeft[1], topRight[0], topRight[1]]);
+}
+function calculateLinkPosition(range, pdfPageView) {
+ const rangeRects = range.getClientRects();
+ if (rangeRects.length === 1) {
+ return {
+ rect: DOMRectToPDF(rangeRects[0], pdfPageView)
+ };
+ }
+ const rect = [Infinity, Infinity, -Infinity, -Infinity];
+ const quadPoints = [];
+ let i = 0;
+ for (const domRect of rangeRects) {
+ const normalized = DOMRectToPDF(domRect, pdfPageView);
+ if (normalized === null) {
+ continue;
+ }
+ quadPoints[i] = quadPoints[i + 4] = normalized[0];
+ quadPoints[i + 1] = quadPoints[i + 3] = normalized[3];
+ quadPoints[i + 2] = quadPoints[i + 6] = normalized[2];
+ quadPoints[i + 5] = quadPoints[i + 7] = normalized[1];
+ Util.rectBoundingBox(...normalized, rect);
+ i += 8;
+ }
+ return {
+ quadPoints,
+ rect
+ };
+}
+function textPosition(container, offset) {
+ let currentContainer = container;
+ do {
+ if (currentContainer.nodeType === Node.TEXT_NODE) {
+ const currentLength = currentContainer.textContent.length;
+ if (offset <= currentLength) {
+ return [currentContainer, offset];
+ }
+ offset -= currentLength;
+ } else if (currentContainer.firstChild) {
+ currentContainer = currentContainer.firstChild;
+ continue;
+ }
+ while (!currentContainer.nextSibling && currentContainer !== container) {
+ currentContainer = currentContainer.parentNode;
+ }
+ if (currentContainer !== container) {
+ currentContainer = currentContainer.nextSibling;
+ }
+ } while (currentContainer !== container);
+ throw new Error("Offset is bigger than container's contents length.");
+}
+function createLinkAnnotation({
+ url,
+ index,
+ length
+}, pdfPageView, id) {
+ const highlighter = pdfPageView._textHighlighter;
+ const [{
+ begin,
+ end
+ }] = highlighter._convertMatches([index], [length]);
+ const range = new Range();
+ range.setStart(...textPosition(highlighter.textDivs[begin.divIdx], begin.offset));
+ range.setEnd(...textPosition(highlighter.textDivs[end.divIdx], end.offset));
+ return {
+ id: `inferred_link_${id}`,
+ unsafeUrl: url,
+ url,
+ annotationType: AnnotationType.LINK,
+ rotation: 0,
+ ...calculateLinkPosition(range, pdfPageView),
+ borderStyle: null
+ };
+}
+class Autolinker {
+ static #index = 0;
+ static #regex;
+ static #numericTLDRegex;
+ static findLinks(text) {
+ this.#regex ??= /\b(?:https?:\/\/|mailto:|www\.)(?:[\0-\x08\x0E-\x1F\$\+0-9=A-Z\^`-z\|~-\x9F\xA2-\xA6\xA8-\xAA\xAC-\xB5\xB8-\xBA\xBC-\xBE\xC0-\u037D\u037F-\u0386\u0388-\u0559\u0560-\u0588\u058B-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7-\u05F2\u05F5-\u0608\u060B\u060E-\u061A\u061C\u0620-\u0669\u066E-\u06D3\u06D5-\u06FF\u070E-\u07F6\u07FA-\u082F\u083F-\u085D\u085F-\u0963\u0966-\u096F\u0971-\u09FC\u09FE-\u0A75\u0A77-\u0AEF\u0AF1-\u0C76\u0C78-\u0C83\u0C85-\u0DF3\u0DF5-\u0E4E\u0E50-\u0E59\u0E5C-\u0F03\u0F13\u0F15-\u0F39\u0F3E-\u0F84\u0F86-\u0FCF\u0FD5-\u0FD8\u0FDB-\u1049\u1050-\u10FA\u10FC-\u135F\u1369-\u13FF\u1401-\u166D\u166F-\u167F\u1681-\u169A\u169D-\u16EA\u16EE-\u1734\u1737-\u17D3\u17D7\u17DB-\u17FF\u180B-\u1943\u1946-\u1A1D\u1A20-\u1A9F\u1AA7\u1AAE-\u1B4D\u1B50-\u1B59\u1B61-\u1B7C\u1B80-\u1BFB\u1C00-\u1C3A\u1C40-\u1C7D\u1C80-\u1CBF\u1CC8-\u1CD2\u1CD4-\u1FFF\u200B-\u200F\u202A-\u202E\u2044\u2052\u2060-\u207C\u207F-\u208C\u208F-\u2307\u230C-\u2328\u232B-\u2767\u2776-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2CF8\u2CFD\u2D00-\u2D6F\u2D71-\u2DFF\u2E2F\u2E50\u2E51\u2E5E-\u2FFF\u3004-\u3007\u3012\u3013\u3020-\u302F\u3031-\u303C\u303E-\u309F\u30A1-\u30FA\u30FC-\uA4FD\uA500-\uA60C\uA610-\uA672\uA674-\uA67D\uA67F-\uA6F1\uA6F8-\uA873\uA878-\uA8CD\uA8D0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA95E\uA960-\uA9C0\uA9CE-\uA9DD\uA9E0-\uAA5B\uAA60-\uAADD\uAAE0-\uAAEF\uAAF2-\uABEA\uABEC-\uFD3D\uFD40-\uFE0F\uFE1A-\uFE2F\uFE53\uFE62\uFE64-\uFE67\uFE69\uFE6C-\uFEFE\uFF00\uFF04\uFF0B\uFF10-\uFF19\uFF1C-\uFF1E\uFF21-\uFF3A\uFF3E\uFF40-\uFF5A\uFF5C\uFF5E\uFF66-\u{100FF}\u{10103}-\u{1039E}\u{103A0}-\u{103CF}\u{103D1}-\u{1056E}\u{10570}-\u{10856}\u{10858}-\u{1091E}\u{10920}-\u{1093E}\u{10940}-\u{10A4F}\u{10A59}-\u{10A7E}\u{10A80}-\u{10AEF}\u{10AF7}-\u{10B38}\u{10B40}-\u{10B98}\u{10B9D}-\u{10D6D}\u{10D6F}-\u{10EAC}\u{10EAE}-\u{10ECF}\u{10ED1}-\u{10F54}\u{10F5A}-\u{10F85}\u{10F8A}-\u{11046}\u{1104E}-\u{110BA}\u{110BD}\u{110C2}-\u{1113F}\u{11144}-\u{11173}\u{11176}-\u{111C4}\u{111C9}-\u{111CC}\u{111CE}-\u{111DA}\u{111DC}\u{111E0}-\u{11237}\u{1123E}-\u{112A8}\u{112AA}-\u{113D3}\u{113D6}\u{113D9}-\u{1144A}\u{11450}-\u{11459}\u{1145C}\u{1145E}-\u{114C5}\u{114C7}-\u{115C0}\u{115D8}-\u{11640}\u{11644}-\u{1165F}\u{1166D}-\u{116B8}\u{116BA}-\u{1173B}\u{1173F}-\u{1183A}\u{1183C}-\u{11943}\u{11947}-\u{119E1}\u{119E3}-\u{11A3E}\u{11A47}-\u{11A99}\u{11A9D}\u{11AA3}-\u{11AFF}\u{11B0A}-\u{11BE0}\u{11BE2}-\u{11C40}\u{11C46}-\u{11C6F}\u{11C72}-\u{11EF6}\u{11EF9}-\u{11F42}\u{11F50}-\u{11FFE}\u{12000}-\u{1246F}\u{12475}-\u{12FF0}\u{12FF3}-\u{16A6D}\u{16A70}-\u{16AF4}\u{16AF6}-\u{16B36}\u{16B3C}-\u{16B43}\u{16B45}-\u{16D6C}\u{16D70}-\u{16E96}\u{16E9B}-\u{16FE1}\u{16FE3}-\u{1BC9E}\u{1BCA0}-\u{1DA86}\u{1DA8C}-\u{1E5FE}\u{1E600}-\u{1E95D}\u{1E960}-\u{10FFFF}]|\/|[\0-\x08\x0E-\x1F!-Z\\\^-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uFEFE\uFF00-\u{10FFFF}]+[\0-\x08\x0E-\x1F\$\+0-9=A-Z\^`-z\|~-\x9F\xA2-\xA6\xA8-\xAA\xAC-\xB5\xB8-\xBA\xBC-\xBE\xC0-\u037D\u037F-\u0386\u0388-\u0559\u0560-\u0588\u058B-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7-\u05F2\u05F5-\u0608\u060B\u060E-\u061A\u061C\u0620-\u0669\u066E-\u06D3\u06D5-\u06FF\u070E-\u07F6\u07FA-\u082F\u083F-\u085D\u085F-\u0963\u0966-\u096F\u0971-\u09FC\u09FE-\u0A75\u0A77-\u0AEF\u0AF1-\u0C76\u0C78-\u0C83\u0C85-\u0DF3\u0DF5-\u0E4E\u0E50-\u0E59\u0E5C-\u0F03\u0F13\u0F15-\u0F39\u0F3E-\u0F84\u0F86-\u0FCF\u0FD5-\u0FD8\u0FDB-\u1049\u1050-\u10FA\u10FC-\u135F\u1369-\u13FF\u1401-\u166D\u166F-\u167F\u1681-\u169A\u169D-\u16EA\u16EE-\u1734\u1737-\u17D3\u17D7\u17DB-\u17FF\u180B-\u1943\u1946-\u1A1D\u1A20-\u1A9F\u1AA7\u1AAE-\u1B4D\u1B50-\u1B59\u1B61-\u1B7C\u1B80-\u1BFB\u1C00-\u1C3A\u1C40-\u1C7D\u1C80-\u1CBF\u1CC8-\u1CD2\u1CD4-\u1FFF\u200B-\u200F\u202A-\u202E\u2044\u2052\u2060-\u207C\u207F-\u208C\u208F-\u2307\u230C-\u2328\u232B-\u2767\u2776-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2CF8\u2CFD\u2D00-\u2D6F\u2D71-\u2DFF\u2E2F\u2E50\u2E51\u2E5E-\u2FFF\u3004-\u3007\u3012\u3013\u3020-\u302F\u3031-\u303C\u303E-\u309F\u30A1-\u30FA\u30FC-\uA4FD\uA500-\uA60C\uA610-\uA672\uA674-\uA67D\uA67F-\uA6F1\uA6F8-\uA873\uA878-\uA8CD\uA8D0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA95E\uA960-\uA9C0\uA9CE-\uA9DD\uA9E0-\uAA5B\uAA60-\uAADD\uAAE0-\uAAEF\uAAF2-\uABEA\uABEC-\uFD3D\uFD40-\uFE0F\uFE1A-\uFE2F\uFE53\uFE62\uFE64-\uFE67\uFE69\uFE6C-\uFEFE\uFF00\uFF04\uFF0B\uFF10-\uFF19\uFF1C-\uFF1E\uFF21-\uFF3A\uFF3E\uFF40-\uFF5A\uFF5C\uFF5E\uFF66-\u{100FF}\u{10103}-\u{1039E}\u{103A0}-\u{103CF}\u{103D1}-\u{1056E}\u{10570}-\u{10856}\u{10858}-\u{1091E}\u{10920}-\u{1093E}\u{10940}-\u{10A4F}\u{10A59}-\u{10A7E}\u{10A80}-\u{10AEF}\u{10AF7}-\u{10B38}\u{10B40}-\u{10B98}\u{10B9D}-\u{10D6D}\u{10D6F}-\u{10EAC}\u{10EAE}-\u{10ECF}\u{10ED1}-\u{10F54}\u{10F5A}-\u{10F85}\u{10F8A}-\u{11046}\u{1104E}-\u{110BA}\u{110BD}\u{110C2}-\u{1113F}\u{11144}-\u{11173}\u{11176}-\u{111C4}\u{111C9}-\u{111CC}\u{111CE}-\u{111DA}\u{111DC}\u{111E0}-\u{11237}\u{1123E}-\u{112A8}\u{112AA}-\u{113D3}\u{113D6}\u{113D9}-\u{1144A}\u{11450}-\u{11459}\u{1145C}\u{1145E}-\u{114C5}\u{114C7}-\u{115C0}\u{115D8}-\u{11640}\u{11644}-\u{1165F}\u{1166D}-\u{116B8}\u{116BA}-\u{1173B}\u{1173F}-\u{1183A}\u{1183C}-\u{11943}\u{11947}-\u{119E1}\u{119E3}-\u{11A3E}\u{11A47}-\u{11A99}\u{11A9D}\u{11AA3}-\u{11AFF}\u{11B0A}-\u{11BE0}\u{11BE2}-\u{11C40}\u{11C46}-\u{11C6F}\u{11C72}-\u{11EF6}\u{11EF9}-\u{11F42}\u{11F50}-\u{11FFE}\u{12000}-\u{1246F}\u{12475}-\u{12FF0}\u{12FF3}-\u{16A6D}\u{16A70}-\u{16AF4}\u{16AF6}-\u{16B36}\u{16B3C}-\u{16B43}\u{16B45}-\u{16D6C}\u{16D70}-\u{16E96}\u{16E9B}-\u{16FE1}\u{16FE3}-\u{1BC9E}\u{1BCA0}-\u{1DA86}\u{1DA8C}-\u{1E5FE}\u{1E600}-\u{1E95D}\u{1E960}-\u{10FFFF}])+|(?=\p{L})[\0-\x08\x0E-\x1F!-'\*-;=\?A-Z\\\^-z\|~-\x9F\xA1-\u0F39\u0F3E-\u167F\u1681-\u169A\u169D-\u1FFF\u200B-\u2019\u201B-\u201D\u201F-\u2027\u202A-\u202E\u2030-\u2044\u2047-\u205E\u2060-\u207C\u207F-\u208C\u208F-\u2307\u230C-\u2328\u232B-\u2767\u2776-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2E21\u2E2A-\u2E41\u2E43-\u2E54\u2E5D-\u2FFF\u3001-\u3007\u3012\u3013\u301C\u3020-\uFD3D\uFD40-\uFE16\uFE19-\uFE34\uFE45\uFE46\uFE49-\uFE58\uFE5F-\uFEFE\uFF00-\uFF07\uFF0A-\uFF3A\uFF3C\uFF3E-\uFF5A\uFF5C\uFF5E\uFF61\uFF64-\u{10FFFF}]+@([\0-\x08\x0E-\x1F\$\+\x2D0-9=A-Z\^`-z\|~-\x9F\xA2-\xA6\xA8-\xAA\xAC-\xB5\xB8-\xBA\xBC-\xBE\xC0-\u037D\u037F-\u0386\u0388-\u0559\u0560-\u0588\u058B-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7-\u05F2\u05F5-\u0608\u060B\u060E-\u061A\u061C\u0620-\u0669\u066E-\u06D3\u06D5-\u06FF\u070E-\u07F6\u07FA-\u082F\u083F-\u085D\u085F-\u0963\u0966-\u096F\u0971-\u09FC\u09FE-\u0A75\u0A77-\u0AEF\u0AF1-\u0C76\u0C78-\u0C83\u0C85-\u0DF3\u0DF5-\u0E4E\u0E50-\u0E59\u0E5C-\u0F03\u0F13\u0F15-\u0F39\u0F3E-\u0F84\u0F86-\u0FCF\u0FD5-\u0FD8\u0FDB-\u1049\u1050-\u10FA\u10FC-\u135F\u1369-\u13FF\u1401-\u166D\u166F-\u167F\u1681-\u169A\u169D-\u16EA\u16EE-\u1734\u1737-\u17D3\u17D7\u17DB-\u17FF\u180B-\u1943\u1946-\u1A1D\u1A20-\u1A9F\u1AA7\u1AAE-\u1B4D\u1B50-\u1B59\u1B61-\u1B7C\u1B80-\u1BFB\u1C00-\u1C3A\u1C40-\u1C7D\u1C80-\u1CBF\u1CC8-\u1CD2\u1CD4-\u1FFF\u200B-\u200F\u202A-\u202E\u2044\u2052\u2060-\u207C\u207F-\u208C\u208F-\u2307\u230C-\u2328\u232B-\u2767\u2776-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2CF8\u2CFD\u2D00-\u2D6F\u2D71-\u2DFF\u2E2F\u2E50\u2E51\u2E5E-\u2FFF\u3004-\u3007\u3012\u3013\u3020-\u302F\u3031-\u303C\u303E-\u309F\u30A1-\u30FA\u30FC-\uA4FD\uA500-\uA60C\uA610-\uA672\uA674-\uA67D\uA67F-\uA6F1\uA6F8-\uA873\uA878-\uA8CD\uA8D0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA95E\uA960-\uA9C0\uA9CE-\uA9DD\uA9E0-\uAA5B\uAA60-\uAADD\uAAE0-\uAAEF\uAAF2-\uABEA\uABEC-\uFD3D\uFD40-\uFE0F\uFE1A-\uFE2F\uFE53\uFE62\uFE64-\uFE67\uFE69\uFE6C-\uFEFE\uFF00\uFF04\uFF0B\uFF10-\uFF19\uFF1C-\uFF1E\uFF21-\uFF3A\uFF3E\uFF40-\uFF5A\uFF5C\uFF5E\uFF66-\u{100FF}\u{10103}-\u{1039E}\u{103A0}-\u{103CF}\u{103D1}-\u{1056E}\u{10570}-\u{10856}\u{10858}-\u{1091E}\u{10920}-\u{1093E}\u{10940}-\u{10A4F}\u{10A59}-\u{10A7E}\u{10A80}-\u{10AEF}\u{10AF7}-\u{10B38}\u{10B40}-\u{10B98}\u{10B9D}-\u{10D6D}\u{10D6F}-\u{10EAC}\u{10EAE}-\u{10ECF}\u{10ED1}-\u{10F54}\u{10F5A}-\u{10F85}\u{10F8A}-\u{11046}\u{1104E}-\u{110BA}\u{110BD}\u{110C2}-\u{1113F}\u{11144}-\u{11173}\u{11176}-\u{111C4}\u{111C9}-\u{111CC}\u{111CE}-\u{111DA}\u{111DC}\u{111E0}-\u{11237}\u{1123E}-\u{112A8}\u{112AA}-\u{113D3}\u{113D6}\u{113D9}-\u{1144A}\u{11450}-\u{11459}\u{1145C}\u{1145E}-\u{114C5}\u{114C7}-\u{115C0}\u{115D8}-\u{11640}\u{11644}-\u{1165F}\u{1166D}-\u{116B8}\u{116BA}-\u{1173B}\u{1173F}-\u{1183A}\u{1183C}-\u{11943}\u{11947}-\u{119E1}\u{119E3}-\u{11A3E}\u{11A47}-\u{11A99}\u{11A9D}\u{11AA3}-\u{11AFF}\u{11B0A}-\u{11BE0}\u{11BE2}-\u{11C40}\u{11C46}-\u{11C6F}\u{11C72}-\u{11EF6}\u{11EF9}-\u{11F42}\u{11F50}-\u{11FFE}\u{12000}-\u{1246F}\u{12475}-\u{12FF0}\u{12FF3}-\u{16A6D}\u{16A70}-\u{16AF4}\u{16AF6}-\u{16B36}\u{16B3C}-\u{16B43}\u{16B45}-\u{16D6C}\u{16D70}-\u{16E96}\u{16E9B}-\u{16FE1}\u{16FE3}-\u{1BC9E}\u{1BCA0}-\u{1DA86}\u{1DA8C}-\u{1E5FE}\u{1E600}-\u{1E95D}\u{1E960}-\u{10FFFF}]+(?:\.[\0-\x08\x0E-\x1F\$\+\x2D0-9=A-Z\^`-z\|~-\x9F\xA2-\xA6\xA8-\xAA\xAC-\xB5\xB8-\xBA\xBC-\xBE\xC0-\u037D\u037F-\u0386\u0388-\u0559\u0560-\u0588\u058B-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7-\u05F2\u05F5-\u0608\u060B\u060E-\u061A\u061C\u0620-\u0669\u066E-\u06D3\u06D5-\u06FF\u070E-\u07F6\u07FA-\u082F\u083F-\u085D\u085F-\u0963\u0966-\u096F\u0971-\u09FC\u09FE-\u0A75\u0A77-\u0AEF\u0AF1-\u0C76\u0C78-\u0C83\u0C85-\u0DF3\u0DF5-\u0E4E\u0E50-\u0E59\u0E5C-\u0F03\u0F13\u0F15-\u0F39\u0F3E-\u0F84\u0F86-\u0FCF\u0FD5-\u0FD8\u0FDB-\u1049\u1050-\u10FA\u10FC-\u135F\u1369-\u13FF\u1401-\u166D\u166F-\u167F\u1681-\u169A\u169D-\u16EA\u16EE-\u1734\u1737-\u17D3\u17D7\u17DB-\u17FF\u180B-\u1943\u1946-\u1A1D\u1A20-\u1A9F\u1AA7\u1AAE-\u1B4D\u1B50-\u1B59\u1B61-\u1B7C\u1B80-\u1BFB\u1C00-\u1C3A\u1C40-\u1C7D\u1C80-\u1CBF\u1CC8-\u1CD2\u1CD4-\u1FFF\u200B-\u200F\u202A-\u202E\u2044\u2052\u2060-\u207C\u207F-\u208C\u208F-\u2307\u230C-\u2328\u232B-\u2767\u2776-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2CF8\u2CFD\u2D00-\u2D6F\u2D71-\u2DFF\u2E2F\u2E50\u2E51\u2E5E-\u2FFF\u3004-\u3007\u3012\u3013\u3020-\u302F\u3031-\u303C\u303E-\u309F\u30A1-\u30FA\u30FC-\uA4FD\uA500-\uA60C\uA610-\uA672\uA674-\uA67D\uA67F-\uA6F1\uA6F8-\uA873\uA878-\uA8CD\uA8D0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA95E\uA960-\uA9C0\uA9CE-\uA9DD\uA9E0-\uAA5B\uAA60-\uAADD\uAAE0-\uAAEF\uAAF2-\uABEA\uABEC-\uFD3D\uFD40-\uFE0F\uFE1A-\uFE2F\uFE53\uFE62\uFE64-\uFE67\uFE69\uFE6C-\uFEFE\uFF00\uFF04\uFF0B\uFF10-\uFF19\uFF1C-\uFF1E\uFF21-\uFF3A\uFF3E\uFF40-\uFF5A\uFF5C\uFF5E\uFF66-\u{100FF}\u{10103}-\u{1039E}\u{103A0}-\u{103CF}\u{103D1}-\u{1056E}\u{10570}-\u{10856}\u{10858}-\u{1091E}\u{10920}-\u{1093E}\u{10940}-\u{10A4F}\u{10A59}-\u{10A7E}\u{10A80}-\u{10AEF}\u{10AF7}-\u{10B38}\u{10B40}-\u{10B98}\u{10B9D}-\u{10D6D}\u{10D6F}-\u{10EAC}\u{10EAE}-\u{10ECF}\u{10ED1}-\u{10F54}\u{10F5A}-\u{10F85}\u{10F8A}-\u{11046}\u{1104E}-\u{110BA}\u{110BD}\u{110C2}-\u{1113F}\u{11144}-\u{11173}\u{11176}-\u{111C4}\u{111C9}-\u{111CC}\u{111CE}-\u{111DA}\u{111DC}\u{111E0}-\u{11237}\u{1123E}-\u{112A8}\u{112AA}-\u{113D3}\u{113D6}\u{113D9}-\u{1144A}\u{11450}-\u{11459}\u{1145C}\u{1145E}-\u{114C5}\u{114C7}-\u{115C0}\u{115D8}-\u{11640}\u{11644}-\u{1165F}\u{1166D}-\u{116B8}\u{116BA}-\u{1173B}\u{1173F}-\u{1183A}\u{1183C}-\u{11943}\u{11947}-\u{119E1}\u{119E3}-\u{11A3E}\u{11A47}-\u{11A99}\u{11A9D}\u{11AA3}-\u{11AFF}\u{11B0A}-\u{11BE0}\u{11BE2}-\u{11C40}\u{11C46}-\u{11C6F}\u{11C72}-\u{11EF6}\u{11EF9}-\u{11F42}\u{11F50}-\u{11FFE}\u{12000}-\u{1246F}\u{12475}-\u{12FF0}\u{12FF3}-\u{16A6D}\u{16A70}-\u{16AF4}\u{16AF6}-\u{16B36}\u{16B3C}-\u{16B43}\u{16B45}-\u{16D6C}\u{16D70}-\u{16E96}\u{16E9B}-\u{16FE1}\u{16FE3}-\u{1BC9E}\u{1BCA0}-\u{1DA86}\u{1DA8C}-\u{1E5FE}\u{1E600}-\u{1E95D}\u{1E960}-\u{10FFFF}]+)+)/gmu;
+ const [normalizedText, diffs] = normalize(text, {
+ ignoreDashEOL: true
+ });
+ const matches = normalizedText.matchAll(this.#regex);
+ const links = [];
+ for (const match of matches) {
+ const [url, emailDomain] = match;
+ let raw;
+ if (url.startsWith("www.") || url.startsWith("http://") || url.startsWith("https://")) {
+ raw = url;
+ } else if (emailDomain) {
+ const hostname = URL.parse(`http://${emailDomain}`)?.hostname;
+ if (!hostname) {
+ continue;
+ }
+ this.#numericTLDRegex ??= /\.\d+$/;
+ if (this.#numericTLDRegex.test(hostname)) {
+ continue;
+ }
+ }
+ raw ??= url.startsWith("mailto:") ? url : `mailto:${url}`;
+ const absoluteURL = createValidAbsoluteUrl(raw, null, {
+ addDefaultProtocol: true
+ });
+ if (absoluteURL) {
+ const [index, length] = getOriginalIndex(diffs, match.index, url.length);
+ links.push({
+ url: absoluteURL.href,
+ index,
+ length
+ });
+ }
+ }
+ return links;
+ }
+ static processLinks(pdfPageView) {
+ return this.findLinks(pdfPageView._textHighlighter.textContentItemsStr.join("\n")).map(link => createLinkAnnotation(link, pdfPageView, this.#index++));
+ }
+}
+
+;// ./web/renderable_view.js
+const RenderingStates = {
+ INITIAL: 0,
+ RUNNING: 1,
+ PAUSED: 2,
+ FINISHED: 3
+};
+class RenderableView {
+ renderingId = "";
+ renderTask = null;
+ resume = null;
+ get renderingState() {
+ throw new Error("Abstract getter `renderingState` accessed");
+ }
+ set renderingState(state) {
+ throw new Error("Abstract setter `renderingState` accessed");
+ }
+ async draw() {
+ throw new Error("Not implemented: draw");
+ }
+}
+
+;// ./web/base_pdf_page_view.js
+
+
+class BasePDFPageView extends RenderableView {
+ #loadingId = null;
+ #renderError = null;
+ #renderingState = RenderingStates.INITIAL;
+ #showCanvas = null;
+ #startTime = 0;
+ #tempCanvas = null;
+ canvas = null;
+ div = null;
+ enableOptimizedPartialRendering = false;
+ imagesRightClickMinSize = -1;
+ eventBus = null;
+ id = null;
+ imageCoordinates = null;
+ pageColors = null;
+ recordedBBoxes = null;
+ renderingQueue = null;
+ constructor(options) {
+ super();
+ this.eventBus = options.eventBus;
+ this.id = options.id;
+ this.pageColors = options.pageColors || null;
+ this.renderingQueue = options.renderingQueue;
+ this.enableOptimizedPartialRendering = options.enableOptimizedPartialRendering ?? false;
+ this.imagesRightClickMinSize = options.imagesRightClickMinSize ?? -1;
+ this.minDurationToUpdateCanvas = options.minDurationToUpdateCanvas ?? 500;
+ }
+ get renderingState() {
+ return this.#renderingState;
+ }
+ set renderingState(state) {
+ if (state === this.#renderingState) {
+ return;
+ }
+ this.#renderingState = state;
+ if (this.#loadingId) {
+ clearTimeout(this.#loadingId);
+ this.#loadingId = null;
+ }
+ switch (state) {
+ case RenderingStates.PAUSED:
+ this.div.classList.remove("loading");
+ this.#startTime = 0;
+ this.#showCanvas?.(false);
+ break;
+ case RenderingStates.RUNNING:
+ this.div.classList.add("loadingIcon");
+ this.#loadingId = setTimeout(() => {
+ this.div.classList.add("loading");
+ this.#loadingId = null;
+ }, 0);
+ this.#startTime = Date.now();
+ break;
+ case RenderingStates.INITIAL:
+ case RenderingStates.FINISHED:
+ this.div.classList.remove("loadingIcon", "loading");
+ this.#startTime = 0;
+ break;
+ }
+ }
+ _createCanvas(onShow, hideUntilComplete = false) {
+ const {
+ pageColors
+ } = this;
+ const hasHCM = !!(pageColors?.background && pageColors?.foreground);
+ const prevCanvas = this.canvas;
+ const updateOnFirstShow = !prevCanvas && !hasHCM && !hideUntilComplete;
+ let canvas = this.canvas = document.createElement("canvas");
+ this.#showCanvas = isLastShow => {
+ if (updateOnFirstShow) {
+ let tempCanvas = this.#tempCanvas;
+ if (!isLastShow && this.minDurationToUpdateCanvas > 0) {
+ if (Date.now() - this.#startTime < this.minDurationToUpdateCanvas) {
+ return;
+ }
+ if (!tempCanvas) {
+ tempCanvas = this.#tempCanvas = canvas;
+ canvas = this.canvas = canvas.cloneNode(false);
+ onShow(canvas);
+ }
+ }
+ if (tempCanvas) {
+ const ctx = canvas.getContext("2d", {
+ alpha: false
+ });
+ ctx.drawImage(tempCanvas, 0, 0);
+ if (isLastShow) {
+ this.#resetTempCanvas();
+ } else {
+ this.#startTime = Date.now();
+ }
+ return;
+ }
+ onShow(canvas);
+ this.#showCanvas = null;
+ return;
+ }
+ if (!isLastShow) {
+ return;
+ }
+ if (prevCanvas) {
+ prevCanvas.replaceWith(canvas);
+ prevCanvas.width = prevCanvas.height = 0;
+ } else {
+ onShow(canvas);
+ }
+ };
+ return {
+ canvas,
+ prevCanvas
+ };
+ }
+ #renderContinueCallback = cont => {
+ this.#showCanvas?.(false);
+ if (this.renderingQueue && !this.renderingQueue.isHighestPriority(this)) {
+ this.renderingState = RenderingStates.PAUSED;
+ this.resume = () => {
+ this.renderingState = RenderingStates.RUNNING;
+ cont();
+ };
+ return;
+ }
+ cont();
+ };
+ _resetCanvas() {
+ const {
+ canvas
+ } = this;
+ if (!canvas) {
+ return;
+ }
+ canvas.remove();
+ canvas.width = canvas.height = 0;
+ this.canvas = null;
+ this.#resetTempCanvas();
+ }
+ #resetTempCanvas() {
+ if (this.#tempCanvas) {
+ this.#tempCanvas.width = this.#tempCanvas.height = 0;
+ this.#tempCanvas = null;
+ }
+ }
+ async _drawCanvas(options, onCancel, onFinish) {
+ const renderTask = this.renderTask = this.pdfPage.render(options);
+ renderTask.onContinue = this.#renderContinueCallback;
+ renderTask.onError = error => {
+ if (error instanceof RenderingCancelledException) {
+ onCancel();
+ this.#renderError = null;
+ }
+ };
+ let error = null;
+ try {
+ await renderTask.promise;
+ this.#showCanvas?.(true);
+ } catch (e) {
+ if (e instanceof RenderingCancelledException) {
+ return;
+ }
+ error = e;
+ this.#showCanvas?.(true);
+ } finally {
+ this.#renderError = error;
+ if (renderTask === this.renderTask) {
+ this.renderTask = null;
+ if (this.enableOptimizedPartialRendering) {
+ this.recordedBBoxes ??= renderTask.recordedBBoxes;
+ }
+ if (this.imagesRightClickMinSize !== -1) {
+ this.imageCoordinates ??= this.pdfPage.imageCoordinates;
+ }
+ }
+ }
+ this.renderingState = RenderingStates.FINISHED;
+ onFinish(renderTask);
+ if (error) {
+ throw error;
+ }
+ }
+ cancelRendering({
+ cancelExtraDelay = 0
+ } = {}) {
+ if (this.renderTask) {
+ this.renderTask.cancel(cancelExtraDelay);
+ this.renderTask = null;
+ }
+ this.resume = null;
+ }
+ dispatchPageRender() {
+ this.eventBus.dispatch("pagerender", {
+ source: this,
+ pageNumber: this.id
+ });
+ }
+ dispatchPageRendered(cssTransform, isDetailView) {
+ this.eventBus.dispatch("pagerendered", {
+ source: this,
+ pageNumber: this.id,
+ cssTransform,
+ isDetailView,
+ timestamp: performance.now(),
+ error: this.#renderError
+ });
+ }
+}
+
+;// ./web/draw_layer_builder.js
+
+class DrawLayerBuilder {
+ #drawLayer = null;
+ async render({
+ intent = "display"
+ }) {
+ if (intent !== "display" || this.#drawLayer || this._cancelled) {
+ return;
+ }
+ this.#drawLayer = new DrawLayer();
+ }
+ cancel() {
+ this._cancelled = true;
+ if (!this.#drawLayer) {
+ return;
+ }
+ this.#drawLayer.destroy();
+ this.#drawLayer = null;
+ }
+ setParent(parent) {
+ this.#drawLayer?.setParent(parent);
+ }
+ getDrawLayer() {
+ return this.#drawLayer;
+ }
+}
+
+;// ./web/pdf_page_detail_view.js
+
+
+
+class PDFPageDetailView extends BasePDFPageView {
+ #detailArea = null;
+ renderingCancelled = false;
+ constructor({
+ pageView
+ }) {
+ super(pageView);
+ this.pageView = pageView;
+ this.renderingId = "detail" + this.id;
+ this.div = pageView.div;
+ }
+ setPdfPage(pdfPage) {
+ this.pageView.setPdfPage(pdfPage);
+ }
+ get pdfPage() {
+ return this.pageView.pdfPage;
+ }
+ get renderingState() {
+ return super.renderingState;
+ }
+ set renderingState(state) {
+ this.renderingCancelled = false;
+ super.renderingState = state;
+ }
+ reset({
+ keepCanvas = false
+ } = {}) {
+ const renderingCancelled = this.renderingCancelled || this.renderingState === RenderingStates.RUNNING || this.renderingState === RenderingStates.PAUSED;
+ this.cancelRendering();
+ this.renderingState = RenderingStates.INITIAL;
+ this.renderingCancelled = renderingCancelled;
+ if (!keepCanvas) {
+ this._resetCanvas();
+ }
+ }
+ #shouldRenderDifferentArea(visibleArea) {
+ if (!this.#detailArea) {
+ return true;
+ }
+ const minDetailX = this.#detailArea.minX;
+ const minDetailY = this.#detailArea.minY;
+ const maxDetailX = this.#detailArea.width + minDetailX;
+ const maxDetailY = this.#detailArea.height + minDetailY;
+ if (visibleArea.minX < minDetailX || visibleArea.minY < minDetailY || visibleArea.maxX > maxDetailX || visibleArea.maxY > maxDetailY) {
+ return true;
+ }
+ const {
+ width: maxWidth,
+ height: maxHeight,
+ scale
+ } = this.pageView.viewport;
+ if (this.#detailArea.scale !== scale) {
+ return true;
+ }
+ const paddingLeftSize = visibleArea.minX - minDetailX;
+ const paddingRightSize = maxDetailX - visibleArea.maxX;
+ const paddingTopSize = visibleArea.minY - minDetailY;
+ const paddingBottomSize = maxDetailY - visibleArea.maxY;
+ const MOVEMENT_THRESHOLD = 0.5;
+ const ratio = (1 + MOVEMENT_THRESHOLD) / MOVEMENT_THRESHOLD;
+ if (minDetailX > 0 && paddingRightSize / paddingLeftSize > ratio || maxDetailX < maxWidth && paddingLeftSize / paddingRightSize > ratio || minDetailY > 0 && paddingBottomSize / paddingTopSize > ratio || maxDetailY < maxHeight && paddingTopSize / paddingBottomSize > ratio) {
+ return true;
+ }
+ return false;
+ }
+ update({
+ visibleArea = null,
+ underlyingViewUpdated = false
+ } = {}) {
+ if (underlyingViewUpdated) {
+ this.cancelRendering();
+ this.renderingState = RenderingStates.INITIAL;
+ return;
+ }
+ if (!this.#shouldRenderDifferentArea(visibleArea)) {
+ return;
+ }
+ const {
+ viewport,
+ maxCanvasPixels,
+ capCanvasAreaFactor
+ } = this.pageView;
+ const visibleWidth = visibleArea.maxX - visibleArea.minX;
+ const visibleHeight = visibleArea.maxY - visibleArea.minY;
+ const visiblePixels = visibleWidth * visibleHeight * OutputScale.pixelRatio ** 2;
+ const maxDetailToVisibleLinearRatio = Math.sqrt(OutputScale.capPixels(maxCanvasPixels, capCanvasAreaFactor) / visiblePixels);
+ const maxOverflowScale = (maxDetailToVisibleLinearRatio - 1) / 2;
+ let overflowScale = Math.min(1, maxOverflowScale);
+ if (overflowScale < 0) {
+ overflowScale = 0;
+ }
+ const overflowWidth = visibleWidth * overflowScale;
+ const overflowHeight = visibleHeight * overflowScale;
+ const minX = Math.max(0, visibleArea.minX - overflowWidth);
+ const maxX = Math.min(viewport.width, visibleArea.maxX + overflowWidth);
+ const minY = Math.max(0, visibleArea.minY - overflowHeight);
+ const maxY = Math.min(viewport.height, visibleArea.maxY + overflowHeight);
+ const width = maxX - minX;
+ const height = maxY - minY;
+ this.#detailArea = {
+ minX,
+ minY,
+ width,
+ height,
+ scale: viewport.scale
+ };
+ this.reset({
+ keepCanvas: true
+ });
+ }
+ _getRenderingContext(canvas, transform) {
+ const baseContext = this.pageView._getRenderingContext(canvas, transform, false);
+ const recordedBBoxes = this.pdfPage.recordedBBoxes;
+ if (!recordedBBoxes || !this.enableOptimizedPartialRendering) {
+ return baseContext;
+ }
+ const {
+ viewport: {
+ width: vWidth,
+ height: vHeight
+ }
+ } = this.pageView;
+ const {
+ width: aWidth,
+ height: aHeight,
+ minX: aMinX,
+ minY: aMinY
+ } = this.#detailArea;
+ const detailMinX = aMinX / vWidth;
+ const detailMinY = aMinY / vHeight;
+ const detailMaxX = (aMinX + aWidth) / vWidth;
+ const detailMaxY = (aMinY + aHeight) / vHeight;
+ return {
+ ...baseContext,
+ operationsFilter(index) {
+ if (recordedBBoxes.isEmpty(index)) {
+ return false;
+ }
+ return recordedBBoxes.minX(index) <= detailMaxX && recordedBBoxes.maxX(index) >= detailMinX && recordedBBoxes.minY(index) <= detailMaxY && recordedBBoxes.maxY(index) >= detailMinY;
+ }
+ };
+ }
+ async draw() {
+ if (this.pageView.detailView !== this) {
+ return undefined;
+ }
+ const hideUntilComplete = this.pageView.renderingState === RenderingStates.FINISHED || this.renderingState === RenderingStates.FINISHED;
+ if (this.renderingState !== RenderingStates.INITIAL) {
+ console.error("Must be in new state before drawing");
+ this.reset();
+ }
+ const {
+ div,
+ pdfPage,
+ viewport
+ } = this.pageView;
+ if (!pdfPage) {
+ this.renderingState = RenderingStates.FINISHED;
+ throw new Error("pdfPage is not loaded");
+ }
+ this.renderingState = RenderingStates.RUNNING;
+ const canvasWrapper = this.pageView._ensureCanvasWrapper();
+ const {
+ canvas,
+ prevCanvas
+ } = this._createCanvas(newCanvas => {
+ if (canvasWrapper.firstElementChild?.tagName === "CANVAS") {
+ canvasWrapper.firstElementChild.after(newCanvas);
+ } else {
+ canvasWrapper.prepend(newCanvas);
+ }
+ }, hideUntilComplete);
+ canvas.ariaHidden = true;
+ if (this.enableOptimizedPartialRendering) {
+ canvas.className = "detailView";
+ }
+ const {
+ width,
+ height
+ } = viewport;
+ const area = this.#detailArea;
+ const {
+ pixelRatio
+ } = OutputScale;
+ const transform = [pixelRatio, 0, 0, pixelRatio, -area.minX * pixelRatio, -area.minY * pixelRatio];
+ canvas.width = area.width * pixelRatio;
+ canvas.height = area.height * pixelRatio;
+ const {
+ style
+ } = canvas;
+ style.width = `${area.width * 100 / width}%`;
+ style.height = `${area.height * 100 / height}%`;
+ style.top = `${area.minY * 100 / height}%`;
+ style.left = `${area.minX * 100 / width}%`;
+ const renderingPromise = this._drawCanvas(this._getRenderingContext(canvas, transform), () => {
+ this.canvas?.remove();
+ this.canvas = prevCanvas;
+ }, () => {
+ this.dispatchPageRendered(false, true);
+ });
+ div.setAttribute("data-loaded", true);
+ this.dispatchPageRender();
+ return renderingPromise;
+ }
+}
+
+;// ./web/struct_tree_layer_builder.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+const PDF_ROLE_TO_HTML_ROLE = {
+ Document: null,
+ DocumentFragment: null,
+ Part: "group",
+ Sect: "group",
+ Div: "group",
+ Aside: "note",
+ NonStruct: "none",
+ P: null,
+ H: "heading",
+ Title: null,
+ FENote: "note",
+ Sub: "group",
+ Lbl: null,
+ Span: null,
+ Em: null,
+ Strong: null,
+ Link: "link",
+ Annot: "note",
+ Form: "form",
+ Ruby: null,
+ RB: null,
+ RT: null,
+ RP: null,
+ Warichu: null,
+ WT: null,
+ WP: null,
+ L: "list",
+ LI: "listitem",
+ LBody: null,
+ Table: "table",
+ TR: "row",
+ TH: "columnheader",
+ TD: "cell",
+ THead: "rowgroup",
+ TBody: "rowgroup",
+ TFoot: null,
+ Caption: null,
+ Figure: "figure",
+ Formula: null,
+ Artifact: null
+};
+const MathMLElements = new Set(["math", "merror", "mfrac", "mi", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mprescripts", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msubsup", "msup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "semantics"]);
+const MathMLNamespace = "http://www.w3.org/1998/Math/MathML";
+class MathMLSanitizer {
+ static get sanitizer() {
+ return shadow(this, "sanitizer", FeatureTest.isSanitizerSupported ? new Sanitizer({
+ elements: [...MathMLElements].map(name => ({
+ name,
+ namespace: MathMLNamespace
+ })),
+ replaceWithChildrenElements: [{
+ name: "maction",
+ namespace: MathMLNamespace
+ }],
+ attributes: ["dir", "displaystyle", "mathbackground", "mathcolor", "mathsize", "scriptlevel", "encoding", "display", "linethickness", "intent", "arg", "form", "fence", "separator", "lspace", "rspace", "stretchy", "symmetric", "maxsize", "minsize", "largeop", "movablelimits", "width", "height", "depth", "voffset", "accent", "accentunder", "columnspan", "rowspan"],
+ comments: false
+ }) : null);
+ }
+}
+const HEADING_PATTERN = /^H(\d+)$/;
+class StructTreeLayerBuilder {
+ #promise;
+ #treeDom = null;
+ #treePromise;
+ #elementAttributes = new Map();
+ #rawDims;
+ #elementsToAddToTextLayer = null;
+ #elementsToHideInTextLayer = null;
+ #elementsToStealFromTextLayer = null;
+ constructor(pdfPage, rawDims) {
+ this.#promise = pdfPage.getStructTree();
+ this.#rawDims = rawDims;
+ }
+ async render() {
+ if (this.#treePromise) {
+ return this.#treePromise;
+ }
+ const {
+ promise,
+ resolve,
+ reject
+ } = Promise.withResolvers();
+ this.#treePromise = promise;
+ try {
+ this.#treeDom = this.#walk(await this.#promise);
+ } catch (ex) {
+ reject(ex);
+ }
+ this.#promise = null;
+ this.#treeDom?.classList.add("structTree");
+ resolve(this.#treeDom);
+ return promise;
+ }
+ async getAriaAttributes(annotationId) {
+ try {
+ await this.render();
+ return this.#elementAttributes.get(annotationId);
+ } catch {}
+ return null;
+ }
+ hide() {
+ if (this.#treeDom && !this.#treeDom.hidden) {
+ this.#treeDom.hidden = true;
+ }
+ }
+ show() {
+ if (this.#treeDom?.hidden) {
+ this.#treeDom.hidden = false;
+ }
+ }
+ #setAttributes(structElement, htmlElement) {
+ const {
+ alt,
+ id,
+ lang
+ } = structElement;
+ if (alt !== undefined) {
+ let added = false;
+ const label = removeNullCharacters(alt);
+ for (const child of structElement.children) {
+ if (child.type === "annotation") {
+ this.#elementAttributes.getOrInsertComputed(child.id, makeMap).set("aria-label", label);
+ added = true;
+ }
+ }
+ if (!added) {
+ htmlElement.setAttribute("aria-label", label);
+ }
+ }
+ if (id !== undefined) {
+ htmlElement.setAttribute("aria-owns", id);
+ }
+ if (lang !== undefined) {
+ htmlElement.setAttribute("lang", removeNullCharacters(lang, true));
+ }
+ }
+ #addImageInTextLayer(node, element) {
+ const {
+ alt,
+ bbox,
+ children
+ } = node;
+ const child = children?.[0];
+ if (!this.#rawDims || !alt || !bbox || child?.type !== "content") {
+ return false;
+ }
+ const {
+ id
+ } = child;
+ if (!id) {
+ return false;
+ }
+ element.setAttribute("aria-owns", id);
+ const img = document.createElement("span");
+ (this.#elementsToAddToTextLayer ||= new Map()).set(id, img);
+ img.setAttribute("role", "img");
+ img.setAttribute("aria-label", removeNullCharacters(alt));
+ const {
+ pageHeight,
+ pageX,
+ pageY
+ } = this.#rawDims;
+ const calc = "calc(var(--total-scale-factor) *";
+ const {
+ style
+ } = img;
+ style.width = `${calc}${bbox[2] - bbox[0]}px)`;
+ style.height = `${calc}${bbox[3] - bbox[1]}px)`;
+ style.left = `${calc}${bbox[0] - pageX}px)`;
+ style.top = `${calc}${pageHeight - bbox[3] + pageY}px)`;
+ return true;
+ }
+ updateTextLayer() {
+ if (this.#elementsToAddToTextLayer) {
+ for (const [id, img] of this.#elementsToAddToTextLayer) {
+ document.getElementById(id)?.append(img);
+ }
+ this.#elementsToAddToTextLayer.clear();
+ this.#elementsToAddToTextLayer = null;
+ }
+ if (this.#elementsToHideInTextLayer) {
+ for (const id of this.#elementsToHideInTextLayer) {
+ const elem = document.getElementById(id);
+ if (elem) {
+ elem.ariaHidden = true;
+ }
+ }
+ this.#elementsToHideInTextLayer.length = 0;
+ this.#elementsToHideInTextLayer = null;
+ }
+ if (this.#elementsToStealFromTextLayer) {
+ for (let i = 0, ii = this.#elementsToStealFromTextLayer.length; i < ii; i += 2) {
+ const element = this.#elementsToStealFromTextLayer[i];
+ const ids = this.#elementsToStealFromTextLayer[i + 1];
+ let textContent = "";
+ for (const id of ids) {
+ const elem = document.getElementById(id);
+ if (elem) {
+ textContent += elem.textContent.trim() || "";
+ elem.ariaHidden = "true";
+ }
+ }
+ if (textContent) {
+ element.textContent = textContent;
+ }
+ }
+ this.#elementsToStealFromTextLayer.length = 0;
+ this.#elementsToStealFromTextLayer = null;
+ }
+ }
+ #collectIds(node, ids) {
+ if (!node) {
+ return;
+ }
+ if ("id" in node) {
+ ids.push(node.id);
+ }
+ for (const kid of node.children || []) {
+ this.#collectIds(kid, ids);
+ }
+ }
+ #walk(node, parentNodes = []) {
+ if (!node) {
+ return null;
+ }
+ let element;
+ let visitChildren = true;
+ if ("role" in node) {
+ const {
+ role
+ } = node;
+ if (MathMLElements.has(role)) {
+ element = document.createElementNS(MathMLNamespace, role);
+ const ids = [];
+ (this.#elementsToStealFromTextLayer ||= []).push(element, ids);
+ for (const {
+ type,
+ id
+ } of node.children || []) {
+ if (type === "content" && id) {
+ ids.push(id);
+ }
+ }
+ } else {
+ element = document.createElement("span");
+ }
+ const match = role.match(HEADING_PATTERN);
+ if (match) {
+ element.setAttribute("role", "heading");
+ element.setAttribute("aria-level", match[1]);
+ } else if (PDF_ROLE_TO_HTML_ROLE[role]) {
+ element.setAttribute("role", role === "TH" && parentNodes.at(-1)?.role === "TR" && parentNodes.at(-2)?.role === "TBody" ? "rowheader" : PDF_ROLE_TO_HTML_ROLE[role]);
+ }
+ if (role === "Figure" && this.#addImageInTextLayer(node, element)) {
+ return element;
+ }
+ if (role === "Formula") {
+ if (node.mathML && MathMLSanitizer.sanitizer) {
+ visitChildren = false;
+ element.setHTML(node.mathML, {
+ sanitizer: MathMLSanitizer.sanitizer
+ });
+ this.#collectIds(node, this.#elementsToHideInTextLayer ||= []);
+ delete node.alt;
+ }
+ if (!node.mathML && node.children.length === 1 && node.children[0].role !== "math") {
+ element = document.createElementNS(MathMLNamespace, "math");
+ delete node.alt;
+ }
+ }
+ }
+ element ||= document.createElement("span");
+ this.#setAttributes(node, element);
+ if (node.children) {
+ if (node.children.length === 1 && "id" in node.children[0]) {
+ this.#setAttributes(node.children[0], element);
+ } else if (visitChildren) {
+ parentNodes.push(node);
+ for (const kid of node.children) {
+ element.append(this.#walk(kid, parentNodes));
+ }
+ parentNodes.pop();
+ }
+ }
+ return element;
+ }
+}
+
+;// ./web/text_accessibility.js
+
+
+
+
+
+
+class TextAccessibilityManager {
+ #enabled = false;
+ #textChildren = null;
+ #textNodes = new Map();
+ #waitingElements = new Map();
+ setTextMapping(textDivs) {
+ this.#textChildren = textDivs;
+ }
+ static #compareElementPositions(e1, e2) {
+ const rect1 = e1.getBoundingClientRect();
+ const rect2 = e2.getBoundingClientRect();
+ if (rect1.width === 0 && rect1.height === 0) {
+ return +1;
+ }
+ if (rect2.width === 0 && rect2.height === 0) {
+ return -1;
+ }
+ const top1 = rect1.y;
+ const bot1 = rect1.y + rect1.height;
+ const mid1 = rect1.y + rect1.height / 2;
+ const top2 = rect2.y;
+ const bot2 = rect2.y + rect2.height;
+ const mid2 = rect2.y + rect2.height / 2;
+ if (mid1 <= top2 && mid2 >= bot1) {
+ return -1;
+ }
+ if (mid2 <= top1 && mid1 >= bot2) {
+ return +1;
+ }
+ const centerX1 = rect1.x + rect1.width / 2;
+ const centerX2 = rect2.x + rect2.width / 2;
+ return centerX1 - centerX2;
+ }
+ enable() {
+ if (this.#enabled) {
+ throw new Error("TextAccessibilityManager is already enabled.");
+ }
+ if (!this.#textChildren) {
+ throw new Error("Text divs and strings have not been set.");
+ }
+ this.#enabled = true;
+ this.#textChildren = this.#textChildren.slice();
+ this.#textChildren.sort(TextAccessibilityManager.#compareElementPositions);
+ if (this.#textNodes.size > 0) {
+ const textChildren = this.#textChildren;
+ for (const [id, nodeIndex] of this.#textNodes) {
+ const element = document.getElementById(id);
+ if (!element) {
+ this.#textNodes.delete(id);
+ continue;
+ }
+ this.#addIdToAriaOwns(id, textChildren[nodeIndex]);
+ }
+ }
+ for (const [element, isRemovable] of this.#waitingElements) {
+ this.addPointerInTextLayer(element, isRemovable);
+ }
+ this.#waitingElements.clear();
+ }
+ disable() {
+ if (!this.#enabled) {
+ return;
+ }
+ this.#waitingElements.clear();
+ this.#textChildren = null;
+ this.#enabled = false;
+ }
+ removePointerInTextLayer(element) {
+ if (!this.#enabled) {
+ this.#waitingElements.delete(element);
+ return;
+ }
+ const children = this.#textChildren;
+ if (!children || children.length === 0) {
+ return;
+ }
+ const {
+ id
+ } = element;
+ const nodeIndex = this.#textNodes.get(id);
+ if (nodeIndex === undefined) {
+ return;
+ }
+ const node = children[nodeIndex];
+ this.#textNodes.delete(id);
+ let owns = node.getAttribute("aria-owns");
+ if (owns?.includes(id)) {
+ owns = owns.split(" ").filter(x => x !== id).join(" ");
+ if (owns) {
+ node.setAttribute("aria-owns", owns);
+ } else {
+ node.removeAttribute("aria-owns");
+ node.setAttribute("role", "presentation");
+ }
+ }
+ }
+ #addIdToAriaOwns(id, node) {
+ const owns = node.getAttribute("aria-owns");
+ if (!owns?.includes(id)) {
+ node.setAttribute("aria-owns", owns ? `${owns} ${id}` : id);
+ }
+ node.removeAttribute("role");
+ }
+ addPointerInTextLayer(element, isRemovable) {
+ const {
+ id
+ } = element;
+ if (!id) {
+ return null;
+ }
+ if (!this.#enabled) {
+ this.#waitingElements.set(element, isRemovable);
+ return null;
+ }
+ if (isRemovable) {
+ this.removePointerInTextLayer(element);
+ }
+ const children = this.#textChildren;
+ if (!children || children.length === 0) {
+ return null;
+ }
+ const index = binarySearchFirstItem(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0);
+ const nodeIndex = Math.max(0, index - 1);
+ const child = children[nodeIndex];
+ this.#addIdToAriaOwns(id, child);
+ this.#textNodes.set(id, nodeIndex);
+ const parent = child.parentNode;
+ return parent?.classList.contains("markedContent") ? parent.id : null;
+ }
+ moveElementInDOM(container, element, contentElement, isRemovable) {
+ const id = this.addPointerInTextLayer(contentElement, isRemovable);
+ if (!container.hasChildNodes()) {
+ container.append(element);
+ return id;
+ }
+ const children = Array.from(container.childNodes).filter(node => node !== element);
+ if (children.length === 0) {
+ return id;
+ }
+ const index = binarySearchFirstItem(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0);
+ if (index === 0) {
+ children[0].before(element);
+ } else {
+ children[index - 1].after(element);
+ }
+ return id;
+ }
+}
+
+;// ./web/text_highlighter.js
+
+
+class TextHighlighter {
+ #eventAbortController = null;
+ constructor({
+ findController,
+ eventBus,
+ pageIndex
+ }) {
+ this.findController = findController;
+ this.matches = [];
+ this.eventBus = eventBus;
+ this.pageIdx = pageIndex;
+ this.textDivs = null;
+ this.textContentItemsStr = null;
+ this.enabled = false;
+ }
+ setTextMapping(divs, texts) {
+ this.textDivs = divs;
+ this.textContentItemsStr = texts;
+ }
+ enable() {
+ if (!this.textDivs || !this.textContentItemsStr) {
+ throw new Error("Text divs and strings have not been set.");
+ }
+ if (this.enabled) {
+ throw new Error("TextHighlighter is already enabled.");
+ }
+ this.enabled = true;
+ if (!this.#eventAbortController) {
+ this.#eventAbortController = new AbortController();
+ this.eventBus._on("updatetextlayermatches", evt => {
+ if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) {
+ this._updateMatches();
+ }
+ }, {
+ signal: this.#eventAbortController.signal
+ });
+ }
+ this._updateMatches();
+ }
+ disable() {
+ if (!this.enabled) {
+ return;
+ }
+ this.enabled = false;
+ this.#eventAbortController?.abort();
+ this.#eventAbortController = null;
+ this._updateMatches(true);
+ }
+ _convertMatches(matches, matchesLength) {
+ if (!matches) {
+ return [];
+ }
+ const {
+ textContentItemsStr
+ } = this;
+ let i = 0,
+ iIndex = 0;
+ const end = textContentItemsStr.length - 1;
+ const result = [];
+ for (let m = 0, mm = matches.length; m < mm; m++) {
+ let matchIdx = matches[m];
+ while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {
+ iIndex += textContentItemsStr[i].length;
+ i++;
+ }
+ if (i === textContentItemsStr.length) {
+ console.error("Could not find a matching mapping");
+ }
+ const match = {
+ begin: {
+ divIdx: i,
+ offset: matchIdx - iIndex
+ }
+ };
+ matchIdx += matchesLength[m];
+ while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {
+ iIndex += textContentItemsStr[i].length;
+ i++;
+ }
+ match.end = {
+ divIdx: i,
+ offset: matchIdx - iIndex
+ };
+ result.push(match);
+ }
+ return result;
+ }
+ _renderMatches(matches) {
+ if (matches.length === 0) {
+ return;
+ }
+ const {
+ findController,
+ pageIdx
+ } = this;
+ const {
+ textContentItemsStr,
+ textDivs
+ } = this;
+ const isSelectedPage = pageIdx === findController.selected.pageIdx;
+ const selectedMatchIdx = findController.selected.matchIdx;
+ const highlightAll = findController.state.highlightAll;
+ let prevEnd = null;
+ const infinity = {
+ divIdx: -1,
+ offset: undefined
+ };
+ function beginText(begin, className) {
+ const divIdx = begin.divIdx;
+ textDivs[divIdx].textContent = "";
+ return appendTextToDiv(divIdx, 0, begin.offset, className);
+ }
+ function appendTextToDiv(divIdx, fromOffset, toOffset, className) {
+ let div = textDivs[divIdx];
+ if (div.nodeType === Node.TEXT_NODE) {
+ const span = document.createElement("span");
+ div.before(span);
+ span.append(div);
+ textDivs[divIdx] = span;
+ div = span;
+ }
+ const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);
+ const node = document.createTextNode(content);
+ if (className) {
+ const span = document.createElement("span");
+ span.className = `${className} appended`;
+ span.append(node);
+ div.append(span);
+ if (className.includes("selected")) {
+ return span;
+ }
+ return null;
+ }
+ div.append(node);
+ return 0;
+ }
+ let i0 = selectedMatchIdx,
+ i1 = i0 + 1;
+ if (highlightAll) {
+ i0 = 0;
+ i1 = matches.length;
+ } else if (!isSelectedPage) {
+ return;
+ }
+ let lastDivIdx = -1;
+ let lastOffset = -1;
+ for (let i = i0; i < i1; i++) {
+ const match = matches[i];
+ const begin = match.begin;
+ if (begin.divIdx === lastDivIdx && begin.offset === lastOffset) {
+ continue;
+ }
+ lastDivIdx = begin.divIdx;
+ lastOffset = begin.offset;
+ const end = match.end;
+ const isSelected = isSelectedPage && i === selectedMatchIdx;
+ const highlightSuffix = isSelected ? " selected" : "";
+ let selectedSpan = null;
+ if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {
+ if (prevEnd !== null) {
+ appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
+ }
+ beginText(begin);
+ } else {
+ appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);
+ }
+ if (begin.divIdx === end.divIdx) {
+ selectedSpan = appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix);
+ } else {
+ selectedSpan = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix);
+ for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {
+ textDivs[n0].className = "highlight middle" + highlightSuffix;
+ }
+ beginText(end, "highlight end" + highlightSuffix);
+ }
+ prevEnd = end;
+ if (isSelected) {
+ findController.scrollMatchIntoView({
+ element: selectedSpan,
+ pageIndex: pageIdx,
+ matchIndex: selectedMatchIdx
+ });
+ }
+ }
+ if (prevEnd) {
+ appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
+ }
+ }
+ _updateMatches(reset = false) {
+ if (!this.enabled && !reset) {
+ return;
+ }
+ const {
+ findController,
+ matches,
+ pageIdx
+ } = this;
+ const {
+ textContentItemsStr,
+ textDivs
+ } = this;
+ let clearedUntilDivIdx = -1;
+ for (const match of matches) {
+ const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);
+ for (let n = begin, end = match.end.divIdx; n <= end; n++) {
+ const div = textDivs[n];
+ div.textContent = textContentItemsStr[n];
+ div.className = "";
+ }
+ clearedUntilDivIdx = match.end.divIdx + 1;
+ }
+ if (!findController?.highlightMatches || reset) {
+ return;
+ }
+ const pageMatches = findController.pageMatches[pageIdx] || null;
+ const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;
+ this.matches = this._convertMatches(pageMatches, pageMatchesLength);
+ this._renderMatches(this.matches);
+ }
+}
+
+;// ./web/text_layer_builder.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+class TextLayerBuilder {
+ #abortSignal = null;
+ #enablePermissions = false;
+ #onAppend = null;
+ #renderingDone = false;
+ #textLayer = null;
+ static #textLayers = new Map();
+ static #selectionChangeAbortController = null;
+ constructor({
+ pdfPage,
+ highlighter = null,
+ accessibilityManager = null,
+ enablePermissions = false,
+ onAppend = null,
+ abortSignal = null
+ }) {
+ this.pdfPage = pdfPage;
+ this.highlighter = highlighter;
+ this.accessibilityManager = accessibilityManager;
+ this.#enablePermissions = enablePermissions === true;
+ this.#onAppend = onAppend;
+ this.#abortSignal = abortSignal;
+ this.div = document.createElement("div");
+ this.div.tabIndex = 0;
+ this.div.className = "textLayer";
+ }
+ async render({
+ viewport,
+ images,
+ textContentParams = null
+ }) {
+ if (this.#renderingDone && this.#textLayer) {
+ this.#textLayer.update({
+ viewport,
+ onBefore: this.hide.bind(this)
+ });
+ this.show();
+ return;
+ }
+ this.cancel();
+ this.#textLayer = new TextLayer({
+ textContentSource: this.pdfPage.streamTextContent(textContentParams || {
+ includeMarkedContent: true,
+ disableNormalization: true
+ }),
+ images,
+ container: this.div,
+ viewport
+ });
+ const {
+ textDivs,
+ textContentItemsStr
+ } = this.#textLayer;
+ this.highlighter?.setTextMapping(textDivs, textContentItemsStr);
+ this.accessibilityManager?.setTextMapping(textDivs);
+ await this.#textLayer.render();
+ this.#renderingDone = true;
+ const endOfContent = document.createElement("div");
+ endOfContent.className = "endOfContent";
+ this.div.append(endOfContent);
+ this.#bindMouse(endOfContent);
+ this.#onAppend?.(this.div);
+ this.highlighter?.enable();
+ this.accessibilityManager?.enable();
+ }
+ hide() {
+ if (!this.div.hidden && this.#renderingDone) {
+ this.highlighter?.disable();
+ this.div.hidden = true;
+ }
+ }
+ show() {
+ if (this.div.hidden && this.#renderingDone) {
+ this.div.hidden = false;
+ this.highlighter?.enable();
+ }
+ }
+ cancel() {
+ this.#textLayer?.cancel();
+ this.#textLayer = null;
+ this.highlighter?.disable();
+ this.accessibilityManager?.disable();
+ TextLayerBuilder.#removeGlobalSelectionListener(this.div);
+ }
+ #bindMouse(end) {
+ const {
+ div
+ } = this;
+ const abortSignal = this.#abortSignal;
+ const opts = abortSignal ? {
+ signal: abortSignal
+ } : null;
+ div.addEventListener("mousedown", () => {
+ div.classList.add("selecting");
+ }, opts);
+ div.addEventListener("copy", event => {
+ if (!this.#enablePermissions) {
+ const selection = document.getSelection();
+ event.clipboardData.setData("text/plain", removeNullCharacters(normalizeUnicode(selection.toString())));
+ }
+ stopEvent(event);
+ }, opts);
+ TextLayerBuilder.#textLayers.set(div, end);
+ TextLayerBuilder.#enableGlobalSelectionListener(abortSignal);
+ }
+ static #removeGlobalSelectionListener(textLayerDiv) {
+ this.#textLayers.delete(textLayerDiv);
+ if (this.#textLayers.size === 0) {
+ this.#selectionChangeAbortController?.abort();
+ this.#selectionChangeAbortController = null;
+ }
+ }
+ static #enableGlobalSelectionListener(globalAbortSignal) {
+ if (this.#selectionChangeAbortController) {
+ return;
+ }
+ this.#selectionChangeAbortController = new AbortController();
+ const signal = globalAbortSignal ? AbortSignal.any([this.#selectionChangeAbortController.signal, globalAbortSignal]) : this.#selectionChangeAbortController.signal;
+ const reset = (end, textLayer) => {
+ textLayer.append(end);
+ end.style.width = "";
+ end.style.height = "";
+ textLayer.classList.remove("selecting");
+ };
+ let isPointerDown = false;
+ document.addEventListener("pointerdown", () => {
+ isPointerDown = true;
+ }, {
+ signal
+ });
+ document.addEventListener("pointerup", () => {
+ isPointerDown = false;
+ this.#textLayers.forEach(reset);
+ }, {
+ signal
+ });
+ window.addEventListener("blur", () => {
+ isPointerDown = false;
+ this.#textLayers.forEach(reset);
+ }, {
+ signal
+ });
+ document.addEventListener("keyup", () => {
+ if (!isPointerDown) {
+ this.#textLayers.forEach(reset);
+ }
+ }, {
+ signal
+ });
+ var isFirefox, prevRange;
+ document.addEventListener("selectionchange", () => {
+ const selection = document.getSelection();
+ if (selection.rangeCount === 0) {
+ this.#textLayers.forEach(reset);
+ return;
+ }
+ const activeTextLayers = new Set();
+ for (let i = 0; i < selection.rangeCount; i++) {
+ const range = selection.getRangeAt(i);
+ for (const textLayerDiv of this.#textLayers.keys()) {
+ if (!activeTextLayers.has(textLayerDiv) && range.intersectsNode(textLayerDiv)) {
+ activeTextLayers.add(textLayerDiv);
+ }
+ }
+ }
+ for (const [textLayerDiv, endDiv] of this.#textLayers) {
+ if (activeTextLayers.has(textLayerDiv)) {
+ textLayerDiv.classList.add("selecting");
+ } else {
+ reset(endDiv, textLayerDiv);
+ }
+ }
+ isFirefox ??= getComputedStyle(this.#textLayers.values().next().value).getPropertyValue("-moz-user-select") === "none";
+ if (isFirefox) {
+ return;
+ }
+ const range = selection.getRangeAt(0);
+ const modifyStart = prevRange && (range.compareBoundaryPoints(Range.END_TO_END, prevRange) === 0 || range.compareBoundaryPoints(Range.START_TO_END, prevRange) === 0);
+ let anchor = modifyStart ? range.startContainer : range.endContainer;
+ if (anchor.nodeType === Node.TEXT_NODE) {
+ anchor = anchor.parentNode;
+ }
+ if (anchor.classList?.contains("highlight")) {
+ anchor = anchor.parentNode;
+ }
+ if (!modifyStart && range.endOffset === 0) {
+ do {
+ while (!anchor.previousSibling) {
+ anchor = anchor.parentNode;
+ }
+ anchor = anchor.previousSibling;
+ } while (!anchor.childNodes.length);
+ }
+ const parentTextLayer = anchor.parentElement?.closest(".textLayer");
+ const endDiv = this.#textLayers.get(parentTextLayer);
+ if (endDiv) {
+ endDiv.style.width = parentTextLayer.style.width;
+ endDiv.style.height = parentTextLayer.style.height;
+ endDiv.style.userSelect = "text";
+ anchor.parentElement.insertBefore(endDiv, modifyStart ? anchor : anchor.nextSibling);
+ }
+ prevRange = range.cloneRange();
+ }, {
+ signal
+ });
+ }
+}
+
+;// ./web/xfa_layer_builder.js
+
+class XfaLayerBuilder {
+ constructor({
+ pdfPage,
+ annotationStorage = null,
+ linkService,
+ xfaHtml = null
+ }) {
+ this.pdfPage = pdfPage;
+ this.annotationStorage = annotationStorage;
+ this.linkService = linkService;
+ this.xfaHtml = xfaHtml;
+ this.div = null;
+ this._cancelled = false;
+ }
+ async render({
+ viewport,
+ intent = "display"
+ }) {
+ if (intent === "print") {
+ const parameters = {
+ viewport: viewport.clone({
+ dontFlip: true
+ }),
+ div: this.div,
+ xfaHtml: this.xfaHtml,
+ annotationStorage: this.annotationStorage,
+ linkService: this.linkService,
+ intent
+ };
+ this.div = document.createElement("div");
+ parameters.div = this.div;
+ return XfaLayer.render(parameters);
+ }
+ const xfaHtml = await this.pdfPage.getXfa();
+ if (this._cancelled || !xfaHtml) {
+ return {
+ textDivs: []
+ };
+ }
+ const parameters = {
+ viewport: viewport.clone({
+ dontFlip: true
+ }),
+ div: this.div,
+ xfaHtml,
+ annotationStorage: this.annotationStorage,
+ linkService: this.linkService,
+ intent
+ };
+ if (this.div) {
+ return XfaLayer.update(parameters);
+ }
+ this.div = document.createElement("div");
+ parameters.div = this.div;
+ return XfaLayer.render(parameters);
+ }
+ cancel() {
+ this._cancelled = true;
+ }
+ hide() {
+ if (!this.div) {
+ return;
+ }
+ this.div.hidden = true;
+ }
+}
+
+;// ./web/pdf_page_view.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+const DEFAULT_LAYER_PROPERTIES = {
+ annotationEditorUIManager: null,
+ annotationStorage: null,
+ downloadManager: null,
+ enableScripting: false,
+ fieldObjectsPromise: null,
+ findController: null,
+ hasJSActionsPromise: null,
+ get linkService() {
+ return new SimpleLinkService();
+ }
+};
+const LAYERS_ORDER = new Map([["canvasWrapper", 0], ["textLayer", 1], ["annotationLayer", 2], ["annotationEditorLayer", 3], ["xfaLayer", 3]]);
+class PDFPageView extends BasePDFPageView {
+ #abortSignal = null;
+ #annotationMode = AnnotationMode.ENABLE_FORMS;
+ #canvasWrapper = null;
+ #commentManager = null;
+ #enableAutoLinking = true;
+ #hasRestrictedScaling = false;
+ #isEditing = false;
+ #layerProperties = null;
+ #needsRestrictedScaling = false;
+ #originalViewport = null;
+ #previousRotation = null;
+ #scaleRoundX = 1;
+ #scaleRoundY = 1;
+ #textLayerMode = TextLayerMode.ENABLE;
+ #userUnit = 1;
+ #useThumbnailCanvas = {
+ directDrawing: true,
+ initialOptionalContent: true,
+ regularAnnotations: true
+ };
+ #layers = [null, null, null, null];
+ constructor(options) {
+ super(options);
+ const {
+ container,
+ defaultViewport
+ } = options;
+ this.renderingId = "page" + this.id;
+ this.#layerProperties = options.layerProperties || DEFAULT_LAYER_PROPERTIES;
+ this.#abortSignal = options.abortSignal || null;
+ this.pdfPage = null;
+ this.pageLabel = null;
+ this.rotation = 0;
+ this.scale = options.scale || DEFAULT_SCALE;
+ this.viewport = defaultViewport;
+ this.pdfPageRotate = defaultViewport.rotation;
+ this._optionalContentConfigPromise = options.optionalContentConfigPromise || null;
+ this.#textLayerMode = options.textLayerMode ?? TextLayerMode.ENABLE;
+ this.#annotationMode = options.annotationMode ?? AnnotationMode.ENABLE_FORMS;
+ this.imageResourcesPath = options.imageResourcesPath || "";
+ this.enableDetailCanvas = options.enableDetailCanvas ?? true;
+ this.maxCanvasPixels = options.maxCanvasPixels ?? AppOptions.get("maxCanvasPixels");
+ this.maxCanvasDim = options.maxCanvasDim || AppOptions.get("maxCanvasDim");
+ this.capCanvasAreaFactor = options.capCanvasAreaFactor ?? AppOptions.get("capCanvasAreaFactor");
+ this.#enableAutoLinking = options.enableAutoLinking !== false;
+ this.#commentManager = options.commentManager || null;
+ this.l10n = options.l10n;
+ this.l10n ||= new genericl10n_GenericL10n();
+ this._isStandalone = !this.renderingQueue?.hasViewer();
+ this._container = container;
+ this._annotationCanvasMap = null;
+ this.annotationLayer = null;
+ this.annotationEditorLayer = null;
+ this.textLayer = null;
+ this.xfaLayer = null;
+ this.structTreeLayer = null;
+ this.drawLayer = null;
+ this.detailView = null;
+ const div = document.createElement("div");
+ div.className = "page";
+ div.setAttribute("data-page-number", this.id);
+ div.setAttribute("role", "region");
+ div.setAttribute("data-l10n-id", "pdfjs-page-landmark");
+ div.setAttribute("data-l10n-args", JSON.stringify({
+ page: this.id
+ }));
+ this.div = div;
+ this.#setDimensions();
+ container?.append(div);
+ if (this._isStandalone) {
+ container?.style.setProperty("--scale-factor", this.scale * PixelsPerInch.PDF_TO_CSS_UNITS);
+ if (this.pageColors?.background) {
+ container?.style.setProperty("--page-bg-color", this.pageColors.background);
+ }
+ const {
+ optionalContentConfigPromise
+ } = options;
+ if (optionalContentConfigPromise) {
+ optionalContentConfigPromise.then(optionalContentConfig => {
+ if (optionalContentConfigPromise !== this._optionalContentConfigPromise) {
+ return;
+ }
+ this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility;
+ });
+ }
+ if (!options.l10n) {
+ this.l10n.translate(this.div);
+ }
+ }
+ }
+ clone(id) {
+ const clone = new PDFPageView({
+ container: null,
+ eventBus: this.eventBus,
+ pagesColors: this.pageColors,
+ renderingQueue: this.renderingQueue,
+ enableOptimizedPartialRendering: this.enableOptimizedPartialRendering,
+ minDurationToUpdateCanvas: this.minDurationToUpdateCanvas,
+ defaultViewport: this.viewport,
+ id,
+ layerProperties: this.#layerProperties,
+ abortSignal: this.#abortSignal,
+ scale: this.scale,
+ optionalContentConfigPromise: this._optionalContentConfigPromise,
+ textLayerMode: this.#textLayerMode,
+ annotationMode: this.#annotationMode,
+ imageResourcesPath: this.imageResourcesPath,
+ enableDetailCanvas: this.enableDetailCanvas,
+ maxCanvasPixels: this.maxCanvasPixels,
+ maxCanvasDim: this.maxCanvasDim,
+ capCanvasAreaFactor: this.capCanvasAreaFactor,
+ enableAutoLinking: this.#enableAutoLinking,
+ commentManager: this.#commentManager,
+ l10n: this.l10n
+ });
+ clone.setPdfPage(this.pdfPage.clone(id - 1));
+ return clone;
+ }
+ #addLayer(div, name) {
+ const pos = LAYERS_ORDER.get(name);
+ const oldDiv = this.#layers[pos];
+ this.#layers[pos] = div;
+ if (oldDiv) {
+ oldDiv.replaceWith(div);
+ return;
+ }
+ for (let i = pos - 1; i >= 0; i--) {
+ const layer = this.#layers[i];
+ if (layer) {
+ layer.after(div);
+ return;
+ }
+ }
+ this.div.prepend(div);
+ }
+ #setDimensions() {
+ const {
+ div,
+ viewport
+ } = this;
+ if (viewport.userUnit !== this.#userUnit) {
+ if (viewport.userUnit !== 1) {
+ div.style.setProperty("--user-unit", viewport.userUnit);
+ } else {
+ div.style.removeProperty("--user-unit");
+ }
+ this.#userUnit = viewport.userUnit;
+ }
+ if (this.pdfPage) {
+ if (this.#previousRotation === viewport.rotation) {
+ return;
+ }
+ this.#previousRotation = viewport.rotation;
+ }
+ setLayerDimensions(div, viewport, true, false);
+ }
+ updatePageNumber(newPageNumber) {
+ if (this.id === newPageNumber) {
+ return;
+ }
+ const oldPageNumber = this.id;
+ this.id = newPageNumber;
+ this.renderingId = `page${newPageNumber}`;
+ if (this.pdfPage) {
+ this.pdfPage.pageNumber = newPageNumber;
+ }
+ this.setPageLabel(this.pageLabel);
+ const {
+ div
+ } = this;
+ div.setAttribute("data-page-number", newPageNumber);
+ div.setAttribute("data-l10n-args", JSON.stringify({
+ page: newPageNumber
+ }));
+ this._textHighlighter.pageIdx = newPageNumber - 1;
+ this.#layerProperties.annotationEditorUIManager?.updatePageIndex(oldPageNumber - 1, newPageNumber - 1);
+ }
+ setPdfPage(pdfPage) {
+ if (this._isStandalone && (this.pageColors?.foreground === "CanvasText" || this.pageColors?.background === "Canvas")) {
+ this._container?.style.setProperty("--hcm-highlight-filter", pdfPage.filterFactory.addHighlightHCMFilter("highlight", "CanvasText", "Canvas", "HighlightText", "Highlight"));
+ this._container?.style.setProperty("--hcm-highlight-selected-filter", pdfPage.filterFactory.addHighlightHCMFilter("highlight_selected", "CanvasText", "Canvas", "HighlightText", "Highlight"));
+ }
+ this.pdfPage = pdfPage;
+ this.pdfPageRotate = pdfPage.rotate;
+ const totalRotation = (this.rotation + this.pdfPageRotate) % 360;
+ this.viewport = pdfPage.getViewport({
+ scale: this.scale * PixelsPerInch.PDF_TO_CSS_UNITS,
+ rotation: totalRotation
+ });
+ this.#setDimensions();
+ this.reset();
+ }
+ destroy() {
+ this.reset();
+ this.pdfPage?.cleanup();
+ }
+ deleteMe(isCut) {
+ if (isCut) {
+ this.div.remove();
+ return;
+ }
+ this.destroy();
+ this.#layerProperties.annotationEditorUIManager?.deletePage(this.id);
+ }
+ hasEditableAnnotations() {
+ return !!this.annotationLayer?.hasEditableAnnotations();
+ }
+ get _textHighlighter() {
+ return shadow(this, "_textHighlighter", new TextHighlighter({
+ pageIndex: this.id - 1,
+ eventBus: this.eventBus,
+ findController: this.#layerProperties.findController
+ }));
+ }
+ #dispatchLayerRendered(name, error) {
+ this.eventBus.dispatch(name, {
+ source: this,
+ pageNumber: this.id,
+ error
+ });
+ }
+ async #renderAnnotationLayer() {
+ let error = null;
+ try {
+ await this.annotationLayer.render({
+ viewport: this.viewport,
+ intent: "display",
+ structTreeLayer: this.structTreeLayer
+ });
+ } catch (ex) {
+ console.error("#renderAnnotationLayer:", ex);
+ error = ex;
+ } finally {
+ this.#dispatchLayerRendered("annotationlayerrendered", error);
+ }
+ }
+ async #renderAnnotationEditorLayer() {
+ let error = null;
+ try {
+ await this.annotationEditorLayer.render({
+ viewport: this.viewport,
+ intent: "display"
+ });
+ } catch (ex) {
+ console.error("#renderAnnotationEditorLayer:", ex);
+ error = ex;
+ } finally {
+ this.#dispatchLayerRendered("annotationeditorlayerrendered", error);
+ }
+ }
+ async #renderDrawLayer() {
+ try {
+ await this.drawLayer.render({
+ intent: "display"
+ });
+ } catch (ex) {
+ console.error("#renderDrawLayer:", ex);
+ }
+ }
+ async #renderXfaLayer() {
+ let error = null;
+ try {
+ const result = await this.xfaLayer.render({
+ viewport: this.viewport,
+ intent: "display"
+ });
+ if (result?.textDivs && this._textHighlighter) {
+ this.#buildXfaTextContentItems(result.textDivs);
+ }
+ } catch (ex) {
+ console.error("#renderXfaLayer:", ex);
+ error = ex;
+ } finally {
+ if (this.xfaLayer?.div) {
+ this.l10n.pause();
+ this.#addLayer(this.xfaLayer.div, "xfaLayer");
+ this.l10n.resume();
+ }
+ this.#dispatchLayerRendered("xfalayerrendered", error);
+ }
+ }
+ async #renderTextLayer() {
+ if (!this.textLayer) {
+ return;
+ }
+ let error = null;
+ try {
+ await this.textLayer.render({
+ viewport: this.viewport,
+ images: this.imageCoordinates ? new TextLayerImages(this.imagesRightClickMinSize, this.imageCoordinates, this.viewport, () => this.canvas) : null
+ });
+ } catch (ex) {
+ if (ex instanceof AbortException) {
+ return;
+ }
+ console.error("#renderTextLayer:", ex);
+ error = ex;
+ }
+ this.#dispatchLayerRendered("textlayerrendered", error);
+ this.#renderStructTreeLayer();
+ }
+ async #renderStructTreeLayer() {
+ if (!this.textLayer) {
+ return;
+ }
+ const treeDom = await this.structTreeLayer?.render();
+ if (treeDom) {
+ this.l10n.pause();
+ this.structTreeLayer?.updateTextLayer();
+ if (this.canvas && treeDom.parentNode !== this.canvas) {
+ this.canvas.append(treeDom);
+ }
+ this.l10n.resume();
+ }
+ this.structTreeLayer?.show();
+ }
+ async #buildXfaTextContentItems(textDivs) {
+ const text = await this.pdfPage.getTextContent();
+ const items = [];
+ for (const item of text.items) {
+ items.push(item.str);
+ }
+ this._textHighlighter.setTextMapping(textDivs, items);
+ this._textHighlighter.enable();
+ }
+ async #injectLinkAnnotations(textLayerPromise) {
+ let error = null;
+ try {
+ await textLayerPromise;
+ if (!this.annotationLayer) {
+ return;
+ }
+ await this.annotationLayer.injectLinkAnnotations(Autolinker.processLinks(this));
+ } catch (ex) {
+ console.error("#injectLinkAnnotations:", ex);
+ error = ex;
+ }
+ }
+ _resetCanvas() {
+ super._resetCanvas();
+ this.#originalViewport = null;
+ }
+ reset({
+ keepAnnotationLayer = false,
+ keepAnnotationEditorLayer = false,
+ keepXfaLayer = false,
+ keepTextLayer = false,
+ keepCanvasWrapper = false,
+ preserveDetailViewState = false
+ } = {}) {
+ const keepPdfBugGroups = this.pdfPage?._pdfBug ?? false;
+ this.cancelRendering({
+ keepAnnotationLayer,
+ keepAnnotationEditorLayer,
+ keepXfaLayer,
+ keepTextLayer
+ });
+ this.renderingState = RenderingStates.INITIAL;
+ const div = this.div;
+ const childNodes = div.childNodes,
+ annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null,
+ annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null,
+ xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null,
+ textLayerNode = keepTextLayer && this.textLayer?.div || null,
+ canvasWrapperNode = keepCanvasWrapper && this.#canvasWrapper || null;
+ for (let i = childNodes.length - 1; i >= 0; i--) {
+ const node = childNodes[i];
+ switch (node) {
+ case annotationLayerNode:
+ case annotationEditorLayerNode:
+ case xfaLayerNode:
+ case textLayerNode:
+ case canvasWrapperNode:
+ continue;
+ }
+ if (keepPdfBugGroups && node.classList.contains("pdfBugGroupsLayer")) {
+ continue;
+ }
+ node.remove();
+ const layerIndex = this.#layers.indexOf(node);
+ if (layerIndex >= 0) {
+ this.#layers[layerIndex] = null;
+ }
+ }
+ div.removeAttribute("data-loaded");
+ if (annotationLayerNode) {
+ this.annotationLayer.hide();
+ }
+ if (annotationEditorLayerNode) {
+ this.annotationEditorLayer.hide();
+ }
+ if (xfaLayerNode) {
+ this.xfaLayer.hide();
+ }
+ if (textLayerNode) {
+ this.textLayer.hide();
+ }
+ this.structTreeLayer?.hide();
+ if (!keepCanvasWrapper && this.#canvasWrapper) {
+ this.#canvasWrapper = null;
+ this._resetCanvas();
+ }
+ if (!preserveDetailViewState) {
+ this.detailView?.reset({
+ keepCanvas: keepCanvasWrapper
+ });
+ if (!keepCanvasWrapper) {
+ this.detailView = null;
+ }
+ }
+ }
+ toggleEditingMode(isEditing) {
+ this.#isEditing = isEditing;
+ if (!this.hasEditableAnnotations()) {
+ return;
+ }
+ this.reset({
+ keepAnnotationLayer: true,
+ keepAnnotationEditorLayer: true,
+ keepXfaLayer: true,
+ keepTextLayer: true,
+ keepCanvasWrapper: true
+ });
+ }
+ updateVisibleArea(visibleArea) {
+ if (this.enableDetailCanvas) {
+ if (this.#needsRestrictedScaling && this.maxCanvasPixels > 0 && visibleArea) {
+ this.detailView ??= new PDFPageDetailView({
+ pageView: this,
+ enableOptimizedPartialRendering: this.enableOptimizedPartialRendering,
+ imagesRightClickMinSize: -1
+ });
+ this.detailView.update({
+ visibleArea
+ });
+ } else if (this.detailView) {
+ this.detailView.reset();
+ this.detailView = null;
+ }
+ }
+ }
+ update({
+ scale = 0,
+ rotation = null,
+ optionalContentConfigPromise = null,
+ drawingDelay = -1
+ }) {
+ this.scale = scale || this.scale;
+ if (typeof rotation === "number") {
+ this.rotation = rotation;
+ }
+ if (optionalContentConfigPromise instanceof Promise) {
+ this._optionalContentConfigPromise = optionalContentConfigPromise;
+ optionalContentConfigPromise.then(optionalContentConfig => {
+ if (optionalContentConfigPromise !== this._optionalContentConfigPromise) {
+ return;
+ }
+ this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility;
+ });
+ }
+ this.#useThumbnailCanvas.directDrawing = true;
+ const totalRotation = (this.rotation + this.pdfPageRotate) % 360;
+ this.viewport = this.viewport.clone({
+ scale: this.scale * PixelsPerInch.PDF_TO_CSS_UNITS,
+ rotation: totalRotation
+ });
+ this.#setDimensions();
+ if (this._isStandalone) {
+ this._container?.style.setProperty("--scale-factor", this.viewport.scale);
+ }
+ this.#computeScale();
+ if (this.canvas) {
+ const onlyCssZoom = this.#hasRestrictedScaling && this.#needsRestrictedScaling;
+ const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000;
+ if (postponeDrawing || onlyCssZoom) {
+ if (postponeDrawing && !onlyCssZoom && this.renderingState !== RenderingStates.FINISHED) {
+ this.cancelRendering({
+ keepAnnotationLayer: true,
+ keepAnnotationEditorLayer: true,
+ keepXfaLayer: true,
+ keepTextLayer: true,
+ cancelExtraDelay: drawingDelay
+ });
+ this.renderingState = RenderingStates.FINISHED;
+ this.#useThumbnailCanvas.directDrawing = false;
+ }
+ this.cssTransform({
+ redrawAnnotationLayer: true,
+ redrawAnnotationEditorLayer: true,
+ redrawXfaLayer: true,
+ redrawTextLayer: !postponeDrawing,
+ hideTextLayer: postponeDrawing
+ });
+ if (!postponeDrawing) {
+ this.detailView?.update({
+ underlyingViewUpdated: true
+ });
+ this.dispatchPageRendered(true, false);
+ }
+ return;
+ }
+ }
+ this.cssTransform({});
+ this.reset({
+ keepAnnotationLayer: true,
+ keepAnnotationEditorLayer: true,
+ keepXfaLayer: true,
+ keepTextLayer: true,
+ keepCanvasWrapper: true,
+ preserveDetailViewState: true
+ });
+ this.detailView?.update({
+ underlyingViewUpdated: true
+ });
+ }
+ #computeScale() {
+ const {
+ width,
+ height
+ } = this.viewport;
+ const outputScale = this.outputScale = new OutputScale();
+ if (this.maxCanvasPixels === 0) {
+ const invScale = 1 / this.scale;
+ outputScale.sx *= invScale;
+ outputScale.sy *= invScale;
+ this.#needsRestrictedScaling = true;
+ } else {
+ this.#needsRestrictedScaling = outputScale.limitCanvas(width, height, this.maxCanvasPixels, this.maxCanvasDim, this.capCanvasAreaFactor);
+ if (this.#needsRestrictedScaling && this.enableDetailCanvas) {
+ const factor = this.enableOptimizedPartialRendering ? 4 : 2;
+ outputScale.sx /= factor;
+ outputScale.sy /= factor;
+ }
+ }
+ }
+ cancelRendering({
+ keepAnnotationLayer = false,
+ keepAnnotationEditorLayer = false,
+ keepXfaLayer = false,
+ keepTextLayer = false,
+ cancelExtraDelay = 0
+ } = {}) {
+ super.cancelRendering({
+ cancelExtraDelay
+ });
+ if (this.textLayer && (!keepTextLayer || !this.textLayer.div)) {
+ this.textLayer.cancel();
+ this.textLayer = null;
+ }
+ if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) {
+ this.annotationLayer.cancel();
+ this.annotationLayer = null;
+ this._annotationCanvasMap = null;
+ }
+ if (this.structTreeLayer && !this.textLayer) {
+ this.structTreeLayer = null;
+ }
+ if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) {
+ if (this.drawLayer) {
+ this.drawLayer.cancel();
+ this.drawLayer = null;
+ }
+ this.annotationEditorLayer.cancel();
+ this.annotationEditorLayer = null;
+ }
+ if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) {
+ this.xfaLayer.cancel();
+ this.xfaLayer = null;
+ this._textHighlighter?.disable();
+ }
+ }
+ cssTransform({
+ redrawAnnotationLayer = false,
+ redrawAnnotationEditorLayer = false,
+ redrawXfaLayer = false,
+ redrawTextLayer = false,
+ hideTextLayer = false
+ }) {
+ const {
+ canvas
+ } = this;
+ if (!canvas) {
+ return;
+ }
+ const originalViewport = this.#originalViewport;
+ if (this.viewport !== originalViewport) {
+ const relativeRotation = (360 + this.viewport.rotation - originalViewport.rotation) % 360;
+ if (relativeRotation === 90 || relativeRotation === 270) {
+ const {
+ width,
+ height
+ } = this.viewport;
+ const scaleX = height / width;
+ const scaleY = width / height;
+ canvas.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX},${scaleY})`;
+ } else {
+ canvas.style.transform = relativeRotation === 0 ? "" : `rotate(${relativeRotation}deg)`;
+ }
+ }
+ if (redrawAnnotationLayer && this.annotationLayer) {
+ this.#renderAnnotationLayer();
+ }
+ if (redrawAnnotationEditorLayer && this.annotationEditorLayer) {
+ if (this.drawLayer) {
+ this.#renderDrawLayer();
+ }
+ this.#renderAnnotationEditorLayer();
+ }
+ if (redrawXfaLayer && this.xfaLayer) {
+ this.#renderXfaLayer();
+ }
+ if (this.textLayer) {
+ if (hideTextLayer) {
+ this.textLayer.hide();
+ this.structTreeLayer?.hide();
+ } else if (redrawTextLayer) {
+ this.#renderTextLayer();
+ }
+ }
+ }
+ get width() {
+ return this.viewport.width;
+ }
+ get height() {
+ return this.viewport.height;
+ }
+ getPagePoint(x, y) {
+ return this.viewport.convertToPdfPoint(x, y);
+ }
+ _ensureCanvasWrapper() {
+ let canvasWrapper = this.#canvasWrapper;
+ if (!canvasWrapper) {
+ canvasWrapper = this.#canvasWrapper = document.createElement("div");
+ canvasWrapper.classList.add("canvasWrapper");
+ this.#addLayer(canvasWrapper, "canvasWrapper");
+ }
+ return canvasWrapper;
+ }
+ _getRenderingContext(canvas, transform, recordOperations, recordImages) {
+ return {
+ canvas,
+ transform,
+ viewport: this.viewport,
+ annotationMode: this.#annotationMode,
+ optionalContentConfigPromise: this._optionalContentConfigPromise,
+ annotationCanvasMap: this._annotationCanvasMap,
+ pageColors: this.pageColors,
+ isEditing: this.#isEditing,
+ recordOperations,
+ recordImages
+ };
+ }
+ async draw() {
+ if (this.renderingState !== RenderingStates.INITIAL) {
+ console.error("Must be in new state before drawing");
+ this.reset();
+ }
+ const {
+ div,
+ l10n,
+ pdfPage,
+ viewport
+ } = this;
+ if (!pdfPage) {
+ this.renderingState = RenderingStates.FINISHED;
+ throw new Error("pdfPage is not loaded");
+ }
+ this.renderingState = RenderingStates.RUNNING;
+ const canvasWrapper = this._ensureCanvasWrapper();
+ if (!this.textLayer && this.#textLayerMode !== TextLayerMode.DISABLE && !pdfPage.isPureXfa) {
+ this._accessibilityManager ||= new TextAccessibilityManager();
+ this.textLayer = new TextLayerBuilder({
+ pdfPage,
+ highlighter: this._textHighlighter,
+ accessibilityManager: this._accessibilityManager,
+ enablePermissions: this.#textLayerMode === TextLayerMode.ENABLE_PERMISSIONS,
+ onAppend: textLayerDiv => {
+ this.l10n.pause();
+ this.#addLayer(textLayerDiv, "textLayer");
+ this.l10n.resume();
+ },
+ abortSignal: this.#abortSignal
+ });
+ }
+ if (!this.annotationLayer && this.#annotationMode !== AnnotationMode.DISABLE) {
+ const {
+ annotationStorage,
+ annotationEditorUIManager,
+ downloadManager,
+ enableComment,
+ enableScripting,
+ fieldObjectsPromise,
+ hasJSActionsPromise,
+ linkService
+ } = this.#layerProperties;
+ this._annotationCanvasMap ||= new Map();
+ this.annotationLayer = new AnnotationLayerBuilder({
+ pdfPage,
+ annotationStorage,
+ imageResourcesPath: this.imageResourcesPath,
+ renderForms: this.#annotationMode === AnnotationMode.ENABLE_FORMS,
+ linkService,
+ downloadManager,
+ enableComment,
+ enableScripting,
+ hasJSActionsPromise,
+ fieldObjectsPromise,
+ annotationCanvasMap: this._annotationCanvasMap,
+ accessibilityManager: this._accessibilityManager,
+ annotationEditorUIManager,
+ commentManager: this.#commentManager,
+ onAppend: annotationLayerDiv => {
+ this.#addLayer(annotationLayerDiv, "annotationLayer");
+ }
+ });
+ }
+ const {
+ width,
+ height
+ } = viewport;
+ this.#originalViewport = viewport;
+ const {
+ canvas,
+ prevCanvas
+ } = this._createCanvas(newCanvas => {
+ canvasWrapper.prepend(newCanvas);
+ });
+ canvas.setAttribute("role", "presentation");
+ if (!this.outputScale) {
+ this.#computeScale();
+ }
+ const {
+ outputScale
+ } = this;
+ this.#hasRestrictedScaling = this.#needsRestrictedScaling;
+ const sfx = approximateFraction(outputScale.sx);
+ const sfy = approximateFraction(outputScale.sy);
+ const canvasWidth = canvas.width = floorToDivide(calcRound(width * outputScale.sx), sfx[0]);
+ const canvasHeight = canvas.height = floorToDivide(calcRound(height * outputScale.sy), sfy[0]);
+ const pageWidth = floorToDivide(calcRound(width), sfx[1]);
+ const pageHeight = floorToDivide(calcRound(height), sfy[1]);
+ outputScale.sx = canvasWidth / pageWidth;
+ outputScale.sy = canvasHeight / pageHeight;
+ if (this.#scaleRoundX !== sfx[1]) {
+ div.style.setProperty("--scale-round-x", `${sfx[1]}px`);
+ this.#scaleRoundX = sfx[1];
+ }
+ if (this.#scaleRoundY !== sfy[1]) {
+ div.style.setProperty("--scale-round-y", `${sfy[1]}px`);
+ this.#scaleRoundY = sfy[1];
+ }
+ const recordBBoxes = this.enableOptimizedPartialRendering && this.#hasRestrictedScaling && !this.recordedBBoxes;
+ const recordImages = this.imagesRightClickMinSize !== -1 && !this.imageCoordinates;
+ const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null;
+ const resultPromise = this._drawCanvas(this._getRenderingContext(canvas, transform, recordBBoxes, recordImages), () => {
+ prevCanvas?.remove();
+ this._resetCanvas();
+ }, renderTask => {
+ this.#useThumbnailCanvas.regularAnnotations = !renderTask.separateAnnots;
+ this.dispatchPageRendered(false, false);
+ }).then(async () => {
+ if (this.renderingState !== RenderingStates.FINISHED) {
+ return;
+ }
+ this.structTreeLayer ||= new StructTreeLayerBuilder(pdfPage, viewport.rawDims);
+ const textLayerPromise = this.#renderTextLayer();
+ if (this.annotationLayer) {
+ await this.#renderAnnotationLayer();
+ if (this.#enableAutoLinking && this.annotationLayer && this.textLayer) {
+ await this.#injectLinkAnnotations(textLayerPromise);
+ }
+ }
+ const {
+ annotationEditorUIManager
+ } = this.#layerProperties;
+ if (!annotationEditorUIManager) {
+ return;
+ }
+ this.drawLayer ||= new DrawLayerBuilder();
+ await this.#renderDrawLayer();
+ this.drawLayer.setParent(canvasWrapper);
+ if (this.annotationLayer || this.#annotationMode === AnnotationMode.DISABLE) {
+ this.annotationEditorLayer ||= new AnnotationEditorLayerBuilder({
+ uiManager: annotationEditorUIManager,
+ pageIndex: this.id - 1,
+ l10n,
+ structTreeLayer: this.structTreeLayer,
+ accessibilityManager: this._accessibilityManager,
+ annotationLayer: this.annotationLayer?.annotationLayer,
+ textLayer: this.textLayer,
+ drawLayer: this.drawLayer.getDrawLayer(),
+ onAppend: annotationEditorLayerDiv => {
+ this.#addLayer(annotationEditorLayerDiv, "annotationEditorLayer");
+ }
+ });
+ this.#renderAnnotationEditorLayer();
+ }
+ });
+ if (pdfPage.isPureXfa) {
+ if (!this.xfaLayer) {
+ const {
+ annotationStorage,
+ linkService
+ } = this.#layerProperties;
+ this.xfaLayer = new XfaLayerBuilder({
+ pdfPage,
+ annotationStorage,
+ linkService
+ });
+ }
+ this.#renderXfaLayer();
+ }
+ div.setAttribute("data-loaded", true);
+ this.dispatchPageRender();
+ return resultPromise;
+ }
+ setPageLabel(label) {
+ this.pageLabel = typeof label === "string" ? label : null;
+ this.div.setAttribute("data-l10n-args", JSON.stringify({
+ page: this.pageLabel ?? this.id
+ }));
+ if (this.pageLabel !== null) {
+ this.div.setAttribute("data-page-label", this.pageLabel);
+ } else {
+ this.div.removeAttribute("data-page-label");
+ }
+ }
+ get thumbnailCanvas() {
+ const {
+ directDrawing,
+ initialOptionalContent,
+ regularAnnotations
+ } = this.#useThumbnailCanvas;
+ return directDrawing && initialOptionalContent && regularAnnotations ? this.canvas : null;
+ }
+}
+
+;// ./web/generic_scripting.js
+
+
+
+
+async function docProperties(pdfDocument) {
+ const url = "",
+ baseUrl = "";
+ const {
+ info,
+ metadata,
+ contentDispositionFilename,
+ contentLength
+ } = await pdfDocument.getMetadata();
+ return {
+ ...info,
+ baseURL: baseUrl,
+ filesize: contentLength || (await pdfDocument.getDownloadInfo()).length,
+ filename: contentDispositionFilename || getPdfFilenameFromUrl(url),
+ metadata: metadata?.getRaw(),
+ authors: metadata?.get("dc:creator"),
+ numPages: pdfDocument.numPages,
+ URL: url
+ };
+}
+class GenericScripting {
+ constructor(sandboxBundleSrc, wasmUrl) {
+ this._ready = new Promise((resolve, reject) => {
+ const sandbox = import(
+ /*webpackIgnore: true*/
+ /*@vite-ignore*/
+ sandboxBundleSrc);
+ sandbox.then(pdfjsSandbox => {
+ resolve(pdfjsSandbox.QuickJSSandbox(new URL(wasmUrl, location.href).href));
+ }).catch(reject);
+ });
+ }
+ async createSandbox(data) {
+ const sandbox = await this._ready;
+ sandbox.create(data);
+ }
+ async dispatchEventInSandbox(event) {
+ const sandbox = await this._ready;
+ setTimeout(() => sandbox.dispatchEvent(event), 0);
+ }
+ async destroySandbox() {
+ const sandbox = await this._ready;
+ sandbox.nukeSandbox();
+ }
+}
+
+;// ./web/pdf_scripting_manager.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+class PDFScriptingManager {
+ #closeCapability = null;
+ #destroyCapability = null;
+ #docProperties = null;
+ #eventAbortController = null;
+ #eventBus = null;
+ #externalServices = null;
+ #pdfDocument = null;
+ #pdfViewer = null;
+ #ready = false;
+ #scripting = null;
+ #willPrintCapability = null;
+ constructor({
+ eventBus,
+ externalServices = null,
+ docProperties = null
+ }) {
+ this.#eventBus = eventBus;
+ this.#externalServices = externalServices;
+ this.#docProperties = docProperties;
+ }
+ setViewer(pdfViewer) {
+ this.#pdfViewer = pdfViewer;
+ }
+ async setDocument(pdfDocument) {
+ if (this.#pdfDocument) {
+ await this.#destroyScripting();
+ }
+ this.#pdfDocument = pdfDocument;
+ if (!pdfDocument) {
+ return;
+ }
+ const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]);
+ if (!objects && !docActions) {
+ await this.#destroyScripting();
+ return;
+ }
+ if (pdfDocument !== this.#pdfDocument) {
+ return;
+ }
+ try {
+ this.#scripting = this.#initScripting();
+ } catch (error) {
+ console.error("setDocument:", error);
+ await this.#destroyScripting();
+ return;
+ }
+ const eventBus = this.#eventBus;
+ this.#eventAbortController = new AbortController();
+ const {
+ signal
+ } = this.#eventAbortController;
+ eventBus._on("updatefromsandbox", event => {
+ if (event?.source === window) {
+ this.#updateFromSandbox(event.detail);
+ }
+ }, {
+ signal
+ });
+ eventBus._on("dispatcheventinsandbox", event => {
+ this.#scripting?.dispatchEventInSandbox(event.detail);
+ }, {
+ signal
+ });
+ eventBus._on("pagechanging", ({
+ pageNumber,
+ previous
+ }) => {
+ if (pageNumber === previous) {
+ return;
+ }
+ this.#dispatchPageClose(previous);
+ this.#dispatchPageOpen(pageNumber);
+ }, {
+ signal
+ });
+ eventBus._on("pagerendered", ({
+ pageNumber
+ }) => {
+ if (!this._pageOpenPending.has(pageNumber)) {
+ return;
+ }
+ if (pageNumber !== this.#pdfViewer.currentPageNumber) {
+ return;
+ }
+ this.#dispatchPageOpen(pageNumber);
+ }, {
+ signal
+ });
+ eventBus._on("pagesdestroy", async () => {
+ await this.#dispatchPageClose(this.#pdfViewer.currentPageNumber);
+ await this.#scripting?.dispatchEventInSandbox({
+ id: "doc",
+ name: "WillClose"
+ });
+ this.#closeCapability?.resolve();
+ }, {
+ signal
+ });
+ try {
+ const docProperties = await this.#docProperties(pdfDocument);
+ if (pdfDocument !== this.#pdfDocument) {
+ return;
+ }
+ await this.#scripting.createSandbox({
+ objects,
+ calculationOrder,
+ appInfo: {
+ platform: navigator.platform,
+ language: navigator.language
+ },
+ docInfo: {
+ ...docProperties,
+ actions: docActions
+ }
+ });
+ eventBus.dispatch("sandboxcreated", {
+ source: this
+ });
+ } catch (error) {
+ console.error("setDocument:", error);
+ await this.#destroyScripting();
+ return;
+ }
+ await this.#scripting?.dispatchEventInSandbox({
+ id: "doc",
+ name: "Open"
+ });
+ await this.#dispatchPageOpen(this.#pdfViewer.currentPageNumber, true);
+ Promise.resolve().then(() => {
+ if (pdfDocument === this.#pdfDocument) {
+ this.#ready = true;
+ }
+ });
+ }
+ async dispatchWillSave() {
+ return this.#scripting?.dispatchEventInSandbox({
+ id: "doc",
+ name: "WillSave"
+ });
+ }
+ async dispatchDidSave() {
+ return this.#scripting?.dispatchEventInSandbox({
+ id: "doc",
+ name: "DidSave"
+ });
+ }
+ async dispatchWillPrint() {
+ if (!this.#scripting) {
+ return;
+ }
+ await this.#willPrintCapability?.promise;
+ this.#willPrintCapability = Promise.withResolvers();
+ try {
+ await this.#scripting.dispatchEventInSandbox({
+ id: "doc",
+ name: "WillPrint"
+ });
+ } catch (ex) {
+ this.#willPrintCapability.resolve();
+ this.#willPrintCapability = null;
+ throw ex;
+ }
+ await this.#willPrintCapability.promise;
+ }
+ async dispatchDidPrint() {
+ return this.#scripting?.dispatchEventInSandbox({
+ id: "doc",
+ name: "DidPrint"
+ });
+ }
+ get destroyPromise() {
+ return this.#destroyCapability?.promise || null;
+ }
+ get ready() {
+ return this.#ready;
+ }
+ get _pageOpenPending() {
+ return shadow(this, "_pageOpenPending", new Set());
+ }
+ get _visitedPages() {
+ return shadow(this, "_visitedPages", new Map());
+ }
+ async #updateFromSandbox(detail) {
+ const pdfViewer = this.#pdfViewer;
+ const isInPresentationMode = pdfViewer.isInPresentationMode || pdfViewer.isChangingPresentationMode;
+ const {
+ id,
+ siblings,
+ command,
+ value
+ } = detail;
+ if (!id) {
+ switch (command) {
+ case "clear":
+ console.clear();
+ break;
+ case "error":
+ console.error(value);
+ break;
+ case "layout":
+ if (!isInPresentationMode) {
+ const modes = apiPageLayoutToViewerModes(value);
+ pdfViewer.spreadMode = modes.spreadMode;
+ }
+ break;
+ case "page-num":
+ pdfViewer.currentPageNumber = value + 1;
+ break;
+ case "print":
+ await pdfViewer.pagesPromise;
+ this.#eventBus.dispatch("print", {
+ source: this
+ });
+ break;
+ case "println":
+ console.log(value);
+ break;
+ case "zoom":
+ if (!isInPresentationMode) {
+ pdfViewer.currentScaleValue = value;
+ }
+ break;
+ case "SaveAs":
+ this.#eventBus.dispatch("download", {
+ source: this
+ });
+ break;
+ case "FirstPage":
+ pdfViewer.currentPageNumber = 1;
+ break;
+ case "LastPage":
+ pdfViewer.currentPageNumber = pdfViewer.pagesCount;
+ break;
+ case "NextPage":
+ pdfViewer.nextPage();
+ break;
+ case "PrevPage":
+ pdfViewer.previousPage();
+ break;
+ case "ZoomViewIn":
+ if (!isInPresentationMode) {
+ pdfViewer.increaseScale();
+ }
+ break;
+ case "ZoomViewOut":
+ if (!isInPresentationMode) {
+ pdfViewer.decreaseScale();
+ }
+ break;
+ case "WillPrintFinished":
+ this.#willPrintCapability?.resolve();
+ this.#willPrintCapability = null;
+ break;
+ }
+ return;
+ }
+ if (isInPresentationMode && detail.focus) {
+ return;
+ }
+ delete detail.id;
+ delete detail.siblings;
+ const ids = siblings ? [id, ...siblings] : [id];
+ for (const elementId of ids) {
+ const element = document.querySelector(`[data-element-id="${elementId}"]`);
+ if (element) {
+ element.dispatchEvent(new CustomEvent("updatefromsandbox", {
+ detail
+ }));
+ } else {
+ this.#pdfDocument?.annotationStorage.setValue(elementId, detail);
+ }
+ }
+ }
+ async #dispatchPageOpen(pageNumber, initialize = false) {
+ const pdfDocument = this.#pdfDocument,
+ visitedPages = this._visitedPages;
+ if (initialize) {
+ this.#closeCapability = Promise.withResolvers();
+ }
+ if (!this.#closeCapability) {
+ return;
+ }
+ const pageView = this.#pdfViewer.getPageView(pageNumber - 1);
+ if (pageView?.renderingState !== RenderingStates.FINISHED) {
+ this._pageOpenPending.add(pageNumber);
+ return;
+ }
+ this._pageOpenPending.delete(pageNumber);
+ const actionsPromise = (async () => {
+ const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null);
+ if (pdfDocument !== this.#pdfDocument) {
+ return;
+ }
+ await this.#scripting?.dispatchEventInSandbox({
+ id: "page",
+ name: "PageOpen",
+ pageNumber,
+ actions
+ });
+ })();
+ visitedPages.set(pageNumber, actionsPromise);
+ }
+ async #dispatchPageClose(pageNumber) {
+ const pdfDocument = this.#pdfDocument,
+ visitedPages = this._visitedPages;
+ if (!this.#closeCapability) {
+ return;
+ }
+ if (this._pageOpenPending.has(pageNumber)) {
+ return;
+ }
+ const actionsPromise = visitedPages.get(pageNumber);
+ if (!actionsPromise) {
+ return;
+ }
+ visitedPages.set(pageNumber, null);
+ await actionsPromise;
+ if (pdfDocument !== this.#pdfDocument) {
+ return;
+ }
+ await this.#scripting?.dispatchEventInSandbox({
+ id: "page",
+ name: "PageClose",
+ pageNumber
+ });
+ }
+ #initScripting() {
+ this.#destroyCapability = Promise.withResolvers();
+ if (this.#scripting) {
+ throw new Error("#initScripting: Scripting already exists.");
+ }
+ return this.#externalServices.createScripting();
+ }
+ async #destroyScripting() {
+ if (!this.#scripting) {
+ this.#pdfDocument = null;
+ this.#destroyCapability?.resolve();
+ return;
+ }
+ if (this.#closeCapability) {
+ await Promise.race([this.#closeCapability.promise, new Promise(resolve => {
+ setTimeout(resolve, 1000);
+ })]).catch(() => {});
+ this.#closeCapability = null;
+ }
+ this.#pdfDocument = null;
+ try {
+ await this.#scripting.destroySandbox();
+ } catch {}
+ this.#willPrintCapability?.reject(new Error("Scripting destroyed."));
+ this.#willPrintCapability = null;
+ this.#eventAbortController?.abort();
+ this.#eventAbortController = null;
+ this._pageOpenPending.clear();
+ this._visitedPages.clear();
+ this.#scripting = null;
+ this.#ready = false;
+ this.#destroyCapability?.resolve();
+ }
+}
+
+;// ./web/pdf_scripting_manager.component.js
+
+
+class PDFScriptingManagerComponents extends PDFScriptingManager {
+ constructor(options) {
+ if (!options.externalServices) {
+ window.addEventListener("updatefromsandbox", event => {
+ options.eventBus.dispatch("updatefromsandbox", {
+ source: window,
+ detail: event.detail
+ });
+ });
+ }
+ options.externalServices ||= {
+ createScripting: () => new GenericScripting(options.sandboxBundleSrc, options.wasmUrl)
+ };
+ options.docProperties ||= pdfDocument => docProperties(pdfDocument);
+ super(options);
+ }
+}
+
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.every.js
+var es_iterator_every = __webpack_require__(1148);
+// EXTERNAL MODULE: ./node_modules/core-js/modules/es.iterator.some.js
+var es_iterator_some = __webpack_require__(3579);
+;// ./web/pdf_rendering_queue.js
+
+
+const CLEANUP_TIMEOUT = 30000;
+class PDFRenderingQueue {
+ #highestPriorityPage = null;
+ #idleTimeout = null;
+ #pdfThumbnailViewer = null;
+ #pdfViewer = null;
+ isThumbnailViewEnabled = false;
+ onIdle = null;
+ printing = false;
+ constructor() {
+ Object.defineProperty(this, "hasViewer", {
+ value: () => !!this.#pdfViewer
+ });
+ }
+ setViewer(pdfViewer) {
+ this.#pdfViewer = pdfViewer;
+ }
+ setThumbnailViewer(pdfThumbnailViewer) {
+ this.#pdfThumbnailViewer = pdfThumbnailViewer;
+ }
+ isHighestPriority(view) {
+ return this.#highestPriorityPage === view.renderingId;
+ }
+ renderHighestPriority(currentlyVisiblePages) {
+ if (this.#idleTimeout) {
+ clearTimeout(this.#idleTimeout);
+ this.#idleTimeout = null;
+ }
+ if (this.#pdfViewer.forceRendering(currentlyVisiblePages)) {
+ return;
+ }
+ if (this.isThumbnailViewEnabled && this.#pdfThumbnailViewer?.forceRendering()) {
+ return;
+ }
+ if (this.printing) {
+ return;
+ }
+ if (this.onIdle) {
+ this.#idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);
+ }
+ }
+ getHighestPriority(visible, views, scrolledDown, preRenderExtra = false, ignoreDetailViews = false) {
+ const visibleViews = visible.views,
+ numVisible = visibleViews.length;
+ if (numVisible === 0) {
+ return null;
+ }
+ for (let i = 0; i < numVisible; i++) {
+ const view = visibleViews[i].view;
+ if (!this.isViewFinished(view)) {
+ return view;
+ }
+ }
+ if (!ignoreDetailViews) {
+ for (let i = 0; i < numVisible; i++) {
+ const {
+ detailView
+ } = visibleViews[i].view;
+ if (detailView && !this.isViewFinished(detailView)) {
+ return detailView;
+ }
+ }
+ }
+ const firstId = visible.first.id,
+ lastId = visible.last.id;
+ if (lastId - firstId + 1 > numVisible) {
+ const visibleIds = visible.ids;
+ for (let i = 1, ii = lastId - firstId; i < ii; i++) {
+ const holeId = scrolledDown ? firstId + i : lastId - i;
+ if (visibleIds.has(holeId)) {
+ continue;
+ }
+ const holeView = views[holeId - 1];
+ if (!this.isViewFinished(holeView)) {
+ return holeView;
+ }
+ }
+ }
+ let preRenderIndex = scrolledDown ? lastId : firstId - 2;
+ let preRenderView = views[preRenderIndex];
+ if (preRenderView && !this.isViewFinished(preRenderView)) {
+ return preRenderView;
+ }
+ if (preRenderExtra) {
+ preRenderIndex += scrolledDown ? 1 : -1;
+ preRenderView = views[preRenderIndex];
+ if (preRenderView && !this.isViewFinished(preRenderView)) {
+ return preRenderView;
+ }
+ }
+ return null;
+ }
+ isViewFinished(view) {
+ return view.renderingState === RenderingStates.FINISHED;
+ }
+ renderView(view) {
+ switch (view.renderingState) {
+ case RenderingStates.FINISHED:
+ return false;
+ case RenderingStates.PAUSED:
+ this.#highestPriorityPage = view.renderingId;
+ view.resume();
+ break;
+ case RenderingStates.RUNNING:
+ this.#highestPriorityPage = view.renderingId;
+ break;
+ case RenderingStates.INITIAL:
+ this.#highestPriorityPage = view.renderingId;
+ view.draw().finally(() => {
+ this.renderHighestPriority();
+ }).catch(reason => {
+ if (reason instanceof RenderingCancelledException) {
+ return;
+ }
+ console.error("renderView:", reason);
+ });
+ break;
+ }
+ return true;
+ }
+}
+
+;// ./web/pdf_viewer.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+const DEFAULT_CACHE_SIZE = 10;
+const PagesCountLimit = {
+ FORCE_SCROLL_MODE_PAGE: 10000,
+ FORCE_LAZY_PAGE_INIT: 5000,
+ PAUSE_EAGER_PAGE_INIT: 250
+};
+function isValidAnnotationEditorMode(mode) {
+ return Object.values(AnnotationEditorType).includes(mode) && mode !== AnnotationEditorType.DISABLE;
+}
+class PDFPageViewBuffer {
+ #buf = new Set();
+ #size = 0;
+ constructor(size) {
+ this.#size = size;
+ }
+ push(view) {
+ const buf = this.#buf;
+ if (buf.has(view)) {
+ buf.delete(view);
+ }
+ buf.add(view);
+ if (buf.size > this.#size) {
+ this.#destroyFirstView();
+ }
+ }
+ resize(newSize, idsToKeep = null) {
+ this.#size = newSize;
+ const buf = this.#buf;
+ if (idsToKeep) {
+ const ii = buf.size;
+ let i = 1;
+ for (const view of buf) {
+ if (idsToKeep.has(view.id)) {
+ buf.delete(view);
+ buf.add(view);
+ }
+ if (++i > ii) {
+ break;
+ }
+ }
+ }
+ while (buf.size > this.#size) {
+ this.#destroyFirstView();
+ }
+ }
+ has(view) {
+ return this.#buf.has(view);
+ }
+ [Symbol.iterator]() {
+ return this.#buf.keys();
+ }
+ #destroyFirstView() {
+ const firstView = this.#buf.keys().next().value;
+ firstView?.destroy();
+ this.#buf.delete(firstView);
+ }
+}
+class PDFViewer {
+ #buffer = null;
+ #altTextManager = null;
+ #annotationEditorHighlightColors = null;
+ #annotationEditorMode = AnnotationEditorType.NONE;
+ #annotationEditorUIManager = null;
+ #annotationMode = AnnotationMode.ENABLE_FORMS;
+ #commentManager = null;
+ #containerTopLeft = null;
+ #editorUndoBar = null;
+ #enableHighlightFloatingButton = false;
+ #enablePermissions = false;
+ #enableUpdatedAddImage = false;
+ #enableNewAltTextWhenAddingImage = false;
+ #enableAutoLinking = true;
+ #abortSignal = null;
+ #eventAbortController = null;
+ #minDurationToUpdateCanvas = 0;
+ #mlManager = null;
+ #printingAllowed = true;
+ #scrollTimeoutId = null;
+ #switchAnnotationEditorModeAC = null;
+ #switchAnnotationEditorModeTimeoutId = null;
+ #copyAllInProgress = false;
+ #hiddenCopyElement = null;
+ #previousContainerHeight = 0;
+ #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this));
+ #scrollModePageState = null;
+ #scaleTimeoutId = null;
+ #signatureManager = null;
+ #supportsPinchToZoom = true;
+ #textLayerMode = TextLayerMode.ENABLE;
+ #viewerAlert = null;
+ #copiedPageViews = null;
+ #savedPageViews = null;
+ #deletedPageNumbers = null;
+ constructor(options) {
+ const viewerVersion = "5.7.284";
+ if (version !== viewerVersion) {
+ throw new Error(`The API version "${version}" does not match the Viewer version "${viewerVersion}".`);
+ }
+ this.container = options.container;
+ this.viewer = options.viewer || options.container.firstElementChild;
+ this.#viewerAlert = options.viewerAlert || null;
+ if (this.container?.tagName !== "DIV" || this.viewer?.tagName !== "DIV") {
+ throw new Error("Invalid `container` and/or `viewer` option.");
+ }
+ if (this.container.offsetParent && getComputedStyle(this.container).position !== "absolute") {
+ throw new Error("The `container` must be absolutely positioned.");
+ }
+ this.#resizeObserver.observe(this.container);
+ this.eventBus = options.eventBus;
+ this.linkService = options.linkService || new SimpleLinkService();
+ this.downloadManager = options.downloadManager || null;
+ this.findController = options.findController || null;
+ this.#altTextManager = options.altTextManager || null;
+ this.#commentManager = options.commentManager || null;
+ this.#signatureManager = options.signatureManager || null;
+ this.#editorUndoBar = options.editorUndoBar || null;
+ if (this.findController) {
+ this.findController.onIsPageVisible = pageNumber => this._getVisiblePages().ids.has(pageNumber);
+ }
+ this._scriptingManager = options.scriptingManager || null;
+ this.#textLayerMode = options.textLayerMode ?? TextLayerMode.ENABLE;
+ this.#annotationMode = options.annotationMode ?? AnnotationMode.ENABLE_FORMS;
+ this.#annotationEditorMode = options.annotationEditorMode ?? AnnotationEditorType.NONE;
+ this.#annotationEditorHighlightColors = options.annotationEditorHighlightColors || null;
+ this.#enableHighlightFloatingButton = options.enableHighlightFloatingButton === true;
+ this.#enableUpdatedAddImage = options.enableUpdatedAddImage === true;
+ this.#enableNewAltTextWhenAddingImage = options.enableNewAltTextWhenAddingImage === true;
+ this.imageResourcesPath = options.imageResourcesPath || "";
+ this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;
+ this.removePageBorders = options.removePageBorders || false;
+ this.maxCanvasPixels = options.maxCanvasPixels;
+ this.maxCanvasDim = options.maxCanvasDim;
+ this.capCanvasAreaFactor = options.capCanvasAreaFactor;
+ this.enableDetailCanvas = options.enableDetailCanvas ?? true;
+ this.enableOptimizedPartialRendering = options.enableOptimizedPartialRendering ?? false;
+ this.imagesRightClickMinSize = options.imagesRightClickMinSize ?? -1;
+ this.l10n = options.l10n;
+ this.l10n ||= new genericl10n_GenericL10n();
+ this.#enablePermissions = options.enablePermissions || false;
+ this.pageColors = options.pageColors || null;
+ this.#mlManager = options.mlManager || null;
+ this.#supportsPinchToZoom = options.supportsPinchToZoom !== false;
+ this.#enableAutoLinking = options.enableAutoLinking !== false;
+ this.#minDurationToUpdateCanvas = options.minDurationToUpdateCanvas ?? 500;
+ this.defaultRenderingQueue = !options.renderingQueue;
+ if (this.defaultRenderingQueue) {
+ this.renderingQueue = new PDFRenderingQueue();
+ this.renderingQueue.setViewer(this);
+ } else {
+ this.renderingQueue = options.renderingQueue;
+ }
+ const {
+ abortSignal
+ } = options;
+ this.#abortSignal = abortSignal || null;
+ abortSignal?.addEventListener("abort", () => {
+ this.#resizeObserver.disconnect();
+ this.#resizeObserver = null;
+ }, {
+ once: true
+ });
+ this.scroll = watchScroll(this.container, this._scrollUpdate.bind(this), abortSignal);
+ this.presentationModeState = PresentationModeState.UNKNOWN;
+ this._resetView();
+ if (this.removePageBorders) {
+ this.viewer.classList.add("removePageBorders");
+ }
+ this.#updateContainerHeightCss();
+ this.eventBus._on("thumbnailrendered", ({
+ pageNumber,
+ pdfPage
+ }) => {
+ const pageView = this._pages[pageNumber - 1];
+ if (!this.#buffer.has(pageView)) {
+ pdfPage?.cleanup();
+ }
+ });
+ if (!options.l10n) {
+ this.l10n.translate(this.container);
+ }
+ }
+ get printingAllowed() {
+ return this.#printingAllowed;
+ }
+ get pagesCount() {
+ return this._pages.length;
+ }
+ getPageView(index) {
+ return this._pages[index];
+ }
+ getCachedPageViews() {
+ return new Set(this.#buffer);
+ }
+ get pageViewsReady() {
+ return this._pages.every(pageView => pageView?.pdfPage);
+ }
+ get renderForms() {
+ return this.#annotationMode === AnnotationMode.ENABLE_FORMS;
+ }
+ get enableScripting() {
+ return !!this._scriptingManager;
+ }
+ get currentPageNumber() {
+ return this._currentPageNumber;
+ }
+ set currentPageNumber(val) {
+ if (!Number.isInteger(val)) {
+ throw new Error("Invalid page number.");
+ }
+ if (!this.pdfDocument) {
+ return;
+ }
+ if (!this._setCurrentPageNumber(val, true)) {
+ console.error(`currentPageNumber: "${val}" is not a valid page.`);
+ }
+ }
+ _setCurrentPageNumber(val, resetCurrentPageView = false) {
+ if (this._currentPageNumber === val) {
+ if (resetCurrentPageView) {
+ this.#resetCurrentPageView();
+ }
+ return true;
+ }
+ if (!(0 < val && val <= this.pagesCount)) {
+ return false;
+ }
+ const previous = this._currentPageNumber;
+ this._currentPageNumber = val;
+ this.eventBus.dispatch("pagechanging", {
+ source: this,
+ pageNumber: val,
+ pageLabel: this._pageLabels?.[val - 1] ?? null,
+ previous
+ });
+ if (resetCurrentPageView) {
+ this.#resetCurrentPageView();
+ }
+ return true;
+ }
+ get currentPageLabel() {
+ return this._pageLabels?.[this._currentPageNumber - 1] ?? null;
+ }
+ set currentPageLabel(val) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ let page = val | 0;
+ if (this._pageLabels) {
+ const i = this._pageLabels.indexOf(val);
+ if (i >= 0) {
+ page = i + 1;
+ }
+ }
+ if (!this._setCurrentPageNumber(page, true)) {
+ console.error(`currentPageLabel: "${val}" is not a valid page.`);
+ }
+ }
+ get currentScale() {
+ return this._currentScale !== UNKNOWN_SCALE ? this._currentScale : DEFAULT_SCALE;
+ }
+ set currentScale(val) {
+ if (isNaN(val)) {
+ throw new Error("Invalid numeric scale.");
+ }
+ if (!this.pdfDocument) {
+ return;
+ }
+ this.#setScale(val, {
+ noScroll: false
+ });
+ }
+ get currentScaleValue() {
+ return this._currentScaleValue;
+ }
+ set currentScaleValue(val) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ this.#setScale(val, {
+ noScroll: false
+ });
+ }
+ get pagesRotation() {
+ return this._pagesRotation;
+ }
+ set pagesRotation(rotation) {
+ if (!isValidRotation(rotation)) {
+ throw new Error("Invalid pages rotation angle.");
+ }
+ if (!this.pdfDocument) {
+ return;
+ }
+ rotation %= 360;
+ if (rotation < 0) {
+ rotation += 360;
+ }
+ if (this._pagesRotation === rotation) {
+ return;
+ }
+ this._pagesRotation = rotation;
+ const pageNumber = this._currentPageNumber;
+ this.refresh(true, {
+ rotation
+ });
+ if (this._currentScaleValue) {
+ this.#setScale(this._currentScaleValue, {
+ noScroll: true
+ });
+ }
+ this.eventBus.dispatch("rotationchanging", {
+ source: this,
+ pagesRotation: rotation,
+ pageNumber
+ });
+ if (this.defaultRenderingQueue) {
+ this.update();
+ }
+ }
+ get firstPagePromise() {
+ return this.pdfDocument ? this._firstPageCapability.promise : null;
+ }
+ get onePageRendered() {
+ return this.pdfDocument ? this._onePageRenderedCapability.promise : null;
+ }
+ get pagesPromise() {
+ return this.pdfDocument ? this._pagesCapability.promise : null;
+ }
+ get _layerProperties() {
+ const self = this;
+ return shadow(this, "_layerProperties", {
+ get annotationEditorUIManager() {
+ return self.#annotationEditorUIManager;
+ },
+ get annotationStorage() {
+ return self.pdfDocument?.annotationStorage;
+ },
+ get downloadManager() {
+ return self.downloadManager;
+ },
+ get enableComment() {
+ return !!self.#commentManager;
+ },
+ get enableScripting() {
+ return !!self._scriptingManager;
+ },
+ get fieldObjectsPromise() {
+ return self.pdfDocument?.getFieldObjects();
+ },
+ get findController() {
+ return self.findController;
+ },
+ get hasJSActionsPromise() {
+ return self.pdfDocument?.hasJSActions();
+ },
+ get linkService() {
+ return self.linkService;
+ }
+ });
+ }
+ #initializePermissions(permissions) {
+ const params = {
+ annotationEditorMode: this.#annotationEditorMode,
+ annotationMode: this.#annotationMode,
+ textLayerMode: this.#textLayerMode
+ };
+ if (!permissions) {
+ this.#printingAllowed = true;
+ this.eventBus.dispatch("printingallowed", {
+ source: this,
+ isAllowed: this.#printingAllowed
+ });
+ return params;
+ }
+ this.#printingAllowed = permissions.includes(PermissionFlag.PRINT_HIGH_QUALITY) || permissions.includes(PermissionFlag.PRINT);
+ this.eventBus.dispatch("printingallowed", {
+ source: this,
+ isAllowed: this.#printingAllowed
+ });
+ if (!permissions.includes(PermissionFlag.COPY) && this.#textLayerMode === TextLayerMode.ENABLE) {
+ params.textLayerMode = TextLayerMode.ENABLE_PERMISSIONS;
+ }
+ if (!permissions.includes(PermissionFlag.MODIFY_CONTENTS)) {
+ params.annotationEditorMode = AnnotationEditorType.DISABLE;
+ }
+ if (!permissions.includes(PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === AnnotationMode.ENABLE_FORMS) {
+ params.annotationMode = AnnotationMode.ENABLE;
+ }
+ return params;
+ }
+ async #onePageRenderedOrForceFetch(signal) {
+ if (document.visibilityState === "hidden" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) {
+ return;
+ }
+ const hiddenCapability = Promise.withResolvers(),
+ ac = new AbortController();
+ document.addEventListener("visibilitychange", () => {
+ if (document.visibilityState === "hidden") {
+ hiddenCapability.resolve();
+ }
+ }, {
+ signal: AbortSignal.any([signal, ac.signal])
+ });
+ await Promise.race([this._onePageRenderedCapability.promise, hiddenCapability.promise]);
+ ac.abort();
+ }
+ async getAllText(interruptSignal = null) {
+ const texts = [];
+ const buffer = [];
+ for (let pageNum = 1, pagesCount = this.pdfDocument.numPages; pageNum <= pagesCount; ++pageNum) {
+ if (interruptSignal?.aborted) {
+ return null;
+ }
+ buffer.length = 0;
+ const page = await this.pdfDocument.getPage(pageNum);
+ const {
+ items
+ } = await page.getTextContent();
+ for (const item of items) {
+ if (item.str) {
+ buffer.push(item.str);
+ }
+ if (item.hasEOL) {
+ buffer.push("\n");
+ }
+ }
+ texts.push(removeNullCharacters(buffer.join("")));
+ }
+ return texts.join("\n");
+ }
+ #copyCallback(textLayerMode, event) {
+ const selection = document.getSelection();
+ const {
+ focusNode,
+ anchorNode
+ } = selection;
+ if (anchorNode && focusNode && selection.containsNode(this.#hiddenCopyElement)) {
+ if (this.#copyAllInProgress || textLayerMode === TextLayerMode.ENABLE_PERMISSIONS) {
+ stopEvent(event);
+ return;
+ }
+ this.#copyAllInProgress = true;
+ const {
+ classList
+ } = this.viewer;
+ classList.add("copyAll");
+ const keydownAC = new AbortController(),
+ interruptAC = new AbortController();
+ window.addEventListener("keydown", ev => {
+ if (ev.key === "Escape") {
+ interruptAC.abort();
+ }
+ }, {
+ signal: keydownAC.signal
+ });
+ this.getAllText(interruptAC.signal).then(async text => {
+ if (text !== null) {
+ await navigator.clipboard.writeText(text);
+ }
+ }).catch(reason => {
+ console.warn(`Something goes wrong when extracting the text: ${reason.message}`);
+ }).finally(() => {
+ this.#copyAllInProgress = false;
+ keydownAC.abort();
+ classList.remove("copyAll");
+ });
+ stopEvent(event);
+ }
+ }
+ setDocument(pdfDocument) {
+ if (this.pdfDocument) {
+ this.eventBus.dispatch("pagesdestroy", {
+ source: this
+ });
+ this._cancelRendering();
+ this._resetView();
+ this.findController?.setDocument(null);
+ this._scriptingManager?.setDocument(null);
+ this.#annotationEditorUIManager?.destroy();
+ this.#annotationEditorUIManager = null;
+ this.#annotationEditorMode = AnnotationEditorType.NONE;
+ this.#printingAllowed = true;
+ }
+ this.pdfDocument = pdfDocument;
+ if (!pdfDocument) {
+ return;
+ }
+ const pagesCount = pdfDocument.numPages;
+ const firstPagePromise = pdfDocument.getPage(1);
+ const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({
+ intent: "display"
+ });
+ const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve();
+ const {
+ eventBus,
+ pageColors,
+ viewer
+ } = this;
+ this.#eventAbortController = new AbortController();
+ const {
+ signal
+ } = this.#eventAbortController;
+ if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {
+ console.warn("Forcing PAGE-scrolling for performance reasons, given the length of the document.");
+ const mode = this._scrollMode = ScrollMode.PAGE;
+ eventBus.dispatch("scrollmodechanged", {
+ source: this,
+ mode
+ });
+ }
+ this._pagesCapability.promise.then(() => {
+ eventBus.dispatch("pagesloaded", {
+ source: this,
+ pagesCount
+ });
+ }, () => {});
+ const onBeforeDraw = evt => {
+ const pageView = this._pages[evt.pageNumber - 1];
+ if (!pageView) {
+ return;
+ }
+ this.#buffer.push(pageView);
+ };
+ eventBus._on("pagerender", onBeforeDraw, {
+ signal
+ });
+ const onAfterDraw = evt => {
+ if (evt.cssTransform || evt.isDetailView) {
+ return;
+ }
+ this._onePageRenderedCapability.resolve({
+ timestamp: evt.timestamp
+ });
+ eventBus._off("pagerendered", onAfterDraw);
+ };
+ eventBus._on("pagerendered", onAfterDraw, {
+ signal
+ });
+ Promise.all([firstPagePromise, permissionsPromise]).then(([firstPdfPage, permissions]) => {
+ if (pdfDocument !== this.pdfDocument) {
+ return;
+ }
+ this._firstPageCapability.resolve(firstPdfPage);
+ this._optionalContentConfigPromise = optionalContentConfigPromise;
+ const {
+ annotationEditorMode,
+ annotationMode,
+ textLayerMode
+ } = this.#initializePermissions(permissions);
+ if (textLayerMode !== TextLayerMode.DISABLE) {
+ const element = this.#hiddenCopyElement = document.createElement("div");
+ element.id = "hiddenCopyElement";
+ viewer.before(element);
+ }
+ if (annotationEditorMode !== AnnotationEditorType.DISABLE) {
+ const mode = annotationEditorMode;
+ if (pdfDocument.isPureXfa) {
+ console.warn("Warning: XFA-editing is not implemented.");
+ } else if (isValidAnnotationEditorMode(mode)) {
+ this.#annotationEditorUIManager = new AnnotationEditorUIManager(this.container, viewer, this.#viewerAlert, this.#altTextManager, this.#commentManager, this.#signatureManager, eventBus, pdfDocument, pageColors, this.#annotationEditorHighlightColors, this.#enableHighlightFloatingButton, this.#enableUpdatedAddImage, this.#enableNewAltTextWhenAddingImage, this.#mlManager, this.#editorUndoBar, this.#supportsPinchToZoom);
+ eventBus.dispatch("annotationeditoruimanager", {
+ source: this,
+ uiManager: this.#annotationEditorUIManager
+ });
+ if (mode !== AnnotationEditorType.NONE) {
+ this.#preloadEditingData(mode);
+ this.#annotationEditorUIManager.updateMode(mode);
+ }
+ } else {
+ console.error(`Invalid AnnotationEditor mode: ${mode}`);
+ }
+ }
+ const viewerElement = this._scrollMode === ScrollMode.PAGE ? null : viewer;
+ const scale = this.currentScale;
+ const viewport = firstPdfPage.getViewport({
+ scale: scale * PixelsPerInch.PDF_TO_CSS_UNITS
+ });
+ viewer.style.setProperty("--scale-factor", viewport.scale);
+ if (pageColors?.background) {
+ viewer.style.setProperty("--page-bg-color", pageColors.background);
+ }
+ if (pageColors?.foreground === "CanvasText" || pageColors?.background === "Canvas") {
+ viewer.style.setProperty("--hcm-highlight-filter", pdfDocument.filterFactory.addHighlightHCMFilter("highlight", "CanvasText", "Canvas", "HighlightText", "Highlight"));
+ viewer.style.setProperty("--hcm-highlight-selected-filter", pdfDocument.filterFactory.addHighlightHCMFilter("highlight_selected", "CanvasText", "Canvas", "HighlightText", "ButtonText"));
+ }
+ for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) {
+ const pageView = new PDFPageView({
+ container: viewerElement,
+ eventBus,
+ id: pageNum,
+ scale,
+ defaultViewport: viewport.clone(),
+ optionalContentConfigPromise,
+ renderingQueue: this.renderingQueue,
+ textLayerMode,
+ annotationMode,
+ imageResourcesPath: this.imageResourcesPath,
+ maxCanvasPixels: this.maxCanvasPixels,
+ maxCanvasDim: this.maxCanvasDim,
+ capCanvasAreaFactor: this.capCanvasAreaFactor,
+ enableDetailCanvas: this.enableDetailCanvas,
+ enableOptimizedPartialRendering: this.enableOptimizedPartialRendering,
+ imagesRightClickMinSize: this.imagesRightClickMinSize,
+ pageColors,
+ l10n: this.l10n,
+ layerProperties: this._layerProperties,
+ enableAutoLinking: this.#enableAutoLinking,
+ minDurationToUpdateCanvas: this.#minDurationToUpdateCanvas,
+ commentManager: this.#commentManager,
+ abortSignal: this.#abortSignal
+ });
+ this._pages.push(pageView);
+ }
+ this._pages[0]?.setPdfPage(firstPdfPage);
+ if (this._scrollMode === ScrollMode.PAGE) {
+ this.#ensurePageViewVisible();
+ } else if (this._spreadMode !== SpreadMode.NONE) {
+ this._updateSpreadMode();
+ }
+ eventBus._on("annotationeditorlayerrendered", evt => {
+ if (this.#annotationEditorUIManager) {
+ eventBus.dispatch("annotationeditormodechanged", {
+ source: this,
+ mode: this.#annotationEditorMode
+ });
+ }
+ }, {
+ once: true,
+ signal
+ });
+ this.#onePageRenderedOrForceFetch(signal).then(async () => {
+ if (pdfDocument !== this.pdfDocument) {
+ return;
+ }
+ this.findController?.setDocument(pdfDocument);
+ this._scriptingManager?.setDocument(pdfDocument);
+ if (this.#hiddenCopyElement) {
+ document.addEventListener("copy", this.#copyCallback.bind(this, textLayerMode), {
+ signal
+ });
+ }
+ if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) {
+ this._pagesCapability.resolve();
+ return;
+ }
+ let getPagesLeft = pagesCount - 1;
+ if (getPagesLeft <= 0) {
+ this._pagesCapability.resolve();
+ return;
+ }
+ for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) {
+ const promise = pdfDocument.getPage(pageNum).then(pdfPage => {
+ const pageView = this._pages[pageNum - 1];
+ if (!pageView.pdfPage) {
+ pageView.setPdfPage(pdfPage);
+ }
+ if (--getPagesLeft === 0) {
+ this._pagesCapability.resolve();
+ }
+ }, reason => {
+ console.error(`Unable to get page ${pageNum} to initialize viewer`, reason);
+ if (--getPagesLeft === 0) {
+ this._pagesCapability.resolve();
+ }
+ });
+ if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) {
+ await promise;
+ }
+ }
+ });
+ eventBus.dispatch("pagesinit", {
+ source: this
+ });
+ pdfDocument.getMetadata().then(({
+ info
+ }) => {
+ if (pdfDocument !== this.pdfDocument) {
+ return;
+ }
+ if (info.Language) {
+ viewer.lang = info.Language;
+ }
+ });
+ if (this.defaultRenderingQueue) {
+ this.update();
+ }
+ }).catch(reason => {
+ console.error("Unable to initialize viewer", reason);
+ this._pagesCapability.reject(reason);
+ });
+ }
+ onPagesEdited({
+ pagesMapper,
+ type,
+ hasBeenCut,
+ pageNumbers
+ }) {
+ if (type === "copy") {
+ this.#copiedPageViews = new Map();
+ for (const pageNum of pageNumbers) {
+ this.#copiedPageViews.set(pageNum, this._pages[pageNum - 1]);
+ }
+ return;
+ }
+ if (type === "cancelCopy") {
+ this.#copiedPageViews = null;
+ return;
+ }
+ const isCut = type === "cut";
+ if (isCut || type === "delete") {
+ this.#savedPageViews = this._pages;
+ this.#deletedPageNumbers = pageNumbers;
+ }
+ if (type === "cancelDelete") {
+ this.#deletedPageNumbers = null;
+ if (!this.#savedPageViews) {
+ return;
+ }
+ const viewerElement = this._scrollMode === ScrollMode.PAGE ? null : this.viewer;
+ if (viewerElement) {
+ this.#annotationEditorUIManager?.startUpdatePages();
+ const fragment = document.createDocumentFragment();
+ for (let i = 0, ii = this.#savedPageViews.length; i < ii; i++) {
+ const page = this.#savedPageViews[i];
+ page.updatePageNumber(i + 1);
+ fragment.append(page.div);
+ }
+ viewerElement.replaceChildren(fragment);
+ this.#annotationEditorUIManager?.endUpdatePages();
+ }
+ this._pages = this.#savedPageViews;
+ this.#savedPageViews = null;
+ return;
+ }
+ if (type === "cleanSavedData") {
+ if (this.#deletedPageNumbers) {
+ if (this.#savedPageViews) {
+ for (const pageNum of this.#deletedPageNumbers) {
+ this.#savedPageViews[pageNum - 1].deleteMe();
+ }
+ this.#savedPageViews = null;
+ }
+ this.#deletedPageNumbers = null;
+ }
+ return;
+ }
+ this._currentPageNumber = 0;
+ const prevPages = this._pages;
+ const newPages = this._pages = [];
+ this.#annotationEditorUIManager?.startUpdatePages();
+ for (let i = 1, ii = pagesMapper.pagesNumber; i <= ii; i++) {
+ const prevPageNumber = pagesMapper.getPrevPageNumber(i);
+ if (prevPageNumber < 0) {
+ let page = this.#copiedPageViews.get(-prevPageNumber);
+ if (hasBeenCut) {
+ page.updatePageNumber(i);
+ } else {
+ this.#annotationEditorUIManager?.clonePage(-prevPageNumber - 1, i - 1);
+ page = page.clone(i);
+ }
+ newPages.push(page);
+ continue;
+ }
+ const page = prevPages[prevPageNumber - 1];
+ newPages.push(page);
+ page.updatePageNumber(i);
+ }
+ this.#annotationEditorUIManager?.endUpdatePages();
+ if (type === "paste") {
+ this.#copiedPageViews = null;
+ }
+ const viewerElement = this._scrollMode === ScrollMode.PAGE ? null : this.viewer;
+ if (viewerElement) {
+ const fragment = document.createDocumentFragment();
+ for (const {
+ div
+ } of newPages) {
+ fragment.append(div);
+ }
+ viewerElement.replaceChildren(fragment);
+ }
+ setTimeout(() => {
+ this.forceRendering();
+ });
+ }
+ setPageLabels(labels) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ if (!labels) {
+ this._pageLabels = null;
+ } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {
+ this._pageLabels = null;
+ console.error(`setPageLabels: Invalid page labels.`);
+ } else {
+ this._pageLabels = labels;
+ }
+ for (let i = 0, ii = this._pages.length; i < ii; i++) {
+ this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null);
+ }
+ }
+ _resetView() {
+ this._pages = [];
+ this._currentPageNumber = 1;
+ this._currentScale = UNKNOWN_SCALE;
+ this._currentScaleValue = null;
+ this._pageLabels = null;
+ this.#buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);
+ this._location = null;
+ this._pagesRotation = 0;
+ this._optionalContentConfigPromise = null;
+ this._firstPageCapability = Promise.withResolvers();
+ this._onePageRenderedCapability = Promise.withResolvers();
+ this._pagesCapability = Promise.withResolvers();
+ this._scrollMode = ScrollMode.VERTICAL;
+ this._previousScrollMode = ScrollMode.UNKNOWN;
+ this._spreadMode = SpreadMode.NONE;
+ this.#scrollModePageState = {
+ previousPageNumber: 1,
+ scrollDown: true,
+ pages: []
+ };
+ this.#eventAbortController?.abort();
+ this.#eventAbortController = null;
+ this.viewer.textContent = "";
+ this._updateScrollMode();
+ this.viewer.removeAttribute("lang");
+ this.#hiddenCopyElement?.remove();
+ this.#hiddenCopyElement = null;
+ this.#cleanupTimeouts();
+ this.#cleanupSwitchAnnotationEditorMode();
+ }
+ #ensurePageViewVisible() {
+ if (this._scrollMode !== ScrollMode.PAGE) {
+ throw new Error("#ensurePageViewVisible: Invalid scrollMode value.");
+ }
+ const pageNumber = this._currentPageNumber,
+ state = this.#scrollModePageState,
+ viewer = this.viewer;
+ viewer.textContent = "";
+ state.pages.length = 0;
+ if (this._spreadMode === SpreadMode.NONE && !this.isInPresentationMode) {
+ const pageView = this._pages[pageNumber - 1];
+ viewer.append(pageView.div);
+ state.pages.push(pageView);
+ } else {
+ const pageIndexSet = new Set(),
+ parity = this._spreadMode - 1;
+ if (parity === -1) {
+ pageIndexSet.add(pageNumber - 1);
+ } else if (pageNumber % 2 !== parity) {
+ pageIndexSet.add(pageNumber - 1);
+ pageIndexSet.add(pageNumber);
+ } else {
+ pageIndexSet.add(pageNumber - 2);
+ pageIndexSet.add(pageNumber - 1);
+ }
+ const spread = document.createElement("div");
+ spread.className = "spread";
+ if (this.isInPresentationMode) {
+ const dummyPage = document.createElement("div");
+ dummyPage.className = "dummyPage";
+ spread.append(dummyPage);
+ }
+ for (const i of pageIndexSet) {
+ const pageView = this._pages[i];
+ if (!pageView) {
+ continue;
+ }
+ spread.append(pageView.div);
+ state.pages.push(pageView);
+ }
+ viewer.append(spread);
+ }
+ state.scrollDown = pageNumber >= state.previousPageNumber;
+ state.previousPageNumber = pageNumber;
+ }
+ _scrollUpdate() {
+ if (this.pagesCount === 0) {
+ return;
+ }
+ if (this.#scrollTimeoutId) {
+ clearTimeout(this.#scrollTimeoutId);
+ }
+ this.#scrollTimeoutId = setTimeout(() => {
+ this.#scrollTimeoutId = null;
+ this.update();
+ }, 100);
+ this.update();
+ }
+ #scrollIntoView(pageView, pageSpot = null) {
+ const {
+ div,
+ id
+ } = pageView;
+ if (this._currentPageNumber !== id) {
+ this._setCurrentPageNumber(id);
+ }
+ if (this._scrollMode === ScrollMode.PAGE) {
+ this.#ensurePageViewVisible();
+ this.update();
+ }
+ if (!pageSpot && !this.isInPresentationMode) {
+ const left = div.offsetLeft + div.clientLeft,
+ right = left + div.clientWidth;
+ const {
+ scrollLeft,
+ clientWidth
+ } = this.container;
+ if (this._scrollMode === ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) {
+ pageSpot = {
+ left: 0,
+ top: 0
+ };
+ }
+ }
+ scrollIntoView(div, pageSpot);
+ if (!this._currentScaleValue && this._location) {
+ this._location = null;
+ }
+ }
+ #isSameScale(newScale) {
+ return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15;
+ }
+ #setScaleUpdatePages(newScale, newValue, {
+ noScroll = false,
+ preset = false,
+ drawingDelay = -1,
+ origin = null
+ }) {
+ this._currentScaleValue = newValue.toString();
+ if (this.#isSameScale(newScale)) {
+ if (preset) {
+ this.eventBus.dispatch("scalechanging", {
+ source: this,
+ scale: newScale,
+ presetValue: newValue
+ });
+ }
+ return;
+ }
+ this.viewer.style.setProperty("--scale-factor", newScale * PixelsPerInch.PDF_TO_CSS_UNITS);
+ const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000;
+ this.refresh(true, {
+ scale: newScale,
+ drawingDelay: postponeDrawing ? drawingDelay : -1
+ });
+ if (postponeDrawing) {
+ this.#scaleTimeoutId = setTimeout(() => {
+ this.#scaleTimeoutId = null;
+ this.refresh();
+ }, drawingDelay);
+ }
+ const previousScale = this._currentScale;
+ this._currentScale = newScale;
+ if (!noScroll) {
+ let page = this._currentPageNumber,
+ dest;
+ if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {
+ page = this._location.pageNumber;
+ dest = [null, {
+ name: "XYZ"
+ }, this._location.left, this._location.top, null];
+ }
+ this.scrollPageIntoView({
+ pageNumber: page,
+ destArray: dest,
+ allowNegativeOffset: true
+ });
+ if (Array.isArray(origin)) {
+ const scaleDiff = newScale / previousScale - 1;
+ const [top, left] = this.containerTopLeft;
+ this.container.scrollLeft += (origin[0] - left) * scaleDiff;
+ this.container.scrollTop += (origin[1] - top) * scaleDiff;
+ }
+ }
+ this.eventBus.dispatch("scalechanging", {
+ source: this,
+ scale: newScale,
+ presetValue: preset ? newValue : undefined
+ });
+ if (this.defaultRenderingQueue) {
+ this.update();
+ }
+ }
+ get #pageWidthScaleFactor() {
+ if (this._spreadMode !== SpreadMode.NONE && this._scrollMode !== ScrollMode.HORIZONTAL) {
+ return 2;
+ }
+ return 1;
+ }
+ #setScale(value, options) {
+ let scale = parseFloat(value);
+ if (scale > 0) {
+ options.preset = false;
+ this.#setScaleUpdatePages(scale, value, options);
+ } else {
+ const currentPage = this._pages[this._currentPageNumber - 1];
+ if (!currentPage) {
+ return;
+ }
+ let hPadding = SCROLLBAR_PADDING,
+ vPadding = VERTICAL_PADDING;
+ if (this.isInPresentationMode) {
+ hPadding = vPadding = 4;
+ if (this._spreadMode !== SpreadMode.NONE) {
+ hPadding *= 2;
+ }
+ } else if (this.removePageBorders) {
+ hPadding = vPadding = 0;
+ } else if (this._scrollMode === ScrollMode.HORIZONTAL) {
+ [hPadding, vPadding] = [vPadding, hPadding];
+ }
+ const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this.#pageWidthScaleFactor;
+ const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;
+ switch (value) {
+ case "page-actual":
+ scale = 1;
+ break;
+ case "page-width":
+ scale = pageWidthScale;
+ break;
+ case "page-height":
+ scale = pageHeightScale;
+ break;
+ case "page-fit":
+ scale = Math.min(pageWidthScale, pageHeightScale);
+ break;
+ case "auto":
+ const horizontalScale = isPortraitOrientation(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);
+ scale = Math.min(MAX_AUTO_SCALE, horizontalScale);
+ break;
+ default:
+ console.error(`#setScale: "${value}" is an unknown zoom value.`);
+ return;
+ }
+ options.preset = true;
+ this.#setScaleUpdatePages(scale, value, options);
+ }
+ }
+ #resetCurrentPageView() {
+ const pageView = this._pages[this._currentPageNumber - 1];
+ if (this.isInPresentationMode) {
+ this.#setScale(this._currentScaleValue, {
+ noScroll: true
+ });
+ }
+ this.#scrollIntoView(pageView);
+ }
+ pageLabelToPageNumber(label) {
+ if (!this._pageLabels) {
+ return null;
+ }
+ const i = this._pageLabels.indexOf(label);
+ if (i < 0) {
+ return null;
+ }
+ return i + 1;
+ }
+ scrollPageIntoView({
+ pageNumber,
+ destArray = null,
+ allowNegativeOffset = false,
+ ignoreDestinationZoom = false,
+ center = null
+ }) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];
+ if (!pageView) {
+ console.error(`scrollPageIntoView: "${pageNumber}" is not a valid pageNumber parameter.`);
+ return;
+ }
+ if (this.isInPresentationMode || !destArray) {
+ this._setCurrentPageNumber(pageNumber, true);
+ return;
+ }
+ let x = 0,
+ y = 0;
+ let width = 0,
+ height = 0,
+ widthScale,
+ heightScale;
+ const changeOrientation = pageView.rotation % 180 !== 0;
+ const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / PixelsPerInch.PDF_TO_CSS_UNITS;
+ const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / PixelsPerInch.PDF_TO_CSS_UNITS;
+ let scale = 0;
+ switch (destArray[1].name) {
+ case "XYZ":
+ x = destArray[2];
+ y = destArray[3];
+ scale = destArray[4];
+ x = x !== null ? x : 0;
+ y = y !== null ? y : pageHeight;
+ break;
+ case "Fit":
+ case "FitB":
+ scale = "page-fit";
+ break;
+ case "FitH":
+ case "FitBH":
+ y = destArray[2];
+ scale = "page-width";
+ if (y === null && this._location) {
+ x = this._location.left;
+ y = this._location.top;
+ } else if (typeof y !== "number" || y < 0) {
+ y = pageHeight;
+ }
+ break;
+ case "FitV":
+ case "FitBV":
+ x = destArray[2];
+ width = pageWidth;
+ height = pageHeight;
+ scale = "page-height";
+ break;
+ case "FitR":
+ x = destArray[2];
+ y = destArray[3];
+ width = destArray[4] - x;
+ height = destArray[5] - y;
+ let hPadding = SCROLLBAR_PADDING,
+ vPadding = VERTICAL_PADDING;
+ if (this.removePageBorders) {
+ hPadding = vPadding = 0;
+ }
+ widthScale = (this.container.clientWidth - hPadding) / width / PixelsPerInch.PDF_TO_CSS_UNITS;
+ heightScale = (this.container.clientHeight - vPadding) / height / PixelsPerInch.PDF_TO_CSS_UNITS;
+ scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));
+ break;
+ default:
+ console.error(`scrollPageIntoView: "${destArray[1].name}" is not a valid destination type.`);
+ return;
+ }
+ if (!ignoreDestinationZoom) {
+ if (scale && scale !== this._currentScale) {
+ this.currentScaleValue = scale;
+ } else if (this._currentScale === UNKNOWN_SCALE) {
+ this.currentScaleValue = DEFAULT_SCALE_VALUE;
+ }
+ }
+ if (scale === "page-fit" && !destArray[4]) {
+ this.#scrollIntoView(pageView);
+ return;
+ }
+ const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];
+ let left = Math.min(boundingRect[0][0], boundingRect[1][0]);
+ let top = Math.min(boundingRect[0][1], boundingRect[1][1]);
+ if (center) {
+ if (center === "both" || center === "vertical") {
+ top -= (this.container.clientHeight - Math.abs(boundingRect[1][1] - boundingRect[0][1])) / 2;
+ }
+ if (center === "both" || center === "horizontal") {
+ left -= (this.container.clientWidth - Math.abs(boundingRect[1][0] - boundingRect[0][0])) / 2;
+ }
+ } else if (!allowNegativeOffset) {
+ left = Math.max(left, 0);
+ top = Math.max(top, 0);
+ }
+ this.#scrollIntoView(pageView, {
+ left,
+ top
+ });
+ }
+ _updateLocation(firstPage) {
+ const currentScale = this._currentScale;
+ const currentScaleValue = this._currentScaleValue;
+ const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;
+ const pageNumber = firstPage.id;
+ const currentPageView = this._pages[pageNumber - 1];
+ const container = this.container;
+ const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);
+ const intLeft = Math.round(topLeft[0]);
+ const intTop = Math.round(topLeft[1]);
+ let pdfOpenParams = `#page=${pageNumber}`;
+ if (!this.isInPresentationMode) {
+ pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`;
+ }
+ this._location = {
+ pageNumber,
+ scale: normalizedScaleValue,
+ top: intTop,
+ left: intLeft,
+ rotation: this._pagesRotation,
+ pdfOpenParams
+ };
+ }
+ update() {
+ const visible = this._getVisiblePages();
+ const visiblePages = visible.views,
+ numVisiblePages = visiblePages.length;
+ if (numVisiblePages === 0) {
+ return;
+ }
+ const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);
+ this.#buffer.resize(newCacheSize, visible.ids);
+ for (const {
+ view,
+ visibleArea
+ } of visiblePages) {
+ view.updateVisibleArea(visibleArea);
+ }
+ for (const view of this.#buffer) {
+ if (!visible.ids.has(view.id)) {
+ view.updateVisibleArea(null);
+ }
+ }
+ this.renderingQueue.renderHighestPriority(visible);
+ const isSimpleLayout = this._spreadMode === SpreadMode.NONE && (this._scrollMode === ScrollMode.PAGE || this._scrollMode === ScrollMode.VERTICAL);
+ const currentPageNumber = this._currentPageNumber;
+ let stillFullyVisible = false;
+ for (const page of visiblePages) {
+ if (page.percent < 100) {
+ break;
+ }
+ if (page.id === currentPageNumber && isSimpleLayout) {
+ stillFullyVisible = true;
+ break;
+ }
+ }
+ this._setCurrentPageNumber(stillFullyVisible ? this._currentPageNumber : visiblePages[0].id);
+ this._updateLocation(visible.first);
+ this.eventBus.dispatch("updateviewarea", {
+ source: this,
+ location: this._location
+ });
+ }
+ #switchToEditAnnotationMode() {
+ const visible = this._getVisiblePages();
+ const pagesToRefresh = [];
+ const {
+ ids,
+ views
+ } = visible;
+ for (const page of views) {
+ const {
+ view
+ } = page;
+ if (!view.hasEditableAnnotations()) {
+ ids.delete(view.id);
+ continue;
+ }
+ pagesToRefresh.push(page);
+ }
+ if (pagesToRefresh.length === 0) {
+ return null;
+ }
+ this.renderingQueue.renderHighestPriority({
+ first: pagesToRefresh[0],
+ last: pagesToRefresh.at(-1),
+ views: pagesToRefresh,
+ ids
+ });
+ return ids;
+ }
+ containsElement(element) {
+ return this.container.contains(element);
+ }
+ focus() {
+ this.container.focus();
+ }
+ get _isContainerRtl() {
+ return getComputedStyle(this.container).direction === "rtl";
+ }
+ get isInPresentationMode() {
+ return this.presentationModeState === PresentationModeState.FULLSCREEN;
+ }
+ get isChangingPresentationMode() {
+ return this.presentationModeState === PresentationModeState.CHANGING;
+ }
+ get isHorizontalScrollbarEnabled() {
+ return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;
+ }
+ get isVerticalScrollbarEnabled() {
+ return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;
+ }
+ _getVisiblePages() {
+ const views = this._scrollMode === ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages,
+ horizontal = this._scrollMode === ScrollMode.HORIZONTAL,
+ rtl = horizontal && this._isContainerRtl;
+ return getVisibleElements({
+ scrollEl: this.container,
+ views,
+ sortByVisibility: true,
+ horizontal,
+ rtl
+ });
+ }
+ cleanup() {
+ for (const pageView of this._pages) {
+ if (pageView.renderingState !== RenderingStates.FINISHED) {
+ pageView.reset();
+ }
+ }
+ }
+ _cancelRendering() {
+ for (const pageView of this._pages) {
+ pageView.cancelRendering();
+ }
+ }
+ async #ensurePdfPageLoaded(pageView) {
+ if (pageView.pdfPage) {
+ return pageView.pdfPage;
+ }
+ try {
+ const pdfPage = await this.pdfDocument.getPage(pageView.id);
+ if (!pageView.pdfPage) {
+ pageView.setPdfPage(pdfPage);
+ }
+ return pdfPage;
+ } catch (reason) {
+ console.error("Unable to get page for page view", reason);
+ return null;
+ }
+ }
+ #getScrollAhead(visible) {
+ if (visible.first?.id === 1) {
+ return true;
+ } else if (visible.last?.id === this.pagesCount) {
+ return false;
+ }
+ switch (this._scrollMode) {
+ case ScrollMode.PAGE:
+ return this.#scrollModePageState.scrollDown;
+ case ScrollMode.HORIZONTAL:
+ return this.scroll.right;
+ }
+ return this.scroll.down;
+ }
+ forceRendering(currentlyVisiblePages) {
+ const visiblePages = currentlyVisiblePages || this._getVisiblePages();
+ const scrollAhead = this.#getScrollAhead(visiblePages);
+ const preRenderExtra = this._spreadMode !== SpreadMode.NONE && this._scrollMode !== ScrollMode.HORIZONTAL;
+ const ignoreDetailViews = this.#scaleTimeoutId !== null || this.#scrollTimeoutId !== null && visiblePages.views.some(page => page.detailView?.renderingCancelled);
+ const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra, ignoreDetailViews);
+ if (pageView) {
+ this.#ensurePdfPageLoaded(pageView).then(() => {
+ this.renderingQueue.renderView(pageView);
+ });
+ return true;
+ }
+ return false;
+ }
+ get hasEqualPageSizes() {
+ const firstPageView = this._pages[0];
+ for (let i = 1, ii = this._pages.length; i < ii; ++i) {
+ const pageView = this._pages[i];
+ if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {
+ return false;
+ }
+ }
+ return true;
+ }
+ getPagesOverview() {
+ let initialOrientation;
+ return this._pages.map(pageView => {
+ const viewport = pageView.pdfPage.getViewport({
+ scale: 1
+ });
+ const orientation = isPortraitOrientation(viewport);
+ if (initialOrientation === undefined) {
+ initialOrientation = orientation;
+ } else if (this.enablePrintAutoRotate && orientation !== initialOrientation) {
+ return {
+ width: viewport.height,
+ height: viewport.width,
+ rotation: (viewport.rotation - 90) % 360
+ };
+ }
+ return {
+ width: viewport.width,
+ height: viewport.height,
+ rotation: viewport.rotation
+ };
+ });
+ }
+ get optionalContentConfigPromise() {
+ if (!this.pdfDocument) {
+ return Promise.resolve(null);
+ }
+ if (!this._optionalContentConfigPromise) {
+ console.error("optionalContentConfigPromise: Not initialized yet.");
+ return this.pdfDocument.getOptionalContentConfig({
+ intent: "display"
+ });
+ }
+ return this._optionalContentConfigPromise;
+ }
+ set optionalContentConfigPromise(promise) {
+ if (!(promise instanceof Promise)) {
+ throw new Error(`Invalid optionalContentConfigPromise: ${promise}`);
+ }
+ if (!this.pdfDocument) {
+ return;
+ }
+ if (!this._optionalContentConfigPromise) {
+ return;
+ }
+ this._optionalContentConfigPromise = promise;
+ this.refresh(false, {
+ optionalContentConfigPromise: promise
+ });
+ this.eventBus.dispatch("optionalcontentconfigchanged", {
+ source: this,
+ promise
+ });
+ }
+ get scrollMode() {
+ return this._scrollMode;
+ }
+ set scrollMode(mode) {
+ if (this._scrollMode === mode) {
+ return;
+ }
+ if (!isValidScrollMode(mode)) {
+ throw new Error(`Invalid scroll mode: ${mode}`);
+ }
+ if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) {
+ return;
+ }
+ this._previousScrollMode = this._scrollMode;
+ this._scrollMode = mode;
+ this.eventBus.dispatch("scrollmodechanged", {
+ source: this,
+ mode
+ });
+ this._updateScrollMode(this._currentPageNumber);
+ }
+ _updateScrollMode(pageNumber = null) {
+ const scrollMode = this._scrollMode,
+ viewer = this.viewer;
+ viewer.classList.toggle("scrollHorizontal", scrollMode === ScrollMode.HORIZONTAL);
+ viewer.classList.toggle("scrollWrapped", scrollMode === ScrollMode.WRAPPED);
+ if (!this.pdfDocument || !pageNumber) {
+ return;
+ }
+ if (scrollMode === ScrollMode.PAGE) {
+ this.#ensurePageViewVisible();
+ } else if (this._previousScrollMode === ScrollMode.PAGE) {
+ this._updateSpreadMode();
+ }
+ if (this._currentScaleValue && isNaN(this._currentScaleValue)) {
+ this.#setScale(this._currentScaleValue, {
+ noScroll: true
+ });
+ }
+ this._setCurrentPageNumber(pageNumber, true);
+ this.update();
+ }
+ get spreadMode() {
+ return this._spreadMode;
+ }
+ set spreadMode(mode) {
+ if (this._spreadMode === mode) {
+ return;
+ }
+ if (!isValidSpreadMode(mode)) {
+ throw new Error(`Invalid spread mode: ${mode}`);
+ }
+ this._spreadMode = mode;
+ this.eventBus.dispatch("spreadmodechanged", {
+ source: this,
+ mode
+ });
+ this._updateSpreadMode(this._currentPageNumber);
+ }
+ _updateSpreadMode(pageNumber = null) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ const viewer = this.viewer,
+ pages = this._pages;
+ if (this._scrollMode === ScrollMode.PAGE) {
+ this.#ensurePageViewVisible();
+ } else {
+ viewer.textContent = "";
+ if (this._spreadMode === SpreadMode.NONE) {
+ for (const pageView of this._pages) {
+ viewer.append(pageView.div);
+ }
+ } else {
+ const parity = this._spreadMode - 1;
+ let spread = null;
+ for (let i = 0, ii = pages.length; i < ii; ++i) {
+ if (spread === null) {
+ spread = document.createElement("div");
+ spread.className = "spread";
+ viewer.append(spread);
+ } else if (i % 2 === parity) {
+ spread = spread.cloneNode(false);
+ viewer.append(spread);
+ }
+ spread.append(pages[i].div);
+ }
+ }
+ }
+ if (!pageNumber) {
+ return;
+ }
+ if (this._currentScaleValue && isNaN(this._currentScaleValue)) {
+ this.#setScale(this._currentScaleValue, {
+ noScroll: true
+ });
+ }
+ this._setCurrentPageNumber(pageNumber, true);
+ this.update();
+ }
+ #getPageAdvance(currentPageNumber, previous = false) {
+ switch (this._scrollMode) {
+ case ScrollMode.WRAPPED:
+ {
+ const {
+ views
+ } = this._getVisiblePages(),
+ pageLayout = new Map();
+ for (const {
+ id,
+ y,
+ percent,
+ widthPercent
+ } of views) {
+ if (percent === 0 || widthPercent < 100) {
+ continue;
+ }
+ pageLayout.getOrInsertComputed(y, makeArr).push(id);
+ }
+ for (const yArray of pageLayout.values()) {
+ const currentIndex = yArray.indexOf(currentPageNumber);
+ if (currentIndex === -1) {
+ continue;
+ }
+ const numPages = yArray.length;
+ if (numPages === 1) {
+ break;
+ }
+ if (previous) {
+ for (let i = currentIndex - 1, ii = 0; i >= ii; i--) {
+ const currentId = yArray[i],
+ expectedId = yArray[i + 1] - 1;
+ if (currentId < expectedId) {
+ return currentPageNumber - expectedId;
+ }
+ }
+ } else {
+ for (let i = currentIndex + 1, ii = numPages; i < ii; i++) {
+ const currentId = yArray[i],
+ expectedId = yArray[i - 1] + 1;
+ if (currentId > expectedId) {
+ return expectedId - currentPageNumber;
+ }
+ }
+ }
+ if (previous) {
+ const firstId = yArray[0];
+ if (firstId < currentPageNumber) {
+ return currentPageNumber - firstId + 1;
+ }
+ } else {
+ const lastId = yArray[numPages - 1];
+ if (lastId > currentPageNumber) {
+ return lastId - currentPageNumber + 1;
+ }
+ }
+ break;
+ }
+ break;
+ }
+ case ScrollMode.HORIZONTAL:
+ {
+ break;
+ }
+ case ScrollMode.PAGE:
+ case ScrollMode.VERTICAL:
+ {
+ if (this._spreadMode === SpreadMode.NONE) {
+ break;
+ }
+ const parity = this._spreadMode - 1;
+ if (previous && currentPageNumber % 2 !== parity) {
+ break;
+ } else if (!previous && currentPageNumber % 2 === parity) {
+ break;
+ }
+ const {
+ views
+ } = this._getVisiblePages(),
+ expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1;
+ for (const {
+ id,
+ percent,
+ widthPercent
+ } of views) {
+ if (id !== expectedId) {
+ continue;
+ }
+ if (percent > 0 && widthPercent === 100) {
+ return 2;
+ }
+ break;
+ }
+ break;
+ }
+ }
+ return 1;
+ }
+ nextPage() {
+ const currentPageNumber = this._currentPageNumber,
+ pagesCount = this.pagesCount;
+ if (currentPageNumber >= pagesCount) {
+ return false;
+ }
+ const advance = this.#getPageAdvance(currentPageNumber, false) || 1;
+ this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount);
+ return true;
+ }
+ previousPage() {
+ const currentPageNumber = this._currentPageNumber;
+ if (currentPageNumber <= 1) {
+ return false;
+ }
+ const advance = this.#getPageAdvance(currentPageNumber, true) || 1;
+ this.currentPageNumber = Math.max(currentPageNumber - advance, 1);
+ return true;
+ }
+ updateScale({
+ drawingDelay,
+ scaleFactor = null,
+ steps = null,
+ origin
+ }) {
+ if (steps === null && scaleFactor === null) {
+ throw new Error("Invalid updateScale options: either `steps` or `scaleFactor` must be provided.");
+ }
+ if (!this.pdfDocument) {
+ return;
+ }
+ let newScale = this._currentScale;
+ if (scaleFactor > 0 && scaleFactor !== 1) {
+ newScale = Math.round(newScale * scaleFactor * 100) / 100;
+ } else if (steps) {
+ const delta = steps > 0 ? DEFAULT_SCALE_DELTA : 1 / DEFAULT_SCALE_DELTA;
+ const round = steps > 0 ? Math.ceil : Math.floor;
+ steps = Math.abs(steps);
+ do {
+ newScale = round((newScale * delta).toFixed(2) * 10) / 10;
+ } while (--steps > 0);
+ }
+ newScale = MathClamp(newScale, MIN_SCALE, MAX_SCALE);
+ this.#setScale(newScale, {
+ noScroll: false,
+ drawingDelay,
+ origin
+ });
+ }
+ increaseScale(options = {}) {
+ this.updateScale({
+ ...options,
+ steps: options.steps ?? 1
+ });
+ }
+ decreaseScale(options = {}) {
+ this.updateScale({
+ ...options,
+ steps: -(options.steps ?? 1)
+ });
+ }
+ #updateContainerHeightCss(height = this.container.clientHeight) {
+ if (height !== this.#previousContainerHeight) {
+ this.#previousContainerHeight = height;
+ docStyle.setProperty("--viewer-container-height", `${height}px`);
+ }
+ }
+ #resizeObserverCallback(entries) {
+ for (const entry of entries) {
+ if (entry.target === this.container) {
+ this.#updateContainerHeightCss(Math.floor(entry.borderBoxSize[0].blockSize));
+ this.#containerTopLeft = null;
+ break;
+ }
+ }
+ }
+ get containerTopLeft() {
+ return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft];
+ }
+ #cleanupTimeouts() {
+ if (this.#scaleTimeoutId !== null) {
+ clearTimeout(this.#scaleTimeoutId);
+ this.#scaleTimeoutId = null;
+ }
+ if (this.#scrollTimeoutId !== null) {
+ clearTimeout(this.#scrollTimeoutId);
+ this.#scrollTimeoutId = null;
+ }
+ }
+ #cleanupSwitchAnnotationEditorMode() {
+ this.#switchAnnotationEditorModeAC?.abort();
+ this.#switchAnnotationEditorModeAC = null;
+ if (this.#switchAnnotationEditorModeTimeoutId !== null) {
+ clearTimeout(this.#switchAnnotationEditorModeTimeoutId);
+ this.#switchAnnotationEditorModeTimeoutId = null;
+ }
+ }
+ #preloadEditingData(mode) {
+ switch (mode) {
+ case AnnotationEditorType.STAMP:
+ this.#mlManager?.loadModel("altText");
+ break;
+ case AnnotationEditorType.SIGNATURE:
+ this.#signatureManager?.loadSignatures();
+ break;
+ }
+ }
+ get annotationEditorMode() {
+ return this.#annotationEditorUIManager ? this.#annotationEditorMode : AnnotationEditorType.DISABLE;
+ }
+ set annotationEditorMode({
+ mode,
+ editId = null,
+ isFromKeyboard = false,
+ mustEnterInEditMode = false,
+ editComment = false
+ }) {
+ if (!this.#annotationEditorUIManager) {
+ throw new Error(`The AnnotationEditor is not enabled.`);
+ }
+ if (this.#annotationEditorMode === mode) {
+ return;
+ }
+ if (!isValidAnnotationEditorMode(mode)) {
+ throw new Error(`Invalid AnnotationEditor mode: ${mode}`);
+ }
+ if (!this.pdfDocument) {
+ return;
+ }
+ this.#preloadEditingData(mode);
+ const {
+ eventBus,
+ pdfDocument
+ } = this;
+ const updater = async () => {
+ this.#cleanupSwitchAnnotationEditorMode();
+ this.#annotationEditorMode = mode;
+ await this.#annotationEditorUIManager.updateMode(mode, editId, true, isFromKeyboard, mustEnterInEditMode, editComment);
+ if (mode !== this.#annotationEditorMode || pdfDocument !== this.pdfDocument) {
+ return;
+ }
+ eventBus.dispatch("annotationeditormodechanged", {
+ source: this,
+ mode
+ });
+ };
+ if (mode === AnnotationEditorType.NONE || this.#annotationEditorMode === AnnotationEditorType.NONE) {
+ const isEditing = mode !== AnnotationEditorType.NONE;
+ if (!isEditing) {
+ this.pdfDocument.annotationStorage.resetModifiedIds();
+ }
+ this.cleanup();
+ for (const pageView of this._pages) {
+ pageView.toggleEditingMode(isEditing);
+ }
+ const idsToRefresh = this.#switchToEditAnnotationMode();
+ if (isEditing && idsToRefresh) {
+ this.#cleanupSwitchAnnotationEditorMode();
+ this.#switchAnnotationEditorModeAC = new AbortController();
+ const signal = AbortSignal.any([this.#eventAbortController.signal, this.#switchAnnotationEditorModeAC.signal]);
+ eventBus._on("pagerendered", ({
+ pageNumber
+ }) => {
+ idsToRefresh.delete(pageNumber);
+ if (idsToRefresh.size === 0) {
+ this.#switchAnnotationEditorModeTimeoutId = setTimeout(updater, 0);
+ }
+ }, {
+ signal
+ });
+ return;
+ }
+ }
+ updater();
+ }
+ refresh(noUpdate = false, updateArgs = Object.create(null)) {
+ if (!this.pdfDocument) {
+ return;
+ }
+ for (const pageView of this._pages) {
+ pageView.update(updateArgs);
+ }
+ this.#cleanupTimeouts();
+ if (!noUpdate) {
+ this.update();
+ }
+ }
+}
+
+;// ./web/pdf_single_page_viewer.js
+
+
+class PDFSinglePageViewer extends PDFViewer {
+ _resetView() {
+ super._resetView();
+ this._scrollMode = ScrollMode.PAGE;
+ this._spreadMode = SpreadMode.NONE;
+ }
+ set scrollMode(mode) {}
+ _updateScrollMode() {}
+ set spreadMode(mode) {}
+ _updateSpreadMode() {}
+}
+
+;// ./web/pdf_viewer.component.js
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+globalThis.pdfjsViewer = {
+ AnnotationLayerBuilder: AnnotationLayerBuilder,
+ DownloadManager: DownloadManager,
+ EventBus: EventBus,
+ FindState: FindState,
+ GenericL10n: genericl10n_GenericL10n,
+ LinkTarget: LinkTarget,
+ parseQueryString: parseQueryString,
+ PDFFindController: PDFFindController,
+ PDFHistory: PDFHistory,
+ PDFLinkService: PDFLinkService,
+ PDFPageView: PDFPageView,
+ PDFScriptingManager: PDFScriptingManagerComponents,
+ PDFSinglePageViewer: PDFSinglePageViewer,
+ PDFViewer: PDFViewer,
+ ProgressBar: ProgressBar,
+ RenderingStates: RenderingStates,
+ ScrollMode: ScrollMode,
+ SimpleLinkService: SimpleLinkService,
+ SpreadMode: SpreadMode,
+ StructTreeLayerBuilder: StructTreeLayerBuilder,
+ TextLayerBuilder: TextLayerBuilder,
+ XfaLayerBuilder: XfaLayerBuilder
+};
+
+export { AnnotationLayerBuilder, DownloadManager, EventBus, FindState, genericl10n_GenericL10n as GenericL10n, LinkTarget, PDFFindController, PDFHistory, PDFLinkService, PDFPageView, PDFScriptingManagerComponents as PDFScriptingManager, PDFSinglePageViewer, PDFViewer, ProgressBar, RenderingStates, ScrollMode, SimpleLinkService, SpreadMode, StructTreeLayerBuilder, TextLayerBuilder, XfaLayerBuilder, parseQueryString };
+
+//# sourceMappingURL=pdf_viewer.mjs.map
\ No newline at end of file
diff --git a/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.mjs.map b/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.mjs.map
new file mode 100644
index 0000000..56af605
--- /dev/null
+++ b/frontend/node_modules/pdfjs-dist/legacy/web/pdf_viewer.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"pdf_viewer.mjs","mappings":"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CA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChMa;AACb,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,wBAAwB,mBAAO,CAAC,IAAmC;;AAEnE,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,gBAAgB;AACjC;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjCa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,cAAc,mBAAO,CAAC,IAAuB;;AAE7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;;;;;;;;AC1Ba;AACb,kBAAkB,mBAAO,CAAC,IAAoC;;AAE9D;;;;;;;;ACHa;AACb,eAAe,mBAAO,CAAC,IAAwB;AAC/C,oBAAoB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A;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC3Ba;AACb;AACA,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,gBAAgB,mBAAO,CAAC,IAAqC;AAC7D,cAAc,mBAAO,CAAC,IAA0B;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACpBY;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,+BAA+B,6BAA4D;AAC3F,kCAAkC,mBAAO,CAAC,IAA6C;AACvF,oBAAoB,mBAAO,CAAC,IAA8B;AAC1D,2BAA2B,mBAAO,CAAC,IAAqC;AACxE,gCAAgC,mBAAO,CAAC,IAA0C;AAClF,eAAe,mBAAO,CAAC,IAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,kEAAkE;AAClE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtDa;AACb;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;ACPa;AACb,kBAAkB,mBAAO,CAAC,GAAmC;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;ACVY;AACb,kBAAkB,mBAAO,CAAC,IAA2C;AACrE,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,kBAAkB,mBAAO,CAAC,GAAmC;;AAE7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACba;AACb,YAAY,mBAAO,CAAC,IAAoB;;AAExC;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA,CAAC;;;;;;;;ACRY;AACb,kBAAkB,mBAAO,CAAC,GAAmC;;AAE7D;AACA;AACA;AACA;AACA;;;;;;;;ACPa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,aAAa,mBAAO,CAAC,IAA+B;;AAEpD;AACA;AACA;;AAEA;AACA;AACA,8CAA8C,aAAa;AAC3D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACjBa;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,gBAAgB,mBAAO,CAAC,IAAyB;;AAEjD;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;;;;;;;;ACTa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,kBAAkB,mBAAO,CAAC,IAAoC;;AAE9D;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTa;AACb,kBAAkB,mBAAO,CAAC,GAAmC;;AAE7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACZa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,cAAc,mBAAO,CAAC,IAAkC;;AAExD;AACA;AACA;AACA;AACA,MAAM,gBAAgB;AACtB;AACA;AACA;AACA,MAAM,gBAAgB;AACtB;AACA;;;;;;;;ACda;AACb,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACVa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTa;AACb,cAAc,mBAAO,CAAC,IAAsB;AAC5C,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,wBAAwB,mBAAO,CAAC,IAAmC;AACnE,gBAAgB,mBAAO,CAAC,IAAwB;AAChD,sBAAsB,mBAAO,CAAC,IAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACba;AACb,WAAW,mBAAO,CAAC,IAA4B;AAC/C,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,eAAe,mBAAO,CAAC,IAAwB;AAC/C,kBAAkB,mBAAO,CAAC,IAA4B;AACtD,wBAAwB,mBAAO,CAAC,GAAkC;;AAElE;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACba;AACb,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,wBAAwB,mBAAO,CAAC,IAAmC;;AAEnE;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTa;AACb,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,eAAe,mBAAO,CAAC,IAAwB;AAC/C,WAAW,mBAAO,CAAC,IAA4B;AAC/C,0BAA0B,mBAAO,CAAC,IAAqC;AACvE,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;;;;;;;;ACflB;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,eAAe,mBAAO,CAAC,IAAwB;;AAE/C,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXa;AACb;;;;;;;;ACDa;AACb,iBAAiB,mBAAO,CAAC,IAA2B;;AAEpD;;;;;;;;ACHa;AACb,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,YAAY,mBAAO,CAAC,IAAoB;AACxC,oBAAoB,mBAAO,CAAC,IAAsC;;AAElE;AACA;AACA;AACA;AACA,uBAAuB;AACvB,GAAG;AACH,CAAC;;;;;;;;ACXY;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,YAAY,mBAAO,CAAC,IAAoB;AACxC,cAAc,mBAAO,CAAC,IAA0B;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,EAAE;;;;;;;;ACfW;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,YAAY,mBAAO,CAAC,IAA2B;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACda;AACb,sBAAsB,mBAAO,CAAC,IAAuC;AACrE,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,eAAe,mBAAO,CAAC,EAAwB;AAC/C,kCAAkC,mBAAO,CAAC,IAA6C;AACvF,aAAa,mBAAO,CAAC,IAA+B;AACpD,aAAa,mBAAO,CAAC,IAA2B;AAChD,gBAAgB,mBAAO,CAAC,IAAyB;AACjD,iBAAiB,mBAAO,CAAC,GAA0B;;AAEnD;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtEa;AACb,sBAAsB,mBAAO,CAAC,IAAgC;AAC9D,gBAAgB,mBAAO,CAAC,IAAwB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACVa;AACb,cAAc,mBAAO,CAAC,IAA0B;;AAEhD;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACRa;AACb,cAAc,mBAAO,CAAC,IAAsB;;AAE5C;AACA;AACA;AACA;;;;;;;;ACNa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;ACXa;AACb,YAAY,mBAAO,CAAC,IAAoB;AACxC,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACtBa;AACb;AACA;AACA;AACA;AACA;;;;;;;;ACLa;AACb,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;AACA;AACA;;;;;;;;ACLa;AACb,eAAe,mBAAO,CAAC,EAAwB;;AAE/C;AACA;AACA;;;;;;;;ACLa;AACb;;;;;;;;ACDa;AACb,eAAe,mBAAO,CAAC,EAAwB;AAC/C,uBAAuB,+BAA0C;;AAEjE;AACA;AACA;AACA;AACA;;;;;;;;ACRa;AACb,iBAAiB,mBAAO,CAAC,IAA2B;AACpD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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;;;;;;;AChDa;AACb;;;;;;;;ACDa;AACb,eAAe,mBAAO,CAAC,IAAwB;;AAE/C;AACA;AACA;AACA;AACA;;;;;;;;ACPa;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,YAAY,mBAAO,CAAC,IAAoB;AACxC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,aAAa,mBAAO,CAAC,IAA+B;AACpD,kBAAkB,mBAAO,CAAC,IAA0B;AACpD,iCAAiC,uCAAkD;AACnF,oBAAoB,mBAAO,CAAC,IAA6B;AACzD,0BAA0B,mBAAO,CAAC,IAA6B;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,aAAa,cAAc,UAAU;AAC3E,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAiC;AACtF;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA,4DAA4D,iBAAiB;AAC7E;AACA,MAAM;AACN,IAAI,gBAAgB;AACpB;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACtDY;AACb,kBAAkB,mBAAO,CAAC,IAAoC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACda;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVa;AACb;AACA,YAAY,mBAAO,CAAC,IAAoB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACVY;AACb,gBAAgB,mBAAO,CAAC,IAAyB;;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;;;;;;;;ACpBa;AACb;A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C,UAAU,+BAAuC;AACjD,WAAW,mBAAO,CAAC,IAAuB;AAC1C,mBAAmB,mBAAO,CAAC,IAA6B;AACxD,oBAAoB,mBAAO,CAAC,GAA6B;AACzD,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;AClBa;AACb,kBAAkB,mBAAO,CAAC,IAAoC;AAC9D,oBAAoB,mBAAO,CAAC,GAA6B;AACzD,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,iCAAiC;AAC1E;;;;;;;;ACba;AACb,iBAAiB,mBAAO,CAAC,IAA2B;;AAEpD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;ACzDa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;AC7Ba;AACb,0BAA0B,mBAAO,CAAC,IAA6C;AAC/E,iBAAiB,mBAAO,CAAC,IAA0B;;AAEnD;AACA;AACA;;;;;;;;ACNa;AACb,WAAW,mBAAO,CAAC,IAAoB;AACvC,iBAAiB,mBAAO,CAAC,IAA0B;AACnD,YAAY,mBAAO,CAAC,IAAwB;AAC5C,mBAAmB,mBAAO,CAAC,IAA6B;AACxD,oBAAoB,mBAAO,CAAC,GAA6B;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AACA;AACA,MAAM;AACN;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,IAAI,uDAAuD;AAC3D;AACA;AACA;AACA,CAAC;;;;;;;;ACtQY;AACb,QAAQ,mBAAO,CAAC,IAAqB;AACrC,iBAAiB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","sources":["webpack://pdf.js/./node_modules/core-js/internals/a-callable.js","webpack://pdf.js/./node_modules/core-js/internals/a-possible-prototype.js","webpack://pdf.js/./node_modules/core-js/internals/a-set.js","webpack://pdf.js/./node_modules/core-js/internals/a-string.js","webpack://pdf.js/./node_modules/core-js/internals/a-weak-key.js","webpack://pdf.js/./node_modules/core-js/internals/a-weak-map.js","webpack://pdf.js/./node_modules/core-js/internals/add-to-unscopables.js","webpack://pdf.js/./node_modules/core-js/internals/an-instance.js","webpack://pdf.js/./node_modules/core-js/internals/an-object.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-byte-length.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-is-detached.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-not-detached.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-transfer.js","webpack://pdf.js/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://pdf.js/./node_modules/core-js/internals/array-includes.js","webpack://pdf.js/./node_modules/core-js/internals/array-set-length.js","webpack://pdf.js/./node_modules/core-js/internals/array-slice.js","webpack://pdf.js/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdf.js/./node_modules/core-js/internals/classof-raw.js","webpack://pdf.js/./node_modules/core-js/internals/classof.js","webpack://pdf.js/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdf.js/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdf.js/./node_modules/core-js/internals/create-iter-result-object.js","webpack://pdf.js/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdf.js/./node_modules/core-js/internals/create-property-descriptor.js","webpack://pdf.js/./node_modules/core-js/internals/create-property.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/define-built-ins.js","webpack://pdf.js/./node_modules/core-js/internals/define-global-property.js","webpack://pdf.js/./node_modules/core-js/internals/descriptors.js","webpack://pdf.js/./node_modules/core-js/internals/detach-transferable.js","webpack://pdf.js/./node_modules/core-js/internals/document-create-element.js","webpack://pdf.js/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://pdf.js/./node_modules/core-js/internals/enum-bug-keys.js","webpack://pdf.js/./node_modules/core-js/internals/environment-is-node.js","webpack://pdf.js/./node_modules/core-js/internals/environment-user-agent.js","webpack://pdf.js/./node_modules/core-js/internals/environment-v8-version.js","webpack://pdf.js/./node_modules/core-js/internals/environment.js","webpack://pdf.js/./node_modules/core-js/internals/export.js","webpack://pdf.js/./node_modules/core-js/internals/fails.js","webpack://pdf.js/./node_modules/core-js/internals/function-apply.js","webpack://pdf.js/./node_modules/core-js/internals/function-bind-context.js","webpack://pdf.js/./node_modules/core-js/internals/function-bind-native.js","webpack://pdf.js/./node_modules/core-js/internals/function-call.js","webpack://pdf.js/./node_modules/core-js/internals/function-name.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://pdf.js/./node_modules/core-js/internals/function-uncurry-this.js","webpack://pdf.js/./node_modules/core-js/internals/get-built-in-node-module.js","webpack://pdf.js/./node_modules/core-js/internals/get-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator-direct.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator-method.js","webpack://pdf.js/./node_modules/core-js/internals/get-iterator.js","webpack://pdf.js/./node_modules/core-js/internals/get-method.js","webpack://pdf.js/./node_modules/core-js/internals/get-set-record.js","webpack://pdf.js/./node_modules/core-js/internals/global-this.js","webpack://pdf.js/./node_modules/core-js/internals/has-own-property.js","webpack://pdf.js/./node_modules/core-js/internals/hidden-keys.js","webpack://pdf.js/./node_modules/core-js/internals/html.js","webpack://pdf.js/./node_modules/core-js/internals/ie8-dom-define.js","webpack://pdf.js/./node_modules/core-js/internals/indexed-object.js","webpack://pdf.js/./node_modules/core-js/internals/inspect-source.js","webpack://pdf.js/./node_modules/core-js/internals/internal-state.js","webpack://pdf.js/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdf.js/./node_modules/core-js/internals/is-array.js","webpack://pdf.js/./node_modules/core-js/internals/is-big-int-array.js","webpack://pdf.js/./node_modules/core-js/internals/is-callable.js","webpack://pdf.js/./node_modules/core-js/internals/is-forced.js","webpack://pdf.js/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://pdf.js/./node_modules/core-js/internals/is-object.js","webpack://pdf.js/./node_modules/core-js/internals/is-possible-prototype.js","webpack://pdf.js/./node_modules/core-js/internals/is-pure.js","webpack://pdf.js/./node_modules/core-js/internals/is-raw-json.js","webpack://pdf.js/./node_modules/core-js/internals/is-symbol.js","webpack://pdf.js/./node_modules/core-js/internals/iterate-simple.js","webpack://pdf.js/./node_modules/core-js/internals/iterate.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-close-all.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-close.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-create-proxy.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js","webpack://pdf.js/./node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js","webpack://pdf.js/./node_modules/core-js/internals/iterators-core.js","webpack://pdf.js/./node_modules/core-js/internals/iterators.js","webpack://pdf.js/./node_modules/core-js/internals/length-of-array-like.js","webpack://pdf.js/./node_modules/core-js/internals/make-built-in.js","webpack://pdf.js/./node_modules/core-js/internals/map-helpers.js","webpack://pdf.js/./node_modules/core-js/internals/math-trunc.js","webpack://pdf.js/./node_modules/core-js/internals/native-raw-json.js","webpack://pdf.js/./node_modules/core-js/internals/new-promise-capability.js","webpack://pdf.js/./node_modules/core-js/internals/object-create.js","webpack://pdf.js/./node_modules/core-js/internals/object-define-properties.js","webpack://pdf.js/./node_modules/core-js/internals/object-define-property.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdf.js/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/object-keys-internal.js","webpack://pdf.js/./node_modules/core-js/internals/object-keys.js","webpack://pdf.js/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdf.js/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdf.js/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://pdf.js/./node_modules/core-js/internals/own-keys.js","webpack://pdf.js/./node_modules/core-js/internals/parse-json-string.js","webpack://pdf.js/./node_modules/core-js/internals/require-object-coercible.js","webpack://pdf.js/./node_modules/core-js/internals/set-clone.js","webpack://pdf.js/./node_modules/core-js/internals/set-difference.js","webpack://pdf.js/./node_modules/core-js/internals/set-helpers.js","webpack://pdf.js/./node_modules/core-js/internals/set-intersection.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-disjoint-from.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-subset-of.js","webpack://pdf.js/./node_modules/core-js/internals/set-is-superset-of.js","webpack://pdf.js/./node_modules/core-js/internals/set-iterate.js","webpack://pdf.js/./node_modules/core-js/internals/set-method-accept-set-like.js","webpack://pdf.js/./node_modules/core-js/internals/set-method-get-keys-before-cloning-detection.js","webpack://pdf.js/./node_modules/core-js/internals/set-size.js","webpack://pdf.js/./node_modules/core-js/internals/set-symmetric-difference.js","webpack://pdf.js/./node_modules/core-js/internals/set-union.js","webpack://pdf.js/./node_modules/core-js/internals/shared-key.js","webpack://pdf.js/./node_modules/core-js/internals/shared-store.js","webpack://pdf.js/./node_modules/core-js/internals/shared.js","webpack://pdf.js/./node_modules/core-js/internals/string-pad.js","webpack://pdf.js/./node_modules/core-js/internals/string-repeat.js","webpack://pdf.js/./node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://pdf.js/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://pdf.js/./node_modules/core-js/internals/to-absolute-index.js","webpack://pdf.js/./node_modules/core-js/internals/to-big-int.js","webpack://pdf.js/./node_modules/core-js/internals/to-index.js","webpack://pdf.js/./node_modules/core-js/internals/to-indexed-object.js","webpack://pdf.js/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://pdf.js/./node_modules/core-js/internals/to-length.js","webpack://pdf.js/./node_modules/core-js/internals/to-object.js","webpack://pdf.js/./node_modules/core-js/internals/to-primitive.js","webpack://pdf.js/./node_modules/core-js/internals/to-property-key.js","webpack://pdf.js/./node_modules/core-js/internals/to-string-tag-support.js","webpack://pdf.js/./node_modules/core-js/internals/to-string.js","webpack://pdf.js/./node_modules/core-js/internals/try-to-string.js","webpack://pdf.js/./node_modules/core-js/internals/uid.js","webpack://pdf.js/./node_modules/core-js/internals/url-constructor-detection.js","webpack://pdf.js/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdf.js/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://pdf.js/./node_modules/core-js/internals/validate-arguments-length.js","webpack://pdf.js/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://pdf.js/./node_modules/core-js/internals/weak-map-helpers.js","webpack://pdf.js/./node_modules/core-js/internals/well-known-symbol.js","webpack://pdf.js/./node_modules/core-js/internals/whitespaces.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.detached.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack://pdf.js/./node_modules/core-js/modules/es.array-buffer.transfer.js","webpack://pdf.js/./node_modules/core-js/modules/es.array.includes.js","webpack://pdf.js/./node_modules/core-js/modules/es.array.push.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.constructor.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.every.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.filter.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.for-each.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.map.js","webpack://pdf.js/./node_modules/core-js/modules/es.iterator.some.js","webpack://pdf.js/./node_modules/core-js/modules/es.json.parse.js","webpack://pdf.js/./node_modules/core-js/modules/es.json.stringify.js","webpack://pdf.js/./node_modules/core-js/modules/es.map.get-or-insert-computed.js","webpack://pdf.js/./node_modules/core-js/modules/es.map.get-or-insert.js","webpack://pdf.js/./node_modules/core-js/modules/es.promise.with-resolvers.js","webpack://pdf.js/./node_modules/core-js/modules/es.regexp.escape.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.difference.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.intersection.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.set.union.v2.js","webpack://pdf.js/./node_modules/core-js/modules/es.typed-array.with.js","webpack://pdf.js/./node_modules/core-js/modules/es.weak-map.get-or-insert-computed.js","webpack://pdf.js/./node_modules/core-js/modules/es.weak-map.get-or-insert.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://pdf.js/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://pdf.js/./node_modules/core-js/modules/web.url.parse.js","webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/./web/pdfjs.js","webpack://pdf.js/./web/pdf_find_utils.js","webpack://pdf.js/./web/ui_utils.js","webpack://pdf.js/./web/pdf_find_controller.js","webpack://pdf.js/./web/pdf_link_service.js","webpack://pdf.js/./web/annotation_layer_builder.js","webpack://pdf.js/./web/base_download_manager.js","webpack://pdf.js/./web/download_manager.js","webpack://pdf.js/./web/event_utils.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/types.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/resolver.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/scope.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/builtins.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/memoizer.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/bundle.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/resource.js","webpack://pdf.js/./node_modules/@fluent/bundle/esm/index.js","webpack://pdf.js/./node_modules/@fluent/dom/esm/overlay.js","webpack://pdf.js/./node_modules/cached-iterable/src/cached_iterable.mjs","webpack://pdf.js/./node_modules/cached-iterable/src/cached_sync_iterable.mjs","webpack://pdf.js/./node_modules/cached-iterable/src/cached_async_iterable.mjs","webpack://pdf.js/./node_modules/cached-iterable/src/index.mjs","webpack://pdf.js/./node_modules/@fluent/dom/esm/localization.js","webpack://pdf.js/./node_modules/@fluent/dom/esm/dom_localization.js","webpack://pdf.js/./node_modules/@fluent/dom/esm/index.js","webpack://pdf.js/./web/l10n.js","webpack://pdf.js/./web/genericl10n.js","webpack://pdf.js/./web/pdf_history.js","webpack://pdf.js/./web/annotation_editor_layer_builder.js","webpack://pdf.js/./web/app_options.js","webpack://pdf.js/./web/autolinker.js","webpack://pdf.js/./web/renderable_view.js","webpack://pdf.js/./web/base_pdf_page_view.js","webpack://pdf.js/./web/draw_layer_builder.js","webpack://pdf.js/./web/pdf_page_detail_view.js","webpack://pdf.js/./web/struct_tree_layer_builder.js","webpack://pdf.js/./web/text_accessibility.js","webpack://pdf.js/./web/text_highlighter.js","webpack://pdf.js/./web/text_layer_builder.js","webpack://pdf.js/./web/xfa_layer_builder.js","webpack://pdf.js/./web/pdf_page_view.js","webpack://pdf.js/./web/generic_scripting.js","webpack://pdf.js/./web/pdf_scripting_manager.js","webpack://pdf.js/./web/pdf_scripting_manager.component.js","webpack://pdf.js/./web/pdf_rendering_queue.js","webpack://pdf.js/./web/pdf_viewer.js","webpack://pdf.js/./web/pdf_single_page_viewer.js","webpack://pdf.js/./web/pdf_viewer.component.js"],"sourcesContent":["'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'string') return argument;\n throw new $TypeError('Argument is not a string');\n};\n","'use strict';\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\n\nvar weakmap = new WeakMapHelpers.WeakMap();\nvar set = WeakMapHelpers.set;\nvar remove = WeakMapHelpers.remove;\n\nmodule.exports = function (key) {\n set(weakmap, key, 1);\n remove(weakmap, key);\n return key;\n};\n","'use strict';\nvar has = require('../internals/weak-map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[WeakMapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar DataView = globalThis.DataView;\n\nmodule.exports = function (O) {\n if (!NATIVE_ARRAY_BUFFER || arrayBufferByteLength(O) !== 0) return false;\n try {\n // eslint-disable-next-line no-new -- thrower\n new DataView(O);\n return false;\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar max = Math.max;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n notDetached(arrayBuffer);\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength\n ? { maxByteLength: max(newByteLength, maxByteLength(arrayBuffer)) }\n : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n createNonEnumerableProperty(globalThis[NAME].prototype, TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = function () { /* empty */ }.bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && function something() { /* empty */ }.name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/ecma262/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar getInternalState = require('../internals/internal-state').get;\n\nmodule.exports = function isRawJSON(O) {\n if (!isObject(O)) return false;\n var state = getInternalState(O);\n return !!state && state.type === 'RawJSON';\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n var $iterator = iterator;\n iterator = undefined;\n if ($iterator) iteratorClose($iterator, 'normal');\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n // `IteratorValue` errors should propagate without closing the iterator\n var value = step.value;\n try {\n result = callFn(value);\n } catch (error) {\n if (iterator) iteratorClose(iterator, 'throw', error);\n else throw error;\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar iteratorClose = require('../internals/iterator-close');\n\nmodule.exports = function (iters, kind, value) {\n for (var i = iters.length - 1; i >= 0; i--) {\n if (iters[i] === undefined) continue;\n try {\n value = iteratorClose(iters[i].iterator, kind, value);\n } catch (error) {\n kind = 'throw';\n value = error;\n }\n }\n if (kind === 'throw') throw value;\n return value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorCloseAll = require('../internals/iterator-close-all');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar NORMAL = 'normal';\nvar THROW = 'throw';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` or with `state.returnHandlerResult` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n if (state.done) return createIterResultObject(undefined, true);\n try {\n var result = state.nextHandler();\n return state.returnHandlerResult ? result : createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n var done = state.done;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (done) return createIterResultObject(undefined, true);\n if (state.inner) try {\n iteratorClose(state.inner.iterator, NORMAL);\n } catch (error) {\n return iteratorClose(iterator, THROW, error);\n }\n if (state.openIters) try {\n iteratorCloseAll(state.openIters, NORMAL);\n } catch (error) {\n if (iterator) return iteratorClose(iterator, THROW, error);\n throw error;\n }\n if (iterator) iteratorClose(iterator, NORMAL);\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR, RETURN_HANDLER_RESULT) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.returnHandlerResult = !!RETURN_HANDLER_RESULT;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","'use strict';\n// Should throw an error on invalid iterator\n// https://issues.chromium.org/issues/336839115\nmodule.exports = function (methodName, argument) {\n // eslint-disable-next-line es/no-iterator -- required for testing\n var method = typeof Iterator == 'function' && Iterator.prototype[methodName];\n if (method) try {\n method.call({ next: null }, argument).next();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// https://github.com/tc39/ecma262/pull/3467\nmodule.exports = function (METHOD_NAME, ExpectedError) {\n var Iterator = globalThis.Iterator;\n var IteratorPrototype = Iterator && Iterator.prototype;\n var method = IteratorPrototype && IteratorPrototype[METHOD_NAME];\n\n var CLOSED = false;\n\n if (method) try {\n method.call({\n next: function () { return { done: true }; },\n 'return': function () { CLOSED = true; }\n }, -1);\n } catch (error) {\n // https://bugs.webkit.org/show_bug.cgi?id=291195\n if (!(error instanceof ExpectedError)) CLOSED = false;\n }\n\n if (!CLOSED) return method;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\n/* eslint-disable es/no-json -- safe */\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var unsafeInt = '9007199254740993';\n // eslint-disable-next-line es/no-json-rawjson -- feature detection\n var raw = JSON.rawJSON(unsafeInt);\n // eslint-disable-next-line es/no-json-israwjson -- feature detection\n return !JSON.isRawJSON(raw) || JSON.stringify(raw) !== unsafeInt;\n});\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\n\nvar $SyntaxError = SyntaxError;\nvar $parseInt = parseInt;\nvar fromCharCode = String.fromCharCode;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\n\nvar codePoints = {\n '\\\\\"': '\"',\n '\\\\\\\\': '\\\\',\n '\\\\/': '/',\n '\\\\b': '\\b',\n '\\\\f': '\\f',\n '\\\\n': '\\n',\n '\\\\r': '\\r',\n '\\\\t': '\\t'\n};\n\nvar IS_4_HEX_DIGITS = /^[\\da-f]{4}$/i;\n// eslint-disable-next-line regexp/no-control-character -- safe\nvar IS_C0_CONTROL_CODE = /^[\\u0000-\\u001F]$/;\n\nmodule.exports = function (source, i) {\n var unterminated = true;\n var value = '';\n while (i < source.length) {\n var chr = at(source, i);\n if (chr === '\\\\') {\n var twoChars = slice(source, i, i + 2);\n if (hasOwn(codePoints, twoChars)) {\n value += codePoints[twoChars];\n i += 2;\n } else if (twoChars === '\\\\u') {\n i += 2;\n var fourHexDigits = slice(source, i, i + 4);\n if (!exec(IS_4_HEX_DIGITS, fourHexDigits)) throw new $SyntaxError('Bad Unicode escape at: ' + i);\n value += fromCharCode($parseInt(fourHexDigits, 16));\n i += 4;\n } else throw new $SyntaxError('Unknown escape sequence: \"' + twoChars + '\"');\n } else if (chr === '\"') {\n unterminated = false;\n i++;\n break;\n } else {\n if (exec(IS_C0_CONTROL_CODE, chr)) throw new $SyntaxError('Bad control character in string literal at: ' + i);\n value += chr;\n i++;\n }\n }\n if (unterminated) throw new $SyntaxError('Unterminated string at: ' + i);\n return { value: value, end: i };\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(result) <= otherRec.size) iterateSet(result, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(result, e)) remove(result, e);\n });\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator.iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nvar createSetLikeWithInfinitySize = function (size) {\n return {\n size: size,\n has: function () {\n return true;\n },\n keys: function () {\n throw new Error('e');\n }\n };\n};\n\nmodule.exports = function (name, callback) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17 implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n // also covered engines with\n // https://bugs.webkit.org/show_bug.cgi?id=272679\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n if (!callback) return true;\n // early V8 implementation bug\n // https://issues.chromium.org/issues/351332634\n try {\n new Set()[name](createSetLikeWithInfinitySize(-Infinity));\n return false;\n } catch (error) {\n var set = new Set([1, 2]);\n return callback(set[name](createSetLikeWithInfinitySize(Infinity)));\n }\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\n// Should get iterator record of a set-like object before cloning this\n// https://bugs.webkit.org/show_bug.cgi?id=289430\nmodule.exports = function (METHOD_NAME) {\n try {\n // eslint-disable-next-line es/no-set -- needed for test\n var baseSet = new Set();\n var setLike = {\n size: 0,\n has: function () { return true; },\n keys: function () {\n // eslint-disable-next-line es/no-object-defineproperty -- needed for test\n return Object.defineProperty({}, 'next', {\n get: function () {\n baseSet.clear();\n baseSet.add(4);\n return function () {\n return { done: true };\n };\n }\n });\n }\n };\n var result = baseSet[METHOD_NAME](setLike);\n\n return result.size === 1 && result.values().next().value === 4;\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.49.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: 'Β© 2013β2025 Denis Pushkarev (zloirock.ru), 2025β2026 CoreJS Company (core-js.io). All rights reserved.',\n license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n if (intMaxLength <= stringLength) return S;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (fillStr === '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\nvar floor = Math.floor;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n === Infinity) throw new $RangeError('Wrong number of repetitions');\n for (;n > 0; (n = floor(n / 2)) && (str += str)) if (n % 2) result += str;\n return result;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'https://a');\n var params = url.searchParams;\n var params2 = new URLSearchParams('a=1&a=2&b=3');\n var result = '';\n url.pathname = 'c%20d';\n params.forEach(function (value, key) {\n params['delete']('b');\n result += key + value;\n });\n params2['delete']('a', 2);\n // `undefined` case is a Chromium 117 bug\n // https://bugs.chromium.org/p/v8/issues/detail?id=14222\n params2['delete']('b', undefined);\n return (IS_PURE && (!url.toJSON || !params2.has('a', 1) || params2.has('a', 2) || !params2.has('a', undefined) || params2.has('b')))\n || (!params.size && (IS_PURE || !DESCRIPTORS))\n || !params.sort\n || url.href !== 'https://a/c%20d?a=1&c=3'\n || params.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !params[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('https://ΡΠ΅ΡΡ').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('https://a#Π±').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('https://x', undefined).host !== 'x';\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-weak-map -- safe\nvar WeakMapPrototype = WeakMap.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-weak-map -- safe\n WeakMap: WeakMap,\n set: uncurryThis(WeakMapPrototype.set),\n get: uncurryThis(WeakMapPrototype.get),\n has: uncurryThis(WeakMapPrototype.has),\n remove: uncurryThis(WeakMapPrototype['delete'])\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// Safari 26.4- bug\nvar BROKEN_ON_SPARSE_WITH_FROM_INDEX = fails(function () {\n // eslint-disable-next-line no-sparse-arrays, es/no-array-prototype-includes -- detection\n return [, 1].includes(undefined, 1);\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE || BROKEN_ON_SPARSE_WITH_FROM_INDEX }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar CONSTRUCTOR = 'constructor';\nvar ITERATOR = 'Iterator';\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $TypeError = TypeError;\nvar NativeIterator = globalThis[ITERATOR];\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n if (getPrototypeOf(this) === IteratorPrototype) throw new $TypeError('Abstract class Iterator not directly constructable');\n};\n\nvar defineIteratorPrototypeAccessor = function (key, value) {\n if (DESCRIPTORS) {\n defineBuiltInAccessor(IteratorPrototype, key, {\n configurable: true,\n get: function () {\n return value;\n },\n set: function (replacement) {\n anObject(this);\n if (this === IteratorPrototype) throw new $TypeError(\"You can't redefine this property\");\n if (hasOwn(this, key)) this[key] = replacement;\n else createProperty(this, key, replacement);\n }\n });\n } else IteratorPrototype[key] = value;\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) defineIteratorPrototypeAccessor(TO_STRING_TAG, ITERATOR);\n\nif (FORCED || !hasOwn(IteratorPrototype, CONSTRUCTOR) || IteratorPrototype[CONSTRUCTOR] === Object) {\n defineIteratorPrototypeAccessor(CONSTRUCTOR, IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://tc39.es/ecma262/#sec-iterator\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar everyWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('every', TypeError);\n\n// `Iterator.prototype.every` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.every\n$({ target: 'Iterator', proto: true, real: true, forced: everyWithoutClosingOnEarlyError }, {\n every: function every(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (everyWithoutClosingOnEarlyError) return call(everyWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('filter', function () { /* empty */ });\nvar filterWithoutClosingOnEarlyError = !IS_PURE && !FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('filter', TypeError);\n\nvar FORCED = IS_PURE || FILTER_WITHOUT_THROWING_ON_INVALID_ITERATOR || filterWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.filter\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n filter: function filter(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (filterWithoutClosingOnEarlyError) return call(filterWithoutClosingOnEarlyError, this, predicate);\n\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar forEachWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('forEach', TypeError);\n\n// `Iterator.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.foreach\n$({ target: 'Iterator', proto: true, real: true, forced: forEachWithoutClosingOnEarlyError }, {\n forEach: function forEach(fn) {\n anObject(this);\n try {\n aCallable(fn);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (forEachWithoutClosingOnEarlyError) return call(forEachWithoutClosingOnEarlyError, this, fn);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperThrowsOnInvalidIterator = require('../internals/iterator-helper-throws-on-invalid-iterator');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\nvar IS_PURE = require('../internals/is-pure');\n\nvar MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR = !IS_PURE && !iteratorHelperThrowsOnInvalidIterator('map', function () { /* empty */ });\nvar mapWithoutClosingOnEarlyError = !IS_PURE && !MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR\n && iteratorHelperWithoutClosingOnEarlyError('map', TypeError);\n\nvar FORCED = IS_PURE || MAP_WITHOUT_THROWING_ON_INVALID_ITERATOR || mapWithoutClosingOnEarlyError;\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.map\n$({ target: 'Iterator', proto: true, real: true, forced: FORCED }, {\n map: function map(mapper) {\n anObject(this);\n try {\n aCallable(mapper);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (mapWithoutClosingOnEarlyError) return call(mapWithoutClosingOnEarlyError, this, mapper);\n\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar iteratorClose = require('../internals/iterator-close');\nvar iteratorHelperWithoutClosingOnEarlyError = require('../internals/iterator-helper-without-closing-on-early-error');\n\nvar someWithoutClosingOnEarlyError = iteratorHelperWithoutClosingOnEarlyError('some', TypeError);\n\n// `Iterator.prototype.some` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.some\n$({ target: 'Iterator', proto: true, real: true, forced: someWithoutClosingOnEarlyError }, {\n some: function some(predicate) {\n anObject(this);\n try {\n aCallable(predicate);\n } catch (error) {\n iteratorClose(this, 'throw', error);\n }\n\n if (someWithoutClosingOnEarlyError) return call(someWithoutClosingOnEarlyError, this, predicate);\n\n var record = getIteratorDirect(this);\n var counter = 0;\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar fails = require('../internals/fails');\nvar parseJSONString = require('../internals/parse-json-string');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar JSON = globalThis.JSON;\nvar Number = globalThis.Number;\nvar SyntaxError = globalThis.SyntaxError;\nvar nativeParse = JSON && JSON.parse;\nvar enumerableOwnProperties = getBuiltIn('Object', 'keys');\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar at = uncurryThis(''.charAt);\nvar slice = uncurryThis(''.slice);\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis([].push);\n\nvar IS_DIGIT = /^\\d$/;\nvar IS_NON_ZERO_DIGIT = /^[1-9]$/;\nvar IS_NUMBER_START = /^[\\d-]$/;\nvar IS_WHITESPACE = /^[\\t\\n\\r ]$/;\n\nvar PRIMITIVE = 0;\nvar OBJECT = 1;\n\nvar $parse = function (source, reviver) {\n source = toString(source);\n var context = new Context(source, 0, '');\n var root = context.parse();\n var value = root.value;\n var endIndex = context.skip(IS_WHITESPACE, root.end);\n if (endIndex < source.length) {\n throw new SyntaxError('Unexpected extra character: \"' + at(source, endIndex) + '\" after the parsed data at: ' + endIndex);\n }\n return isCallable(reviver) ? internalize({ '': value }, '', reviver, root) : value;\n};\n\nvar internalize = function (holder, name, reviver, node) {\n var val = holder[name];\n var unmodified = node && val === node.value;\n var context = unmodified && typeof node.source == 'string' ? { source: node.source } : {};\n var elementRecordsLen, keys, len, i, P;\n if (isObject(val)) {\n var nodeIsArray = isArray(val);\n var nodes = unmodified ? node.nodes : nodeIsArray ? [] : {};\n if (nodeIsArray) {\n elementRecordsLen = nodes.length;\n len = lengthOfArrayLike(val);\n for (i = 0; i < len; i++) {\n internalizeProperty(val, i, internalize(val, '' + i, reviver, i < elementRecordsLen ? nodes[i] : undefined));\n }\n } else {\n keys = enumerableOwnProperties(val);\n len = lengthOfArrayLike(keys);\n for (i = 0; i < len; i++) {\n P = keys[i];\n internalizeProperty(val, P, internalize(val, P, reviver, hasOwn(nodes, P) ? nodes[P] : undefined));\n }\n }\n }\n return call(reviver, holder, name, val, context);\n};\n\nvar internalizeProperty = function (object, key, value) {\n if (DESCRIPTORS) {\n var descriptor = getOwnPropertyDescriptor(object, key);\n if (descriptor && !descriptor.configurable) return;\n }\n if (value === undefined) delete object[key];\n else createProperty(object, key, value);\n};\n\nvar Node = function (value, end, source, nodes) {\n this.value = value;\n this.end = end;\n this.source = source;\n this.nodes = nodes;\n};\n\nvar Context = function (source, index) {\n this.source = source;\n this.index = index;\n};\n\n// https://www.json.org/json-en.html\nContext.prototype = {\n fork: function (nextIndex) {\n return new Context(this.source, nextIndex);\n },\n parse: function () {\n var source = this.source;\n var i = this.skip(IS_WHITESPACE, this.index);\n var fork = this.fork(i);\n var chr = at(source, i);\n if (exec(IS_NUMBER_START, chr)) return fork.number();\n switch (chr) {\n case '{':\n return fork.object();\n case '[':\n return fork.array();\n case '\"':\n return fork.string();\n case 't':\n return fork.keyword(true);\n case 'f':\n return fork.keyword(false);\n case 'n':\n return fork.keyword(null);\n } throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n },\n node: function (type, value, start, end, nodes) {\n return new Node(value, end, type ? null : slice(this.source, start, end), nodes);\n },\n object: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectKeypair = false;\n var object = {};\n var nodes = {};\n var closed = false;\n while (i < source.length) {\n i = this.until(['\"', '}'], i);\n if (at(source, i) === '}' && !expectKeypair) {\n i++;\n closed = true;\n break;\n }\n // Parsing the key\n var result = this.fork(i).string();\n var key = result.value;\n i = result.end;\n i = this.until([':'], i) + 1;\n // Parsing value\n i = this.skip(IS_WHITESPACE, i);\n result = this.fork(i).parse();\n createProperty(nodes, key, result);\n createProperty(object, key, result.value);\n i = this.until([',', '}'], result.end);\n var chr = at(source, i);\n if (chr === ',') {\n expectKeypair = true;\n i++;\n } else if (chr === '}') {\n i++;\n closed = true;\n break;\n }\n }\n if (!closed) throw new SyntaxError('Unterminated object at: ' + i);\n return this.node(OBJECT, object, this.index, i, nodes);\n },\n array: function () {\n var source = this.source;\n var i = this.index + 1;\n var expectElement = false;\n var array = [];\n var nodes = [];\n var closed = false;\n while (i < source.length) {\n i = this.skip(IS_WHITESPACE, i);\n if (at(source, i) === ']' && !expectElement) {\n i++;\n closed = true;\n break;\n }\n var result = this.fork(i).parse();\n push(nodes, result);\n push(array, result.value);\n i = this.until([',', ']'], result.end);\n if (at(source, i) === ',') {\n expectElement = true;\n i++;\n } else if (at(source, i) === ']') {\n i++;\n closed = true;\n break;\n }\n }\n if (!closed) throw new SyntaxError('Unterminated array at: ' + i);\n return this.node(OBJECT, array, this.index, i, nodes);\n },\n string: function () {\n var index = this.index;\n var parsed = parseJSONString(this.source, this.index + 1);\n return this.node(PRIMITIVE, parsed.value, index, parsed.end);\n },\n number: function () {\n var source = this.source;\n var startIndex = this.index;\n var i = startIndex;\n if (at(source, i) === '-') i++;\n if (at(source, i) === '0') i++;\n else if (exec(IS_NON_ZERO_DIGIT, at(source, i))) i = this.skip(IS_DIGIT, i + 1);\n else throw new SyntaxError('Failed to parse number at: ' + i);\n if (at(source, i) === '.') {\n var fractionStartIndex = i + 1;\n i = this.skip(IS_DIGIT, fractionStartIndex);\n if (fractionStartIndex === i) throw new SyntaxError(\"Failed to parse number's fraction at: \" + i);\n }\n if (at(source, i) === 'e' || at(source, i) === 'E') {\n i++;\n if (at(source, i) === '+' || at(source, i) === '-') i++;\n var exponentStartIndex = i;\n i = this.skip(IS_DIGIT, i);\n if (exponentStartIndex === i) throw new SyntaxError(\"Failed to parse number's exponent value at: \" + i);\n }\n return this.node(PRIMITIVE, Number(slice(source, startIndex, i)), startIndex, i);\n },\n keyword: function (value) {\n var keyword = '' + value;\n var index = this.index;\n var endIndex = index + keyword.length;\n if (slice(this.source, index, endIndex) !== keyword) throw new SyntaxError('Failed to parse value at: ' + index);\n return this.node(PRIMITIVE, value, index, endIndex);\n },\n skip: function (regex, i) {\n var source = this.source;\n for (; i < source.length; i++) if (!exec(regex, at(source, i))) break;\n return i;\n },\n until: function (array, i) {\n i = this.skip(IS_WHITESPACE, i);\n var chr = at(this.source, i);\n for (var j = 0; j < array.length; j++) if (array[j] === chr) return i;\n throw new SyntaxError('Unexpected character: \"' + chr + '\" at: ' + i);\n }\n};\n\nvar NO_SOURCE_SUPPORT = fails(function () {\n var unsafeInt = '9007199254740993';\n var source;\n nativeParse(unsafeInt, function (key, value, context) {\n source = context.source;\n });\n return source !== unsafeInt;\n});\n\nvar PROPER_BASE_PARSE = NATIVE_SYMBOL && !fails(function () {\n // Safari 9 bug\n return 1 / nativeParse('-0 \\t') !== -Infinity;\n});\n\n// `JSON.parse` method\n// https://tc39.es/ecma262/#sec-json.parse\n// https://github.com/tc39/proposal-json-parse-with-source\n$({ target: 'JSON', stat: true, forced: NO_SOURCE_SUPPORT }, {\n parse: function parse(text, reviver) {\n return PROPER_BASE_PARSE && !isCallable(reviver) ? nativeParse(text) : $parse(text, reviver);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isRawJSON = require('../internals/is-raw-json');\nvar isSymbol = require('../internals/is-symbol');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\nvar arraySlice = require('../internals/array-slice');\nvar parseJSONString = require('../internals/parse-json-string');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar NATIVE_RAW_JSON = require('../internals/native-raw-json');\n\nvar $String = String;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar slice = uncurryThis(''.slice);\nvar push = uncurryThis([].push);\nvar numberToString = uncurryThis(1.1.toString);\n\nvar surrogates = /[\\uD800-\\uDFFF]/g;\nvar leadingSurrogates = /^[\\uD800-\\uDBFF]$/;\nvar trailingSurrogates = /^[\\uDC00-\\uDFFF]$/;\n\nvar MARK = uid();\nvar MARK_LENGTH = MARK.length;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')('stringify detection');\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) !== '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) !== '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) !== '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithProperSymbolsConversion = WRONG_SYMBOLS_CONVERSION ? function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\n return apply($stringify, null, args);\n} : $stringify;\n\nvar fixIllFormedJSON = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if (\n (exec(leadingSurrogates, match) && !exec(trailingSurrogates, next)) ||\n (exec(trailingSurrogates, match) && !exec(leadingSurrogates, prev))\n ) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nvar getReplacerFunction = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n\n// `JSON.stringify` method\n// https://tc39.es/ecma262/#sec-json.stringify\n// https://github.com/tc39/proposal-json-parse-with-source\nif ($stringify) $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE || !NATIVE_RAW_JSON }, {\n stringify: function stringify(text, replacer, space) {\n var replacerFunction = getReplacerFunction(replacer);\n var rawStrings = [];\n\n var json = stringifyWithProperSymbolsConversion(text, function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n var v = isCallable(replacerFunction) ? call(replacerFunction, this, $String(key), value) : value;\n return !NATIVE_RAW_JSON && isRawJSON(v) ? MARK + (push(rawStrings, v.rawJSON) - 1) : v;\n }, space);\n\n if (typeof json != 'string') return json;\n\n if (ILL_FORMED_UNICODE) json = replace(json, surrogates, fixIllFormedJSON);\n\n if (NATIVE_RAW_JSON) return json;\n\n var result = '';\n var length = json.length;\n\n for (var i = 0; i < length; i++) {\n var chr = charAt(json, i);\n if (chr === '\"') {\n var end = parseJSONString(json, ++i).end - 1;\n var string = slice(json, i, end);\n result += slice(string, 0, MARK_LENGTH) === MARK\n ? rawStrings[slice(string, MARK_LENGTH)]\n : '\"' + string + '\"';\n i = end;\n } else result += chr;\n }\n\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsertComputed` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsertcomputed\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n var hasKey = has(this, key);\n aCallable(callbackfn);\n if (hasKey) return get(this, key);\n // CanonicalizeKeyedCollectionKey\n if (key === 0 && 1 / key === -Infinity) key = 0;\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.getOrInsert` method\n// https://tc39.es/ecma262/#sec-map.prototype.getorinsert\n$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(this, key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aString = require('../internals/a-string');\nvar hasOwn = require('../internals/has-own-property');\nvar padStart = require('../internals/string-pad').start;\nvar WHITESPACES = require('../internals/whitespaces');\n\nvar $Array = Array;\nvar $escape = RegExp.escape;\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar numberToString = uncurryThis(1.1.toString);\nvar join = uncurryThis([].join);\nvar FIRST_DIGIT_OR_ASCII = /^[0-9a-z]/i;\nvar SYNTAX_SOLIDUS = /^[$()*+./?[\\\\\\]^{|}]/;\nvar OTHER_PUNCTUATORS_AND_WHITESPACES = RegExp('^[!\"#%&\\',\\\\-:;<=>@`~' + WHITESPACES + ']');\nvar exec = uncurryThis(FIRST_DIGIT_OR_ASCII.exec);\n\nvar ControlEscape = {\n '\\u0009': 't',\n '\\u000A': 'n',\n '\\u000B': 'v',\n '\\u000C': 'f',\n '\\u000D': 'r'\n};\n\nvar escapeChar = function (chr) {\n var hex = numberToString(charCodeAt(chr, 0), 16);\n return hex.length < 3 ? '\\\\x' + padStart(hex, 2, '0') : '\\\\u' + padStart(hex, 4, '0');\n};\n\n// Avoiding the use of polyfills of the previous iteration of this proposal\nvar FORCED = !$escape || $escape('ab') !== '\\\\x61b';\n\n// `RegExp.escape` method\n// https://tc39.es/ecma262/#sec-regexp.escape\n$({ target: 'RegExp', stat: true, forced: FORCED }, {\n escape: function escape(S) {\n aString(S);\n var length = S.length;\n var result = $Array(length);\n\n for (var i = 0; i < length; i++) {\n var chr = charAt(S, i);\n if (i === 0 && exec(FIRST_DIGIT_OR_ASCII, chr)) {\n result[i] = escapeChar(chr);\n } else if (hasOwn(ControlEscape, chr)) {\n result[i] = '\\\\' + ControlEscape[chr];\n } else if (exec(SYNTAX_SOLIDUS, chr)) {\n result[i] = '\\\\' + chr;\n } else if (exec(OTHER_PUNCTUATORS_AND_WHITESPACES, chr)) {\n result[i] = escapeChar(chr);\n } else {\n var charCode = charCodeAt(chr, 0);\n // single UTF-16 code unit\n if ((charCode & 0xF800) !== 0xD800) result[i] = chr;\n // unpaired surrogate\n else if (charCode >= 0xDC00 || i + 1 >= length || (charCodeAt(S, i + 1) & 0xFC00) !== 0xDC00) result[i] = escapeChar(chr);\n // surrogate pair\n else {\n result[i] = chr;\n result[++i] = charAt(S, i);\n }\n }\n }\n\n return join(result, '');\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar fails = require('../internals/fails');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar SET_LIKE_INCORRECT_BEHAVIOR = !setMethodAcceptSetLike('difference', function (result) {\n return result.size === 0;\n});\n\nvar FORCED = SET_LIKE_INCORRECT_BEHAVIOR || fails(function () {\n // https://bugs.webkit.org/show_bug.cgi?id=288595\n var setLike = {\n size: 1,\n has: function () { return true; },\n keys: function () {\n var index = 0;\n return {\n next: function () {\n var done = index++ > 1;\n if (baseSet.has(1)) baseSet.clear();\n return { done: done, value: 2 };\n }\n };\n }\n };\n // eslint-disable-next-line es/no-set -- testing\n var baseSet = new Set([1, 2, 3, 4]);\n // eslint-disable-next-line es/no-set-prototype-difference -- testing\n return baseSet.difference(setLike).size !== 3;\n});\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection', function (result) {\n return result.size === 2 && result.has(1) && result.has(2);\n}) || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set, es/no-set-prototype-intersection -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isDisjointFrom', function (result) {\n return !result;\n});\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSubsetOf', function (result) {\n return result;\n});\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('isSupersetOf', function (result) {\n return !result;\n});\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar FORCED = !setMethodAcceptSetLike('symmetricDifference') || !setMethodGetKeysBeforeCloning('symmetricDifference');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodGetKeysBeforeCloning = require('../internals/set-method-get-keys-before-cloning-detection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar FORCED = !setMethodAcceptSetLike('union') || !setMethodGetKeysBeforeCloning('union');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: FORCED }, {\n union: union\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar $RangeError = RangeError;\n\nvar PROPER_ORDER = function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// Bug in WebKit. It should truncate a negative fractional index to zero, but instead throws an error\nvar THROW_ON_NEGATIVE_FRACTIONAL_INDEX = PROPER_ORDER && function () {\n try {\n // eslint-disable-next-line es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](-0.5, 1);\n } catch (error) {\n return true;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n var numericValue = isBigIntArray(O) ? toBigInt(value) : +value;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new (getTypedArrayConstructor(O))(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? numericValue : O[k];\n return A;\n} }['with'], !PROPER_ORDER || THROW_ON_NEGATIVE_FRACTIONAL_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aWeakMap = require('../internals/a-weak-map');\nvar aWeakKey = require('../internals/a-weak-key');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\nvar FORCED = IS_PURE || !function () {\n try {\n // eslint-disable-next-line es/no-weak-map, no-throw-literal -- testing\n if (WeakMap.prototype.getOrInsertComputed) new WeakMap().getOrInsertComputed(1, function () { throw 1; });\n } catch (error) {\n // FF144 Nightly - Beta 3 bug\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1988369\n return error instanceof TypeError;\n }\n}();\n\n// `WeakMap.prototype.getOrInsertComputed` method\n// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsertcomputed\n$({ target: 'WeakMap', proto: true, real: true, forced: FORCED }, {\n getOrInsertComputed: function getOrInsertComputed(key, callbackfn) {\n if (!IS_PURE) aWeakMap(this);\n aWeakKey(key);\n aCallable(callbackfn);\n if (has(this, key)) return get(this, key);\n var value = callbackfn(key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar WeakMapHelpers = require('../internals/weak-map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar get = WeakMapHelpers.get;\nvar has = WeakMapHelpers.has;\nvar set = WeakMapHelpers.set;\n\n// `WeakMap.prototype.getOrInsert` method\n// https://tc39.es/ecma262/#sec-weakmap.prototype.getorinsert\n$({ target: 'WeakMap', proto: true, real: true, forced: IS_PURE }, {\n getOrInsert: function getOrInsert(key, value) {\n if (has(this, key)) return get(this, key);\n set(this, key, value);\n return value;\n }\n});\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar append = uncurryThis(URLSearchParamsPrototype.append);\nvar $delete = uncurryThis(URLSearchParamsPrototype['delete']);\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\nvar push = uncurryThis([].push);\nvar params = new $URLSearchParams('a=1&a=2&b=3');\n\nparams['delete']('a', 1);\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nparams['delete']('b', undefined);\n\nif (params + '' !== 'a=2') {\n defineBuiltIn(URLSearchParamsPrototype, 'delete', function (name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $delete(this, name);\n var entries = [];\n forEach(this, function (v, k) { // also validates `this`\n push(entries, { key: k, value: v });\n });\n validateArgumentsLength(length, 1);\n var key = toString(name);\n var value = toString($value);\n var index = 0;\n var entriesLength = entries.length;\n var entry;\n while (index < entriesLength) {\n entry = entries[index];\n $delete(this, entry.key);\n index++;\n }\n index = 0;\n while (index < entriesLength) {\n entry = entries[index++];\n if (!(entry.key === key && entry.value === value)) append(this, entry.key, entry.value);\n }\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar $URLSearchParams = URLSearchParams;\nvar URLSearchParamsPrototype = $URLSearchParams.prototype;\nvar getAll = uncurryThis(URLSearchParamsPrototype.getAll);\nvar $has = uncurryThis(URLSearchParamsPrototype.has);\nvar params = new $URLSearchParams('a=1');\n\n// `undefined` case is a Chromium 117 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=14222\nif (params.has('a', 2) || !params.has('a', undefined)) {\n defineBuiltIn(URLSearchParamsPrototype, 'has', function has(name /* , value */) {\n var length = arguments.length;\n var $value = length < 2 ? undefined : arguments[1];\n if (length && $value === undefined) return $has(this, name);\n var values = getAll(this, name); // also validates `this`\n validateArgumentsLength(length, 1);\n var value = toString($value);\n var index = 0;\n while (index < values.length) {\n if (values[index++] === value) return true;\n } return false;\n }, { enumerable: true, unsafe: true });\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\nvar URLSearchParamsPrototype = URLSearchParams.prototype;\nvar forEach = uncurryThis(URLSearchParamsPrototype.forEach);\n\n// `URLSearchParams.prototype.size` getter\n// https://github.com/whatwg/url/pull/734\nif (DESCRIPTORS && !('size' in URLSearchParamsPrototype)) {\n defineBuiltInAccessor(URLSearchParamsPrototype, 'size', {\n get: function size() {\n var count = 0;\n forEach(this, function () { count++; });\n return count;\n },\n configurable: true,\n enumerable: true\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar toString = require('../internals/to-string');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\n\nvar URL = getBuiltIn('URL');\n\n// `URL.parse` method\n// https://url.spec.whatwg.org/#dom-url-parse\n$({ target: 'URL', stat: true, forced: !USE_NATIVE_URL }, {\n parse: function parse(url) {\n var length = validateArgumentsLength(arguments.length, 1);\n var urlString = toString(url);\n var base = length < 2 || arguments[1] === undefined ? undefined : toString(arguments[1]);\n try {\n return new URL(urlString, base);\n } catch (error) {\n return null;\n }\n }\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst {\n AbortException,\n AnnotationEditorLayer,\n AnnotationEditorParamsType,\n AnnotationEditorType,\n AnnotationEditorUIManager,\n AnnotationLayer,\n AnnotationMode,\n AnnotationType,\n applyOpacity,\n build,\n ColorPicker,\n createValidAbsoluteUrl,\n CSSConstants,\n DOMSVGFactory,\n DrawLayer,\n FeatureTest,\n fetchData,\n findContrastColor,\n getDocument,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n getRGB,\n getRGBA,\n getUuid,\n getXfaPageViewport,\n GlobalWorkerOptions,\n ImageKind,\n InvalidPDFException,\n isDataScheme,\n isPdfFile,\n isValidExplicitDest,\n makeArr,\n makeMap,\n makeObj,\n MathClamp,\n noContextMenu,\n normalizeUnicode,\n OPS,\n OutputScale,\n PasswordResponses,\n PDFDataRangeTransport,\n PDFDateString,\n PDFWorker,\n PermissionFlag,\n PixelsPerInch,\n RenderingCancelledException,\n renderRichText,\n ResponseException,\n setLayerDimensions,\n shadow,\n SignatureExtractor,\n stopEvent,\n SupportedImageMimeTypes,\n TextLayer,\n TextLayerImages,\n TouchManager,\n updateUrlHash,\n Util,\n VerbosityLevel,\n version,\n XfaLayer,\n} = globalThis.pdfjsLib;\n\nexport {\n AbortException,\n AnnotationEditorLayer,\n AnnotationEditorParamsType,\n AnnotationEditorType,\n AnnotationEditorUIManager,\n AnnotationLayer,\n AnnotationMode,\n AnnotationType,\n applyOpacity,\n build,\n ColorPicker,\n createValidAbsoluteUrl,\n CSSConstants,\n DOMSVGFactory,\n DrawLayer,\n FeatureTest,\n fetchData,\n findContrastColor,\n getDocument,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n getRGB,\n getRGBA,\n getUuid,\n getXfaPageViewport,\n GlobalWorkerOptions,\n ImageKind,\n InvalidPDFException,\n isDataScheme,\n isPdfFile,\n isValidExplicitDest,\n makeArr,\n makeMap,\n makeObj,\n MathClamp,\n noContextMenu,\n normalizeUnicode,\n OPS,\n OutputScale,\n PasswordResponses,\n PDFDataRangeTransport,\n PDFDateString,\n PDFWorker,\n PermissionFlag,\n PixelsPerInch,\n RenderingCancelledException,\n renderRichText,\n ResponseException,\n setLayerDimensions,\n shadow,\n SignatureExtractor,\n stopEvent,\n SupportedImageMimeTypes,\n TextLayer,\n TextLayerImages,\n TouchManager,\n updateUrlHash,\n Util,\n VerbosityLevel,\n version,\n XfaLayer,\n};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest } from \"pdfjs-lib\";\n\nconst CharacterType = {\n SPACE: 0,\n ALPHA_LETTER: 1,\n PUNCT: 2,\n HAN_LETTER: 3,\n KATAKANA_LETTER: 4,\n HIRAGANA_LETTER: 5,\n HALFWIDTH_KATAKANA_LETTER: 6,\n THAI_LETTER: 7,\n};\n\nfunction isAlphabeticalScript(charCode) {\n return charCode < 0x2e80;\n}\n\nfunction isAscii(charCode) {\n return (charCode & 0xff80) === 0;\n}\n\nfunction isAsciiAlpha(charCode) {\n return (\n (charCode >= /* a = */ 0x61 && charCode <= /* z = */ 0x7a) ||\n (charCode >= /* A = */ 0x41 && charCode <= /* Z = */ 0x5a)\n );\n}\n\nfunction isAsciiDigit(charCode) {\n return charCode >= /* 0 = */ 0x30 && charCode <= /* 9 = */ 0x39;\n}\n\nfunction isAsciiSpace(charCode) {\n return (\n charCode === /* SPACE = */ 0x20 ||\n charCode === /* TAB = */ 0x09 ||\n charCode === /* CR = */ 0x0d ||\n charCode === /* LF = */ 0x0a\n );\n}\n\nfunction isHan(charCode) {\n return (\n (charCode >= 0x3400 && charCode <= 0x9fff) ||\n (charCode >= 0xf900 && charCode <= 0xfaff)\n );\n}\n\nfunction isKatakana(charCode) {\n return charCode >= 0x30a0 && charCode <= 0x30ff;\n}\n\nfunction isHiragana(charCode) {\n return charCode >= 0x3040 && charCode <= 0x309f;\n}\n\nfunction isHalfwidthKatakana(charCode) {\n return charCode >= 0xff60 && charCode <= 0xff9f;\n}\n\nfunction isThai(charCode) {\n return (charCode & 0xff80) === 0x0e00;\n}\n\n/**\n * This function is based on the word-break detection implemented in:\n * https://hg.mozilla.org/mozilla-central/file/tip/intl/lwbrk/WordBreaker.cpp\n */\nfunction getCharacterType(charCode) {\n if (isAlphabeticalScript(charCode)) {\n if (isAscii(charCode)) {\n if (isAsciiSpace(charCode)) {\n return CharacterType.SPACE;\n } else if (\n isAsciiAlpha(charCode) ||\n isAsciiDigit(charCode) ||\n charCode === /* UNDERSCORE = */ 0x5f\n ) {\n return CharacterType.ALPHA_LETTER;\n }\n return CharacterType.PUNCT;\n } else if (isThai(charCode)) {\n return CharacterType.THAI_LETTER;\n } else if (charCode === /* NBSP = */ 0xa0) {\n return CharacterType.SPACE;\n }\n return CharacterType.ALPHA_LETTER;\n }\n\n if (isHan(charCode)) {\n return CharacterType.HAN_LETTER;\n } else if (isKatakana(charCode)) {\n return CharacterType.KATAKANA_LETTER;\n } else if (isHiragana(charCode)) {\n return CharacterType.HIRAGANA_LETTER;\n } else if (isHalfwidthKatakana(charCode)) {\n return CharacterType.HALFWIDTH_KATAKANA_LETTER;\n }\n return CharacterType.ALPHA_LETTER;\n}\n\nlet NormalizeWithNFKC;\nfunction getNormalizeWithNFKC() {\n if (\n (typeof PDFJSDev === \"undefined\" && FeatureTest.platform.isFirefox) ||\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\"))\n ) {\n // The `NormalizeWithNFKC` string is generated with the for loop below.\n // Because of a small difference between Chrome and Firefox, the string is\n // only hardcoded for Firefox, and Chrome (or others) will generate it at\n // runtime.\n // In order to detect if the string is up to date, a check is performed in\n // the loop below, and if a difference is detected, an error is thrown.\n /* eslint-disable no-irregular-whitespace */\n NormalizeWithNFKC ||= `\\xA0Β¨ΒͺΒ―Β²-¡¸-ΒΊΒΌ-ΒΎΔ²-Δ³ΔΏ-ΕΕΕΏΗ-ΗΗ±-Η³Κ°-ΚΈΛ-ΛΛ -Λ€Ν΄ΝΊΝΎΞ-Ξ
ΞΟ-ΟΟ°-Ο²Ο΄-ϡϹΦΩ΅-ΩΈΰ₯-ΰ₯ΰ§-ΰ§ΰ§ΰ¨³ΰ¨Άΰ©-ΰ©ΰ©ΰ-ΰΰΈ³ΰΊ³ΰ»-ΰ»ΰΌΰ½ΰ½ΰ½ΰ½ΰ½ΰ½©αΌα΄¬-α΄α΄°-α΄Ία΄Ό-α΅α΅-α΅ͺα΅ΈαΆ-αΆΏαΊ-αΊα½±α½³α½΅α½·α½Ήα½»α½½αΎ»αΎ½-αΏαΏαΏαΏ-αΏαΏαΏαΏ-αΏαΏ£αΏ«αΏ-αΏ―αΏΉαΏ»αΏ½-αΏΎβ-ββββ€-β¦β―β³-β΄βΆ-β·βΌβΎβ-ββββ°-β±β΄-ββ-ββ¨β-ββ
-ββ-ββ-ββ-ββ -β’β€β¦β¨βͺ-ββ―-β±β³-βΉβ»-β
β
-β
β
-β
Ώββ¬-ββ―-β°β©-βͺβ -βͺβ¨β©΄-β©Άβ«β±Ό-β±½β΅―βΊβ»³βΌ-βΏγγΆγΈ-γΊγ-γγγΏγ±-γγ-γγ-γγ -γγ-γΎγ-γΏκ-κκ°κ±-κ΄κΈ-κΉκ-κκ©ο€-ο¨ο¨ο¨ο¨-ο¨ο¨ ο¨’ο¨₯-都ο¨ͺ-ο©ο©°-ο«ο¬-ο¬ο¬-ο¬ο¬ο¬-ο¬Άο¬Έ-ο¬Όο¬Ύο-οο-οο-ο±ο―-ο΄½ο΅-οΆοΆ-ο·ο·°-ο·ΌοΈ-οΈοΈ°-οΉοΉ-οΉοΉ-οΉ¦οΉ¨-οΉ«οΉ°-οΉ²οΉ΄οΉΆ-ο»ΌοΌ-οΎΎοΏ-οΏοΏ-οΏοΏ-οΏοΏ-οΏοΏ -οΏ¦`;\n }\n\n if (\n typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"TESTING\") ||\n (!PDFJSDev.test(\"MOZCENTRAL\") && !NormalizeWithNFKC)\n ) {\n const ranges = [];\n const range = [];\n const diacriticsRegex = /^\\p{M}$/u;\n // Some chars must be replaced by their NFKC counterpart during a search.\n for (let i = 0; i < 65536; i++) {\n if (i >= 0xd800 && i <= 0xdfff) {\n continue; // Skip surrogates since they're not valid Unicode scalar values.\n }\n const c = String.fromCharCode(i);\n if (c.normalize(\"NFKC\") !== c && !diacriticsRegex.test(c)) {\n if (range.length !== 2) {\n range[0] = range[1] = i;\n continue;\n }\n if (range[1] + 1 !== i) {\n if (range[0] === range[1]) {\n ranges.push(String.fromCharCode(range[0]));\n } else {\n ranges.push(\n `${String.fromCharCode(range[0])}-${String.fromCharCode(\n range[1]\n )}`\n );\n }\n range[0] = range[1] = i;\n } else {\n range[1] = i;\n }\n }\n }\n\n const rangesStr = ranges.join(\"\");\n if (!NormalizeWithNFKC) {\n NormalizeWithNFKC = rangesStr;\n } else if (rangesStr !== NormalizeWithNFKC) {\n for (let i = 1; i < rangesStr.length; i++) {\n if (rangesStr[i] !== NormalizeWithNFKC[i]) {\n console.log(\n `Difference at index ${i}: ` +\n `U+${rangesStr.charCodeAt(i).toString(16).toUpperCase().padStart(4, \"0\")}` +\n `!== U+${NormalizeWithNFKC.charCodeAt(i)\n .toString(16)\n .toUpperCase()\n .padStart(4, \"0\")}`\n );\n break;\n }\n }\n throw new Error(\n \"getNormalizeWithNFKC - update the `NormalizeWithNFKC` string.\"\n );\n }\n }\n return NormalizeWithNFKC;\n}\n\nexport { CharacterType, getCharacterType, getNormalizeWithNFKC };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst DEFAULT_SCALE_VALUE = \"auto\";\nconst DEFAULT_SCALE = 1.0;\nconst DEFAULT_SCALE_DELTA = 1.1;\nconst MIN_SCALE = 0.1;\nconst MAX_SCALE = 25.0;\nconst UNKNOWN_SCALE = 0;\nconst MAX_AUTO_SCALE = 1.25;\nconst SCROLLBAR_PADDING = 40;\nconst VERTICAL_PADDING = 5;\n\nconst PresentationModeState = {\n UNKNOWN: 0,\n NORMAL: 1,\n CHANGING: 2,\n FULLSCREEN: 3,\n};\n\nconst SidebarView = {\n UNKNOWN: -1,\n NONE: 0,\n THUMBS: 1, // Default value.\n OUTLINE: 2,\n ATTACHMENTS: 3,\n LAYERS: 4,\n};\n\nconst TextLayerMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_PERMISSIONS: 2,\n};\n\nconst ScrollMode = {\n UNKNOWN: -1,\n VERTICAL: 0, // Default value.\n HORIZONTAL: 1,\n WRAPPED: 2,\n PAGE: 3,\n};\n\nconst SpreadMode = {\n UNKNOWN: -1,\n NONE: 0, // Default value.\n ODD: 1,\n EVEN: 2,\n};\n\nconst CursorTool = {\n SELECT: 0, // The default value.\n HAND: 1,\n ZOOM: 2,\n};\n\n// Used by `PDFViewerApplication`, and by the API unit-tests.\nconst AutoPrintRegExp = /\\bprint\\s*\\(/;\n\n/**\n * Scrolls specified element into view of its parent.\n * @param {HTMLElement} element - The element to be visible.\n * @param {Object} [spot] - An object with optional top and left properties,\n * specifying the offset from the top left edge.\n * @param {number} [spot.left]\n * @param {number} [spot.top]\n */\nfunction scrollIntoView(element, spot) {\n // Assuming offsetParent is available (it's not available when viewer is in\n // hidden iframe or object). We have to scroll: if the offsetParent is not set\n // producing the error. See also animationStarted.\n let parent = element.offsetParent;\n if (!parent) {\n console.error(\"offsetParent is not set -- cannot scroll\");\n return;\n }\n let offsetY = element.offsetTop + element.clientTop;\n let offsetX = element.offsetLeft + element.clientLeft;\n while (\n parent.clientHeight === parent.scrollHeight &&\n parent.clientWidth === parent.scrollWidth\n ) {\n offsetY += parent.offsetTop;\n offsetX += parent.offsetLeft;\n\n parent = parent.offsetParent;\n if (!parent) {\n return; // no need to scroll\n }\n }\n if (spot) {\n if (spot.top !== undefined) {\n offsetY += spot.top;\n }\n if (spot.left !== undefined) {\n offsetX += spot.left;\n parent.scrollLeft = offsetX;\n }\n }\n parent.scrollTop = offsetY;\n}\n\n/**\n * Helper function to start monitoring the scroll event and converting them into\n * PDF.js friendly one: with scroll debounce and scroll direction.\n */\nfunction watchScroll(viewAreaElement, callback, abortSignal = undefined) {\n const debounceScroll = function (evt) {\n if (rAF) {\n return;\n }\n // schedule an invocation of scroll for next animation frame.\n rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n rAF = null;\n\n const currentX = viewAreaElement.scrollLeft;\n const lastX = state.lastX;\n if (currentX !== lastX) {\n state.right = currentX > lastX;\n }\n state.lastX = currentX;\n const currentY = viewAreaElement.scrollTop;\n const lastY = state.lastY;\n if (currentY !== lastY) {\n state.down = currentY > lastY;\n }\n state.lastY = currentY;\n callback(state);\n });\n };\n\n const state = {\n right: true,\n down: true,\n lastX: viewAreaElement.scrollLeft,\n lastY: viewAreaElement.scrollTop,\n _eventHandler: debounceScroll,\n };\n\n let rAF = null;\n viewAreaElement.addEventListener(\"scroll\", debounceScroll, {\n useCapture: true,\n signal: abortSignal,\n });\n abortSignal?.addEventListener(\n \"abort\",\n () => window.cancelAnimationFrame(rAF),\n { once: true }\n );\n return state;\n}\n\n/**\n * Helper function to parse query string (e.g. ?param1=value¶m2=...).\n * @param {string} query\n * @returns {Map}\n */\nfunction parseQueryString(query) {\n const params = new Map();\n for (const [key, value] of new URLSearchParams(query)) {\n params.set(key.toLowerCase(), value);\n }\n return params;\n}\n\nconst InvisibleCharsRegExp = /[\\x00-\\x1F]/g;\n\n/**\n * @param {string} str\n * @param {boolean} [replaceInvisible]\n */\nfunction removeNullCharacters(str, replaceInvisible = false) {\n if (!InvisibleCharsRegExp.test(str)) {\n return str;\n }\n if (replaceInvisible) {\n return str.replaceAll(InvisibleCharsRegExp, m => (m === \"\\x00\" ? \"\" : \" \"));\n }\n return str.replaceAll(\"\\x00\", \"\");\n}\n\n/**\n * Use binary search to find the index of the first item in a given array which\n * passes a given condition. The items are expected to be sorted in the sense\n * that if the condition is true for one item in the array, then it is also true\n * for all following items.\n *\n * @returns {number} Index of the first array element to pass the test,\n * or |items.length| if no such element exists.\n */\nfunction binarySearchFirstItem(items, condition, start = 0) {\n let minIndex = start;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = (minIndex + maxIndex) >> 1;\n const currentItem = items[currentIndex];\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n return minIndex; /* === maxIndex */\n}\n\n/**\n * Approximates float number as a fraction using Farey sequence (max order\n * of 8).\n * @param {number} x - Positive float number.\n * @returns {Array} Estimated fraction: the first array item is a numerator,\n * the second one is a denominator.\n * They are both natural numbers.\n */\nfunction approximateFraction(x) {\n // Fast paths for int numbers or their inversions.\n if (Math.floor(x) === x) {\n return [x, 1];\n }\n const xinv = 1 / x;\n const limit = 8;\n if (xinv > limit) {\n return [1, limit];\n } else if (Math.floor(xinv) === xinv) {\n return [1, xinv];\n }\n\n const x_ = x > 1 ? xinv : x;\n // a/b and c/d are neighbours in Farey sequence.\n let a = 0,\n b = 1,\n c = 1,\n d = 1;\n // Limiting search to order 8.\n while (true) {\n // Generating next term in sequence (order of q).\n const p = a + c,\n q = b + d;\n if (q > limit) {\n break;\n }\n if (x_ <= p / q) {\n c = p;\n d = q;\n } else {\n a = p;\n b = q;\n }\n }\n let result;\n // Select closest of the neighbours to x.\n if (x_ - a / b < c / d - x_) {\n result = x_ === x ? [a, b] : [b, a];\n } else {\n result = x_ === x ? [c, d] : [d, c];\n }\n return result;\n}\n\n/**\n * @param {number} x - A positive number to round to a multiple of `div`.\n * @param {number} div - A natural number.\n */\nfunction floorToDivide(x, div) {\n return x - (x % div);\n}\n\n/**\n * @typedef {Object} GetPageSizeInchesParameters\n * @property {number[]} view\n * @property {number} userUnit\n * @property {number} rotate\n */\n\n/**\n * @typedef {Object} PageSize\n * @property {number} width - In inches.\n * @property {number} height - In inches.\n */\n\n/**\n * Gets the size of the specified page, converted from PDF units to inches.\n * @param {GetPageSizeInchesParameters} params\n * @returns {PageSize}\n */\nfunction getPageSizeInches({ view, userUnit, rotate }) {\n const [x1, y1, x2, y2] = view;\n // We need to take the page rotation into account as well.\n const changeOrientation = rotate % 180 !== 0;\n\n const width = ((x2 - x1) / 72) * userUnit;\n const height = ((y2 - y1) / 72) * userUnit;\n\n return {\n width: changeOrientation ? height : width,\n height: changeOrientation ? width : height,\n };\n}\n\n/**\n * Helper function for getVisibleElements.\n *\n * @param {number} index - initial guess at the first visible element\n * @param {Array} views - array of pages, into which `index` is an index\n * @param {number} top - the top of the scroll pane\n * @returns {number} less than or equal to `index` that is definitely at or\n * before the first visible element in `views`, but not by too much. (Usually,\n * this will be the first element in the first partially visible row in\n * `views`, although sometimes it goes back one row further.)\n */\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n // binarySearchFirstItem's assumption is that the input is ordered, with only\n // one index where the conditions flips from false to true: [false ...,\n // true...]. With vertical scrolling and spreads, it is possible to have\n // [false ..., true, false, true ...]. With wrapped scrolling we can have a\n // similar sequence, with many more mixed true and false in the middle.\n //\n // So there is no guarantee that the binary search yields the index of the\n // first visible element. It could have been any of the other visible elements\n // that were preceded by a hidden element.\n\n // Of course, if either this element or the previous (hidden) element is also\n // the first element, there's nothing to worry about.\n if (index < 2) {\n return index;\n }\n\n // That aside, the possible cases are represented below.\n //\n // **** = fully hidden\n // A*B* = mix of partially visible and/or hidden pages\n // CDEF = fully visible\n //\n // (1) Binary search could have returned A, in which case we can stop.\n // (2) Binary search could also have returned B, in which case we need to\n // check the whole row.\n // (3) Binary search could also have returned C, in which case we need to\n // check the whole previous row.\n //\n // There's one other possibility:\n //\n // **** = fully hidden\n // ABCD = mix of fully and/or partially visible pages\n //\n // (4) Binary search could only have returned A.\n\n // Initially assume that we need to find the beginning of the current row\n // (case 1, 2, or 4), which means finding a page that is above the current\n // page's top. If the found page is partially visible, we're definitely not in\n // case 3, and this assumption is correct.\n let elt = views[index].div;\n let pageTop = elt.offsetTop + elt.clientTop;\n\n if (pageTop >= top) {\n // The found page is fully visible, so we're actually either in case 3 or 4,\n // and unfortunately we can't tell the difference between them without\n // scanning the entire previous row, so we just conservatively assume that\n // we do need to backtrack to that row. In both cases, the previous page is\n // in the previous row, so use its top instead.\n elt = views[index - 1].div;\n pageTop = elt.offsetTop + elt.clientTop;\n }\n\n // Now we backtrack to the first page that still has its bottom below\n // `pageTop`, which is the top of a page in the first visible row (unless\n // we're in case 4, in which case it's the row before that).\n // `index` is found by binary search, so the page at `index - 1` is\n // invisible and we can start looking for potentially visible pages from\n // `index - 2`. (However, if this loop terminates on its first iteration,\n // which is the case when pages are stacked vertically, `index` should remain\n // unchanged, so we use a distinct loop variable.)\n for (let i = index - 2; i >= 0; --i) {\n elt = views[i].div;\n if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n // We have reached the previous row, so stop now.\n // This loop is expected to terminate relatively quickly because the\n // number of pages per row is expected to be small.\n break;\n }\n index = i;\n }\n return index;\n}\n\n/**\n * @typedef {Object} GetVisibleElementsParameters\n * @property {HTMLElement} scrollEl - A container that can possibly scroll.\n * @property {Array} views - Objects with a `div` property that contains an\n * HTMLElement, which should all be descendants of `scrollEl` satisfying the\n * relevant layout assumptions.\n * @property {boolean} sortByVisibility - If `true`, the returned elements are\n * sorted in descending order of the percent of their padding box that is\n * visible. The default value is `false`.\n * @property {boolean} horizontal - If `true`, the elements are assumed to be\n * laid out horizontally instead of vertically. The default value is `false`.\n * @property {boolean} rtl - If `true`, the `scrollEl` container is assumed to\n * be in right-to-left mode. The default value is `false`.\n */\n\n/**\n * Generic helper to find out what elements are visible within a scroll pane.\n *\n * Well, pretty generic. There are some assumptions placed on the elements\n * referenced by `views`:\n * - If `horizontal`, no left of any earlier element is to the right of the\n * left of any later element.\n * - Otherwise, `views` can be split into contiguous rows where, within a row,\n * no top of any element is below the bottom of any other element, and\n * between rows, no bottom of any element in an earlier row is below the\n * top of any element in a later row.\n *\n * (Here, top, left, etc. all refer to the padding edge of the element in\n * question. For pages, that ends up being equivalent to the bounding box of the\n * rendering canvas. Earlier and later refer to index in `views`, not page\n * layout.)\n *\n * @param {GetVisibleElementsParameters} params\n * @returns {Object} `{ first, last, views: [{ id, x, y, view, percent }] }`\n */\nfunction getVisibleElements({\n scrollEl,\n views,\n sortByVisibility = false,\n horizontal = false,\n rtl = false,\n}) {\n const top = scrollEl.scrollTop,\n bottom = top + scrollEl.clientHeight;\n const left = scrollEl.scrollLeft,\n right = left + scrollEl.clientWidth;\n\n // Throughout this \"generic\" function, comments will assume we're working with\n // PDF document pages, which is the most important and complex case. In this\n // case, the visible elements we're actually interested is the page canvas,\n // which is contained in a wrapper which adds no padding/border/margin, which\n // is itself contained in `view.div` which adds no padding (but does add a\n // border). So, as specified in this function's doc comment, this function\n // does all of its work on the padding edge of the provided views, starting at\n // offsetLeft/Top (which includes margin) and adding clientLeft/Top (which is\n // the border). Adding clientWidth/Height gets us the bottom-right corner of\n // the padding edge.\n function isElementBottomAfterViewTop(view) {\n const element = view.div;\n const elementBottom =\n element.offsetTop + element.clientTop + element.clientHeight;\n return elementBottom > top;\n }\n function isElementNextAfterViewHorizontally(view) {\n const element = view.div;\n const elementLeft = element.offsetLeft + element.clientLeft;\n const elementRight = elementLeft + element.clientWidth;\n return rtl ? elementLeft < right : elementRight > left;\n }\n\n const visible = [],\n ids = new Set(),\n numViews = views.length;\n let firstVisibleElementInd = binarySearchFirstItem(\n views,\n horizontal\n ? isElementNextAfterViewHorizontally\n : isElementBottomAfterViewTop\n );\n\n // Please note the return value of the `binarySearchFirstItem` function when\n // no valid element is found (hence the `firstVisibleElementInd` check below).\n if (\n firstVisibleElementInd > 0 &&\n firstVisibleElementInd < numViews &&\n !horizontal\n ) {\n // In wrapped scrolling (or vertical scrolling with spreads), with some page\n // sizes, isElementBottomAfterViewTop doesn't satisfy the binary search\n // condition: there can be pages with bottoms above the view top between\n // pages with bottoms below. This function detects and corrects that error;\n // see it for more comments.\n firstVisibleElementInd = backtrackBeforeAllVisibleElements(\n firstVisibleElementInd,\n views,\n top\n );\n }\n\n // lastEdge acts as a cutoff for us to stop looping, because we know all\n // subsequent pages will be hidden.\n //\n // When using wrapped scrolling or vertical scrolling with spreads, we can't\n // simply stop the first time we reach a page below the bottom of the view;\n // the tops of subsequent pages on the same row could still be visible. In\n // horizontal scrolling, we don't have that issue, so we can stop as soon as\n // we pass `right`, without needing the code below that handles the -1 case.\n let lastEdge = horizontal ? right : -1;\n\n for (let i = firstVisibleElementInd; i < numViews; i++) {\n const view = views[i],\n element = view.div;\n const currentWidth = element.offsetLeft + element.clientLeft;\n const currentHeight = element.offsetTop + element.clientTop;\n const viewWidth = element.clientWidth,\n viewHeight = element.clientHeight;\n const viewRight = currentWidth + viewWidth;\n const viewBottom = currentHeight + viewHeight;\n\n if (lastEdge === -1) {\n // As commented above, this is only needed in non-horizontal cases.\n // Setting lastEdge to the bottom of the first page that is partially\n // visible ensures that the next page fully below lastEdge is on the\n // next row, which has to be fully hidden along with all subsequent rows.\n if (viewBottom >= bottom) {\n lastEdge = viewBottom;\n }\n } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n break;\n }\n\n if (\n viewBottom <= top ||\n currentHeight >= bottom ||\n viewRight <= left ||\n currentWidth >= right\n ) {\n continue;\n }\n\n const minY = Math.max(0, top - currentHeight);\n const minX = Math.max(0, left - currentWidth);\n\n const hiddenHeight = minY + Math.max(0, viewBottom - bottom);\n const hiddenWidth = minX + Math.max(0, viewRight - right);\n\n const fractionHeight = (viewHeight - hiddenHeight) / viewHeight,\n fractionWidth = (viewWidth - hiddenWidth) / viewWidth;\n const percent = (fractionHeight * fractionWidth * 100) | 0;\n\n visible.push({\n id: view.id,\n x: currentWidth,\n y: currentHeight,\n visibleArea:\n // We only specify which part of the page is visible when it's not\n // the full page, as there is no point in handling a partial page\n // rendering otherwise.\n percent === 100\n ? null\n : {\n minX,\n minY,\n maxX: Math.min(viewRight, right) - currentWidth,\n maxY: Math.min(viewBottom, bottom) - currentHeight,\n },\n view,\n percent,\n widthPercent: (fractionWidth * 100) | 0,\n });\n ids.add(view.id);\n }\n\n const first = visible[0],\n last = visible.at(-1);\n\n if (sortByVisibility) {\n visible.sort(function (a, b) {\n const pc = a.percent - b.percent;\n if (Math.abs(pc) > 0.001) {\n return -pc;\n }\n return a.id - b.id; // ensure stability\n });\n }\n return { first, last, views: visible, ids };\n}\n\nfunction normalizeWheelEventDirection(evt) {\n let delta = Math.hypot(evt.deltaX, evt.deltaY);\n const angle = Math.atan2(evt.deltaY, evt.deltaX);\n if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n // All that is left-up oriented has to change the sign.\n delta = -delta;\n }\n return delta;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n const deltaMode = evt.deltaMode; // Avoid being affected by bug 1392460.\n let delta = normalizeWheelEventDirection(evt);\n\n const MOUSE_PIXELS_PER_LINE = 30;\n const MOUSE_LINES_PER_PAGE = 30;\n\n // Converts delta to per-page units\n if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) {\n delta /= MOUSE_LINES_PER_PAGE;\n }\n return delta;\n}\n\nfunction isValidRotation(angle) {\n return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isValidScrollMode(mode) {\n return (\n Number.isInteger(mode) &&\n Object.values(ScrollMode).includes(mode) &&\n mode !== ScrollMode.UNKNOWN\n );\n}\n\nfunction isValidSpreadMode(mode) {\n return (\n Number.isInteger(mode) &&\n Object.values(SpreadMode).includes(mode) &&\n mode !== SpreadMode.UNKNOWN\n );\n}\n\nfunction isPortraitOrientation(size) {\n return size.width <= size.height;\n}\n\n/**\n * Promise that is resolved when DOM window becomes visible.\n */\nconst animationStarted = new Promise(function (resolve) {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof window === \"undefined\"\n ) {\n // Prevent \"ReferenceError: window is not defined\" errors when running the\n // unit-tests in Node.js environments.\n setTimeout(resolve, 20);\n return;\n }\n window.requestAnimationFrame(resolve);\n});\n\nconst docStyle =\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof document === \"undefined\"\n ? null\n : document.documentElement.style;\n\nclass ProgressBar {\n #classList = null;\n\n #disableAutoFetchTimeout = null;\n\n #percent = 0;\n\n #style = null;\n\n #visible = true;\n\n constructor(bar) {\n this.#classList = bar.classList;\n this.#style = bar.style;\n }\n\n get percent() {\n return this.#percent;\n }\n\n set percent(val) {\n this.#percent = val;\n\n if (isNaN(val)) {\n this.#classList.add(\"indeterminate\");\n return;\n }\n this.#classList.remove(\"indeterminate\");\n\n this.#style.setProperty(\"--progressBar-percent\", `${this.#percent}%`);\n }\n\n setWidth(viewer) {\n if (!viewer) {\n return;\n }\n const container = viewer.parentNode;\n const scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n if (scrollbarWidth > 0) {\n this.#style.setProperty(\n \"--progressBar-end-offset\",\n `${scrollbarWidth}px`\n );\n }\n }\n\n setDisableAutoFetch(delay = /* ms = */ 5000) {\n if (this.#percent === 100 || isNaN(this.#percent)) {\n return;\n }\n if (this.#disableAutoFetchTimeout) {\n clearTimeout(this.#disableAutoFetchTimeout);\n }\n this.show();\n\n this.#disableAutoFetchTimeout = setTimeout(() => {\n this.#disableAutoFetchTimeout = null;\n this.hide();\n }, delay);\n }\n\n hide() {\n if (!this.#visible) {\n return;\n }\n this.#visible = false;\n this.#classList.add(\"hidden\");\n }\n\n show() {\n if (this.#visible) {\n return;\n }\n this.#visible = true;\n this.#classList.remove(\"hidden\");\n }\n}\n\n/**\n * Get the active or focused element in current DOM.\n *\n * Recursively search for the truly active or focused element in case there are\n * shadow DOMs.\n *\n * @returns {Element} the truly active or focused element.\n */\nfunction getActiveOrFocusedElement() {\n let curRoot = document;\n let curActiveOrFocused =\n curRoot.activeElement || curRoot.querySelector(\":focus\");\n\n while (curActiveOrFocused?.shadowRoot) {\n curRoot = curActiveOrFocused.shadowRoot;\n curActiveOrFocused =\n curRoot.activeElement || curRoot.querySelector(\":focus\");\n }\n\n return curActiveOrFocused;\n}\n\n/**\n * Converts API PageLayout values to the format used by `BaseViewer`.\n * @param {string} layout - The API PageLayout value.\n * @returns {Object}\n */\nfunction apiPageLayoutToViewerModes(layout) {\n let scrollMode = ScrollMode.VERTICAL,\n spreadMode = SpreadMode.NONE;\n\n switch (layout) {\n case \"SinglePage\":\n scrollMode = ScrollMode.PAGE;\n break;\n case \"OneColumn\":\n break;\n case \"TwoPageLeft\":\n scrollMode = ScrollMode.PAGE;\n /* falls through */\n case \"TwoColumnLeft\":\n spreadMode = SpreadMode.ODD;\n break;\n case \"TwoPageRight\":\n scrollMode = ScrollMode.PAGE;\n /* falls through */\n case \"TwoColumnRight\":\n spreadMode = SpreadMode.EVEN;\n break;\n }\n return { scrollMode, spreadMode };\n}\n\n/**\n * Converts API PageMode values to the format used by `PDFSidebar`.\n * NOTE: There's also a \"FullScreen\" parameter which is not possible to support,\n * since the Fullscreen API used in browsers requires that entering\n * fullscreen mode only occurs as a result of a user-initiated event.\n * @param {string} mode - The API PageMode value.\n * @returns {number} A value from {SidebarView}.\n */\nfunction apiPageModeToSidebarView(mode) {\n switch (mode) {\n case \"UseNone\":\n return SidebarView.NONE;\n case \"UseThumbs\":\n return SidebarView.THUMBS;\n case \"UseOutlines\":\n return SidebarView.OUTLINE;\n case \"UseAttachments\":\n return SidebarView.ATTACHMENTS;\n case \"UseOC\":\n return SidebarView.LAYERS;\n }\n return SidebarView.NONE; // Default value.\n}\n\nfunction toggleCheckedBtn(button, toggle, view = null) {\n button.classList.toggle(\"toggled\", toggle);\n button.setAttribute(\"aria-checked\", toggle);\n\n view?.classList.toggle(\"hidden\", !toggle);\n}\n\nfunction toggleSelectedBtn(button, toggle, view = null) {\n button.classList.toggle(\"selected\", toggle);\n button.setAttribute(\"aria-selected\", toggle);\n\n view?.classList.toggle(\"hidden\", !toggle);\n}\n\nfunction toggleExpandedBtn(button, toggle, view = null) {\n button.classList.toggle(\"toggled\", toggle);\n button.setAttribute(\"aria-expanded\", toggle);\n\n view?.classList.toggle(\"hidden\", !toggle);\n}\n\n// In Firefox, the css calc function uses f32 precision but the Chrome or Safari\n// are using f64 one. So in order to have the same rendering in all browsers, we\n// need to use the right precision in order to have correct dimensions.\nconst calcRound =\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")\n ? Math.fround\n : (function () {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"LIB\") &&\n typeof document === \"undefined\"\n ) {\n return x => x;\n }\n const e = document.createElement(\"div\");\n e.style.width = \"round(down, calc(1.6666666666666665 * 792px), 1px)\";\n return e.style.width === \"calc(1320px)\" ? Math.fround : x => x;\n })();\n\nexport {\n animationStarted,\n apiPageLayoutToViewerModes,\n apiPageModeToSidebarView,\n approximateFraction,\n AutoPrintRegExp,\n backtrackBeforeAllVisibleElements, // only exported for testing\n binarySearchFirstItem,\n calcRound,\n CursorTool,\n DEFAULT_SCALE,\n DEFAULT_SCALE_DELTA,\n DEFAULT_SCALE_VALUE,\n docStyle,\n floorToDivide,\n getActiveOrFocusedElement,\n getPageSizeInches,\n getVisibleElements,\n isPortraitOrientation,\n isValidRotation,\n isValidScrollMode,\n isValidSpreadMode,\n MAX_AUTO_SCALE,\n MAX_SCALE,\n MIN_SCALE,\n normalizeWheelEventDelta,\n normalizeWheelEventDirection,\n parseQueryString,\n PresentationModeState,\n ProgressBar,\n removeNullCharacters,\n SCROLLBAR_PADDING,\n scrollIntoView,\n ScrollMode,\n SidebarView,\n SpreadMode,\n TextLayerMode,\n toggleCheckedBtn,\n toggleExpandedBtn,\n toggleSelectedBtn,\n UNKNOWN_SCALE,\n VERTICAL_PADDING,\n watchScroll,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../src/display/api\").PDFDocumentProxy} PDFDocumentProxy */\n/** @typedef {import(\"./event_utils\").EventBus} EventBus */\n/** @typedef {import(\"./pdf_link_service.js\").PDFLinkService} PDFLinkService */\n\nimport { getCharacterType, getNormalizeWithNFKC } from \"./pdf_find_utils.js\";\nimport { binarySearchFirstItem } from \"./ui_utils.js\";\n\nconst FindState = {\n FOUND: 0,\n NOT_FOUND: 1,\n WRAPPED: 2,\n PENDING: 3,\n};\n\nconst FIND_TIMEOUT = 250; // ms\n\nconst CHARACTERS_TO_NORMALIZE = {\n \"\\u2010\": \"-\", // Hyphen\n \"\\u2018\": \"'\", // Left single quotation mark\n \"\\u2019\": \"'\", // Right single quotation mark\n \"\\u201A\": \"'\", // Single low-9 quotation mark\n \"\\u201B\": \"'\", // Single high-reversed-9 quotation mark\n \"\\u201C\": '\"', // Left double quotation mark\n \"\\u201D\": '\"', // Right double quotation mark\n \"\\u201E\": '\"', // Double low-9 quotation mark\n \"\\u201F\": '\"', // Double high-reversed-9 quotation mark\n \"\\u00BC\": \"1/4\", // Vulgar fraction one quarter\n \"\\u00BD\": \"1/2\", // Vulgar fraction one half\n \"\\u00BE\": \"3/4\", // Vulgar fraction three quarters\n};\n\n// These diacritics aren't considered as combining diacritics\n// when searching in a document:\n// https://searchfox.org/mozilla-central/source/intl/unicharutil/util/is_combining_diacritic.py.\n// The combining class definitions can be found:\n// https://www.unicode.org/reports/tr44/#Canonical_Combining_Class_Values\n// Category 0 corresponds to [^\\p{Mn}].\nconst DIACRITICS_EXCEPTION = new Set([\n // UNICODE_COMBINING_CLASS_KANA_VOICING\n // https://www.compart.com/fr/unicode/combining/8\n 0x3099, 0x309a,\n // UNICODE_COMBINING_CLASS_VIRAMA (under 0xFFFF)\n // https://www.compart.com/fr/unicode/combining/9\n 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b,\n 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714,\n 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f,\n 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed,\n // 91\n // https://www.compart.com/fr/unicode/combining/91\n 0x0c56,\n // 129\n // https://www.compart.com/fr/unicode/combining/129\n 0x0f71,\n // 130\n // https://www.compart.com/fr/unicode/combining/130\n 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80,\n // 132\n // https://www.compart.com/fr/unicode/combining/132\n 0x0f74,\n]);\nlet DIACRITICS_EXCEPTION_STR; // Lazily initialized, see below.\n\nconst DIACRITICS_REG_EXP = /\\p{M}+/gu;\nconst SPECIAL_CHARS_REG_EXP = /([+^$|])|(\\p{P}+)|(\\s+)|(\\p{M})|(\\p{L})/gu;\nconst NOT_DIACRITIC_FROM_END_REG_EXP = /([^\\p{M}])\\p{M}*$/u;\nconst NOT_DIACRITIC_FROM_START_REG_EXP = /^\\p{M}*([^\\p{M}])/u;\n\n// The range [AC00-D7AF] corresponds to the Hangul syllables.\n// The few other chars are some CJK Compatibility Ideographs.\nconst SYLLABLES_REG_EXP = /[\\uAC00-\\uD7AF\\uFA6C\\uFACF-\\uFAD1\\uFAD5-\\uFAD7]+/g;\nconst SYLLABLES_LENGTHS = new Map();\n// When decomposed (in using NFD) the above syllables will start\n// with one of the chars in this regexp.\nconst FIRST_CHAR_SYLLABLES_REG_EXP =\n \"[\\\\u1100-\\\\u1112\\\\ud7a4-\\\\ud7af\\\\ud84a\\\\ud84c\\\\ud850\\\\ud854\\\\ud857\\\\ud85f]\";\n\nconst NFKC_CHARS_TO_NORMALIZE = new Map();\n\nlet noSyllablesRegExp = null;\nlet withSyllablesRegExp = null;\n\nfunction normalize(text, options = {}) {\n // The diacritics in the text or in the query can be composed or not.\n // So we use a decomposed text using NFD (and the same for the query)\n // in order to be sure that diacritics are in the same order.\n\n // Collect syllables length and positions.\n const syllablePositions = [];\n let m;\n while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) {\n let { index } = m;\n for (const char of m[0]) {\n let len = SYLLABLES_LENGTHS.get(char);\n if (!len) {\n len = char.normalize(\"NFD\").length;\n SYLLABLES_LENGTHS.set(char, len);\n }\n syllablePositions.push([len, index++]);\n }\n }\n\n const hasSyllables = syllablePositions.length > 0;\n const ignoreDashEOL = options.ignoreDashEOL ?? false;\n\n let normalizationRegex;\n if (!hasSyllables && noSyllablesRegExp) {\n normalizationRegex = noSyllablesRegExp;\n } else if (hasSyllables && withSyllablesRegExp) {\n normalizationRegex = withSyllablesRegExp;\n } else {\n // Compile the regular expression for text normalization once.\n const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(\"\");\n const toNormalizeWithNFKC = getNormalizeWithNFKC();\n\n // 3040-309F: Hiragana\n // 30A0-30FF: Katakana\n const CJK = \"(?:\\\\p{Ideographic}|[\\u3040-\\u30FF])\";\n const HKDiacritics = \"(?:\\u3099|\\u309A)\";\n const BrokenWord = `\\\\p{Ll}-\\\\n(?=\\\\p{Ll})|\\\\p{Lu}-\\\\n(?=\\\\p{L})`;\n\n const regexps = [\n /* p1 */ `[${replace}]`,\n /* p2 */ `[${toNormalizeWithNFKC}]`,\n /* p3 */ `${HKDiacritics}\\\\n`,\n /* p4 */ \"\\\\p{M}+(?:-\\\\n)?\",\n /* p5 */ `${BrokenWord}`,\n /* p6 */ \"\\\\S-\\\\n\",\n /* p7 */ `${CJK}\\\\n`,\n /* p8 */ \"\\\\n\",\n /* p9 */ hasSyllables\n ? FIRST_CHAR_SYLLABLES_REG_EXP\n : // Most of the syllables belong to Hangul so there are no need\n // to search for them in a non-Hangul document.\n // We use the \\0 in order to have the same number of groups.\n \"\\\\u0000\",\n ];\n normalizationRegex = new RegExp(\n regexps.map(r => `(${r})`).join(\"|\"),\n \"gum\"\n );\n\n if (hasSyllables) {\n withSyllablesRegExp = normalizationRegex;\n } else {\n noSyllablesRegExp = normalizationRegex;\n }\n }\n\n // The goal of this function is to normalize the string and\n // be able to get from an index in the new string the\n // corresponding index in the old string.\n // For example if we have: abCd12ef456gh where C is replaced by ccc\n // and numbers replaced by nothing (it's the case for diacritics), then\n // we'll obtain the normalized string: abcccdefgh.\n // So here the reverse map is: [0,1,2,2,2,3,6,7,11,12].\n\n // The goal is to obtain the array: [[0, 0], [3, -1], [4, -2],\n // [6, 0], [8, 3]].\n // which can be used like this:\n // - let say that i is the index in new string and j the index\n // the old string.\n // - if i is in [0; 3[ then j = i + 0\n // - if i is in [3; 4[ then j = i - 1\n // - if i is in [4; 6[ then j = i - 2\n // ...\n // Thanks to a binary search it's easy to know where is i and what's the\n // shift.\n // Let say that the last entry in the array is [x, s] and we have a\n // substitution at index y (old string) which will replace o chars by n chars.\n // Firstly, if o === n, then no need to add a new entry: the shift is\n // the same.\n // Secondly, if o < n, then we push the n - o elements:\n // [y - (s - 1), s - 1], [y - (s - 2), s - 2], ...\n // Thirdly, if o > n, then we push the element: [y - (s - n), o + s - n]\n\n // Collect diacritics length and positions.\n const rawDiacriticsPositions = [];\n while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) {\n rawDiacriticsPositions.push([m[0].length, m.index]);\n }\n\n let normalized = text.normalize(\"NFD\");\n const positions = [0, 0];\n let rawDiacriticsIndex = 0;\n let syllableIndex = 0;\n let shift = 0;\n let shiftOrigin = 0;\n let eol = 0;\n let hasDiacritics = false;\n\n normalized = normalized.replace(\n normalizationRegex,\n (match, p1, p2, p3, p4, p5, p6, p7, p8, p9, i) => {\n i -= shiftOrigin;\n if (p1) {\n // Maybe fractions or quotations mark...\n const replacement = CHARACTERS_TO_NORMALIZE[p1];\n const jj = replacement.length;\n for (let j = 1; j < jj; j++) {\n positions.push(i - shift + j, shift - j);\n }\n shift -= jj - 1;\n return replacement;\n }\n\n if (p2) {\n // Use the NFKC representation to normalize the char.\n let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2);\n if (!replacement) {\n replacement = p2.normalize(\"NFKC\");\n NFKC_CHARS_TO_NORMALIZE.set(p2, replacement);\n }\n const jj = replacement.length;\n for (let j = 1; j < jj; j++) {\n positions.push(i - shift + j, shift - j);\n }\n shift -= jj - 1;\n return replacement;\n }\n\n if (p3) {\n // We've a Katakana-Hiragana diacritic followed by a \\n so don't replace\n // the \\n by a whitespace.\n hasDiacritics = true;\n\n // Diacritic.\n if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {\n ++rawDiacriticsIndex;\n } else {\n // i is the position of the first diacritic\n // so (i - 1) is the position for the letter before.\n positions.push(i - 1 - shift + 1, shift - 1);\n shift -= 1;\n shiftOrigin += 1;\n }\n\n // End-of-line.\n positions.push(i - shift + 1, shift);\n shiftOrigin += 1;\n eol += 1;\n\n return p3.charAt(0);\n }\n\n if (p4) {\n const hasTrailingDashEOL = p4.endsWith(\"\\n\");\n const len = hasTrailingDashEOL ? p4.length - 2 : p4.length;\n\n // Diacritics.\n hasDiacritics = true;\n let jj = len;\n if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {\n jj -= rawDiacriticsPositions[rawDiacriticsIndex][0];\n ++rawDiacriticsIndex;\n }\n\n for (let j = 1; j <= jj; j++) {\n // i is the position of the first diacritic\n // so (i - 1) is the position for the letter before.\n positions.push(i - 1 - shift + j, shift - j);\n }\n shift -= jj;\n shiftOrigin += jj;\n\n if (hasTrailingDashEOL) {\n // Diacritics are followed by a -\\n.\n // See comments in `if (p6)` block.\n i += len - 1;\n positions.push(i - shift + 1, 1 + shift);\n shift += 1;\n shiftOrigin += 1;\n eol += 1;\n return p4.slice(0, len);\n }\n\n return p4;\n }\n\n if (p5) {\n if (ignoreDashEOL) {\n // Keep the - but remove the EOL.\n shiftOrigin += 1;\n eol += 1;\n return p5.slice(0, -1);\n }\n // In \"X-\\ny\", \"-\\n\" is removed because an hyphen at the end of a line\n // between two letters is likely here to mark a break in a word.\n // If X is encoded with UTF-32 then it can have a length greater than 1.\n // The \\n isn't in the original text so here y = i, n = X.len - 2 and\n // o = X.len - 1.\n const len = p5.length - 2;\n positions.push(i - shift + len, 1 + shift);\n shift += 1;\n shiftOrigin += 1;\n eol += 1;\n return p5.slice(0, -2);\n }\n\n if (p6) {\n // A - following a non-space character that is not detected as the\n // hyphen breaking a word in two lines needs to be preserved. It could\n // be, for example, in a compound word or in a date.\n // Only remove the newline.\n shiftOrigin += 1;\n eol += 1;\n return p6.slice(0, -1);\n }\n\n if (p7) {\n // An ideographic at the end of a line doesn't imply adding an extra\n // white space.\n // A CJK can be encoded in UTF-32, hence their length isn't always 1.\n const len = p7.length - 1;\n positions.push(i - shift + len, shift);\n shiftOrigin += 1;\n eol += 1;\n return p7.slice(0, -1);\n }\n\n if (p8) {\n // eol is replaced by space: \"foo\\nbar\" is likely equivalent to\n // \"foo bar\".\n positions.push(i - shift + 1, shift - 1);\n shift -= 1;\n shiftOrigin += 1;\n eol += 1;\n return \" \";\n }\n\n // p9\n if (i + eol === syllablePositions[syllableIndex]?.[1]) {\n // A syllable (1 char) is replaced with several chars (n) so\n // newCharsLen = n - 1.\n const newCharLen = syllablePositions[syllableIndex][0] - 1;\n ++syllableIndex;\n for (let j = 1; j <= newCharLen; j++) {\n positions.push(i - (shift - j), shift - j);\n }\n shift -= newCharLen;\n shiftOrigin += newCharLen;\n }\n return p9;\n }\n );\n\n positions.push(normalized.length, shift);\n const starts = new Uint32Array(positions.length >> 1);\n const shifts = new Int32Array(positions.length >> 1);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n starts[i >> 1] = positions[i];\n shifts[i >> 1] = positions[i + 1];\n }\n\n return [normalized, [starts, shifts], hasDiacritics];\n}\n\n// Determine the original, non-normalized, match index such that highlighting of\n// search results is correct in the `textLayer` for strings containing e.g. \"Β½\"\n// characters; essentially \"inverting\" the result of the `normalize` function.\nfunction getOriginalIndex(diffs, pos, len) {\n if (!diffs) {\n return [pos, len];\n }\n\n const [starts, shifts] = diffs;\n // First char in the new string.\n const start = pos;\n // Last char in the new string.\n const end = pos + len - 1;\n let i = binarySearchFirstItem(starts, x => x >= start);\n if (starts[i] > start) {\n --i;\n }\n\n let j = binarySearchFirstItem(starts, x => x >= end, i);\n if (starts[j] > end) {\n --j;\n }\n\n // First char in the old string.\n const oldStart = start + shifts[i];\n\n // Last char in the old string.\n const oldEnd = end + shifts[j];\n const oldLen = oldEnd + 1 - oldStart;\n\n return [oldStart, oldLen];\n}\n\n/**\n * @typedef {Object} PDFFindControllerOptions\n * @property {PDFLinkService} linkService - The navigation/linking service.\n * @property {EventBus} eventBus - The application event bus.\n * @property {boolean} [updateMatchesCountOnProgress] - True if the matches\n * count must be updated on progress or only when the last page is reached.\n * The default value is `true`.\n */\n\n/**\n * Provides search functionality to find a given string in a PDF document.\n */\nclass PDFFindController {\n #state = null;\n\n #updateMatchesCountOnProgress = true;\n\n #visitedPagesCount = 0;\n\n #copiedPageData = null;\n\n #savedPageData = null;\n\n /**\n * @param {PDFFindControllerOptions} options\n */\n constructor({ linkService, eventBus, updateMatchesCountOnProgress = true }) {\n this._linkService = linkService;\n this._eventBus = eventBus;\n this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress;\n\n /**\n * Callback used to check if a `pageNumber` is currently visible.\n * @type {function}\n */\n this.onIsPageVisible = null;\n\n this.#reset();\n eventBus._on(\"find\", this.#onFind.bind(this));\n eventBus._on(\"findbarclose\", this.#onFindBarClose.bind(this));\n eventBus._on(\"pagesedited\", this.#onPagesEdited.bind(this));\n }\n\n get highlightMatches() {\n return this._highlightMatches;\n }\n\n get pageMatches() {\n return this._pageMatches;\n }\n\n get pageMatchesLength() {\n return this._pageMatchesLength;\n }\n\n get selected() {\n return this._selected;\n }\n\n get state() {\n return this.#state;\n }\n\n /**\n * Set a reference to the PDF document in order to search it.\n * Note that searching is not possible if this method is not called.\n *\n * @param {PDFDocumentProxy} pdfDocument - The PDF document to search.\n */\n setDocument(pdfDocument) {\n if (this._pdfDocument) {\n this.#reset();\n }\n if (!pdfDocument) {\n return;\n }\n this._pdfDocument = pdfDocument;\n this._firstPageCapability.resolve();\n }\n\n #onFind(state) {\n if (!state) {\n return;\n }\n const pdfDocument = this._pdfDocument;\n const { type } = state;\n\n if (this.#state === null || this.#shouldDirtyMatch(state)) {\n this._dirtyMatch = true;\n }\n this.#state = state;\n if (type !== \"highlightallchange\") {\n this.#updateUIState(FindState.PENDING);\n }\n\n this._firstPageCapability.promise.then(() => {\n // If the document was closed before searching began, or if the search\n // operation was relevant for a previously opened document, do nothing.\n if (\n !this._pdfDocument ||\n (pdfDocument && this._pdfDocument !== pdfDocument)\n ) {\n return;\n }\n this.#extractText();\n\n const findbarClosed = !this._highlightMatches;\n const pendingTimeout = !!this._findTimeout;\n\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n if (!type) {\n // Trigger the find action with a small delay to avoid starting the\n // search when the user is still typing (saving resources).\n this._findTimeout = setTimeout(() => {\n this.#nextMatch();\n this._findTimeout = null;\n }, FIND_TIMEOUT);\n } else if (this._dirtyMatch) {\n // Immediately trigger searching for non-'find' operations, when the\n // current state needs to be reset and matches re-calculated.\n this.#nextMatch();\n } else if (type === \"again\") {\n this.#nextMatch();\n\n // When the findbar was previously closed, and `highlightAll` is set,\n // ensure that the matches on all active pages are highlighted again.\n if (findbarClosed && this.#state.highlightAll) {\n this.#updateAllPages();\n }\n } else if (type === \"highlightallchange\") {\n // If there was a pending search operation, synchronously trigger a new\n // search *first* to ensure that the correct matches are highlighted.\n if (pendingTimeout) {\n this.#nextMatch();\n } else {\n this._highlightMatches = true;\n }\n this.#updateAllPages(); // Update the highlighting on all active pages.\n } else {\n this.#nextMatch();\n }\n });\n }\n\n /**\n * @typedef {Object} PDFFindControllerScrollMatchIntoViewParams\n * @property {HTMLElement} element\n * @property {number} pageIndex\n * @property {number} matchIndex\n */\n\n /**\n * Scroll the current match into view.\n * @param {PDFFindControllerScrollMatchIntoViewParams}\n */\n scrollMatchIntoView({ element = null, pageIndex = -1, matchIndex = -1 }) {\n if (!this._scrollMatches || !element) {\n return;\n } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {\n return;\n } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {\n return;\n }\n this._scrollMatches = false; // Ensure that scrolling only happens once.\n element.scrollIntoView({ block: \"start\", inline: \"center\" });\n }\n\n #reset() {\n this._highlightMatches = false;\n this._scrollMatches = false;\n this._pdfDocument = null;\n this._pageMatches = [];\n this._pageMatchesLength = [];\n this.#visitedPagesCount = 0;\n this.#state = null;\n // Currently selected match.\n this._selected = {\n pageIdx: -1,\n matchIdx: -1,\n };\n // Where the find algorithm currently is in the document.\n this._offset = {\n pageIdx: null,\n matchIdx: null,\n wrapped: false,\n };\n this._extractTextPromises = [];\n this._pageContents = []; // Stores the normalized text for each page.\n this._pageDiffs = [];\n this._hasDiacritics = [];\n this._matchesCountTotal = 0;\n this._pagesToSearch = null;\n this._pendingFindMatches = new Set();\n this._resumePageIdx = null;\n this._dirtyMatch = false;\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n this.#copiedPageData = null;\n\n this._firstPageCapability = Promise.withResolvers();\n }\n\n /**\n * @type {string|Array} The (current) normalized search query.\n */\n get #query() {\n const { query } = this.#state;\n if (typeof query === \"string\") {\n if (query !== this._rawQuery) {\n this._rawQuery = query;\n [this._normalizedQuery] = normalize(query);\n }\n return this._normalizedQuery;\n }\n // We don't bother caching the normalized search query in the Array-case,\n // since this code-path is *essentially* unused in the default viewer.\n return (query || []).filter(q => !!q).map(q => normalize(q)[0]);\n }\n\n #shouldDirtyMatch(state) {\n // When the search query changes, regardless of the actual search command\n // used, always re-calculate matches to avoid errors (fixes bug 1030622).\n const newQuery = state.query,\n prevQuery = this.#state.query;\n const newType = typeof newQuery,\n prevType = typeof prevQuery;\n\n if (newType !== prevType) {\n return true;\n }\n if (newType === \"string\") {\n if (newQuery !== prevQuery) {\n return true;\n }\n } else if (\n /* isArray && */ JSON.stringify(newQuery) !== JSON.stringify(prevQuery)\n ) {\n return true;\n }\n\n switch (state.type) {\n case \"again\":\n const pageNumber = this._selected.pageIdx + 1;\n const linkService = this._linkService;\n // Only treat a 'findagain' event as a new search operation when it's\n // *absolutely* certain that the currently selected match is no longer\n // visible, e.g. as a result of the user scrolling in the document.\n //\n // NOTE: If only a simple `this._linkService.page` check was used here,\n // there's a risk that consecutive 'findagain' operations could \"skip\"\n // over matches at the top/bottom of pages thus making them completely\n // inaccessible when there's multiple pages visible in the viewer.\n return (\n pageNumber >= 1 &&\n pageNumber <= linkService.pagesCount &&\n pageNumber !== linkService.page &&\n !(this.onIsPageVisible?.(pageNumber) ?? true)\n );\n case \"highlightallchange\":\n return false;\n }\n return true;\n }\n\n /**\n * Determine if the search query constitutes a \"whole word\", by comparing the\n * first/last character type with the preceding/following character type.\n */\n #isEntireWord(content, startIdx, length) {\n let match = content\n .slice(0, startIdx)\n .match(NOT_DIACRITIC_FROM_END_REG_EXP);\n if (match) {\n const first = content.charCodeAt(startIdx);\n const limit = match[1].charCodeAt(0);\n if (getCharacterType(first) === getCharacterType(limit)) {\n return false;\n }\n }\n\n match = content\n .slice(startIdx + length)\n .match(NOT_DIACRITIC_FROM_START_REG_EXP);\n if (match) {\n const last = content.charCodeAt(startIdx + length - 1);\n const limit = match[1].charCodeAt(0);\n if (getCharacterType(last) === getCharacterType(limit)) {\n return false;\n }\n }\n\n return true;\n }\n\n #convertToRegExpString(query, hasDiacritics) {\n const { matchDiacritics } = this.#state;\n let isUnicode = false;\n const addExtraWhitespaces = (original, fixed) => {\n if (original === query) {\n return fixed;\n }\n if (query.startsWith(original)) {\n return `${fixed}[ ]*`;\n }\n if (query.endsWith(original)) {\n return `[ ]*${fixed}`;\n }\n return `[ ]*${fixed}[ ]*`;\n };\n query = query.replaceAll(\n SPECIAL_CHARS_REG_EXP,\n (\n match,\n p1 /* to escape */,\n p2 /* punctuation */,\n p3 /* whitespaces */,\n p4 /* diacritics */,\n p5 /* letters */\n ) => {\n // We don't need to use a \\s for whitespaces since all the different\n // kind of whitespaces are replaced by a single \" \".\n\n if (p1) {\n // Escape characters like *+?... to not interfere with regexp syntax.\n return addExtraWhitespaces(p1, RegExp.escape(p1));\n }\n if (p2) {\n // Allow whitespaces around group of punctuation signs.\n return addExtraWhitespaces(p2, RegExp.escape(p2));\n }\n if (p3) {\n // Replace spaces by \\s+ to be sure to match any spaces.\n return \"[ ]+\";\n }\n if (matchDiacritics) {\n return p4 || p5;\n }\n\n if (p4) {\n // Diacritics are removed with few exceptions.\n return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : \"\";\n }\n\n // A letter has been matched and it can be followed by any diacritics\n // in normalized text.\n if (hasDiacritics) {\n isUnicode = true;\n return `${p5}\\\\p{M}*`;\n }\n return p5;\n }\n );\n\n const trailingSpaces = \"[ ]*\";\n if (query.endsWith(trailingSpaces)) {\n // The [ ]* has been added in order to help to match \"foo . bar\" but\n // it doesn't make sense to match some whitespaces after the dot\n // when it's the last character.\n query = query.slice(0, query.length - trailingSpaces.length);\n }\n\n if (matchDiacritics) {\n // aX must not match aXY.\n if (hasDiacritics) {\n DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(\n ...DIACRITICS_EXCEPTION\n );\n\n isUnicode = true;\n query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\\\p{M}]|$)`;\n }\n }\n\n return [isUnicode, query];\n }\n\n #calculateMatch(pageIndex) {\n if (!this.#state) {\n return;\n }\n const query = this.#query;\n if (query.length === 0) {\n return; // Do nothing: the matches should be wiped out already.\n }\n const pageContent = this._pageContents[pageIndex];\n const matcherResult = this.match(query, pageContent, pageIndex);\n\n const matches = (this._pageMatches[pageIndex] = []);\n const matchesLength = (this._pageMatchesLength[pageIndex] = []);\n const diffs = this._pageDiffs[pageIndex];\n\n matcherResult?.forEach(({ index, length }) => {\n const [matchPos, matchLen] = getOriginalIndex(diffs, index, length);\n if (matchLen) {\n matches.push(matchPos);\n matchesLength.push(matchLen);\n }\n });\n\n // When `highlightAll` is set, ensure that the matches on previously\n // rendered (and still active) pages are correctly highlighted.\n if (this.#state.highlightAll) {\n this.#updatePage(pageIndex);\n }\n if (this._resumePageIdx === pageIndex) {\n this._resumePageIdx = null;\n this.#nextPageMatch();\n }\n\n // Update the match count.\n const pageMatchesCount = matches.length;\n this._matchesCountTotal += pageMatchesCount;\n if (this.#updateMatchesCountOnProgress) {\n if (pageMatchesCount > 0) {\n this.#updateUIResultsCount();\n }\n } else if (++this.#visitedPagesCount === this._linkService.pagesCount) {\n // For example, in GeckoView we want to have only the final update because\n // the Java side provides only one object to update the counts.\n this.#updateUIResultsCount();\n }\n }\n\n /**\n * @typedef {Object} FindMatch\n * @property {number} index - The start of the matched text in the page's\n * string contents.\n * @property {number} length - The length of the matched text.\n */\n\n /**\n * @param {string | string[]} query - The search query.\n * @param {string} pageContent - The text content of the page to search in.\n * @param {number} pageIndex - The index of the page that is being processed.\n * @returns {FindMatch[] | undefined} An array of matches in the provided\n * page.\n */\n match(query, pageContent, pageIndex) {\n const hasDiacritics = this._hasDiacritics[pageIndex];\n\n let isUnicode = false;\n if (typeof query === \"string\") {\n [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics);\n } else {\n // Words are sorted in reverse order to be sure that \"foobar\" is matched\n // before \"foo\" in case the query is \"foobar foo\".\n query = query\n .sort()\n .reverse()\n .map(q => {\n const [isUnicodePart, queryPart] = this.#convertToRegExpString(\n q,\n hasDiacritics\n );\n isUnicode ||= isUnicodePart;\n return `(${queryPart})`;\n })\n .join(\"|\");\n }\n if (!query) {\n // The query can be empty because some chars like diacritics could have\n // been stripped out.\n return undefined;\n }\n\n const { caseSensitive, entireWord } = this.#state;\n const flags = `g${isUnicode ? \"u\" : \"\"}${caseSensitive ? \"\" : \"i\"}`;\n query = new RegExp(query, flags);\n\n const matches = [];\n let match;\n while ((match = query.exec(pageContent)) !== null) {\n if (\n entireWord &&\n !this.#isEntireWord(pageContent, match.index, match[0].length)\n ) {\n continue;\n }\n matches.push({ index: match.index, length: match[0].length });\n }\n return matches;\n }\n\n #extractText() {\n // Perform text extraction once if this method is called multiple times.\n if (this._extractTextPromises.length > 0) {\n return;\n }\n\n let deferred = Promise.resolve();\n const textOptions = { disableNormalization: true };\n const pdfDoc = this._pdfDocument;\n for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) {\n const { promise, resolve } = Promise.withResolvers();\n this._extractTextPromises[i] = promise;\n\n deferred = deferred.then(async () => {\n if (pdfDoc !== this._pdfDocument) {\n resolve();\n return;\n }\n await pdfDoc\n .getPage(i + 1)\n .then(pdfPage => pdfPage.getTextContent(textOptions))\n .then(\n textContent => {\n const strBuf = [];\n\n for (const textItem of textContent.items) {\n strBuf.push(textItem.str);\n if (textItem.hasEOL) {\n strBuf.push(\"\\n\");\n }\n }\n\n // Store the normalized page content (text items) as one string.\n [\n this._pageContents[i],\n this._pageDiffs[i],\n this._hasDiacritics[i],\n ] = normalize(strBuf.join(\"\"));\n resolve();\n },\n reason => {\n console.error(\n `Unable to get text content for page ${i + 1}`,\n reason\n );\n // Page error -- assuming no text content.\n this._pageContents[i] = \"\";\n this._pageDiffs[i] = null;\n this._hasDiacritics[i] = false;\n resolve();\n }\n );\n });\n }\n }\n\n #updatePage(index) {\n if (this._scrollMatches && this._selected.pageIdx === index) {\n // If the page is selected, scroll the page into view, which triggers\n // rendering the page, which adds the text layer. Once the text layer\n // is built, it will attempt to scroll the selected match into view.\n this._linkService.page = index + 1;\n }\n\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: index,\n });\n }\n\n #updateAllPages() {\n this._eventBus.dispatch(\"updatetextlayermatches\", {\n source: this,\n pageIndex: -1,\n });\n }\n\n #nextMatch() {\n const previous = this.#state.findPrevious;\n const currentPageIndex = this._linkService.page - 1;\n const numPages = this._linkService.pagesCount;\n\n this._highlightMatches = true;\n\n if (this._dirtyMatch) {\n // Need to recalculate the matches, reset everything.\n this._dirtyMatch = false;\n this._selected.pageIdx = this._selected.matchIdx = -1;\n this._offset.pageIdx = currentPageIndex;\n this._offset.matchIdx = null;\n this._offset.wrapped = false;\n this._resumePageIdx = null;\n this._pageMatches.length = 0;\n this._pageMatchesLength.length = 0;\n this.#visitedPagesCount = 0;\n this._matchesCountTotal = 0;\n\n this.#updateAllPages(); // Wipe out any previously highlighted matches.\n\n for (let i = 0; i < numPages; i++) {\n // Start finding the matches as soon as the text is extracted.\n if (this._pendingFindMatches.has(i)) {\n continue;\n }\n this._pendingFindMatches.add(i);\n this._extractTextPromises[i].then(() => {\n this._pendingFindMatches.delete(i);\n this.#calculateMatch(i);\n });\n }\n }\n\n // If there's no query there's no point in searching.\n const query = this.#query;\n if (query.length === 0) {\n this.#updateUIState(FindState.FOUND);\n return;\n }\n // If we're waiting on a page, we return since we can't do anything else.\n if (this._resumePageIdx) {\n return;\n }\n\n const offset = this._offset;\n // Keep track of how many pages we should maximally iterate through.\n this._pagesToSearch = numPages;\n // If there's already a `matchIdx` that means we are iterating through a\n // page's matches.\n if (offset.matchIdx !== null) {\n const numPageMatches = this._pageMatches[offset.pageIdx].length;\n if (\n (!previous && offset.matchIdx + 1 < numPageMatches) ||\n (previous && offset.matchIdx > 0)\n ) {\n // The simple case; we just have advance the matchIdx to select\n // the next match on the page.\n offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;\n this.#updateMatch(/* found = */ true);\n return;\n }\n // We went beyond the current page's matches, so we advance to\n // the next page.\n this.#advanceOffsetPage(previous);\n }\n // Start searching through the page.\n this.#nextPageMatch();\n }\n\n #matchesReady(matches) {\n const offset = this._offset;\n const numMatches = matches.length;\n const previous = this.#state.findPrevious;\n\n if (numMatches) {\n // There were matches for the page, so initialize `matchIdx`.\n offset.matchIdx = previous ? numMatches - 1 : 0;\n this.#updateMatch(/* found = */ true);\n return true;\n }\n // No matches, so attempt to search the next page.\n this.#advanceOffsetPage(previous);\n if (offset.wrapped) {\n offset.matchIdx = null;\n if (this._pagesToSearch < 0) {\n // No point in wrapping again, there were no matches.\n this.#updateMatch(/* found = */ false);\n // While matches were not found, searching for a page\n // with matches should nevertheless halt.\n return true;\n }\n }\n // Matches were not found (and searching is not done).\n return false;\n }\n\n #nextPageMatch() {\n if (this._resumePageIdx !== null) {\n console.error(\"There can only be one pending page.\");\n }\n\n let matches = null;\n do {\n const pageIdx = this._offset.pageIdx;\n matches = this._pageMatches[pageIdx];\n if (!matches) {\n // The matches don't exist yet for processing by `_matchesReady`,\n // so set a resume point for when they do exist.\n this._resumePageIdx = pageIdx;\n break;\n }\n } while (!this.#matchesReady(matches));\n }\n\n #advanceOffsetPage(previous) {\n const offset = this._offset;\n const numPages = this._linkService.pagesCount;\n offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;\n offset.matchIdx = null;\n\n this._pagesToSearch--;\n\n if (offset.pageIdx >= numPages || offset.pageIdx < 0) {\n offset.pageIdx = previous ? numPages - 1 : 0;\n offset.wrapped = true;\n }\n }\n\n #updateMatch(found = false) {\n let state = FindState.NOT_FOUND;\n const wrapped = this._offset.wrapped;\n this._offset.wrapped = false;\n\n if (found) {\n const previousPage = this._selected.pageIdx;\n this._selected.pageIdx = this._offset.pageIdx;\n this._selected.matchIdx = this._offset.matchIdx;\n state = wrapped ? FindState.WRAPPED : FindState.FOUND;\n\n // Update the currently selected page to wipe out any selected matches.\n if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {\n this.#updatePage(previousPage);\n }\n }\n\n this.#updateUIState(state, this.#state.findPrevious);\n if (this._selected.pageIdx !== -1) {\n // Ensure that the match will be scrolled into view.\n this._scrollMatches = true;\n\n this.#updatePage(this._selected.pageIdx);\n }\n }\n\n #onPagesEdited({ pagesMapper, type, pageNumbers }) {\n if (this._extractTextPromises.length === 0) {\n return;\n }\n\n if (type === \"copy\") {\n const promises = new Map();\n const contents = new Map();\n const diffs = new Map();\n const diacritics = new Map();\n for (const pageNum of pageNumbers) {\n promises.set(pageNum, this._extractTextPromises[pageNum - 1]);\n contents.set(pageNum, this._pageContents[pageNum - 1]);\n diffs.set(pageNum, this._pageDiffs[pageNum - 1]);\n diacritics.set(pageNum, this._hasDiacritics[pageNum - 1]);\n }\n this.#copiedPageData = { promises, contents, diffs, diacritics };\n return;\n }\n\n if (type === \"cancelCopy\") {\n this.#copiedPageData = null;\n return;\n }\n\n if (type === \"delete\") {\n this.#savedPageData = {\n promises: this._extractTextPromises,\n contents: this._pageContents,\n diffs: this._pageDiffs,\n diacritics: this._hasDiacritics,\n };\n }\n\n if (type === \"cancelDelete\") {\n this._extractTextPromises = this.#savedPageData.promises;\n this._pageContents = this.#savedPageData.contents;\n this._pageDiffs = this.#savedPageData.diffs;\n this._hasDiacritics = this.#savedPageData.diacritics;\n return;\n }\n\n if (type === \"cleanSavedData\") {\n this.#savedPageData = null;\n return;\n }\n\n // Cancel any pending find timeout and clear a pending resume page index\n // synchronously. Calling #onFindBarClose() here would schedule its cleanup\n // asynchronously.\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n this._resumePageIdx = null;\n this._dirtyMatch = true;\n const prevPromises = this._extractTextPromises;\n const prevContents = this._pageContents;\n const prevDiffs = this._pageDiffs;\n const prevDiacritics = this._hasDiacritics;\n const extractTextPromises = (this._extractTextPromises = []);\n const pageContents = (this._pageContents = []);\n const pageDiffs = (this._pageDiffs = []);\n const hasDiacritics = (this._hasDiacritics = []);\n for (let i = 1, ii = pagesMapper.pagesNumber; i <= ii; i++) {\n const prevPageNumber = pagesMapper.getPrevPageNumber(i);\n if (prevPageNumber < 0) {\n const src = -prevPageNumber;\n extractTextPromises.push(\n this.#copiedPageData?.promises.get(src) || Promise.resolve()\n );\n pageContents.push(this.#copiedPageData?.contents.get(src) ?? \"\");\n pageDiffs.push(this.#copiedPageData?.diffs.get(src) ?? null);\n hasDiacritics.push(this.#copiedPageData?.diacritics.get(src) ?? false);\n continue;\n }\n extractTextPromises.push(\n prevPromises[prevPageNumber - 1] || Promise.resolve()\n );\n pageContents.push(prevContents[prevPageNumber - 1] ?? \"\");\n pageDiffs.push(prevDiffs[prevPageNumber - 1] ?? null);\n hasDiacritics.push(prevDiacritics[prevPageNumber - 1] ?? false);\n }\n if (this.#state) {\n this.#nextMatch();\n }\n }\n\n #onFindBarClose(evt) {\n const pdfDocument = this._pdfDocument;\n // Since searching is asynchronous, ensure that the removal of highlighted\n // matches (from the UI) is async too such that the 'updatetextlayermatches'\n // events will always be dispatched in the expected order.\n this._firstPageCapability.promise.then(() => {\n // Only update the UI if the document is open, and is the current one.\n if (\n !this._pdfDocument ||\n (pdfDocument && this._pdfDocument !== pdfDocument)\n ) {\n return;\n }\n // Ensure that a pending, not yet started, search operation is aborted.\n if (this._findTimeout) {\n clearTimeout(this._findTimeout);\n this._findTimeout = null;\n }\n // Abort any long running searches, to avoid a match being scrolled into\n // view *after* the findbar has been closed. In this case `this._offset`\n // will most likely differ from `this._selected`, hence we also ensure\n // that any new search operation will always start with a clean slate.\n if (this._resumePageIdx) {\n this._resumePageIdx = null;\n this._dirtyMatch = true;\n }\n // Avoid the UI being in a pending state when the findbar is re-opened.\n this.#updateUIState(FindState.FOUND);\n\n this._highlightMatches = false;\n this.#updateAllPages(); // Wipe out any previously highlighted matches.\n });\n }\n\n #requestMatchesCount() {\n const { pageIdx, matchIdx } = this._selected;\n let current = 0,\n total = this._matchesCountTotal;\n if (matchIdx !== -1) {\n for (let i = 0; i < pageIdx; i++) {\n current += this._pageMatches[i]?.length || 0;\n }\n current += matchIdx + 1;\n }\n // When searching starts, this method may be called before the `pageMatches`\n // have been counted (in `#calculateMatch`). Ensure that the UI won't show\n // temporarily broken state when the active find result doesn't make sense.\n if (current < 1 || current > total) {\n current = total = 0;\n }\n return { current, total };\n }\n\n #updateUIResultsCount() {\n this._eventBus.dispatch(\"updatefindmatchescount\", {\n source: this,\n matchesCount: this.#requestMatchesCount(),\n });\n }\n\n #updateUIState(state, previous = false) {\n if (\n !this.#updateMatchesCountOnProgress &&\n (this.#visitedPagesCount !== this._linkService.pagesCount ||\n state === FindState.PENDING)\n ) {\n // When this.#updateMatchesCountOnProgress is false we only send an update\n // when everything is ready.\n return;\n }\n\n this._eventBus.dispatch(\"updatefindcontrolstate\", {\n source: this,\n state,\n previous,\n entireWord: this.#state?.entireWord ?? null,\n matchesCount: this.#requestMatchesCount(),\n rawQuery: this.#state?.query ?? null,\n });\n }\n}\n\nexport { FindState, getOriginalIndex, normalize, PDFFindController };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./event_utils\").EventBus} EventBus */\n\nimport { isValidExplicitDest } from \"pdfjs-lib\";\nimport { parseQueryString } from \"./ui_utils.js\";\n\nconst DEFAULT_LINK_REL = \"noopener noreferrer nofollow\";\n\nconst LinkTarget = {\n NONE: 0, // Default value.\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4,\n};\n\n/**\n * @typedef {Object} PDFLinkServiceOptions\n * @property {EventBus} eventBus - The application event bus.\n * @property {number} [externalLinkTarget] - Specifies the `target` attribute\n * for external links. Must use one of the values from {LinkTarget}.\n * Defaults to using no target.\n * @property {string} [externalLinkRel] - Specifies the `rel` attribute for\n * external links. Defaults to stripping the referrer.\n * @property {boolean} [ignoreDestinationZoom] - Ignores the zoom argument,\n * thus preserving the current zoom level in the viewer, when navigating\n * to internal destinations. The default value is `false`.\n */\n\n/**\n * Performs navigation functions inside PDF, such as opening specified page,\n * or destination.\n */\nclass PDFLinkService {\n externalLinkEnabled = true;\n\n /**\n * @param {PDFLinkServiceOptions} options\n */\n constructor({\n eventBus,\n externalLinkTarget = null,\n externalLinkRel = null,\n ignoreDestinationZoom = false,\n } = {}) {\n this.eventBus = eventBus;\n this.externalLinkTarget = externalLinkTarget;\n this.externalLinkRel = externalLinkRel;\n this._ignoreDestinationZoom = ignoreDestinationZoom;\n\n this.baseUrl = null;\n this.pdfDocument = null;\n this.pdfViewer = null;\n this.pdfHistory = null;\n }\n\n setDocument(pdfDocument, baseUrl = null) {\n this.baseUrl = baseUrl;\n this.pdfDocument = pdfDocument;\n }\n\n setViewer(pdfViewer) {\n this.pdfViewer = pdfViewer;\n }\n\n setHistory(pdfHistory) {\n this.pdfHistory = pdfHistory;\n }\n\n /**\n * @type {number}\n */\n get pagesCount() {\n return this.pdfDocument?.pagesMapper.pagesNumber || 0;\n }\n\n /**\n * @type {number}\n */\n get page() {\n return this.pdfDocument ? this.pdfViewer.currentPageNumber : 1;\n }\n\n /**\n * @param {number} value\n */\n set page(value) {\n if (this.pdfDocument) {\n this.pdfViewer.currentPageNumber = value;\n }\n }\n\n /**\n * @type {number}\n */\n get rotation() {\n return this.pdfDocument ? this.pdfViewer.pagesRotation : 0;\n }\n\n /**\n * @param {number} value\n */\n set rotation(value) {\n if (this.pdfDocument) {\n this.pdfViewer.pagesRotation = value;\n }\n }\n\n /**\n * @type {boolean}\n */\n get isInPresentationMode() {\n return this.pdfDocument ? this.pdfViewer.isInPresentationMode : false;\n }\n\n /**\n * This method will, when available, also update the browser history.\n *\n * @param {string|Array} dest - The named, or explicit, PDF destination.\n */\n async goToDestination(dest) {\n if (!this.pdfDocument) {\n return;\n }\n let namedDest, explicitDest, pageNumber;\n if (typeof dest === \"string\") {\n namedDest = dest;\n explicitDest = await this.pdfDocument.getDestination(dest);\n } else {\n namedDest = null;\n explicitDest = await dest;\n }\n if (!Array.isArray(explicitDest)) {\n console.error(\n `goToDestination: \"${explicitDest}\" is not a valid destination array, for dest=\"${dest}\".`\n );\n return;\n }\n // Dest array looks like that: \n const [destRef] = explicitDest;\n\n if (destRef && typeof destRef === \"object\") {\n pageNumber = this.pdfDocument.cachedPageNumber(destRef);\n\n if (!pageNumber) {\n // Fetch the page reference if it's not yet available. This could\n // only occur during loading, before all pages have been resolved.\n try {\n pageNumber = (await this.pdfDocument.getPageIndex(destRef)) + 1;\n } catch {\n console.error(\n `goToDestination: \"${destRef}\" is not a valid page reference, for dest=\"${dest}\".`\n );\n return;\n }\n }\n } else if (Number.isInteger(destRef)) {\n pageNumber = destRef + 1;\n }\n if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n console.error(\n `goToDestination: \"${pageNumber}\" is not a valid page number, for dest=\"${dest}\".`\n );\n return;\n }\n\n if (this.pdfHistory) {\n // Update the browser history before scrolling the new destination into\n // view, to be able to accurately capture the current document position.\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.push({ namedDest, explicitDest, pageNumber });\n }\n\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: explicitDest,\n ignoreDestinationZoom: this._ignoreDestinationZoom,\n });\n\n const ac = new AbortController();\n this.eventBus._on(\n \"textlayerrendered\",\n evt => {\n if (evt.pageNumber === pageNumber) {\n evt.source.textLayer.div.focus();\n ac.abort();\n }\n },\n { signal: ac.signal }\n );\n }\n\n /**\n * This method will, when available, also update the browser history.\n *\n * @param {number|string} val - The page number, or page label.\n */\n goToPage(val) {\n if (!this.pdfDocument) {\n return;\n }\n const pageNumber =\n (typeof val === \"string\" && this.pdfViewer.pageLabelToPageNumber(val)) ||\n val | 0;\n if (\n !(\n Number.isInteger(pageNumber) &&\n pageNumber > 0 &&\n pageNumber <= this.pagesCount\n )\n ) {\n console.error(`PDFLinkService.goToPage: \"${val}\" is not a valid page.`);\n return;\n }\n\n if (this.pdfHistory) {\n // Update the browser history before scrolling the new page into view,\n // to be able to accurately capture the current document position.\n this.pdfHistory.pushCurrentPosition();\n this.pdfHistory.pushPage(pageNumber);\n }\n\n this.pdfViewer.scrollPageIntoView({ pageNumber });\n }\n\n /**\n * Scrolls to a specific location in the PDF document.\n * @param {number} pageNumber - The page number to scroll to.\n * @param {number} x - The x-coordinate to scroll to in page coordinates.\n * @param {number} y - The y-coordinate to scroll to in page coordinates.\n * @param {Object} [options]\n */\n goToXY(pageNumber, x, y, options = {}) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber,\n destArray: [null, { name: \"XYZ\" }, x, y],\n ignoreDestinationZoom: true,\n ...options,\n });\n }\n\n /**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLAnchorElement} link\n * @param {string} url\n * @param {boolean} [newWindow]\n */\n addLinkAttributes(link, url, newWindow = false) {\n if (!url || typeof url !== \"string\") {\n throw new Error('A valid \"url\" parameter must provided.');\n }\n const target = newWindow ? LinkTarget.BLANK : this.externalLinkTarget,\n rel = this.externalLinkRel;\n\n // Strip userinfo (user:password@) from URLs used for display, to prevent\n // phishing via hostname-spoofing (e.g. https://trusted.example@attacker.example/).\n let displayUrl = url;\n const parsedUrl = URL.parse(url);\n if (parsedUrl?.username || parsedUrl?.password) {\n parsedUrl.username = parsedUrl.password = \"\";\n displayUrl = parsedUrl.href;\n }\n\n if (this.externalLinkEnabled) {\n link.href = url;\n link.title = displayUrl;\n } else {\n link.href = \"\";\n link.title = `Disabled: ${displayUrl}`;\n link.onclick = () => false;\n }\n\n let targetStr = \"\"; // LinkTarget.NONE\n switch (target) {\n case LinkTarget.NONE:\n break;\n case LinkTarget.SELF:\n targetStr = \"_self\";\n break;\n case LinkTarget.BLANK:\n targetStr = \"_blank\";\n break;\n case LinkTarget.PARENT:\n targetStr = \"_parent\";\n break;\n case LinkTarget.TOP:\n targetStr = \"_top\";\n break;\n }\n link.target = targetStr;\n\n link.rel = typeof rel === \"string\" ? rel : DEFAULT_LINK_REL;\n }\n\n /**\n * @param {string|Array} dest - The PDF destination object.\n * @returns {string} The hyperlink to the PDF object.\n */\n getDestinationHash(dest) {\n if (typeof dest === \"string\") {\n if (dest.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(dest));\n }\n } else if (Array.isArray(dest)) {\n const str = JSON.stringify(dest);\n if (str.length > 0) {\n return this.getAnchorUrl(\"#\" + escape(str));\n }\n }\n return this.getAnchorUrl(\"\");\n }\n\n /**\n * Prefix the full url on anchor links to make sure that links are resolved\n * relative to the current URL instead of the one defined in .\n * @param {string} anchor - The anchor hash, including the #.\n * @returns {string} The hyperlink to the PDF object.\n */\n getAnchorUrl(anchor) {\n return this.baseUrl ? this.baseUrl + anchor : anchor;\n }\n\n /**\n * @param {string} hash\n */\n setHash(hash) {\n if (!this.pdfDocument) {\n return;\n }\n let pageNumber, dest;\n if (hash.includes(\"=\")) {\n const params = parseQueryString(hash);\n if (params.has(\"search\")) {\n const query = params.get(\"search\").replaceAll('\"', \"\"),\n phrase = params.get(\"phrase\") === \"true\";\n\n this.eventBus.dispatch(\"findfromurlhash\", {\n source: this,\n query: phrase ? query : query.match(/\\S+/g),\n });\n }\n // borrowing syntax from \"Parameters for Opening PDF Files\"\n if (params.has(\"page\")) {\n pageNumber = params.get(\"page\") | 0 || 1;\n }\n if (params.has(\"zoom\")) {\n // Build the destination array.\n const zoomArgs = params.get(\"zoom\").split(\",\"); // scale,left,top\n const zoomArg = zoomArgs[0];\n const zoomArgNumber = parseFloat(zoomArg);\n\n if (!zoomArg.includes(\"Fit\")) {\n // If the zoomArg is a number, it has to get divided by 100. If it's\n // a string, it should stay as it is.\n dest = [\n null,\n { name: \"XYZ\" },\n zoomArgs.length > 1 ? zoomArgs[1] | 0 : null,\n zoomArgs.length > 2 ? zoomArgs[2] | 0 : null,\n zoomArgNumber ? zoomArgNumber / 100 : zoomArg,\n ];\n } else if (zoomArg === \"Fit\" || zoomArg === \"FitB\") {\n dest = [null, { name: zoomArg }];\n } else if (\n zoomArg === \"FitH\" ||\n zoomArg === \"FitBH\" ||\n zoomArg === \"FitV\" ||\n zoomArg === \"FitBV\"\n ) {\n dest = [\n null,\n { name: zoomArg },\n zoomArgs.length > 1 ? zoomArgs[1] | 0 : null,\n ];\n } else if (zoomArg === \"FitR\") {\n if (zoomArgs.length !== 5) {\n console.error(\n 'PDFLinkService.setHash: Not enough parameters for \"FitR\".'\n );\n } else {\n dest = [\n null,\n { name: zoomArg },\n zoomArgs[1] | 0,\n zoomArgs[2] | 0,\n zoomArgs[3] | 0,\n zoomArgs[4] | 0,\n ];\n }\n } else {\n console.error(\n `PDFLinkService.setHash: \"${zoomArg}\" is not a valid zoom value.`\n );\n }\n }\n if (dest) {\n this.pdfViewer.scrollPageIntoView({\n pageNumber: pageNumber || this.page,\n destArray: dest,\n allowNegativeOffset: true,\n });\n } else if (pageNumber) {\n this.page = pageNumber; // simple page\n }\n if (params.has(\"pagemode\")) {\n this.eventBus.dispatch(\"pagemode\", {\n source: this,\n mode: params.get(\"pagemode\"),\n });\n }\n // Ensure that this parameter is *always* handled last, in order to\n // guarantee that it won't be overridden (e.g. by the \"page\" parameter).\n if (params.has(\"nameddest\")) {\n this.goToDestination(params.get(\"nameddest\"));\n }\n\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n return;\n }\n // Support opening of PDF attachments in the Firefox PDF Viewer,\n // which uses a couple of non-standard hash parameters; refer to\n // `DownloadManager._getOpenDataUrl` in the firefoxcom.js file.\n if (!params.has(\"filename\") || !params.has(\"filedest\")) {\n return;\n }\n hash = params.get(\"filedest\");\n }\n\n // Named (or explicit) destination.\n dest = unescape(hash);\n try {\n dest = JSON.parse(dest);\n\n if (!Array.isArray(dest)) {\n // Avoid incorrectly rejecting a valid named destination, such as\n // e.g. \"4.3\" or \"true\", because `JSON.parse` converted its type.\n dest = dest.toString();\n }\n } catch {}\n\n if (typeof dest === \"string\" || isValidExplicitDest(dest)) {\n this.goToDestination(dest);\n return;\n }\n console.error(\n `PDFLinkService.setHash: \"${unescape(hash)}\" is not a valid destination.`\n );\n }\n\n /**\n * @param {string} action\n */\n executeNamedAction(action) {\n if (!this.pdfDocument) {\n return;\n }\n // See PDF reference, table 8.45 - Named action\n switch (action) {\n case \"GoBack\":\n this.pdfHistory?.back();\n break;\n\n case \"GoForward\":\n this.pdfHistory?.forward();\n break;\n\n case \"NextPage\":\n this.pdfViewer.nextPage();\n break;\n\n case \"PrevPage\":\n this.pdfViewer.previousPage();\n break;\n\n case \"LastPage\":\n this.page = this.pagesCount;\n break;\n\n case \"FirstPage\":\n this.page = 1;\n break;\n\n default:\n break; // No action according to spec\n }\n\n this.eventBus.dispatch(\"namedaction\", {\n source: this,\n action,\n });\n }\n\n /**\n * @param {Object} action\n */\n async executeSetOCGState(action) {\n if (!this.pdfDocument) {\n return;\n }\n const pdfDocument = this.pdfDocument,\n optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise;\n\n if (pdfDocument !== this.pdfDocument) {\n return; // The document was closed while the optional content resolved.\n }\n optionalContentConfig.setOCGState(action);\n\n this.pdfViewer.optionalContentConfigPromise = Promise.resolve(\n optionalContentConfig\n );\n }\n}\n\nclass SimpleLinkService extends PDFLinkService {\n setDocument(pdfDocument, baseUrl = null) {}\n}\n\nexport { LinkTarget, PDFLinkService, SimpleLinkService };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../src/display/api\").PDFPageProxy} PDFPageProxy */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/display_utils\").PageViewport} PageViewport */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/annotation_storage\").AnnotationStorage} AnnotationStorage */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./struct_tree_layer_builder.js\").StructTreeLayerBuilder} StructTreeLayerBuilder */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./text_accessibility.js\").TextAccessibilityManager} TextAccessibilityManager */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../src/display/editor/tools.js\").AnnotationEditorUIManager} AnnotationEditorUIManager */\n/** @typedef {import(\"./comment_manager.js\").CommentManager} CommentManager */\n/** @typedef {import(\"./pdf_link_service.js\").PDFLinkService} PDFLinkService */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./base_download_manager.js\").BaseDownloadManager} BaseDownloadManager */\n\nimport {\n AnnotationLayer,\n AnnotationType,\n setLayerDimensions,\n Util,\n} from \"pdfjs-lib\";\nimport { PresentationModeState } from \"./ui_utils.js\";\n\n/**\n * @typedef {Object} AnnotationLayerBuilderOptions\n * @property {PDFPageProxy} pdfPage\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n * for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {PDFLinkService} linkService\n * @property {BaseDownloadManager} [downloadManager]\n * @property {boolean} [enableComment]\n * @property {boolean} [enableScripting]\n * @property {Promise} [hasJSActionsPromise]\n * @property {Promise