From a7d58386eb18c8f0cfafb790876d81e84c2e3fbe Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Mon, 5 Aug 2024 20:27:21 +0200 Subject: [PATCH 1/7] Get version info from importlib.metadata --- cps/about.py | 8 ++++++-- cps/debug_info.py | 6 ++++-- requirements.txt | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/cps/about.py b/cps/about.py index 355978c3..9053dfee 100644 --- a/cps/about.py +++ b/cps/about.py @@ -23,6 +23,7 @@ import sys import platform import sqlite3 +import importlib from collections import OrderedDict import flask @@ -41,8 +42,11 @@ req = dep_check.load_dependencies(False) opt = dep_check.load_dependencies(True) for i in (req + opt): modules[i[1]] = i[0] -modules['Jinja2'] = jinja2.__version__ -modules['pySqlite'] = sqlite3.version +modules['Jinja2'] = importlib.metadata.version("jinja2") +try: + modules['pySqlite'] = sqlite3.version +except Exception: + pass modules['SQLite'] = sqlite3.sqlite_version sorted_modules = OrderedDict((sorted(modules.items(), key=lambda x: x[0].casefold()))) diff --git a/cps/debug_info.py b/cps/debug_info.py index 879846ab..3be60700 100644 --- a/cps/debug_info.py +++ b/cps/debug_info.py @@ -26,7 +26,8 @@ from flask_babel.speaklater import LazyString import os -from flask import send_file, __version__ +from flask import send_file +import importlib from . import logger, config from .about import collect_stats @@ -49,7 +50,8 @@ def assemble_logfiles(file_name): with open(f, 'rb') as fd: shutil.copyfileobj(fd, wfd) wfd.seek(0) - if int(__version__.split('.')[0]) < 2: + version = importlib.metadata.version("flask") + if int(version.split('.')[0]) < 2: return send_file(wfd, as_attachment=True, attachment_filename=os.path.basename(file_name)) diff --git a/requirements.txt b/requirements.txt index 460a7357..71074892 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,7 +13,7 @@ Wand>=0.4.4,<0.7.0 unidecode>=0.04.19,<1.4.0 lxml>=4.9.1,<5.3.0 flask-wtf>=0.14.2,<1.3.0 -chardet>=3.0.0,<4.1.0 +chardet>=3.0.0,<5.3.0 advocate>=1.0.0,<1.1.0 Flask-Limiter>=2.3.0,<3.9.0 regex>=2022.3.2,<2024.6.25 From b3d878bae87481dec4c06dc82b2c32d3ca65d75f Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Wed, 7 Aug 2024 13:53:27 +0200 Subject: [PATCH 2/7] Fix deprecation warning datetime --- cps/__init__.py | 2 +- cps/editbooks.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cps/__init__.py b/cps/__init__.py index 5ecc00eb..2b8808fa 100644 --- a/cps/__init__.py +++ b/cps/__init__.py @@ -84,7 +84,7 @@ app = Flask(__name__) app.config.update( SESSION_COOKIE_HTTPONLY=True, SESSION_COOKIE_SAMESITE='Strict', - REMEMBER_COOKIE_SAMESITE='Strict', # will be available in flask-login 0.5.1 earliest + REMEMBER_COOKIE_SAMESITE='Strict', WTF_CSRF_SSL_STRICT=False, SESSION_COOKIE_NAME=os.environ.get('COOKIE_PREFIX', "") + "session", REMEMBER_COOKIE_NAME=os.environ.get('COOKIE_PREFIX', "") + "remember_token" diff --git a/cps/editbooks.py b/cps/editbooks.py index 5f58cf81..c1f96df1 100644 --- a/cps/editbooks.py +++ b/cps/editbooks.py @@ -21,7 +21,7 @@ # along with this program. If not, see . import os -from datetime import datetime +from datetime import datetime, UTC import json from shutil import copyfile from uuid import uuid4 @@ -707,8 +707,8 @@ def create_book_on_upload(modify_date, meta): pubdate = datetime(101, 1, 1) # Calibre adds books with utc as timezone - db_book = db.Books(title, "", sort_authors, datetime.utcnow(), pubdate, - '1', datetime.utcnow(), path, meta.cover, db_author, [], "") + db_book = db.Books(title, "", sort_authors, datetime.now(UTC), pubdate, + '1', datetime.now(UTC), path, meta.cover, db_author, [], "") modify_date |= modify_database_object(input_authors, db_book.authors, db.Authors, calibre_db.session, 'author') From 2f8db1f7f02fee2b1d2dfddfc5c3b756dac37cfa Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Wed, 7 Aug 2024 15:16:38 +0200 Subject: [PATCH 3/7] Update pdf.js to 4.5.136 --- cps/static/js/libs/pdf.mjs | 5318 ++++++++++++++++++++++++++++- cps/static/js/libs/pdf.worker.mjs | 5316 +++++++++++++++++++++++++++- cps/static/js/libs/viewer.mjs | 456 ++- 3 files changed, 10728 insertions(+), 362 deletions(-) diff --git a/cps/static/js/libs/pdf.mjs b/cps/static/js/libs/pdf.mjs index 7906d1a9..52a97c21 100644 --- a/cps/static/js/libs/pdf.mjs +++ b/cps/static/js/libs/pdf.mjs @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * JavaScript code in this page * - * Copyright 2023 Mozilla Foundation + * 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. @@ -20,8 +20,4712 @@ * JavaScript code in this page */ -/******/ // The require scope -/******/ var __webpack_require__ = {}; +/******/ 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; +}; + + +/***/ }), + +/***/ 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 uncurryThisAccessor = __webpack_require__(6706); +var classof = __webpack_require__(4576); + +var $TypeError = TypeError; + +// Includes +// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). +// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. +module.exports = 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 uncurryThis = __webpack_require__(9504); +var arrayBufferByteLength = __webpack_require__(7394); + +var slice = uncurryThis(ArrayBuffer.prototype.slice); + +module.exports = function (O) { + if (arrayBufferByteLength(O) !== 0) return false; + try { + slice(O, 0, 0); + return false; + } catch (error) { + return true; + } +}; + + +/***/ }), + +/***/ 5636: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +var uncurryThis = __webpack_require__(9504); +var uncurryThisAccessor = __webpack_require__(6706); +var toIndex = __webpack_require__(7696); +var isDetached = __webpack_require__(3238); +var arrayBufferByteLength = __webpack_require__(7394); +var detachTransferable = __webpack_require__(4483); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548); + +var structuredClone = global.structuredClone; +var ArrayBuffer = global.ArrayBuffer; +var DataView = global.DataView; +var TypeError = global.TypeError; +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; + if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached'); + 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: 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 global = __webpack_require__(4475); +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 = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = global.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(global.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 = global[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 = global[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 = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; + +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else NATIVE_ARRAY_BUFFER_VIEWS = false; +} + +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[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 (global[NAME]) setPrototypeOf(global[NAME], TypedArray); + } +} + +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[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 (global[NAME]) { + createNonEnumerableProperty(global[NAME], 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 +}; + + +/***/ }), + +/***/ 5370: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var lengthOfArrayLike = __webpack_require__(6198); + +module.exports = function (Constructor, list, $length) { + var index = 0; + var length = arguments.length > 2 ? $length : lengthOfArrayLike(list); + var result = new Constructor(length); + while (length > index) result[index] = list[index++]; + return result; +}; + + +/***/ }), + +/***/ 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; +}; + + +/***/ }), + +/***/ 7628: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var lengthOfArrayLike = __webpack_require__(6198); + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed +module.exports = function (O, C) { + var len = lengthOfArrayLike(O); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = O[len - k - 1]; + return A; +}; + + +/***/ }), + +/***/ 9928: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var lengthOfArrayLike = __webpack_require__(6198); +var toIntegerOrInfinity = __webpack_require__(1291); + +var $RangeError = RangeError; + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with +module.exports = function (O, C, index, value) { + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; + if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index'); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; + return A; +}; + + +/***/ }), + +/***/ 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); + } +}; + + +/***/ }), + +/***/ 4576: +/***/ ((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__(4576); +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 global = __webpack_require__(4475); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[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 global = __webpack_require__(4475); +var tryNodeRequire = __webpack_require__(9714); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548); + +var structuredClone = global.structuredClone; +var $ArrayBuffer = global.ArrayBuffer; +var $MessageChannel = global.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 = tryNodeRequire('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 global = __webpack_require__(4475); +var isObject = __webpack_require__(34); + +var document = global.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 $TypeError('Maximum allowed index exceeded'); + return it; +}; + + +/***/ }), + +/***/ 5002: +/***/ ((module) => { + + +module.exports = { + IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, + DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 }, + HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 }, + WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 }, + InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 }, + NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 }, + NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 }, + NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 }, + NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 }, + InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 }, + InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 }, + SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 }, + InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 }, + NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 }, + InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 }, + ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 }, + TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 }, + SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 }, + NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 }, + AbortError: { s: 'ABORT_ERR', c: 20, m: 1 }, + URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 }, + QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 }, + TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 }, + InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 }, + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 } +}; + + +/***/ }), + +/***/ 7290: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var IS_DENO = __webpack_require__(516); +var IS_NODE = __webpack_require__(9088); + +module.exports = !IS_DENO && !IS_NODE + && typeof window == 'object' + && typeof document == 'object'; + + +/***/ }), + +/***/ 516: +/***/ ((module) => { + + +/* global Deno -- Deno case */ +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + +/***/ }), + +/***/ 9088: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +var classof = __webpack_require__(4576); + +module.exports = classof(global.process) === 'process'; + + +/***/ }), + +/***/ 9392: +/***/ ((module) => { + + +module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + +/***/ }), + +/***/ 7388: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +var userAgent = __webpack_require__(9392); + +var process = global.process; +var Deno = global.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; + + +/***/ }), + +/***/ 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 uncurryThis = __webpack_require__(9504); + +var $Error = Error; +var replace = uncurryThis(''.replace); + +var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd'); +// eslint-disable-next-line redos/no-vulnerable -- safe +var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; +var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); + +module.exports = function (stack, dropEntries) { + if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { + while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + } return stack; +}; + + +/***/ }), + +/***/ 6518: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +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 = global; + } else if (STATIC) { + target = global[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global[TARGET] && global[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; + +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__(4576); +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; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); + +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), + +/***/ 7751: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +var isCallable = __webpack_require__(4901); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + + +/***/ }), + +/***/ 1767: +/***/ ((module) => { + + +// `GetIteratorDirect(obj)` abstract operation +// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect +module.exports = function (obj) { + return { + iterator: obj, + next: obj.next, + done: false + }; +}; + + +/***/ }), + +/***/ 8646: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var call = __webpack_require__(9565); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); +var getIteratorMethod = __webpack_require__(851); + +module.exports = function (obj, stringHandling) { + if (!stringHandling || typeof obj !== 'string') anObject(obj); + var method = getIteratorMethod(obj); + return getIteratorDirect(anObject(method !== undefined ? call(method, obj) : obj)); +}; + + +/***/ }), + +/***/ 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); +}; + + +/***/ }), + +/***/ 4475: +/***/ (function(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__(4576); + +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; + + +/***/ }), + +/***/ 3167: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isCallable = __webpack_require__(4901); +var isObject = __webpack_require__(34); +var setPrototypeOf = __webpack_require__(2967); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), + +/***/ 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 global = __webpack_require__(4475); +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 = global.TypeError; +var WeakMap = global.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__(4576); + +// `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) { + if (iterator) iteratorClose(iterator, 'normal', condition); + 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) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + + +/***/ }), + +/***/ 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 TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var ITERATOR_HELPER = 'IteratorHelper'; +var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator'; +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` our `nextHandler` returns `IterResultObject` + // for `%IteratorHelperPrototype%.next` - just a value + if (IS_ITERATOR) return state.nextHandler(); + try { + var result = state.done ? undefined : state.nextHandler(); + return createIterResultObject(result, state.done); + } catch (error) { + state.done = true; + throw error; + } + }, + 'return': function () { + var state = getInternalState(this); + var iterator = state.iterator; + state.done = true; + if (IS_ITERATOR) { + var returnMethod = getMethod(iterator, 'return'); + return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true); + } + if (state.inner) try { + iteratorClose(state.inner.iterator, 'normal'); + } catch (error) { + return iteratorClose(iterator, 'throw', error); + } + 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) { + 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.nextHandler = nextHandler; + state.counter = 0; + state.done = false; + setInternalState(this, state); + }; + + IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype; + + return IteratorProxy; +}; + + +/***/ }), + +/***/ 713: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +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 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://github.com/tc39/proposal-iterator-helpers +module.exports = function map(mapper) { + anObject(this); + aCallable(mapper); + return new IteratorProxy(getIteratorDirect(this), { + mapper: mapper + }); +}; + + +/***/ }), + +/***/ 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'); + + +/***/ }), + +/***/ 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); +}; + + +/***/ }), + +/***/ 2603: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toString = __webpack_require__(655); + +module.exports = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument); +}; + + +/***/ }), + +/***/ 4149: +/***/ ((module) => { + + +var $RangeError = RangeError; + +module.exports = function (it) { + // eslint-disable-next-line no-self-compare -- NaN check + if (it === it) return it; + throw new $RangeError('NaN is not allowed'); +}; + + +/***/ }), + +/***/ 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; + activeXDocument = null; // avoid memory leak + 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://github.com/tc39/proposal-set-methods +module.exports = function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, 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://github.com/tc39/proposal-set-methods +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.github.io/proposal-set-methods/#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, '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.github.io/proposal-set-methods/#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.github.io/proposal-set-methods/#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, '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 }; + } + }; + } + }; +}; + +module.exports = function (name) { + var Set = getBuiltIn('Set'); + try { + new Set()[name](createSetLike(0)); + try { + // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it + // https://github.com/tc39/proposal-set-methods/pull/88 + new Set()[name](createSetLike(-1)); + return false; + } catch (error2) { + return true; + } + } 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://github.com/tc39/proposal-set-methods +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://github.com/tc39/proposal-set-methods +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__(4475); +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.37.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/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 global = __webpack_require__(4475); +var fails = __webpack_require__(9039); +var V8 = __webpack_require__(7388); +var IS_BROWSER = __webpack_require__(7290); +var IS_DENO = __webpack_require__(516); +var IS_NODE = __webpack_require__(9088); + +var structuredClone = global.structuredClone; + +module.exports = !!structuredClone && !fails(function () { + // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_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__(7388); +var fails = __webpack_require__(9039); +var global = __webpack_require__(4475); + +var $String = global.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)); +}; + + +/***/ }), + +/***/ 9590: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toIntegerOrInfinity = __webpack_require__(1291); + +var $RangeError = RangeError; + +module.exports = function (it) { + var result = toIntegerOrInfinity(it); + if (result < 0) throw new $RangeError("The argument can't be less than 0"); + return result; +}; + + +/***/ }), + +/***/ 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 = {}; + +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); +}; + + +/***/ }), + +/***/ 9714: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var IS_NODE = __webpack_require__(9088); + +module.exports = function (name) { + try { + // eslint-disable-next-line no-new-func -- safe + if (IS_NODE) return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } +}; + + +/***/ }), + +/***/ 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.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), + +/***/ 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 global = __webpack_require__(4475); +var isCallable = __webpack_require__(4901); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + + +/***/ }), + +/***/ 8227: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +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 = global.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; + +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/proposal-arraybuffer-transfer/#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/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transfer: function transfer() { + return $transfer(this, arguments.length ? arguments[0] : undefined, true); + } +}); + + +/***/ }), + +/***/ 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; + } +}); + + +/***/ }), + +/***/ 4628: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var newPromiseCapabilityModule = __webpack_require__(6043); + +// `Promise.withResolvers` method +// https://github.com/tc39/proposal-promise-with-resolvers +$({ 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 setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { + 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') || fails(function () { + // eslint-disable-next-line es/no-array-from, es/no-set -- testing + return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; +}); + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +$({ 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); + +// `Set.prototype.isDisjointFrom` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { + 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); + +// `Set.prototype.isSubsetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { + 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); + +// `Set.prototype.isSupersetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { + isSupersetOf: isSupersetOf +}); + + +/***/ }), + +/***/ 5024: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var symmetricDifference = __webpack_require__(3650); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { + symmetricDifference: symmetricDifference +}); + + +/***/ }), + +/***/ 1698: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var union = __webpack_require__(4204); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { + union: union +}); + + +/***/ }), + +/***/ 7467: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var arrayToReversed = __webpack_require__(7628); +var ArrayBufferViewCore = __webpack_require__(4644); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// `%TypedArray%.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed +exportTypedArrayMethod('toReversed', function toReversed() { + return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this)); +}); + + +/***/ }), + +/***/ 4732: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var ArrayBufferViewCore = __webpack_require__(4644); +var uncurryThis = __webpack_require__(9504); +var aCallable = __webpack_require__(9306); +var arrayFromConstructorAndList = __webpack_require__(5370); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort); + +// `%TypedArray%.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted +exportTypedArrayMethod('toSorted', function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = aTypedArray(this); + var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O); + return sort(A, compareFn); +}); + + +/***/ }), + +/***/ 9577: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var arrayWith = __webpack_require__(9928); +var ArrayBufferViewCore = __webpack_require__(4644); +var isBigIntArray = __webpack_require__(1108); +var toIntegerOrInfinity = __webpack_require__(1291); +var toBigInt = __webpack_require__(5854); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +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; + } +}(); + +// `%TypedArray%.prototype.with` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with +exportTypedArrayMethod('with', { 'with': function (index, value) { + var O = aTypedArray(this); + var relativeIndex = toIntegerOrInfinity(index); + var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; + return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); +} }['with'], !PROPER_ORDER); + + +/***/ }), + +/***/ 8992: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var global = __webpack_require__(4475); +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 = global[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://github.com/tc39/proposal-iterator-helpers +$({ global: true, constructor: true, forced: FORCED }, { + Iterator: IteratorConstructor +}); + + +/***/ }), + +/***/ 4743: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var call = __webpack_require__(9565); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); +var notANaN = __webpack_require__(4149); +var toPositiveInteger = __webpack_require__(9590); +var createIteratorProxy = __webpack_require__(9462); +var IS_PURE = __webpack_require__(6395); + +var IteratorProxy = createIteratorProxy(function () { + var iterator = this.iterator; + var next = this.next; + var result, done; + while (this.remaining) { + this.remaining--; + result = anObject(call(next, iterator)); + done = this.done = !!result.done; + if (done) return; + } + result = anObject(call(next, iterator)); + done = this.done = !!result.done; + if (!done) return result.value; +}); + +// `Iterator.prototype.drop` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { + drop: function drop(limit) { + anObject(this); + var remaining = toPositiveInteger(notANaN(+limit)); + return new IteratorProxy(getIteratorDirect(this), { + remaining: remaining + }); + } +}); + + +/***/ }), + +/***/ 3215: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +// `Iterator.prototype.every` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true }, { + every: function every(predicate) { + anObject(this); + aCallable(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; + } +}); + + +/***/ }), + +/***/ 4520: +/***/ ((__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 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://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { + filter: function filter(predicate) { + anObject(this); + aCallable(predicate); + return new IteratorProxy(getIteratorDirect(this), { + predicate: predicate + }); + } +}); + + +/***/ }), + +/***/ 670: +/***/ ((__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 getIteratorFlattenable = __webpack_require__(8646); +var createIteratorProxy = __webpack_require__(9462); +var iteratorClose = __webpack_require__(9539); +var IS_PURE = __webpack_require__(6395); + +var IteratorProxy = createIteratorProxy(function () { + var iterator = this.iterator; + var mapper = this.mapper; + var result, inner; + + while (true) { + if (inner = this.inner) try { + result = anObject(call(inner.next, inner.iterator)); + if (!result.done) return result.value; + this.inner = null; + } catch (error) { iteratorClose(iterator, 'throw', error); } + + result = anObject(call(this.next, iterator)); + + if (this.done = !!result.done) return; + + try { + this.inner = getIteratorFlattenable(mapper(result.value, this.counter++), false); + } catch (error) { iteratorClose(iterator, 'throw', error); } + } +}); + +// `Iterator.prototype.flatMap` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { + flatMap: function flatMap(mapper) { + anObject(this); + aCallable(mapper); + return new IteratorProxy(getIteratorDirect(this), { + mapper: mapper, + inner: null + }); + } +}); + + +/***/ }), + +/***/ 1454: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var map = __webpack_require__(713); +var IS_PURE = __webpack_require__(6395); + +// `Iterator.prototype.map` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { + map: map +}); + + +/***/ }), + +/***/ 7550: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +// `Iterator.prototype.some` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true }, { + some: function some(predicate) { + anObject(this); + aCallable(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; + } +}); + + +/***/ }), + +/***/ 8335: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var DESCRIPTORS = __webpack_require__(3724); +var global = __webpack_require__(4475); +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 = global.JSON; +var Number = global.Number; +var SyntaxError = global.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 = {}; + while (i < source.length) { + i = this.until(['"', '}'], i); + if (at(source, i) === '}' && !expectKeypair) { + i++; + 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++; + break; + } + } + 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 = []; + while (i < source.length) { + i = this.skip(IS_WHITESPACE, i); + if (at(source, i) === ']' && !expectElement) { + i++; + 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++; + break; + } + } + 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); + else throw new SyntaxError('Failed to parse number at: ' + i); + if (at(source, i) === '.') i = this.skip(IS_DIGIT, ++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); + } +}); + + +/***/ }), + +/***/ 3375: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(7642); + + +/***/ }), + +/***/ 9225: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(8004); + + +/***/ }), + +/***/ 3972: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(3853); + + +/***/ }), + +/***/ 9209: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(5876); + + +/***/ }), + +/***/ 5714: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(2475); + + +/***/ }), + +/***/ 7561: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(5024); + + +/***/ }), + +/***/ 6197: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(1698); + + +/***/ }), + +/***/ 4979: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var global = __webpack_require__(4475); +var getBuiltIn = __webpack_require__(7751); +var createPropertyDescriptor = __webpack_require__(6980); +var defineProperty = (__webpack_require__(4913).f); +var hasOwn = __webpack_require__(9297); +var anInstance = __webpack_require__(679); +var inheritIfRequired = __webpack_require__(3167); +var normalizeStringArgument = __webpack_require__(2603); +var DOMExceptionConstants = __webpack_require__(5002); +var clearErrorStack = __webpack_require__(6193); +var DESCRIPTORS = __webpack_require__(3724); +var IS_PURE = __webpack_require__(6395); + +var DOM_EXCEPTION = 'DOMException'; +var Error = getBuiltIn('Error'); +var NativeDOMException = getBuiltIn(DOM_EXCEPTION); + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var that = new NativeDOMException(message, name); + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + inheritIfRequired(that, this, $DOMException); + return that; +}; + +var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype; + +var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); +var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION); + +// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it +// https://github.com/Jarred-Sumner/bun/issues/399 +var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable); + +var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK; + +// `DOMException` constructor patch for `.stack` where it's required +// https://webidl.spec.whatwg.org/#es-DOMException-specialness +$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) { + if (!IS_PURE) { + defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException)); + } + + for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c)); + } + } +} + + +/***/ }), + +/***/ 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 dindex = 0; + var found = false; + var entriesLength = entries.length; + var entry; + while (index < entriesLength) { + entry = entries[index++]; + if (found || entry.key === key) { + found = true; + $delete(this, entry.key); + } else dindex++; + } + while (dindex < entriesLength) { + entry = entries[dindex++]; + 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 + }); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // 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 */ @@ -63,7 +4767,6 @@ __webpack_require__.d(__webpack_exports__, { InvalidPDFException: () => (/* reexport */ InvalidPDFException), MissingPDFException: () => (/* reexport */ MissingPDFException), OPS: () => (/* reexport */ OPS), - Outliner: () => (/* reexport */ Outliner), PDFDataRangeTransport: () => (/* reexport */ PDFDataRangeTransport), PDFDateString: () => (/* reexport */ PDFDateString), PDFWorker: () => (/* reexport */ PDFWorker), @@ -87,14 +4790,42 @@ __webpack_require__.d(__webpack_exports__, { isPdfFile: () => (/* reexport */ isPdfFile), noContextMenu: () => (/* reexport */ noContextMenu), normalizeUnicode: () => (/* reexport */ normalizeUnicode), - renderTextLayer: () => (/* reexport */ renderTextLayer), setLayerDimensions: () => (/* reexport */ setLayerDimensions), shadow: () => (/* reexport */ shadow), - updateTextLayer: () => (/* reexport */ updateTextLayer), version: () => (/* reexport */ version) }); +// 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.typed-array.to-reversed.js +var es_typed_array_to_reversed = __webpack_require__(7467); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-sorted.js +var es_typed_array_to_sorted = __webpack_require__(4732); +// 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/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); ;// CONCATENATED MODULE: ./src/shared/util.js + + + + + + + + + + const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; @@ -110,6 +4841,7 @@ const RenderingIntentFlag = { ANNOTATIONS_FORMS: 0x10, ANNOTATIONS_STORAGE: 0x20, ANNOTATIONS_DISABLE: 0x40, + IS_EDITING: 0x80, OPLIST: 0x100 }; const AnnotationMode = { @@ -365,7 +5097,9 @@ const OPS = { paintImageXObjectRepeat: 88, paintImageMaskXObjectRepeat: 89, paintSolidColorImageMask: 90, - constructPath: 91 + constructPath: 91, + setStrokeTransparent: 92, + setFillTransparent: 93 }; const PasswordResponses = { NEED_PASSWORD: 1, @@ -830,6 +5564,38 @@ const FontRenderOps = { TRANSLATE: 8 }; +// 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/esnext.iterator.map.js +var esnext_iterator_map = __webpack_require__(1454); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.difference.v2.js +var esnext_set_difference_v2 = __webpack_require__(3375); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.intersection.v2.js +var esnext_set_intersection_v2 = __webpack_require__(9225); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js +var esnext_set_is_disjoint_from_v2 = __webpack_require__(3972); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js +var esnext_set_is_subset_of_v2 = __webpack_require__(9209); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js +var esnext_set_is_superset_of_v2 = __webpack_require__(5714); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js +var esnext_set_symmetric_difference_v2 = __webpack_require__(7561); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.union.v2.js +var esnext_set_union_v2 = __webpack_require__(6197); +// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-exception.stack.js +var web_dom_exception_stack = __webpack_require__(4979); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.constructor.js +var esnext_iterator_constructor = __webpack_require__(8992); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.drop.js +var esnext_iterator_drop = __webpack_require__(4743); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.every.js +var esnext_iterator_every = __webpack_require__(3215); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.some.js +var esnext_iterator_some = __webpack_require__(7550); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.json.parse.js +var esnext_json_parse = __webpack_require__(8335); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.filter.js +var esnext_iterator_filter = __webpack_require__(4520); ;// CONCATENATED MODULE: ./src/display/base_factory.js class BaseFilterFactory { @@ -991,6 +5757,19 @@ class BaseSVGFactory { ;// CONCATENATED MODULE: ./src/display/display_utils.js + + + + + + + + + + + + + const SVG_NS = "http://www.w3.org/2000/svg"; class PixelsPerInch { static CSS = 96.0; @@ -998,6 +5777,7 @@ class PixelsPerInch { static PDF_TO_CSS_UNITS = this.CSS / this.PDF; } class DOMFilterFactory extends BaseFilterFactory { + #baseUrl; #_cache; #_defs; #docId; @@ -1061,6 +5841,20 @@ class DOMFilterFactory extends BaseFilterFactory { } return [bufferR.join(","), bufferG.join(","), bufferB.join(",")]; } + #createUrl(id) { + if (this.#baseUrl === undefined) { + this.#baseUrl = ""; + const url = this.#document.URL; + if (url !== this.#document.baseURI) { + if (isDataScheme(url)) { + warn('#createUrl: ignore "data:"-URL for performance reasons.'); + } else { + this.#baseUrl = url.split("#", 1)[0]; + } + } + } + return `url(${this.#baseUrl}#${id})`; + } addFilter(maps) { if (!maps) { return "none"; @@ -1077,7 +5871,7 @@ class DOMFilterFactory extends BaseFilterFactory { return value; } const id = `g_${this.#docId}_transfer_map_${this.#id++}`; - const url = `url(#${id})`; + const url = this.#createUrl(id); this.#cache.set(maps, url); this.#cache.set(key, url); const filter = this.#createFilter(id); @@ -1135,7 +5929,7 @@ class DOMFilterFactory extends BaseFilterFactory { return arr.join(","); }; this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter); - info.url = `url(#${id})`; + info.url = this.#createUrl(id); return info.url; } addAlphaFilter(map) { @@ -1151,7 +5945,7 @@ class DOMFilterFactory extends BaseFilterFactory { return value; } const id = `g_${this.#docId}_alpha_map_${this.#id++}`; - const url = `url(#${id})`; + const url = this.#createUrl(id); this.#cache.set(map, url); this.#cache.set(key, url); const filter = this.#createFilter(id); @@ -1176,7 +5970,7 @@ class DOMFilterFactory extends BaseFilterFactory { return value; } const id = `g_${this.#docId}_luminosity_map_${this.#id++}`; - const url = `url(#${id})`; + const url = this.#createUrl(id); this.#cache.set(map, url); this.#cache.set(key, url); const filter = this.#createFilter(id); @@ -1239,7 +6033,7 @@ class DOMFilterFactory extends BaseFilterFactory { const filter = info.filter = this.#createFilter(id); this.#addGrayConversion(filter); this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter); - info.url = `url(#${id})`; + info.url = this.#createUrl(id); return info.url; } destroy(keepHCM = false) { @@ -1890,6 +6684,26 @@ class HighlightToolbar { ;// CONCATENATED MODULE: ./src/display/editor/tools.js + + + + + + + + + + + + + + + + + + + + function bindEvents(obj, element, names) { for (const name of names) { @@ -2234,6 +7048,7 @@ class AnnotationEditorUIManager { #editorTypes = null; #editorsToRescale = new Set(); #enableHighlightFloatingButton = false; + #enableUpdatedAddImage = false; #filterFactory = null; #focusMainContainerTimeoutId = null; #highlightColors = null; @@ -2333,7 +7148,7 @@ class AnnotationEditorUIManager { checker: arrowChecker }]])); } - constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, mlManager) { + constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, enableUpdatedAddImage, mlManager) { this._signal = this.#abortController.signal; this.#container = container; this.#viewer = viewer; @@ -2351,6 +7166,7 @@ class AnnotationEditorUIManager { this.#pageColors = pageColors; this.#highlightColors = highlightColors || null; this.#enableHighlightFloatingButton = enableHighlightFloatingButton; + this.#enableUpdatedAddImage = enableUpdatedAddImage; this.#mlManager = mlManager || null; this.viewParameters = { realScale: PixelsPerInch.PDF_TO_CSS_UNITS, @@ -2390,8 +7206,11 @@ class AnnotationEditorUIManager { async mlGuess(data) { return this.#mlManager?.guess(data) || null; } - get hasMLManager() { - return !!this.#mlManager; + async isMLEnabledFor(name) { + return !!(await this.#mlManager?.isEnabledFor(name)); + } + get useNewAltTextFlow() { + return this.#enableUpdatedAddImage; } get hcmFilter() { return shadow(this, "hcmFilter", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : "none"); @@ -2411,6 +7230,23 @@ class AnnotationEditorUIManager { editAltText(editor) { this.#altTextManager?.editAltText(this, editor); } + switchToMode(mode, callback) { + this._eventBus.on("annotationeditormodechanged", callback, { + once: true, + signal: this._signal + }); + this._eventBus.dispatch("showannotationeditorui", { + source: this, + mode + }); + } + setPreference(name, value) { + this._eventBus.dispatch("setpreference", { + source: this, + name, + value + }); + } onPageChanging({ pageNumber }) { @@ -2462,6 +7298,20 @@ class AnnotationEditorUIManager { }) { return anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentElement : anchorNode; } + #getLayerForTextLayer(textLayer) { + const { + currentLayer + } = this; + if (currentLayer.hasTextLayer(textLayer)) { + return currentLayer; + } + for (const layer of this.#allLayers.values()) { + if (layer.hasTextLayer(textLayer)) { + return layer; + } + } + return null; + } highlightSelection(methodOfCreation = "") { const selection = document.getSelection(); if (!selection || selection.isCollapsed) { @@ -2481,30 +7331,30 @@ class AnnotationEditorUIManager { return; } selection.empty(); - if (this.#mode === AnnotationEditorType.NONE) { - this._eventBus.dispatch("showannotationeditorui", { - source: this, - mode: AnnotationEditorType.HIGHLIGHT + const layer = this.#getLayerForTextLayer(textLayer); + const isNoneMode = this.#mode === AnnotationEditorType.NONE; + const callback = () => { + layer?.createAndAddNewEditor({ + x: 0, + y: 0 + }, false, { + methodOfCreation, + boxes, + anchorNode, + anchorOffset, + focusNode, + focusOffset, + text }); - this.showAllEditors("highlight", true, true); - } - for (const layer of this.#allLayers.values()) { - if (layer.hasTextLayer(textLayer)) { - layer.createAndAddNewEditor({ - x: 0, - y: 0 - }, false, { - methodOfCreation, - boxes, - anchorNode, - anchorOffset, - focusNode, - focusOffset, - text - }); - break; + if (isNoneMode) { + this.showAllEditors("highlight", true, true); } + }; + if (isNoneMode) { + this.switchToMode(AnnotationEditorType.HIGHLIGHT, callback); + return; } + callback(); } #displayHighlightToolbar() { const selection = document.getSelection(); @@ -2568,11 +7418,14 @@ class AnnotationEditorUIManager { } this.#highlightWhenShiftUp = this.isShiftKeyDown; if (!this.isShiftKeyDown) { + const activeLayer = this.#mode === AnnotationEditorType.HIGHLIGHT ? this.#getLayerForTextLayer(textLayer) : null; + activeLayer?.toggleDrawing(); const signal = this._signal; const pointerup = e => { if (e.type === "pointerup" && e.button !== 0) { return; } + activeLayer?.toggleDrawing(true); window.removeEventListener("pointerup", pointerup); window.removeEventListener("blur", pointerup); if (e.type === "pointerup") { @@ -4824,6 +9677,12 @@ class FakeEditor extends AnnotationEditor { } ;// CONCATENATED MODULE: ./src/shared/murmurhash3.js + + + + + + const SEED = 0xc3d2e1f0; const MASK_HIGH = 0xffff0000; const MASK_LOW = 0xffff; @@ -4920,6 +9779,16 @@ class MurmurHash3_64 { + + + + + + + + + + const SerializableEmpty = Object.freeze({ map: null, hash: "", @@ -4927,6 +9796,7 @@ const SerializableEmpty = Object.freeze({ }); class AnnotationStorage { #modified = false; + #modifiedIds = null; #storage = new Map(); constructor() { this.onSetModified = null; @@ -5078,6 +9948,25 @@ class AnnotationStorage { } return stats; } + resetModifiedIds() { + this.#modifiedIds = null; + } + get modifiedIds() { + if (this.#modifiedIds) { + return this.#modifiedIds; + } + const ids = []; + for (const value of this.#storage.values()) { + if (!(value instanceof AnnotationEditor) || !value.annotationElementId || !value.serialize()) { + continue; + } + ids.push(value.annotationElementId); + } + return this.#modifiedIds = { + ids: new Set(ids), + hash: ids.join(",") + }; + } } class PrintAnnotationStorage extends AnnotationStorage { #serializable; @@ -5103,10 +9992,25 @@ class PrintAnnotationStorage extends AnnotationStorage { get serializable() { return this.#serializable; } + get modifiedIds() { + return shadow(this, "modifiedIds", { + ids: new Set(), + hash: "" + }); + } } ;// CONCATENATED MODULE: ./src/display/font_loader.js + + + + + + + + + class FontLoader { #systemFonts = new Set(); constructor({ @@ -5444,6 +10348,13 @@ class FontFaceObject { ;// CONCATENATED MODULE: ./src/display/node_utils.js + + + + + + + if (isNodeJS) { var packageCapability = Promise.withResolvers(); var packageMap = null; @@ -5453,6 +10364,12 @@ if (isNodeJS) { https = await import( /*webpackIgnore: true*/"https"), url = await import( /*webpackIgnore: true*/"url"); let canvas, path2d; + try { + canvas = await import( /*webpackIgnore: true*/"canvas"); + } catch {} + try { + path2d = await import( /*webpackIgnore: true*/"path2d"); + } catch {} return new Map(Object.entries({ fs, http, @@ -5465,6 +10382,25 @@ if (isNodeJS) { loadPackages().then(map => { packageMap = map; packageCapability.resolve(); + if (!globalThis.DOMMatrix) { + const DOMMatrix = map.get("canvas")?.DOMMatrix; + if (DOMMatrix) { + globalThis.DOMMatrix = DOMMatrix; + } else { + warn("Cannot polyfill `DOMMatrix`, rendering may be broken."); + } + } + if (!globalThis.Path2D) { + const CanvasRenderingContext2D = map.get("canvas")?.CanvasRenderingContext2D; + const applyPath2DToCanvasRenderingContext = map.get("path2d")?.applyPath2DToCanvasRenderingContext; + const Path2D = map.get("path2d")?.Path2D; + if (CanvasRenderingContext2D && applyPath2DToCanvasRenderingContext && Path2D) { + applyPath2DToCanvasRenderingContext(CanvasRenderingContext2D); + globalThis.Path2D = Path2D; + } else { + warn("Cannot polyfill `Path2D`, rendering may be broken."); + } + } }, reason => { warn(`loadPackages: ${reason}`); packageMap = new Map(); @@ -5946,6 +10882,12 @@ class TilingPattern { ;// CONCATENATED MODULE: ./src/shared/image_utils.js + + + + + + function convertToRGBA(params) { switch (params.kind) { case ImageKind.GRAYSCALE_1BPP: @@ -6056,6 +10998,17 @@ function grayToRGBA(src, dest) { + + + + + + + + + + + const MIN_FONT_SIZE = 16; const MAX_FONT_SIZE = 100; const EXECUTION_TIME = 15; @@ -6749,6 +11702,7 @@ class CanvasGraphics { while (this.stateStack.length || this.inSMaskMode) { this.restore(); } + this.current.activeSMask = null; this.ctx.restore(); if (this.transparentCanvas) { this.ctx = this.compositeCtx; @@ -7655,14 +12609,17 @@ class CanvasGraphics { this.current.patternFill = true; } setStrokeRGBColor(r, g, b) { - const color = Util.makeHexColor(r, g, b); - this.ctx.strokeStyle = color; - this.current.strokeColor = color; + this.ctx.strokeStyle = this.current.strokeColor = Util.makeHexColor(r, g, b); + } + setStrokeTransparent() { + this.ctx.strokeStyle = this.current.strokeColor = "transparent"; } setFillRGBColor(r, g, b) { - const color = Util.makeHexColor(r, g, b); - this.ctx.fillStyle = color; - this.current.fillColor = color; + this.ctx.fillStyle = this.current.fillColor = Util.makeHexColor(r, g, b); + this.current.patternFill = false; + } + setFillTransparent() { + this.ctx.fillStyle = this.current.fillColor = "transparent"; this.current.patternFill = false; } _getPattern(objId, matrix = null) { @@ -8252,6 +13209,7 @@ class GlobalWorkerOptions { ;// CONCATENATED MODULE: ./src/shared/message_handler.js + const CallbackKind = { UNKNOWN: 0, DATA: 1, @@ -8934,6 +13892,16 @@ class OptionalContentConfig { ;// CONCATENATED MODULE: ./src/display/transport_stream.js + + + + + + + + + + class PDFDataTransportStream { constructor(pdfDataRangeTransport, { disableRange = false, @@ -9201,6 +14169,8 @@ class PDFDataTransportStreamRangeReader { ;// CONCATENATED MODULE: ./src/display/content_disposition.js + + function getFilenameFromContentDispositionHeader(contentDisposition) { let needsEncodingFixup = true; let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); @@ -9393,6 +14363,14 @@ function validateResponseStatus(status) { ;// CONCATENATED MODULE: ./src/display/fetch_stream.js + + + + + + + + function createFetchOptions(headers, withCredentials, abortController) { return { method: "GET", @@ -9597,6 +14575,8 @@ class PDFFetchStreamRangeReader { ;// CONCATENATED MODULE: ./src/display/network.js + + const OK_RESPONSE = 200; const PARTIAL_CONTENT_RESPONSE = 206; function network_getArrayBuffer(xhr) { @@ -10004,6 +14984,14 @@ class PDFNetworkStreamRangeRequestReader { + + + + + + + + const fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; function parseUrl(sourceUrl) { const url = NodePackages.get("url"); @@ -10342,6 +15330,15 @@ class PDFNodeStreamFsRangeReader extends BaseRangeReader { ;// CONCATENATED MODULE: ./src/display/text_layer.js + + + + + + + + + const MAX_TEXT_DIVS_TO_RENDER = 100000; const DEFAULT_FONT_SIZE = 30; const DEFAULT_FONT_ASCENT = 0.8; @@ -10657,6 +15654,7 @@ class TextLayer { div.style.opacity = 0; div.style.lineHeight = 1; div.style.fontSize = "1px"; + div.style.position = "absolute"; div.textContent = "X"; document.body.append(div); this.#minFontSize = div.getBoundingClientRect().height; @@ -10709,39 +15707,9 @@ class TextLayer { return ratio; } } -function renderTextLayer() { - deprecated("`renderTextLayer`, please use `TextLayer` instead."); - const { - textContentSource, - container, - viewport, - ...rest - } = arguments[0]; - const restKeys = Object.keys(rest); - if (restKeys.length > 0) { - warn("Ignoring `renderTextLayer` parameters: " + restKeys.join(", ")); - } - const textLayer = new TextLayer({ - textContentSource, - container, - viewport - }); - const { - textDivs, - textContentItemsStr - } = textLayer; - const promise = textLayer.render(); - return { - promise, - textDivs, - textContentItemsStr - }; -} -function updateTextLayer() { - deprecated("`updateTextLayer`, please use `TextLayer` instead."); -} ;// CONCATENATED MODULE: ./src/display/xfa_text.js + class XfaText { static textContent(xfa) { const items = []; @@ -10800,6 +15768,26 @@ class XfaText { + + + + + + + + + + + + + + + + + + + + const DEFAULT_RANGE_CHUNK_SIZE = 65536; const RENDERING_CANCELLED_TIMEOUT = 100; @@ -10887,7 +15875,7 @@ function getDocument(src = {}) { } const docParams = { docId, - apiVersion: "4.4.168", + apiVersion: "4.5.136", data, password, disableAutoFetch, @@ -11280,10 +16268,11 @@ class PDFPageProxy { optionalContentConfigPromise = null, annotationCanvasMap = null, pageColors = null, - printAnnotationStorage = null + printAnnotationStorage = null, + isEditing = false }) { this._stats?.time("Overall"); - const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage); + const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing); const { renderingIntent, cacheKey @@ -11376,7 +16365,8 @@ class PDFPageProxy { getOperatorList({ intent = "display", annotationMode = AnnotationMode.ENABLE, - printAnnotationStorage = null + printAnnotationStorage = null, + isEditing = false } = {}) { function operatorListChanged() { if (intentState.operatorList.lastChunk) { @@ -11384,7 +16374,7 @@ class PDFPageProxy { intentState.renderTasks.delete(opListTask); } } - const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true); + const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, isEditing, true); let intentState = this._intentStates.get(intentArgs.cacheKey); if (!intentState) { intentState = Object.create(null); @@ -11542,7 +16532,8 @@ class PDFPageProxy { _pumpOperatorList({ renderingIntent, cacheKey, - annotationStorageSerializable + annotationStorageSerializable, + modifiedIds }) { const { map, @@ -11552,7 +16543,8 @@ class PDFPageProxy { pageIndex: this._pageIndex, intent: renderingIntent, cacheKey, - annotationStorage: map + annotationStorage: map, + modifiedIds }, transfer); const reader = readableStream.getReader(); const intentState = this._intentStates.get(cacheKey); @@ -11924,7 +16916,7 @@ class WorkerTransport { get annotationStorage() { return shadow(this, "annotationStorage", new AnnotationStorage()); } - getRenderingIntent(intent, annotationMode = AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) { + getRenderingIntent(intent, annotationMode = AnnotationMode.ENABLE, printAnnotationStorage = null, isEditing = false, isOpList = false) { let renderingIntent = RenderingIntentFlag.DISPLAY; let annotationStorageSerializable = SerializableEmpty; switch (intent) { @@ -11939,6 +16931,7 @@ class WorkerTransport { default: warn(`getRenderingIntent - invalid intent: ${intent}`); } + const annotationStorage = renderingIntent & RenderingIntentFlag.PRINT && printAnnotationStorage instanceof PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage; switch (annotationMode) { case AnnotationMode.DISABLE: renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE; @@ -11950,19 +16943,27 @@ class WorkerTransport { break; case AnnotationMode.ENABLE_STORAGE: renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE; - const annotationStorage = renderingIntent & RenderingIntentFlag.PRINT && printAnnotationStorage instanceof PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage; annotationStorageSerializable = annotationStorage.serializable; break; default: warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`); } + if (isEditing) { + renderingIntent += RenderingIntentFlag.IS_EDITING; + } if (isOpList) { renderingIntent += RenderingIntentFlag.OPLIST; } + const { + ids: modifiedIds, + hash: modifiedIdsHash + } = annotationStorage.modifiedIds; + const cacheKeyBuf = [renderingIntent, annotationStorageSerializable.hash, modifiedIdsHash]; return { renderingIntent, - cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`, - annotationStorageSerializable + cacheKey: cacheKeyBuf.join("_"), + annotationStorageSerializable, + modifiedIds }; } destroy() { @@ -12657,10 +17658,13 @@ class InternalRenderTask { } } } -const version = "4.4.168"; -const build = "19fbc8998"; +const version = "4.5.136"; +const build = "3a21f03b0"; +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.flat-map.js +var esnext_iterator_flat_map = __webpack_require__(670); ;// CONCATENATED MODULE: ./src/shared/scripting_utils.js + function makeColorComp(n) { return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, "0"); } @@ -12721,6 +17725,7 @@ class ColorConverters { ;// CONCATENATED MODULE: ./src/display/xfa_layer.js + class XfaLayer { static setupStorage(html, id, element, storage, intent) { const storedData = storage.getValue(id, { @@ -12936,6 +17941,17 @@ class XfaLayer { + + + + + + + + + + + const DEFAULT_TAB_INDEX = 1000; const annotation_layer_DEFAULT_FONT_SIZE = 9; const GetElementsByNameSet = new WeakSet(); @@ -13042,6 +18058,9 @@ class AnnotationElement { }) { return !!(titleObj?.str || contentsObj?.str || richText?.str); } + get _isEditable() { + return this.data.isEditable; + } get hasPopupData() { return AnnotationElement._hasPopupData(this.data); } @@ -13502,9 +18521,6 @@ class AnnotationElement { triggers.classList.add("highlightArea"); } } - get _isEditable() { - return false; - } _editOnDoubleClick() { if (!this._isEditable) { return; @@ -14962,9 +19978,6 @@ class FreeTextAnnotationElement extends AnnotationElement { this._editOnDoubleClick(); return this.container; } - get _isEditable() { - return this.data.hasOwnCanvas; - } } class LineAnnotationElement extends AnnotationElement { #line = null; @@ -15372,6 +20385,9 @@ class AnnotationLayer { this.zIndex = 0; this._annotationEditorUIManager = annotationEditorUIManager; } + hasEditableAnnotations() { + return this.#editableAnnotations.size > 0; + } #appendElement(element, id) { const contentElement = element.firstChild || element; contentElement.id = `${AnnotationPrefix}${id}`; @@ -15438,7 +20454,7 @@ class AnnotationLayer { rendered.style.visibility = "hidden"; } this.#appendElement(rendered, data.id); - if (element.annotationEditorType > 0) { + if (element._isEditable) { this.#editableAnnotations.set(element.data.id, element); this._annotationEditorUIManager?.renderAnnotationElement(element); } @@ -15495,6 +20511,9 @@ class AnnotationLayer { + + + const EOL_PATTERN = /\r\n?|\n/g; class FreeTextEditor extends AnnotationEditor { #boundEditorDivBlur = this.editorDivBlur.bind(this); @@ -16113,6 +21132,20 @@ class FreeTextEditor extends AnnotationEditor { ;// CONCATENATED MODULE: ./src/display/editor/outliner.js + + + + + + + + + + + + + + class Outliner { #box; #verticalEdges = []; @@ -16936,6 +21969,13 @@ class ColorPicker { + + + + + + + class HighlightEditor extends AnnotationEditor { #anchorNode = null; #anchorOffset = 0; @@ -17426,6 +22466,7 @@ class HighlightEditor extends AnnotationEditor { return null; } const [pageWidth, pageHeight] = this.pageDimensions; + const [pageX, pageY] = this.pageTranslation; const boxes = this.#boxes; const quadPoints = new Float32Array(boxes.length * 8); let i = 0; @@ -17435,8 +22476,8 @@ class HighlightEditor extends AnnotationEditor { width, height } of boxes) { - const sx = x * pageWidth; - const sy = (1 - y - height) * pageHeight; + const sx = x * pageWidth + pageX; + const sy = (1 - y - height) * pageHeight + pageY; quadPoints[i] = quadPoints[i + 4] = sx; quadPoints[i + 1] = quadPoints[i + 3] = sy; quadPoints[i + 2] = quadPoints[i + 6] = sx + width * pageWidth; @@ -17576,6 +22617,8 @@ class HighlightEditor extends AnnotationEditor { + + class InkEditor extends AnnotationEditor { #baseHeight = 0; #baseWidth = 0; @@ -18390,6 +23433,9 @@ class InkEditor extends AnnotationEditor { + + + class StampEditor extends AnnotationEditor { #bitmap = null; #bitmapId = null; @@ -18398,6 +23444,7 @@ class StampEditor extends AnnotationEditor { #bitmapFile = null; #bitmapFileName = ""; #canvas = null; + #hasMLBeenQueried = false; #observer = null; #resizeTimeoutId = null; #isSvg = false; @@ -18645,6 +23692,37 @@ class StampEditor extends AnnotationEditor { } return bitmap; } + async #mlGuessAltText(bitmap, width, height) { + if (this.#hasMLBeenQueried) { + return; + } + this.#hasMLBeenQueried = true; + const isMLEnabled = await this._uiManager.isMLEnabledFor("altText"); + if (!isMLEnabled || this.hasAltText()) { + return; + } + const offscreen = new OffscreenCanvas(width, height); + const ctx = offscreen.getContext("2d", { + willReadFrequently: true + }); + ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height); + const response = await this._uiManager.mlGuess({ + service: "moz-image-to-text", + request: { + data: ctx.getImageData(0, 0, width, height).data, + width, + height, + channels: 4 + } + }); + const altText = response?.output || ""; + if (this.parent && altText && !this.hasAltText()) { + this.altTextData = { + altText, + decorative: false + }; + } + } #drawBitmap(width, height) { width = Math.ceil(width); height = Math.ceil(height); @@ -18655,28 +23733,7 @@ class StampEditor extends AnnotationEditor { canvas.width = width; canvas.height = height; const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(width, height); - if (this._uiManager.hasMLManager && !this.hasAltText()) { - const offscreen = new OffscreenCanvas(width, height); - const ctx = offscreen.getContext("2d"); - ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height); - this._uiManager.mlGuess({ - service: "image-to-text", - request: { - data: ctx.getImageData(0, 0, width, height).data, - width, - height, - channels: 4 - } - }).then(response => { - const altText = response?.output || ""; - if (this.parent && altText && !this.hasAltText()) { - this.altTextData = { - altText, - decorative: false - }; - } - }); - } + this.#mlGuessAltText(bitmap, width, height); const ctx = canvas.getContext("2d"); ctx.filter = this._uiManager.hcmFilter; ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height); @@ -18815,6 +23872,14 @@ class StampEditor extends AnnotationEditor { + + + + + + + + class AnnotationEditorLayer { #accessibilityManager; #allowClick = false; @@ -18930,6 +23995,9 @@ class AnnotationEditorLayer { addCommands(params) { this.#uiManager.addCommands(params); } + toggleDrawing(enabled = false) { + this.div.classList.toggle("drawing", !enabled); + } togglePointerEvents(enabled = false) { this.div.classList.toggle("disabled", !enabled); } @@ -19057,7 +24125,10 @@ class AnnotationEditorLayer { } #textLayerPointerDown(event) { this.#uiManager.unselectAll(); - if (event.target === this.#textLayer.div) { + const { + target + } = event; + if (target === this.#textLayer.div || target.classList.contains("endOfContent") && this.#textLayer.div.contains(target)) { const { isMac } = util_FeatureTest.platform; @@ -19066,9 +24137,11 @@ class AnnotationEditorLayer { } this.#uiManager.showAllEditors("highlight", true, true); this.#textLayer.div.classList.add("free"); + this.toggleDrawing(); HighlightEditor.startHighlighting(this, this.#uiManager.direction === "ltr", event); this.#textLayer.div.addEventListener("pointerup", () => { this.#textLayer.div.classList.remove("free"); + this.toggleDrawing(true); }, { once: true, signal: this.#uiManager._signal @@ -19624,8 +24697,8 @@ class DrawLayer { -const pdfjsVersion = "4.4.168"; -const pdfjsBuild = "19fbc8998"; +const pdfjsVersion = "4.5.136"; +const pdfjsBuild = "3a21f03b0"; var __webpack_exports__AbortException = __webpack_exports__.AbortException; var __webpack_exports__AnnotationEditorLayer = __webpack_exports__.AnnotationEditorLayer; @@ -19644,7 +24717,6 @@ var __webpack_exports__ImageKind = __webpack_exports__.ImageKind; var __webpack_exports__InvalidPDFException = __webpack_exports__.InvalidPDFException; var __webpack_exports__MissingPDFException = __webpack_exports__.MissingPDFException; var __webpack_exports__OPS = __webpack_exports__.OPS; -var __webpack_exports__Outliner = __webpack_exports__.Outliner; var __webpack_exports__PDFDataRangeTransport = __webpack_exports__.PDFDataRangeTransport; var __webpack_exports__PDFDateString = __webpack_exports__.PDFDateString; var __webpack_exports__PDFWorker = __webpack_exports__.PDFWorker; @@ -19668,11 +24740,9 @@ var __webpack_exports__isDataScheme = __webpack_exports__.isDataScheme; var __webpack_exports__isPdfFile = __webpack_exports__.isPdfFile; var __webpack_exports__noContextMenu = __webpack_exports__.noContextMenu; var __webpack_exports__normalizeUnicode = __webpack_exports__.normalizeUnicode; -var __webpack_exports__renderTextLayer = __webpack_exports__.renderTextLayer; var __webpack_exports__setLayerDimensions = __webpack_exports__.setLayerDimensions; var __webpack_exports__shadow = __webpack_exports__.shadow; -var __webpack_exports__updateTextLayer = __webpack_exports__.updateTextLayer; var __webpack_exports__version = __webpack_exports__.version; -export { __webpack_exports__AbortException as AbortException, __webpack_exports__AnnotationEditorLayer as AnnotationEditorLayer, __webpack_exports__AnnotationEditorParamsType as AnnotationEditorParamsType, __webpack_exports__AnnotationEditorType as AnnotationEditorType, __webpack_exports__AnnotationEditorUIManager as AnnotationEditorUIManager, __webpack_exports__AnnotationLayer as AnnotationLayer, __webpack_exports__AnnotationMode as AnnotationMode, __webpack_exports__CMapCompressionType as CMapCompressionType, __webpack_exports__ColorPicker as ColorPicker, __webpack_exports__DOMSVGFactory as DOMSVGFactory, __webpack_exports__DrawLayer as DrawLayer, __webpack_exports__FeatureTest as FeatureTest, __webpack_exports__GlobalWorkerOptions as GlobalWorkerOptions, __webpack_exports__ImageKind as ImageKind, __webpack_exports__InvalidPDFException as InvalidPDFException, __webpack_exports__MissingPDFException as MissingPDFException, __webpack_exports__OPS as OPS, __webpack_exports__Outliner as Outliner, __webpack_exports__PDFDataRangeTransport as PDFDataRangeTransport, __webpack_exports__PDFDateString as PDFDateString, __webpack_exports__PDFWorker as PDFWorker, __webpack_exports__PasswordResponses as PasswordResponses, __webpack_exports__PermissionFlag as PermissionFlag, __webpack_exports__PixelsPerInch as PixelsPerInch, __webpack_exports__RenderingCancelledException as RenderingCancelledException, __webpack_exports__TextLayer as TextLayer, __webpack_exports__UnexpectedResponseException as UnexpectedResponseException, __webpack_exports__Util as Util, __webpack_exports__VerbosityLevel as VerbosityLevel, __webpack_exports__XfaLayer as XfaLayer, __webpack_exports__build as build, __webpack_exports__createValidAbsoluteUrl as createValidAbsoluteUrl, __webpack_exports__fetchData as fetchData, __webpack_exports__getDocument as getDocument, __webpack_exports__getFilenameFromUrl as getFilenameFromUrl, __webpack_exports__getPdfFilenameFromUrl as getPdfFilenameFromUrl, __webpack_exports__getXfaPageViewport as getXfaPageViewport, __webpack_exports__isDataScheme as isDataScheme, __webpack_exports__isPdfFile as isPdfFile, __webpack_exports__noContextMenu as noContextMenu, __webpack_exports__normalizeUnicode as normalizeUnicode, __webpack_exports__renderTextLayer as renderTextLayer, __webpack_exports__setLayerDimensions as setLayerDimensions, __webpack_exports__shadow as shadow, __webpack_exports__updateTextLayer as updateTextLayer, __webpack_exports__version as version }; +export { __webpack_exports__AbortException as AbortException, __webpack_exports__AnnotationEditorLayer as AnnotationEditorLayer, __webpack_exports__AnnotationEditorParamsType as AnnotationEditorParamsType, __webpack_exports__AnnotationEditorType as AnnotationEditorType, __webpack_exports__AnnotationEditorUIManager as AnnotationEditorUIManager, __webpack_exports__AnnotationLayer as AnnotationLayer, __webpack_exports__AnnotationMode as AnnotationMode, __webpack_exports__CMapCompressionType as CMapCompressionType, __webpack_exports__ColorPicker as ColorPicker, __webpack_exports__DOMSVGFactory as DOMSVGFactory, __webpack_exports__DrawLayer as DrawLayer, __webpack_exports__FeatureTest as FeatureTest, __webpack_exports__GlobalWorkerOptions as GlobalWorkerOptions, __webpack_exports__ImageKind as ImageKind, __webpack_exports__InvalidPDFException as InvalidPDFException, __webpack_exports__MissingPDFException as MissingPDFException, __webpack_exports__OPS as OPS, __webpack_exports__PDFDataRangeTransport as PDFDataRangeTransport, __webpack_exports__PDFDateString as PDFDateString, __webpack_exports__PDFWorker as PDFWorker, __webpack_exports__PasswordResponses as PasswordResponses, __webpack_exports__PermissionFlag as PermissionFlag, __webpack_exports__PixelsPerInch as PixelsPerInch, __webpack_exports__RenderingCancelledException as RenderingCancelledException, __webpack_exports__TextLayer as TextLayer, __webpack_exports__UnexpectedResponseException as UnexpectedResponseException, __webpack_exports__Util as Util, __webpack_exports__VerbosityLevel as VerbosityLevel, __webpack_exports__XfaLayer as XfaLayer, __webpack_exports__build as build, __webpack_exports__createValidAbsoluteUrl as createValidAbsoluteUrl, __webpack_exports__fetchData as fetchData, __webpack_exports__getDocument as getDocument, __webpack_exports__getFilenameFromUrl as getFilenameFromUrl, __webpack_exports__getPdfFilenameFromUrl as getPdfFilenameFromUrl, __webpack_exports__getXfaPageViewport as getXfaPageViewport, __webpack_exports__isDataScheme as isDataScheme, __webpack_exports__isPdfFile as isPdfFile, __webpack_exports__noContextMenu as noContextMenu, __webpack_exports__normalizeUnicode as normalizeUnicode, __webpack_exports__setLayerDimensions as setLayerDimensions, __webpack_exports__shadow as shadow, __webpack_exports__version as version }; //# sourceMappingURL=pdf.mjs.map \ No newline at end of file diff --git a/cps/static/js/libs/pdf.worker.mjs b/cps/static/js/libs/pdf.worker.mjs index 94f1d20a..7bac155f 100644 --- a/cps/static/js/libs/pdf.worker.mjs +++ b/cps/static/js/libs/pdf.worker.mjs @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * JavaScript code in this page * - * Copyright 2023 Mozilla Foundation + * 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. @@ -20,8 +20,4499 @@ * JavaScript code in this page */ -/******/ // The require scope -/******/ var __webpack_require__ = {}; +/******/ 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; +}; + + +/***/ }), + +/***/ 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 uncurryThisAccessor = __webpack_require__(6706); +var classof = __webpack_require__(4576); + +var $TypeError = TypeError; + +// Includes +// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]). +// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception. +module.exports = 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 uncurryThis = __webpack_require__(9504); +var arrayBufferByteLength = __webpack_require__(7394); + +var slice = uncurryThis(ArrayBuffer.prototype.slice); + +module.exports = function (O) { + if (arrayBufferByteLength(O) !== 0) return false; + try { + slice(O, 0, 0); + return false; + } catch (error) { + return true; + } +}; + + +/***/ }), + +/***/ 5636: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +var uncurryThis = __webpack_require__(9504); +var uncurryThisAccessor = __webpack_require__(6706); +var toIndex = __webpack_require__(7696); +var isDetached = __webpack_require__(3238); +var arrayBufferByteLength = __webpack_require__(7394); +var detachTransferable = __webpack_require__(4483); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548); + +var structuredClone = global.structuredClone; +var ArrayBuffer = global.ArrayBuffer; +var DataView = global.DataView; +var TypeError = global.TypeError; +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; + if (isDetached(arrayBuffer)) throw new TypeError('ArrayBuffer is detached'); + 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: 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 global = __webpack_require__(4475); +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 = global.Int8Array; +var Int8ArrayPrototype = Int8Array && Int8Array.prototype; +var Uint8ClampedArray = global.Uint8ClampedArray; +var Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype; +var TypedArray = Int8Array && getPrototypeOf(Int8Array); +var TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype); +var ObjectPrototype = Object.prototype; +var TypeError = global.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(global.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 = global[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 = global[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 = global[ARRAY]; + if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) { + defineBuiltIn(TypedArrayConstructor, KEY, property); + } + } +}; + +for (NAME in TypedArrayConstructorsList) { + Constructor = global[NAME]; + Prototype = Constructor && Constructor.prototype; + if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor; + else NATIVE_ARRAY_BUFFER_VIEWS = false; +} + +for (NAME in BigIntArrayConstructorsList) { + Constructor = global[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 (global[NAME]) setPrototypeOf(global[NAME], TypedArray); + } +} + +if (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) { + TypedArrayPrototype = TypedArray.prototype; + if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) { + if (global[NAME]) setPrototypeOf(global[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 (global[NAME]) { + createNonEnumerableProperty(global[NAME], 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 +}; + + +/***/ }), + +/***/ 5370: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var lengthOfArrayLike = __webpack_require__(6198); + +module.exports = function (Constructor, list, $length) { + var index = 0; + var length = arguments.length > 2 ? $length : lengthOfArrayLike(list); + var result = new Constructor(length); + while (length > index) result[index] = list[index++]; + return result; +}; + + +/***/ }), + +/***/ 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; +}; + + +/***/ }), + +/***/ 7628: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var lengthOfArrayLike = __webpack_require__(6198); + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed +module.exports = function (O, C) { + var len = lengthOfArrayLike(O); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = O[len - k - 1]; + return A; +}; + + +/***/ }), + +/***/ 9928: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var lengthOfArrayLike = __webpack_require__(6198); +var toIntegerOrInfinity = __webpack_require__(1291); + +var $RangeError = RangeError; + +// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with +// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with +module.exports = function (O, C, index, value) { + var len = lengthOfArrayLike(O); + var relativeIndex = toIntegerOrInfinity(index); + var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex; + if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index'); + var A = new C(len); + var k = 0; + for (; k < len; k++) A[k] = k === actualIndex ? value : O[k]; + return A; +}; + + +/***/ }), + +/***/ 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); + } +}; + + +/***/ }), + +/***/ 4576: +/***/ ((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__(4576); +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 global = __webpack_require__(4475); + +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; + +module.exports = function (key, value) { + try { + defineProperty(global, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global[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 global = __webpack_require__(4475); +var tryNodeRequire = __webpack_require__(9714); +var PROPER_STRUCTURED_CLONE_TRANSFER = __webpack_require__(1548); + +var structuredClone = global.structuredClone; +var $ArrayBuffer = global.ArrayBuffer; +var $MessageChannel = global.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 = tryNodeRequire('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 global = __webpack_require__(4475); +var isObject = __webpack_require__(34); + +var document = global.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 $TypeError('Maximum allowed index exceeded'); + return it; +}; + + +/***/ }), + +/***/ 5002: +/***/ ((module) => { + + +module.exports = { + IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 }, + DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 }, + HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 }, + WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 }, + InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 }, + NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 }, + NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 }, + NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 }, + NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 }, + InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 }, + InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 }, + SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 }, + InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 }, + NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 }, + InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 }, + ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 }, + TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 }, + SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 }, + NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 }, + AbortError: { s: 'ABORT_ERR', c: 20, m: 1 }, + URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 }, + QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 }, + TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 }, + InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 }, + DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 } +}; + + +/***/ }), + +/***/ 7290: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var IS_DENO = __webpack_require__(516); +var IS_NODE = __webpack_require__(9088); + +module.exports = !IS_DENO && !IS_NODE + && typeof window == 'object' + && typeof document == 'object'; + + +/***/ }), + +/***/ 516: +/***/ ((module) => { + + +/* global Deno -- Deno case */ +module.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + +/***/ }), + +/***/ 9088: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +var classof = __webpack_require__(4576); + +module.exports = classof(global.process) === 'process'; + + +/***/ }), + +/***/ 9392: +/***/ ((module) => { + + +module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; + + +/***/ }), + +/***/ 7388: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +var userAgent = __webpack_require__(9392); + +var process = global.process; +var Deno = global.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; + + +/***/ }), + +/***/ 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 uncurryThis = __webpack_require__(9504); + +var $Error = Error; +var replace = uncurryThis(''.replace); + +var TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd'); +// eslint-disable-next-line redos/no-vulnerable -- safe +var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; +var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); + +module.exports = function (stack, dropEntries) { + if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) { + while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + } return stack; +}; + + +/***/ }), + +/***/ 6518: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +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 = global; + } else if (STATIC) { + target = global[TARGET] || defineGlobalProperty(TARGET, {}); + } else { + target = global[TARGET] && global[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; + +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__(4576); +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; +var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); + +module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { + return function () { + return call.apply(fn, arguments); + }; +}; + + +/***/ }), + +/***/ 7751: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +var isCallable = __webpack_require__(4901); + +var aFunction = function (argument) { + return isCallable(argument) ? argument : undefined; +}; + +module.exports = function (namespace, method) { + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; +}; + + +/***/ }), + +/***/ 1767: +/***/ ((module) => { + + +// `GetIteratorDirect(obj)` abstract operation +// https://tc39.es/proposal-iterator-helpers/#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); +}; + + +/***/ }), + +/***/ 4475: +/***/ (function(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__(4576); + +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; + + +/***/ }), + +/***/ 3167: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var isCallable = __webpack_require__(4901); +var isObject = __webpack_require__(34); +var setPrototypeOf = __webpack_require__(2967); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + isCallable(NewTarget = dummy.constructor) && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), + +/***/ 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 global = __webpack_require__(4475); +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 = global.TypeError; +var WeakMap = global.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__(4576); + +// `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) { + if (iterator) iteratorClose(iterator, 'normal', condition); + 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) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result; + } return new Result(false); +}; + + +/***/ }), + +/***/ 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 TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var ITERATOR_HELPER = 'IteratorHelper'; +var WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator'; +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` our `nextHandler` returns `IterResultObject` + // for `%IteratorHelperPrototype%.next` - just a value + if (IS_ITERATOR) return state.nextHandler(); + try { + var result = state.done ? undefined : state.nextHandler(); + return createIterResultObject(result, state.done); + } catch (error) { + state.done = true; + throw error; + } + }, + 'return': function () { + var state = getInternalState(this); + var iterator = state.iterator; + state.done = true; + if (IS_ITERATOR) { + var returnMethod = getMethod(iterator, 'return'); + return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true); + } + if (state.inner) try { + iteratorClose(state.inner.iterator, 'normal'); + } catch (error) { + return iteratorClose(iterator, 'throw', error); + } + 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) { + 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.nextHandler = nextHandler; + state.counter = 0; + state.done = false; + setInternalState(this, state); + }; + + IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype; + + return IteratorProxy; +}; + + +/***/ }), + +/***/ 713: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +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 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://github.com/tc39/proposal-iterator-helpers +module.exports = function map(mapper) { + anObject(this); + aCallable(mapper); + return new IteratorProxy(getIteratorDirect(this), { + mapper: mapper + }); +}; + + +/***/ }), + +/***/ 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'); + + +/***/ }), + +/***/ 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); +}; + + +/***/ }), + +/***/ 2603: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var toString = __webpack_require__(655); + +module.exports = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument); +}; + + +/***/ }), + +/***/ 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; + activeXDocument = null; // avoid memory leak + 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; +}; + + +/***/ }), + +/***/ 7979: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var anObject = __webpack_require__(8551); + +// `RegExp.prototype.flags` getter implementation +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.hasIndices) result += 'd'; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.dotAll) result += 's'; + if (that.unicode) result += 'u'; + if (that.unicodeSets) result += 'v'; + if (that.sticky) result += 'y'; + return result; +}; + + +/***/ }), + +/***/ 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://github.com/tc39/proposal-set-methods +module.exports = function difference(other) { + var O = aSet(this); + var otherRec = getSetRecord(other); + var result = clone(O); + if (size(O) <= otherRec.size) iterateSet(O, function (e) { + if (otherRec.includes(e)) remove(result, e); + }); + else iterateSimple(otherRec.getIterator(), function (e) { + if (has(O, 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://github.com/tc39/proposal-set-methods +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.github.io/proposal-set-methods/#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, '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.github.io/proposal-set-methods/#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.github.io/proposal-set-methods/#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, '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 }; + } + }; + } + }; +}; + +module.exports = function (name) { + var Set = getBuiltIn('Set'); + try { + new Set()[name](createSetLike(0)); + try { + // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it + // https://github.com/tc39/proposal-set-methods/pull/88 + new Set()[name](createSetLike(-1)); + return false; + } catch (error2) { + return true; + } + } 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://github.com/tc39/proposal-set-methods +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://github.com/tc39/proposal-set-methods +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__(4475); +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.37.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/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 global = __webpack_require__(4475); +var fails = __webpack_require__(9039); +var V8 = __webpack_require__(7388); +var IS_BROWSER = __webpack_require__(7290); +var IS_DENO = __webpack_require__(516); +var IS_NODE = __webpack_require__(9088); + +var structuredClone = global.structuredClone; + +module.exports = !!structuredClone && !fails(function () { + // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if ((IS_DENO && V8 > 92) || (IS_NODE && V8 > 94) || (IS_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__(7388); +var fails = __webpack_require__(9039); +var global = __webpack_require__(4475); + +var $String = global.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 = {}; + +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); +}; + + +/***/ }), + +/***/ 9714: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var IS_NODE = __webpack_require__(9088); + +module.exports = function (name) { + try { + // eslint-disable-next-line no-new-func -- safe + if (IS_NODE) return Function('return require("' + name + '")')(); + } catch (error) { /* empty */ } +}; + + +/***/ }), + +/***/ 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.0.toString); + +module.exports = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); +}; + + +/***/ }), + +/***/ 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 global = __webpack_require__(4475); +var isCallable = __webpack_require__(4901); + +var WeakMap = global.WeakMap; + +module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); + + +/***/ }), + +/***/ 8227: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +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 = global.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; + +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/proposal-arraybuffer-transfer/#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/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer +if ($transfer) $({ target: 'ArrayBuffer', proto: true }, { + transfer: function transfer() { + return $transfer(this, arguments.length ? arguments[0] : undefined, true); + } +}); + + +/***/ }), + +/***/ 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; + } +}); + + +/***/ }), + +/***/ 4628: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var newPromiseCapabilityModule = __webpack_require__(6043); + +// `Promise.withResolvers` method +// https://github.com/tc39/proposal-promise-with-resolvers +$({ target: 'Promise', stat: true }, { + withResolvers: function withResolvers() { + var promiseCapability = newPromiseCapabilityModule.f(this); + return { + promise: promiseCapability.promise, + resolve: promiseCapability.resolve, + reject: promiseCapability.reject + }; + } +}); + + +/***/ }), + +/***/ 9479: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var global = __webpack_require__(4475); +var DESCRIPTORS = __webpack_require__(3724); +var defineBuiltInAccessor = __webpack_require__(2106); +var regExpFlags = __webpack_require__(7979); +var fails = __webpack_require__(9039); + +// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError +var RegExp = global.RegExp; +var RegExpPrototype = RegExp.prototype; + +var FORCED = DESCRIPTORS && fails(function () { + var INDICES_SUPPORT = true; + try { + RegExp('.', 'd'); + } catch (error) { + INDICES_SUPPORT = false; + } + + var O = {}; + // modern V8 bug + var calls = ''; + var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy'; + + var addGetter = function (key, chr) { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(O, key, { get: function () { + calls += chr; + return true; + } }); + }; + + var pairs = { + dotAll: 's', + global: 'g', + ignoreCase: 'i', + multiline: 'm', + sticky: 'y' + }; + + if (INDICES_SUPPORT) pairs.hasIndices = 'd'; + + for (var key in pairs) addGetter(key, pairs[key]); + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O); + + return result !== expected || calls !== expected; +}); + +// `RegExp.prototype.flags` getter +// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags +if (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', { + configurable: true, + get: regExpFlags +}); + + +/***/ }), + +/***/ 7642: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var difference = __webpack_require__(3440); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.difference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, { + 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') || fails(function () { + // eslint-disable-next-line es/no-array-from, es/no-set -- testing + return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2'; +}); + +// `Set.prototype.intersection` method +// https://github.com/tc39/proposal-set-methods +$({ 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); + +// `Set.prototype.isDisjointFrom` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, { + 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); + +// `Set.prototype.isSubsetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, { + 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); + +// `Set.prototype.isSupersetOf` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, { + isSupersetOf: isSupersetOf +}); + + +/***/ }), + +/***/ 5024: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var symmetricDifference = __webpack_require__(3650); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.symmetricDifference` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, { + symmetricDifference: symmetricDifference +}); + + +/***/ }), + +/***/ 1698: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var union = __webpack_require__(4204); +var setMethodAcceptSetLike = __webpack_require__(4916); + +// `Set.prototype.union` method +// https://github.com/tc39/proposal-set-methods +$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, { + union: union +}); + + +/***/ }), + +/***/ 7467: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var arrayToReversed = __webpack_require__(7628); +var ArrayBufferViewCore = __webpack_require__(4644); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; + +// `%TypedArray%.prototype.toReversed` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed +exportTypedArrayMethod('toReversed', function toReversed() { + return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this)); +}); + + +/***/ }), + +/***/ 4732: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var ArrayBufferViewCore = __webpack_require__(4644); +var uncurryThis = __webpack_require__(9504); +var aCallable = __webpack_require__(9306); +var arrayFromConstructorAndList = __webpack_require__(5370); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; +var sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort); + +// `%TypedArray%.prototype.toSorted` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted +exportTypedArrayMethod('toSorted', function toSorted(compareFn) { + if (compareFn !== undefined) aCallable(compareFn); + var O = aTypedArray(this); + var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O); + return sort(A, compareFn); +}); + + +/***/ }), + +/***/ 9577: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var arrayWith = __webpack_require__(9928); +var ArrayBufferViewCore = __webpack_require__(4644); +var isBigIntArray = __webpack_require__(1108); +var toIntegerOrInfinity = __webpack_require__(1291); +var toBigInt = __webpack_require__(5854); + +var aTypedArray = ArrayBufferViewCore.aTypedArray; +var getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor; +var exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod; + +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; + } +}(); + +// `%TypedArray%.prototype.with` method +// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with +exportTypedArrayMethod('with', { 'with': function (index, value) { + var O = aTypedArray(this); + var relativeIndex = toIntegerOrInfinity(index); + var actualValue = isBigIntArray(O) ? toBigInt(value) : +value; + return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue); +} }['with'], !PROPER_ORDER); + + +/***/ }), + +/***/ 8992: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var global = __webpack_require__(4475); +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 = global[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://github.com/tc39/proposal-iterator-helpers +$({ global: true, constructor: true, forced: FORCED }, { + Iterator: IteratorConstructor +}); + + +/***/ }), + +/***/ 3215: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +// `Iterator.prototype.every` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true }, { + every: function every(predicate) { + anObject(this); + aCallable(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; + } +}); + + +/***/ }), + +/***/ 4520: +/***/ ((__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 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://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { + filter: function filter(predicate) { + anObject(this); + aCallable(predicate); + return new IteratorProxy(getIteratorDirect(this), { + predicate: predicate + }); + } +}); + + +/***/ }), + +/***/ 2577: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +// `Iterator.prototype.find` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true }, { + find: function find(predicate) { + anObject(this); + aCallable(predicate); + var record = getIteratorDirect(this); + var counter = 0; + return iterate(record, function (value, stop) { + if (predicate(value, counter++)) return stop(value); + }, { IS_RECORD: true, INTERRUPTED: true }).result; + } +}); + + +/***/ }), + +/***/ 3949: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +// `Iterator.prototype.forEach` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true }, { + forEach: function forEach(fn) { + anObject(this); + aCallable(fn); + var record = getIteratorDirect(this); + var counter = 0; + iterate(record, function (value) { + fn(value, counter++); + }, { IS_RECORD: true }); + } +}); + + +/***/ }), + +/***/ 1454: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var map = __webpack_require__(713); +var IS_PURE = __webpack_require__(6395); + +// `Iterator.prototype.map` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, { + map: map +}); + + +/***/ }), + +/***/ 8872: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +var $TypeError = TypeError; + +// `Iterator.prototype.reduce` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true }, { + reduce: function reduce(reducer /* , initialValue */) { + anObject(this); + aCallable(reducer); + var record = getIteratorDirect(this); + var noInitial = arguments.length < 2; + var accumulator = noInitial ? undefined : arguments[1]; + var counter = 0; + iterate(record, function (value) { + if (noInitial) { + noInitial = false; + accumulator = value; + } else { + accumulator = reducer(accumulator, value, counter); + } + counter++; + }, { IS_RECORD: true }); + if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value'); + return accumulator; + } +}); + + +/***/ }), + +/***/ 7550: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var iterate = __webpack_require__(2652); +var aCallable = __webpack_require__(9306); +var anObject = __webpack_require__(8551); +var getIteratorDirect = __webpack_require__(1767); + +// `Iterator.prototype.some` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true }, { + some: function some(predicate) { + anObject(this); + aCallable(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; + } +}); + + +/***/ }), + +/***/ 1795: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var anObject = __webpack_require__(8551); +var iterate = __webpack_require__(2652); +var getIteratorDirect = __webpack_require__(1767); + +var push = [].push; + +// `Iterator.prototype.toArray` method +// https://github.com/tc39/proposal-iterator-helpers +$({ target: 'Iterator', proto: true, real: true }, { + toArray: function toArray() { + var result = []; + iterate(getIteratorDirect(anObject(this)), push, { that: result, IS_RECORD: true }); + return result; + } +}); + + +/***/ }), + +/***/ 3375: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(7642); + + +/***/ }), + +/***/ 9225: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(8004); + + +/***/ }), + +/***/ 3972: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(3853); + + +/***/ }), + +/***/ 9209: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(5876); + + +/***/ }), + +/***/ 5714: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(2475); + + +/***/ }), + +/***/ 7561: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(5024); + + +/***/ }), + +/***/ 6197: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +// TODO: Remove from `core-js@4` +__webpack_require__(1698); + + +/***/ }), + +/***/ 4979: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var global = __webpack_require__(4475); +var getBuiltIn = __webpack_require__(7751); +var createPropertyDescriptor = __webpack_require__(6980); +var defineProperty = (__webpack_require__(4913).f); +var hasOwn = __webpack_require__(9297); +var anInstance = __webpack_require__(679); +var inheritIfRequired = __webpack_require__(3167); +var normalizeStringArgument = __webpack_require__(2603); +var DOMExceptionConstants = __webpack_require__(5002); +var clearErrorStack = __webpack_require__(6193); +var DESCRIPTORS = __webpack_require__(3724); +var IS_PURE = __webpack_require__(6395); + +var DOM_EXCEPTION = 'DOMException'; +var Error = getBuiltIn('Error'); +var NativeDOMException = getBuiltIn(DOM_EXCEPTION); + +var $DOMException = function DOMException() { + anInstance(this, DOMExceptionPrototype); + var argumentsLength = arguments.length; + var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]); + var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error'); + var that = new NativeDOMException(message, name); + var error = new Error(message); + error.name = DOM_EXCEPTION; + defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1))); + inheritIfRequired(that, this, $DOMException); + return that; +}; + +var DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype; + +var ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION); +var DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2); + +// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe +var descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION); + +// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it +// https://github.com/Jarred-Sumner/bun/issues/399 +var BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable); + +var FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK; + +// `DOMException` constructor patch for `.stack` where it's required +// https://webidl.spec.whatwg.org/#es-DOMException-specialness +$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic + DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException +}); + +var PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION); +var PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype; + +if (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) { + if (!IS_PURE) { + defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException)); + } + + for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) { + var constant = DOMExceptionConstants[key]; + var constantName = constant.s; + if (!hasOwn(PolyfilledDOMException, constantName)) { + defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c)); + } + } +} + + +/***/ }), + +/***/ 3611: +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + +var $ = __webpack_require__(6518); +var global = __webpack_require__(4475); +var defineBuiltInAccessor = __webpack_require__(2106); +var DESCRIPTORS = __webpack_require__(3724); + +var $TypeError = TypeError; +// eslint-disable-next-line es/no-object-defineproperty -- safe +var defineProperty = Object.defineProperty; +var INCORRECT_VALUE = global.self !== global; + +// `self` getter +// https://html.spec.whatwg.org/multipage/window-object.html#dom-self +try { + if (DESCRIPTORS) { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var descriptor = Object.getOwnPropertyDescriptor(global, 'self'); + // some engines have `self`, but with incorrect descriptor + // https://github.com/denoland/deno/issues/15765 + if (INCORRECT_VALUE || !descriptor || !descriptor.get || !descriptor.enumerable) { + defineBuiltInAccessor(global, 'self', { + get: function self() { + return global; + }, + set: function self(value) { + if (this !== global) throw new $TypeError('Illegal invocation'); + defineProperty(global, 'self', { + value: value, + writable: true, + configurable: true, + enumerable: true + }); + }, + configurable: true, + enumerable: true + }); + } + } else $({ global: true, simple: true, forced: INCORRECT_VALUE }, { + self: global + }); +} catch (error) { /* empty */ } + + +/***/ }), + +/***/ 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 dindex = 0; + var found = false; + var entriesLength = entries.length; + var entry; + while (index < entriesLength) { + entry = entries[index++]; + if (found || entry.key === key) { + found = true; + $delete(this, entry.key); + } else dindex++; + } + while (dindex < entriesLength) { + entry = entries[dindex++]; + 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 + }); +} + + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // 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 */ @@ -49,7 +4540,63 @@ __webpack_require__.d(__webpack_exports__, { WorkerMessageHandler: () => (/* reexport */ WorkerMessageHandler) }); +// 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.promise.with-resolvers.js +var es_promise_with_resolvers = __webpack_require__(4628); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-reversed.js +var es_typed_array_to_reversed = __webpack_require__(7467); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-sorted.js +var es_typed_array_to_sorted = __webpack_require__(4732); +// 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/esnext.iterator.constructor.js +var esnext_iterator_constructor = __webpack_require__(8992); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.for-each.js +var esnext_iterator_for_each = __webpack_require__(3949); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.map.js +var esnext_iterator_map = __webpack_require__(1454); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.some.js +var esnext_iterator_some = __webpack_require__(7550); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.difference.v2.js +var esnext_set_difference_v2 = __webpack_require__(3375); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.intersection.v2.js +var esnext_set_intersection_v2 = __webpack_require__(9225); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js +var esnext_set_is_disjoint_from_v2 = __webpack_require__(3972); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js +var esnext_set_is_subset_of_v2 = __webpack_require__(9209); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js +var esnext_set_is_superset_of_v2 = __webpack_require__(5714); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js +var esnext_set_symmetric_difference_v2 = __webpack_require__(7561); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.set.union.v2.js +var esnext_set_union_v2 = __webpack_require__(6197); +// EXTERNAL MODULE: ./node_modules/core-js/modules/web.self.js +var web_self = __webpack_require__(3611); +// 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); ;// CONCATENATED MODULE: ./src/shared/util.js + + + + + + + + + + const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; @@ -65,6 +4612,7 @@ const RenderingIntentFlag = { ANNOTATIONS_FORMS: 0x10, ANNOTATIONS_STORAGE: 0x20, ANNOTATIONS_DISABLE: 0x40, + IS_EDITING: 0x80, OPLIST: 0x100 }; const AnnotationMode = { @@ -320,7 +4868,9 @@ const OPS = { paintImageXObjectRepeat: 88, paintImageMaskXObjectRepeat: 89, paintSolidColorImageMask: 90, - constructPath: 91 + constructPath: 91, + setStrokeTransparent: 92, + setFillTransparent: 93 }; const PasswordResponses = { NEED_PASSWORD: 1, @@ -785,8 +5335,18 @@ const FontRenderOps = { TRANSLATE: 8 }; +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.every.js +var esnext_iterator_every = __webpack_require__(3215); ;// CONCATENATED MODULE: ./src/core/primitives.js + + + + + + + + const CIRCULAR_REF = Symbol("CIRCULAR_REF"); const EOF = Symbol("EOF"); let CmdCache = Object.create(null); @@ -953,6 +5513,9 @@ class Dict { } return dict; } + delete(key) { + delete this._map[key]; + } } class Ref { constructor(num, gen) { @@ -1134,6 +5697,23 @@ class BaseStream { + + + + + + + + + + + + + + + + + const PDF_VERSION_REGEXP = /^[1-9]\.\d$/; function getLookupTableFactory(initializer) { let lookup; @@ -1524,6 +6104,9 @@ function getNewAnnotationsMap(annotationStorage) { } return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null; } +function stringToAsciiOrUTF16BE(str) { + return isAscii(str) ? str : stringToUTF16String(str, true); +} function isAscii(str) { return /^[\x00-\x7F]*$/.test(str); } @@ -1565,6 +6148,12 @@ function getSizeInBytes(x) { ;// CONCATENATED MODULE: ./src/core/stream.js + + + + + + class Stream extends BaseStream { constructor(arrayBuffer, start, length, dict) { super(); @@ -1634,6 +6223,21 @@ class NullStream extends Stream { + + + + + + + + + + + + + + + class ChunkedStream extends Stream { constructor(length, chunkSize, manager) { super(new Uint8Array(length), 0, length, null); @@ -2057,11 +6661,25 @@ class ChunkedStreamManager { } } +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.filter.js +var esnext_iterator_filter = __webpack_require__(4520); +// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.flags.js +var es_regexp_flags = __webpack_require__(9479); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.find.js +var esnext_iterator_find = __webpack_require__(2577); +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.reduce.js +var esnext_iterator_reduce = __webpack_require__(8872); ;// CONCATENATED MODULE: ./src/core/colorspace.js + + + + + + function resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) { const COMPONENTS = 3; alpha01 = alpha01 !== 1 ? 0 : alpha01; @@ -2271,7 +6889,8 @@ class ColorSpace { } } } - throw new FormatError(`Unrecognized ColorSpace: ${cs.name}`); + warn(`Unrecognized ColorSpace: ${cs.name}`); + return this.singletons.gray; } } if (Array.isArray(cs)) { @@ -2346,10 +6965,12 @@ class ColorSpace { const range = params.getArray("Range"); return new LabCS(whitePoint, blackPoint, range); default: - throw new FormatError(`Unimplemented ColorSpace object: ${mode}`); + warn(`Unimplemented ColorSpace object: ${mode}`); + return this.singletons.gray; } } - throw new FormatError(`Unrecognized ColorSpace object: ${cs}`); + warn(`Unrecognized ColorSpace object: ${cs}`); + return this.singletons.gray; } static isDefaultDecode(decode, numComps) { if (!Array.isArray(decode)) { @@ -2880,6 +7501,12 @@ class LabCS extends ColorSpace { ;// CONCATENATED MODULE: ./src/core/binary_cmap.js + + + + + + function hexToInt(a, size) { let n = 0; for (let i = 0; i <= size; i++) { @@ -3138,6 +7765,13 @@ class BinaryCMapReader { ;// CONCATENATED MODULE: ./src/core/decode_stream.js + + + + + + + const emptyBuffer = new Uint8Array(0); class DecodeStream extends BaseStream { constructor(maybeMinBufferLength) { @@ -3280,6 +7914,12 @@ class StreamsSequenceStream extends DecodeStream { ;// CONCATENATED MODULE: ./src/core/ascii_85_stream.js + + + + + + class Ascii85Stream extends DecodeStream { constructor(str, maybeLength) { if (maybeLength) { @@ -3397,6 +8037,12 @@ class AsciiHexStream extends DecodeStream { ;// CONCATENATED MODULE: ./src/core/ccitt.js + + + + + + const ccittEOL = -2; const ccittEOF = -1; const twoDimPass = 0; @@ -3949,6 +8595,13 @@ class CCITTFaxStream extends DecodeStream { + + + + + + + const codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); const lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]); const distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]); @@ -4565,6 +9218,13 @@ class ArithmeticDecoder { + + + + + + + class Jbig2Error extends BaseException { constructor(msg) { super(msg, "Jbig2Error"); @@ -6317,6 +10977,7 @@ class Jbig2Image { + class Jbig2Stream extends DecodeStream { constructor(stream, maybeLength, params) { super(maybeLength); @@ -6372,6 +11033,12 @@ class Jbig2Stream extends DecodeStream { ;// CONCATENATED MODULE: ./src/shared/image_utils.js + + + + + + function convertToRGBA(params) { switch (params.kind) { case ImageKind.GRAYSCALE_1BPP: @@ -6481,6 +11148,13 @@ function grayToRGBA(src, dest) { + + + + + + + class JpegError extends BaseException { constructor(msg) { super(msg, "JpegError"); @@ -7554,6 +12228,12 @@ class JpegImage { + + + + + + class JpegStream extends DecodeStream { constructor(stream, maybeLength, params) { super(maybeLength); @@ -7629,7 +12309,20 @@ class JpegStream extends DecodeStream { } } +// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-exception.stack.js +var web_dom_exception_stack = __webpack_require__(4979); ;// CONCATENATED MODULE: ./external/openjpeg/openjpeg.js + + + + + + + + + + + var OpenJPEG = (() => { var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; return function (moduleArg = {}) { @@ -8173,6 +12866,9 @@ var OpenJPEG = (() => { + + + class JpxError extends BaseException { constructor(msg) { super(msg, "JpxError"); @@ -8256,6 +12952,12 @@ class JpxStream extends DecodeStream { ;// CONCATENATED MODULE: ./src/core/lzw_stream.js + + + + + + class LZWStream extends DecodeStream { constructor(str, maybeLength, earlyChange) { super(maybeLength); @@ -8375,6 +13077,12 @@ class LZWStream extends DecodeStream { + + + + + + class PredictorStream extends DecodeStream { constructor(str, maybeLength, params) { super(maybeLength); @@ -8607,6 +13315,15 @@ class RunLengthStream extends DecodeStream { + + + + + + + + + @@ -9676,6 +14393,9 @@ class Linearization { + + + const BUILT_IN_CMAPS = ["Adobe-GB1-UCS2", "Adobe-CNS1-UCS2", "Adobe-Japan1-UCS2", "Adobe-Korea1-UCS2", "78-EUC-H", "78-EUC-V", "78-H", "78-RKSJ-H", "78-RKSJ-V", "78-V", "78ms-RKSJ-H", "78ms-RKSJ-V", "83pv-RKSJ-H", "90ms-RKSJ-H", "90ms-RKSJ-V", "90msp-RKSJ-H", "90msp-RKSJ-V", "90pv-RKSJ-H", "90pv-RKSJ-V", "Add-H", "Add-RKSJ-H", "Add-RKSJ-V", "Add-V", "Adobe-CNS1-0", "Adobe-CNS1-1", "Adobe-CNS1-2", "Adobe-CNS1-3", "Adobe-CNS1-4", "Adobe-CNS1-5", "Adobe-CNS1-6", "Adobe-GB1-0", "Adobe-GB1-1", "Adobe-GB1-2", "Adobe-GB1-3", "Adobe-GB1-4", "Adobe-GB1-5", "Adobe-Japan1-0", "Adobe-Japan1-1", "Adobe-Japan1-2", "Adobe-Japan1-3", "Adobe-Japan1-4", "Adobe-Japan1-5", "Adobe-Japan1-6", "Adobe-Korea1-0", "Adobe-Korea1-1", "Adobe-Korea1-2", "B5-H", "B5-V", "B5pc-H", "B5pc-V", "CNS-EUC-H", "CNS-EUC-V", "CNS1-H", "CNS1-V", "CNS2-H", "CNS2-V", "ETHK-B5-H", "ETHK-B5-V", "ETen-B5-H", "ETen-B5-V", "ETenms-B5-H", "ETenms-B5-V", "EUC-H", "EUC-V", "Ext-H", "Ext-RKSJ-H", "Ext-RKSJ-V", "Ext-V", "GB-EUC-H", "GB-EUC-V", "GB-H", "GB-V", "GBK-EUC-H", "GBK-EUC-V", "GBK2K-H", "GBK2K-V", "GBKp-EUC-H", "GBKp-EUC-V", "GBT-EUC-H", "GBT-EUC-V", "GBT-H", "GBT-V", "GBTpc-EUC-H", "GBTpc-EUC-V", "GBpc-EUC-H", "GBpc-EUC-V", "H", "HKdla-B5-H", "HKdla-B5-V", "HKdlb-B5-H", "HKdlb-B5-V", "HKgccs-B5-H", "HKgccs-B5-V", "HKm314-B5-H", "HKm314-B5-V", "HKm471-B5-H", "HKm471-B5-V", "HKscs-B5-H", "HKscs-B5-V", "Hankaku", "Hiragana", "KSC-EUC-H", "KSC-EUC-V", "KSC-H", "KSC-Johab-H", "KSC-Johab-V", "KSC-V", "KSCms-UHC-H", "KSCms-UHC-HW-H", "KSCms-UHC-HW-V", "KSCms-UHC-V", "KSCpc-EUC-H", "KSCpc-EUC-V", "Katakana", "NWP-H", "NWP-V", "RKSJ-H", "RKSJ-V", "Roman", "UniCNS-UCS2-H", "UniCNS-UCS2-V", "UniCNS-UTF16-H", "UniCNS-UTF16-V", "UniCNS-UTF32-H", "UniCNS-UTF32-V", "UniCNS-UTF8-H", "UniCNS-UTF8-V", "UniGB-UCS2-H", "UniGB-UCS2-V", "UniGB-UTF16-H", "UniGB-UTF16-V", "UniGB-UTF32-H", "UniGB-UTF32-V", "UniGB-UTF8-H", "UniGB-UTF8-V", "UniJIS-UCS2-H", "UniJIS-UCS2-HW-H", "UniJIS-UCS2-HW-V", "UniJIS-UCS2-V", "UniJIS-UTF16-H", "UniJIS-UTF16-V", "UniJIS-UTF32-H", "UniJIS-UTF32-V", "UniJIS-UTF8-H", "UniJIS-UTF8-V", "UniJIS2004-UTF16-H", "UniJIS2004-UTF16-V", "UniJIS2004-UTF32-H", "UniJIS2004-UTF32-V", "UniJIS2004-UTF8-H", "UniJIS2004-UTF8-V", "UniJISPro-UCS2-HW-V", "UniJISPro-UCS2-V", "UniJISPro-UTF8-V", "UniJISX0213-UTF32-H", "UniJISX0213-UTF32-V", "UniJISX02132004-UTF32-H", "UniJISX02132004-UTF32-V", "UniKS-UCS2-H", "UniKS-UCS2-V", "UniKS-UTF16-H", "UniKS-UTF16-V", "UniKS-UTF32-H", "UniKS-UTF32-V", "UniKS-UTF8-H", "UniKS-UTF8-V", "V", "WP-Symbol"]; const MAX_MAP_RANGE = 2 ** 24 - 1; class CMap { @@ -10116,6 +14836,8 @@ class CMapFactory { } } +// EXTERNAL MODULE: ./node_modules/core-js/modules/esnext.iterator.to-array.js +var esnext_iterator_to_array = __webpack_require__(1795); ;// CONCATENATED MODULE: ./src/core/charsets.js const ISOAdobeCharset = [".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "endash", "dagger", "daggerdbl", "periodcentered", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "questiondown", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "emdash", "AE", "ordfeminine", "Lslash", "Oslash", "OE", "ordmasculine", "ae", "dotlessi", "lslash", "oslash", "oe", "germandbls", "onesuperior", "logicalnot", "mu", "trademark", "Eth", "onehalf", "plusminus", "Thorn", "onequarter", "divide", "brokenbar", "degree", "thorn", "threequarters", "twosuperior", "registered", "minus", "eth", "multiply", "threesuperior", "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave", "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis", "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex", "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron", "aacute", "acircumflex", "adieresis", "agrave", "aring", "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis", "egrave", "iacute", "icircumflex", "idieresis", "igrave", "ntilde", "oacute", "ocircumflex", "odieresis", "ograve", "otilde", "scaron", "uacute", "ucircumflex", "udieresis", "ugrave", "yacute", "ydieresis", "zcaron"]; const ExpertCharset = [".notdef", "space", "exclamsmall", "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "comma", "hyphen", "period", "fraction", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "colon", "semicolon", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "fi", "fl", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall", "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash", "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall", "onequarter", "onehalf", "threequarters", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "onesuperior", "twosuperior", "threesuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall"]; @@ -10154,6 +14876,13 @@ function getEncoding(encodingName) { + + + + + + + const MAX_SUBR_NESTING = 10; const CFFStandardStrings = [".notdef", "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "hyphen", "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "exclamdown", "cent", "sterling", "fraction", "yen", "florin", "section", "currency", "quotesingle", "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi", "fl", "endash", "dagger", "daggerdbl", "periodcentered", "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright", "guillemotright", "ellipsis", "perthousand", "questiondown", "grave", "acute", "circumflex", "tilde", "macron", "breve", "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut", "ogonek", "caron", "emdash", "AE", "ordfeminine", "Lslash", "Oslash", "OE", "ordmasculine", "ae", "dotlessi", "lslash", "oslash", "oe", "germandbls", "onesuperior", "logicalnot", "mu", "trademark", "Eth", "onehalf", "plusminus", "Thorn", "onequarter", "divide", "brokenbar", "degree", "thorn", "threequarters", "twosuperior", "registered", "minus", "eth", "multiply", "threesuperior", "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave", "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex", "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis", "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis", "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex", "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron", "aacute", "acircumflex", "adieresis", "agrave", "aring", "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis", "egrave", "iacute", "icircumflex", "idieresis", "igrave", "ntilde", "oacute", "ocircumflex", "odieresis", "ograve", "otilde", "scaron", "uacute", "ucircumflex", "udieresis", "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall", "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall", "Acutesmall", "parenleftsuperior", "parenrightsuperior", "twodotenleader", "onedotenleader", "zerooldstyle", "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle", "fiveoldstyle", "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle", "commasuperior", "threequartersemdash", "periodsuperior", "questionsmall", "asuperior", "bsuperior", "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior", "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior", "tsuperior", "ff", "ffi", "ffl", "parenleftinferior", "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall", "Asmall", "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall", "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall", "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall", "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall", "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall", "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall", "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall", "Dieresissmall", "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash", "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall", "questiondownsmall", "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird", "twothirds", "zerosuperior", "foursuperior", "fivesuperior", "sixsuperior", "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior", "oneinferior", "twoinferior", "threeinferior", "fourinferior", "fiveinferior", "sixinferior", "seveninferior", "eightinferior", "nineinferior", "centinferior", "dollarinferior", "periodinferior", "commainferior", "Agravesmall", "Aacutesmall", "Acircumflexsmall", "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall", "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall", "Igravesmall", "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall", "Ntildesmall", "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall", "Odieresissmall", "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall", "Ucircumflexsmall", "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall", "001.000", "001.001", "001.002", "001.003", "Black", "Bold", "Book", "Light", "Medium", "Regular", "Roman", "Semibold"]; const NUM_STANDARD_CFF_STRINGS = 391; @@ -16267,6 +20996,8 @@ function clearUnicodeCaches() { + + const SEAC_ANALYSIS_ENABLED = true; const FontFlags = { FixedPitch: 1, @@ -16345,6 +21076,41 @@ function type1FontGlyphMapping(properties, builtInEncoding, glyphNames) { function normalizeFontName(name) { return name.replaceAll(/[,_]/g, "-").replaceAll(/\s/g, ""); } +const getVerticalPresentationForm = getLookupTableFactory(t => { + t[0x2013] = 0xfe32; + t[0x2014] = 0xfe31; + t[0x2025] = 0xfe30; + t[0x2026] = 0xfe19; + t[0x3001] = 0xfe11; + t[0x3002] = 0xfe12; + t[0x3008] = 0xfe3f; + t[0x3009] = 0xfe40; + t[0x300a] = 0xfe3d; + t[0x300b] = 0xfe3e; + t[0x300c] = 0xfe41; + t[0x300d] = 0xfe42; + t[0x300e] = 0xfe43; + t[0x300f] = 0xfe44; + t[0x3010] = 0xfe3b; + t[0x3011] = 0xfe3c; + t[0x3014] = 0xfe39; + t[0x3015] = 0xfe3a; + t[0x3016] = 0xfe17; + t[0x3017] = 0xfe18; + t[0xfe4f] = 0xfe34; + t[0xff01] = 0xfe15; + t[0xff08] = 0xfe35; + t[0xff09] = 0xfe36; + t[0xff0c] = 0xfe10; + t[0xff1a] = 0xfe13; + t[0xff1b] = 0xfe14; + t[0xff1f] = 0xfe16; + t[0xff3b] = 0xfe47; + t[0xff3d] = 0xfe48; + t[0xff3f] = 0xfe33; + t[0xff5b] = 0xfe37; + t[0xff5d] = 0xfe38; +}); ;// CONCATENATED MODULE: ./src/core/standard_fonts.js @@ -17374,6 +22140,15 @@ class CFFFont { + + + + + + + + + function getUint32(data, offset) { return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; } @@ -21179,6 +25954,16 @@ const getFontBasicMetrics = getLookupTableFactory(function (t) { }); ;// CONCATENATED MODULE: ./src/core/glyf.js + + + + + + + + + + const ON_CURVE_POINT = 1 << 0; const X_SHORT_VECTOR = 1 << 1; const Y_SHORT_VECTOR = 1 << 2; @@ -21712,6 +26497,13 @@ class CompositeGlyph { ;// CONCATENATED MODULE: ./src/core/opentype_file_builder.js + + + + + + + function writeInt16(dest, offset, num) { dest[offset] = num >> 8 & 0xff; dest[offset + 1] = num & 0xff; @@ -21820,6 +26612,13 @@ class OpenTypeFileBuilder { + + + + + + + const HINTING_ENABLED = false; const COMMAND_MAP = { hstem: [1], @@ -22387,6 +27186,7 @@ class Type1Parser { + function findBlock(streamBytes, signature, startIndex) { const streamBytesLength = streamBytes.length; const signatureLength = signature.length; @@ -22672,6 +27472,25 @@ class Type1Font { + + + + + + + + + + + + + + + + + + + const PRIVATE_USE_AREAS = [[0xe000, 0xf8ff], [0x100000, 0x10fffd]]; @@ -24902,6 +29721,36 @@ class Font { builder.addTable("post", createPostTable(properties)); return builder.toArray(); } + get _spaceWidth() { + const possibleSpaceReplacements = ["space", "minus", "one", "i", "I"]; + let width; + for (const glyphName of possibleSpaceReplacements) { + if (glyphName in this.widths) { + width = this.widths[glyphName]; + break; + } + const glyphsUnicodeMap = getGlyphsUnicode(); + const glyphUnicode = glyphsUnicodeMap[glyphName]; + let charcode = 0; + if (this.composite && this.cMap.contains(glyphUnicode)) { + charcode = this.cMap.lookup(glyphUnicode); + if (typeof charcode === "string") { + charcode = convertCidString(glyphUnicode, charcode); + } + } + if (!charcode && this.toUnicode) { + charcode = this.toUnicode.charCodeOf(glyphUnicode); + } + if (charcode <= 0) { + charcode = glyphUnicode; + } + width = this.widths[charcode]; + if (width) { + break; + } + } + return shadow(this, "_spaceWidth", width || this.defaultWidth); + } _charToGlyph(charcode, isSpace = false) { let glyph = this._glyphCache[charcode]; if (glyph?.isSpace === isSpace) { @@ -24930,6 +29779,10 @@ class Font { const glyphName = this.differences[charcode] || this.defaultEncoding[charcode]; if ((glyphName === ".notdef" || glyphName === "") && this.type === "Type1") { fontCharCode = 0x20; + if (glyphName === "") { + width ||= this._spaceWidth; + unicode = String.fromCharCode(fontCharCode); + } } fontCharCode = mapSpecialUnicodeValues(fontCharCode); } @@ -24954,6 +29807,12 @@ class Font { warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`); } } + if (this.missingFile && this.vertical && fontChar.length === 1) { + const vertical = getVerticalPresentationForm()[fontChar.charCodeAt(0)]; + if (vertical) { + fontChar = unicode = String.fromCharCode(vertical); + } + } glyph = new fonts_Glyph(charcode, fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont); return this._glyphCache[charcode] = glyph; } @@ -25065,6 +29924,13 @@ class ErrorFont { + + + + + + + const ShadingType = { FUNCTION_BASED: 1, AXIAL: 2, @@ -25985,6 +30851,8 @@ const SegoeuiRegularMetrics = { + + const getXFAFontMap = getLookupTableFactory(function (t) { t["MyriadPro-Regular"] = t["PdfJS-Fallback-Regular"] = { name: "LiberationSans-Regular", @@ -26178,6 +31046,7 @@ function getXfaFontDict(name) { + class PostScriptParser { constructor(lexer) { this.lexer = lexer; @@ -26366,6 +31235,13 @@ class PostScriptLexer { ;// CONCATENATED MODULE: ./src/core/image_utils.js + + + + + + + class BaseLocalCache { constructor(options) { if (this.constructor === BaseLocalCache) { @@ -26602,6 +31478,14 @@ class GlobalImageCache { + + + + + + + + class PDFFunctionFactory { constructor({ xref, @@ -27865,6 +32749,16 @@ function bidi(str, startLevel = -1, vertical = false) { + + + + + + + + + + const NORMAL = { style: "normal", weight: "normal" @@ -28128,6 +33022,12 @@ function getFontSubstitution(systemFontCache, idFactory, localFontPath, baseFont ;// CONCATENATED MODULE: ./src/core/image_resizer.js + + + + + + const MIN_IMAGE_DIM = 2048; const MAX_IMAGE_DIM = 65537; const MAX_ERROR = 128; @@ -28371,6 +33271,12 @@ class ImageResizer { ImageResizer._goodSquareLength = MIN_IMAGE_DIM; ;// CONCATENATED MODULE: ./src/shared/murmurhash3.js + + + + + + const SEED = 0xc3d2e1f0; const MASK_HIGH = 0xffff0000; const MASK_LOW = 0xffff; @@ -28465,6 +33371,20 @@ class MurmurHash3_64 { ;// CONCATENATED MODULE: ./src/core/operator_list.js + + + + + + + + + + + + + + function addState(parentState, pattern, checkFn, iterateFn, processFn) { let state = parentState; for (let i = 0, ii = pattern.length - 1; i < ii; i++) { @@ -28997,6 +33917,12 @@ class OperatorList { + + + + + + function decodeAndClamp(value, addend, coefficient, max) { value = addend + value * coefficient; if (value < 0) { @@ -29772,6 +34698,24 @@ class PDFImage { + + + + + + + + + + + + + + + + + + @@ -31153,9 +36097,7 @@ class PartialEvaluator { resources, localColorSpaceCache }).then(function (colorSpace) { - if (colorSpace) { - stateManager.state.fillColorSpace = colorSpace; - } + stateManager.state.fillColorSpace = colorSpace || ColorSpace.singletons.gray; })); return; } @@ -31171,9 +36113,7 @@ class PartialEvaluator { resources, localColorSpaceCache }).then(function (colorSpace) { - if (colorSpace) { - stateManager.state.strokeColorSpace = colorSpace; - } + stateManager.state.strokeColorSpace = colorSpace || ColorSpace.singletons.gray; })); return; } @@ -31216,7 +36156,12 @@ class PartialEvaluator { args = ColorSpace.singletons.rgb.getRgb(args, 0); break; case OPS.setFillColorN: - cs = stateManager.state.fillColorSpace; + cs = stateManager.state.patternFillColorSpace; + if (!cs) { + args = []; + fn = OPS.setFillTransparent; + break; + } if (cs.name === "Pattern") { next(self.handleColorN(operatorList, OPS.setFillColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache)); return; @@ -31225,7 +36170,12 @@ class PartialEvaluator { fn = OPS.setFillRGBColor; break; case OPS.setStrokeColorN: - cs = stateManager.state.strokeColorSpace; + cs = stateManager.state.patternStrokeColorSpace; + if (!cs) { + args = []; + fn = OPS.setStrokeTransparent; + break; + } if (cs.name === "Pattern") { next(self.handleColorN(operatorList, OPS.setStrokeColorN, args, cs, patterns, resources, task, localColorSpaceCache, localTilingPatternCache, localShadingPatternCache)); return; @@ -32440,6 +37390,9 @@ class PartialEvaluator { map[charCode] = String.fromCodePoint(token); return; } + if (token.length % 2 !== 0) { + token = "\u0000" + token; + } const str = []; for (let k = 0; k < token.length; k += 2) { const w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1); @@ -33238,8 +38191,22 @@ class EvalState { this.ctm = new Float32Array(IDENTITY_MATRIX); this.font = null; this.textRenderingMode = TextRenderingMode.FILL; - this.fillColorSpace = ColorSpace.singletons.gray; - this.strokeColorSpace = ColorSpace.singletons.gray; + this._fillColorSpace = ColorSpace.singletons.gray; + this._strokeColorSpace = ColorSpace.singletons.gray; + this.patternFillColorSpace = null; + this.patternStrokeColorSpace = null; + } + get fillColorSpace() { + return this._fillColorSpace; + } + set fillColorSpace(colorSpace) { + this._fillColorSpace = this.patternFillColorSpace = colorSpace; + } + get strokeColorSpace() { + return this._strokeColorSpace; + } + set strokeColorSpace(colorSpace) { + this._strokeColorSpace = this.patternStrokeColorSpace = colorSpace; } clone() { return Object.create(this); @@ -33729,6 +38696,13 @@ class EvaluatorPreprocessor { + + + + + + + class DefaultAppearanceEvaluator extends EvaluatorPreprocessor { constructor(str) { super(new StringStream(str)); @@ -34112,6 +39086,7 @@ class FakeUnicodeFont { ;// CONCATENATED MODULE: ./src/core/name_number_tree.js + class NameOrNumberTree { constructor(root, xref, type) { if (this.constructor === NameOrNumberTree) { @@ -34330,6 +39305,8 @@ class FileSpec { ;// CONCATENATED MODULE: ./src/core/xml_parser.js + + const XMLParserErrorCode = { NoError: 0, EndOfDocument: -1, @@ -34748,6 +39725,10 @@ class SimpleXMLParser extends XMLParserBase { ;// CONCATENATED MODULE: ./src/core/metadata_parser.js + + + + class MetadataParser { constructor(data) { data = this._repair(data); @@ -34884,6 +39865,15 @@ class DecryptStream extends DecodeStream { + + + + + + + + + class ARCFourCipher { constructor(key) { this.a = 0; @@ -36158,6 +41148,16 @@ class CipherTransformFactory { + + + + + + + + + + async function writeObject(ref, obj, buffer, { encrypt = null }) { @@ -36550,6 +41550,10 @@ async function incrementalUpdate({ + + + + const MAX_DEPTH = 40; const StructElementType = { PAGE_CONTENT: 1, @@ -36834,19 +41838,19 @@ class StructTreeRoot { const tagDict = new Dict(xref); tagDict.set("S", Name.get(type)); if (title) { - tagDict.set("T", title); + tagDict.set("T", stringToAsciiOrUTF16BE(title)); } if (lang) { tagDict.set("Lang", lang); } if (alt) { - tagDict.set("Alt", alt); + tagDict.set("Alt", stringToAsciiOrUTF16BE(alt)); } if (expanded) { - tagDict.set("E", expanded); + tagDict.set("E", stringToAsciiOrUTF16BE(expanded)); } if (actualText) { - tagDict.set("ActualText", actualText); + tagDict.set("ActualText", stringToAsciiOrUTF16BE(actualText)); } await this.#updateParentTag({ structTreeParent, @@ -37261,6 +42265,17 @@ class StructTreePage { + + + + + + + + + + + function isValidExplicitDest(dest) { @@ -37274,26 +42289,27 @@ function isValidExplicitDest(dest) { if (!(zoom instanceof Name)) { return false; } + const argsLen = args.length; let allowNull = true; switch (zoom.name) { case "XYZ": - if (args.length !== 3) { + if (argsLen < 2 || argsLen > 3) { return false; } break; case "Fit": case "FitB": - return args.length === 0; + return argsLen === 0; case "FitH": case "FitBH": case "FitV": case "FitBV": - if (args.length !== 1) { + if (argsLen > 1) { return false; } break; case "FitR": - if (args.length !== 4) { + if (argsLen !== 4) { return false; } allowNull = false; @@ -38684,6 +43700,7 @@ class Catalog { + function mayHaveChildren(value) { return value instanceof Ref || value instanceof Dict || value instanceof BaseStream || Array.isArray(value); } @@ -38926,6 +43943,10 @@ const NamespaceIds = { ;// CONCATENATED MODULE: ./src/core/xfa/utils.js + + + + const dimConverters = { pt: x => x, cm: x => x / 2.54 * 72, @@ -39125,6 +44146,16 @@ class HTMLResult { + + + + + + + + + + class FontFinder { constructor(pdfFonts) { this.fonts = new Map(); @@ -39276,6 +44307,9 @@ function fonts_getMetrics(xfaFont, real = false) { ;// CONCATENATED MODULE: ./src/core/xfa/text.js + + + const WIDTH_FACTOR = 1.02; class FontInfo { constructor(xfaFont, margin, lineHeight, fontFinder) { @@ -39487,6 +44521,10 @@ class TextMeasure { ;// CONCATENATED MODULE: ./src/core/xfa/som.js + + + + const namePattern = /^[^.[]+/; const indexPattern = /^[^\]]+/; const operators = { @@ -39724,6 +44762,17 @@ function createDataNode(root, container, expr) { + + + + + + + + + + + const _applyPrototype = Symbol(); const _attributes = Symbol(); const _attributeNames = Symbol(); @@ -40531,6 +45580,10 @@ class Option10 extends IntegerObject { + + + + function measureToString(m) { if (typeof m === "string") { return "0px"; @@ -41031,6 +46084,9 @@ function fixURL(str) { ;// CONCATENATED MODULE: ./src/core/xfa/layout.js + + + function createLine(node, children) { return { name: "div", @@ -41306,6 +46362,26 @@ function checkDimensions(node, space) { + + + + + + + + + + + + + + + + + + + + const TEMPLATE_NS_ID = NamespaceIds.template.id; const SVG_NS = "http://www.w3.org/2000/svg"; @@ -46180,6 +51256,11 @@ class TemplateNamespace { + + + + + const bind_NS_DATASETS = NamespaceIds.datasets.id; function createText(content) { const node = new Text({}); @@ -46596,6 +51677,7 @@ class Binder { ;// CONCATENATED MODULE: ./src/core/xfa/data.js + class DataHandler { constructor(root, data) { this.data = data; @@ -46649,6 +51731,12 @@ class DataHandler { + + + + + + const CONFIG_NS_ID = NamespaceIds.config.id; class Acrobat extends XFAObject { constructor(attributes) { @@ -48603,6 +53691,16 @@ class XdpNamespace { + + + + + + + + + + const XHTML_NS_ID = NamespaceIds.xhtml.id; const $richText = Symbol(); const VALID_STYLES = new Set(["color", "font", "font-family", "font-size", "font-stretch", "font-style", "font-weight", "margin", "margin-bottom", "margin-left", "margin-right", "margin-top", "letter-spacing", "line-height", "orphans", "page-break-after", "page-break-before", "page-break-inside", "tab-interval", "tab-stop", "text-align", "text-decoration", "text-indent", "vertical-align", "widows", "kerning-mode", "xfa-font-horizontal-scale", "xfa-font-vertical-scale", "xfa-spacerun", "xfa-tab-stops"]); @@ -49038,6 +54136,10 @@ class UnknownNamespace { + + + + class Root extends XFAObject { constructor(ids) { super(-1, "root", Object.create(null)); @@ -49203,6 +54305,14 @@ class Builder { + + + + + + + + class XFAParser extends XMLParserBase { constructor(rootNameSpace = null, richText = false) { super(); @@ -49339,6 +54449,11 @@ class XFAParser extends XMLParserBase { + + + + + class XFAFactory { constructor(data) { try { @@ -49481,6 +54596,21 @@ class XFAFactory { + + + + + + + + + + + + + + + @@ -49892,7 +55022,8 @@ class Annotation { subtype: params.subtype, hasOwnCanvas: false, noRotate: !!(this.flags & AnnotationFlag.NOROTATE), - noHTML: isLocked && isContentLocked + noHTML: isLocked && isContentLocked, + isEditable: false }; if (params.collectFields) { const kids = dict.get("Kids"); @@ -49938,6 +55069,9 @@ class Annotation { } return this.printable; } + mustBeViewedWhenEditing(isEditing, modifiedIds = null) { + return isEditing ? !this.data.isEditable : !modifiedIds?.has(this.data.id); + } get viewable() { if (this.data.quadPoints === null) { return false; @@ -50119,7 +55253,7 @@ class Annotation { }); }); } - async getOperatorList(evaluator, task, intent, renderForms, annotationStorage) { + async getOperatorList(evaluator, task, intent, annotationStorage) { const { hasOwnCanvas, id, @@ -50501,14 +55635,21 @@ class MarkupAnnotation extends Annotation { this._streams.push(this.appearance, appearanceStream); } static async createNewAnnotation(xref, annotation, dependencies, params) { - const annotationRef = annotation.ref ||= xref.getNewTemporaryRef(); + let oldAnnotation; + if (annotation.ref) { + oldAnnotation = (await xref.fetchIfRefAsync(annotation.ref)).clone(); + } else { + annotation.ref = xref.getNewTemporaryRef(); + } + const annotationRef = annotation.ref; const ap = await this.createNewAppearanceStream(annotation, xref, params); const buffer = []; let annotationDict; if (ap) { const apRef = xref.getNewTemporaryRef(); annotationDict = this.createNewDict(annotation, xref, { - apRef + apRef, + oldAnnotation }); await writeObject(apRef, ap, buffer, xref); dependencies.push({ @@ -50516,7 +55657,9 @@ class MarkupAnnotation extends Annotation { data: buffer.join("") }); } else { - annotationDict = this.createNewDict(annotation, xref, {}); + annotationDict = this.createNewDict(annotation, xref, { + oldAnnotation + }); } if (Number.isInteger(annotation.parentTreeId)) { annotationDict.set("StructParent", annotation.parentTreeId); @@ -50674,8 +55817,8 @@ class WidgetAnnotation extends Annotation { } return str; } - async getOperatorList(evaluator, task, intent, renderForms, annotationStorage) { - if (renderForms && !(this instanceof SignatureWidgetAnnotation) && !this.data.noHTML && !this.data.hasOwnCanvas) { + async getOperatorList(evaluator, task, intent, annotationStorage) { + if (intent & RenderingIntentFlag.ANNOTATIONS_FORMS && !(this instanceof SignatureWidgetAnnotation) && !this.data.noHTML && !this.data.hasOwnCanvas) { return { opList: new OperatorList(), separateForm: true, @@ -50683,11 +55826,11 @@ class WidgetAnnotation extends Annotation { }; } if (!this._hasText) { - return super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage); + return super.getOperatorList(evaluator, task, intent, annotationStorage); } const content = await this._getAppearance(evaluator, task, intent, annotationStorage); if (this.appearance && content === null) { - return super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage); + return super.getOperatorList(evaluator, task, intent, annotationStorage); } const opList = new OperatorList(); if (!this._defaultAppearance || content === null) { @@ -50785,8 +55928,7 @@ class WidgetAnnotation extends Annotation { path: this.data.fieldName, value }; - const encoder = val => isAscii(val) ? val : stringToUTF16String(val, true); - dict.set("V", Array.isArray(value) ? value.map(encoder) : encoder(value)); + dict.set("V", Array.isArray(value) ? value.map(stringToAsciiOrUTF16BE) : stringToAsciiOrUTF16BE(value)); this.amendSavedDict(annotationStorage, dict); const maybeMK = this._getMKDict(rotation); if (maybeMK) { @@ -51253,7 +56395,7 @@ class ButtonWidgetAnnotation extends WidgetAnnotation { warn("Invalid field flags for button widget annotation"); } } - async getOperatorList(evaluator, task, intent, renderForms, annotationStorage) { + async getOperatorList(evaluator, task, intent, annotationStorage) { if (this.data.pushButton) { return super.getOperatorList(evaluator, task, intent, false, annotationStorage); } @@ -51265,7 +56407,7 @@ class ButtonWidgetAnnotation extends WidgetAnnotation { rotation = storageEntry ? storageEntry.rotation : null; } if (value === null && this.appearance) { - return super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage); + return super.getOperatorList(evaluator, task, intent, annotationStorage); } if (value === null || value === undefined) { value = this.data.checkBox ? this.data.fieldValue === this.data.exportValue : this.data.fieldValue === this.data.buttonValue; @@ -51278,7 +56420,7 @@ class ButtonWidgetAnnotation extends WidgetAnnotation { appearance.dict.set("Matrix", this.getRotationMatrix(annotationStorage)); } this.appearance = appearance; - const operatorList = super.getOperatorList(evaluator, task, intent, renderForms, annotationStorage); + const operatorList = super.getOperatorList(evaluator, task, intent, annotationStorage); this.appearance = savedAppearance; appearance.dict.set("Matrix", savedMatrix); return operatorList; @@ -51895,7 +57037,8 @@ class PopupAnnotation extends Annotation { class FreeTextAnnotation extends MarkupAnnotation { constructor(params) { super(params); - this.data.hasOwnCanvas = !this.data.noHTML; + this.data.hasOwnCanvas = this.data.noRotate; + this.data.isEditable = !this.data.noHTML; this.data.noHTML = false; const { evaluatorOptions, @@ -51941,7 +57084,8 @@ class FreeTextAnnotation extends MarkupAnnotation { } static createNewDict(annotation, xref, { apRef, - ap + ap, + oldAnnotation }) { const { color, @@ -51951,19 +57095,24 @@ class FreeTextAnnotation extends MarkupAnnotation { user, value } = annotation; - const freetext = new Dict(xref); + const freetext = oldAnnotation || new Dict(xref); freetext.set("Type", Name.get("Annot")); freetext.set("Subtype", Name.get("FreeText")); - freetext.set("CreationDate", `D:${getModificationDate()}`); + if (oldAnnotation) { + freetext.set("M", `D:${getModificationDate()}`); + freetext.delete("RC"); + } else { + freetext.set("CreationDate", `D:${getModificationDate()}`); + } freetext.set("Rect", rect); const da = `/Helv ${fontSize} Tf ${getPdfColor(color, true)}`; freetext.set("DA", da); - freetext.set("Contents", isAscii(value) ? value : stringToUTF16String(value, true)); + freetext.set("Contents", stringToAsciiOrUTF16BE(value)); freetext.set("F", 4); freetext.set("Border", [0, 0, 0]); freetext.set("Rotate", rotation); if (user) { - freetext.set("T", isAscii(user) ? user : stringToUTF16String(user, true)); + freetext.set("T", stringToAsciiOrUTF16BE(user)); } if (apRef || ap) { const n = new Dict(xref); @@ -52534,7 +57683,7 @@ class HighlightAnnotation extends MarkupAnnotation { highlight.set("C", Array.from(color, c => c / 255)); highlight.set("CA", opacity); if (user) { - highlight.set("T", isAscii(user) ? user : stringToUTF16String(user, true)); + highlight.set("T", stringToAsciiOrUTF16BE(user)); } if (apRef || ap) { const n = new Dict(xref); @@ -52770,7 +57919,7 @@ class StampAnnotation extends MarkupAnnotation { stamp.set("Border", [0, 0, 0]); stamp.set("Rotate", rotation); if (user) { - stamp.set("T", isAscii(user) ? user : stringToUTF16String(user, true)); + stamp.set("T", stringToAsciiOrUTF16BE(user)); } if (apRef || ap) { const n = new Dict(xref); @@ -52835,6 +57984,7 @@ class FileAttachmentAnnotation extends MarkupAnnotation { + function decodeString(str) { try { return stringToUTF8String(str); @@ -52895,6 +58045,20 @@ class DatasetReader { + + + + + + + + + + + + + + class XRef { #firstXRefStmPos = null; constructor(stream, pdfManager) { @@ -53633,6 +58797,25 @@ class XRef { + + + + + + + + + + + + + + + + + + + const DEFAULT_USER_UNIT = 1.0; @@ -53887,7 +59070,8 @@ class Page { task, intent, cacheKey, - annotationStorage = null + annotationStorage = null, + modifiedIds = null }) { const contentStreamPromise = this.getContentStream(); const resourcesPromise = this.loadResources(["ColorSpace", "ExtGState", "Font", "Pattern", "Properties", "Shading", "XObject"]); @@ -53984,13 +59168,14 @@ class Page { }; } const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS), + isEditing = !!(intent & RenderingIntentFlag.IS_EDITING), intentAny = !!(intent & RenderingIntentFlag.ANY), intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY), intentPrint = !!(intent & RenderingIntentFlag.PRINT); const opListPromises = []; for (const annotation of annotations) { - if (intentAny || intentDisplay && annotation.mustBeViewed(annotationStorage, renderForms) || intentPrint && annotation.mustBePrinted(annotationStorage)) { - opListPromises.push(annotation.getOperatorList(partialEvaluator, task, intent, renderForms, annotationStorage).catch(function (reason) { + if (intentAny || intentDisplay && annotation.mustBeViewed(annotationStorage, renderForms) && annotation.mustBeViewedWhenEditing(isEditing, modifiedIds) || intentPrint && annotation.mustBePrinted(annotationStorage)) { + opListPromises.push(annotation.getOperatorList(partialEvaluator, task, intent, annotationStorage).catch(function (reason) { warn("getOperatorList - ignoring annotation data during " + `"${task.name}" task: "${reason}".`); return { opList: null, @@ -55143,6 +60328,7 @@ class NetworkPdfManager extends BasePdfManager { ;// CONCATENATED MODULE: ./src/shared/message_handler.js + const CallbackKind = { UNKNOWN: 0, DATA: 1, @@ -55546,6 +60732,7 @@ class MessageHandler { ;// CONCATENATED MODULE: ./src/core/worker_stream.js + class PDFWorkerStream { constructor(msgHandler) { this._msgHandler = msgHandler; @@ -55661,6 +60848,26 @@ class PDFWorkerStreamRangeReader { + + + + + + + + + + + + + + + + + + + + class WorkerTask { constructor(name) { @@ -55710,7 +60917,7 @@ class WorkerMessageHandler { docId, apiVersion } = docParams; - const workerVersion = "4.4.168"; + const workerVersion = "4.5.136"; if (apiVersion !== workerVersion) { throw new Error(`The API version "${apiVersion}" does not match ` + `the Worker version "${workerVersion}".`); } @@ -56178,7 +61385,8 @@ class WorkerMessageHandler { task, intent: data.intent, cacheKey: data.cacheKey, - annotationStorage: data.annotationStorage + annotationStorage: data.annotationStorage, + modifiedIds: data.modifiedIds }).then(function (operatorListInfo) { finishWorkerTask(task); if (start) { @@ -56280,8 +61488,8 @@ if (typeof window === "undefined" && !isNodeJS && typeof self !== "undefined" && ;// CONCATENATED MODULE: ./src/pdf.worker.js -const pdfjsVersion = "4.4.168"; -const pdfjsBuild = "19fbc8998"; +const pdfjsVersion = "4.5.136"; +const pdfjsBuild = "3a21f03b0"; var __webpack_exports__WorkerMessageHandler = __webpack_exports__.WorkerMessageHandler; export { __webpack_exports__WorkerMessageHandler as WorkerMessageHandler }; diff --git a/cps/static/js/libs/viewer.mjs b/cps/static/js/libs/viewer.mjs index e7027c1e..ba57b079 100644 --- a/cps/static/js/libs/viewer.mjs +++ b/cps/static/js/libs/viewer.mjs @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * JavaScript code in this page * - * Copyright 2023 Mozilla Foundation + * 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. @@ -446,7 +446,7 @@ class ProgressBar { } } setDisableAutoFetch(delay = 5000) { - if (isNaN(this.#percent)) { + if (this.#percent === 100 || isNaN(this.#percent)) { return; } if (this.#disableAutoFetchTimeout) { @@ -535,15 +535,20 @@ function toggleExpandedBtn(button, toggle, view = null) { ;// CONCATENATED MODULE: ./web/app_options.js { - var compatibilityParams = Object.create(null); + var compatParams = new Map(); const userAgent = navigator.userAgent || ""; const platform = navigator.platform || ""; const maxTouchPoints = navigator.maxTouchPoints || 1; const isAndroid = /Android/.test(userAgent); const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; - (function checkCanvasSizeLimitation() { + (function () { if (isIOS || isAndroid) { - compatibilityParams.maxCanvasPixels = 5242880; + compatParams.set("maxCanvasPixels", 5242880); + } + })(); + (function () { + if (isAndroid) { + compatParams.set("useSystemFonts", false); } })(); } @@ -552,9 +557,21 @@ const OptionKind = { 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 @@ -563,6 +580,16 @@ const defaultOptions = { value: false, kind: OptionKind.BROWSER }, + localeProperties: { + value: { + lang: navigator.language || "en-US" + }, + kind: OptionKind.BROWSER + }, + nimbusDataStr: { + value: "", + kind: OptionKind.BROWSER + }, supportsCaretBrowsingMode: { value: false, kind: OptionKind.BROWSER @@ -587,6 +614,14 @@ const defaultOptions = { 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 @@ -619,6 +654,14 @@ const defaultOptions = { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, + enableAltText: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableGuessAltText: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, enableHighlightEditor: { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE @@ -627,10 +670,6 @@ const defaultOptions = { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, - enableML: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, enablePermissions: { value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE @@ -643,8 +682,8 @@ const defaultOptions = { value: true, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, - enableStampEditor: { - value: true, + enableUpdatedAddImage: { + value: false, kind: OptionKind.VIEWER + OptionKind.PREFERENCE }, externalLinkRel: { @@ -775,6 +814,11 @@ const defaultOptions = { value: "../web/standard_fonts/", kind: OptionKind.API }, + useSystemFonts: { + value: undefined, + kind: OptionKind.API, + type: Type.BOOLEAN + Type.UNDEFINED + }, verbosity: { value: 1, kind: OptionKind.API @@ -807,62 +851,80 @@ const defaultOptions = { value: false, kind: OptionKind.VIEWER }; - defaultOptions.locale = { - value: navigator.language || "en-US", - kind: OptionKind.VIEWER - }; } -const userOptions = Object.create(null); +const userOptions = new Map(); { - for (const name in compatibilityParams) { - userOptions[name] = compatibilityParams[name]; + for (const [name, value] of compatParams) { + userOptions.set(name, value); } } class AppOptions { + static eventBus; constructor() { throw new Error("Cannot initialize AppOptions."); } static get(name) { - return userOptions[name] ?? defaultOptions[name]?.value ?? undefined; + return userOptions.has(name) ? userOptions.get(name) : defaultOptions[name]?.value; } static getAll(kind = null, defaultOnly = false) { const options = Object.create(null); for (const name in defaultOptions) { - const defaultOption = defaultOptions[name]; - if (kind && !(kind & defaultOption.kind)) { + const defaultOpt = defaultOptions[name]; + if (kind && !(kind & defaultOpt.kind)) { continue; } - options[name] = defaultOnly ? defaultOption.value : userOptions[name] ?? defaultOption.value; + options[name] = !defaultOnly && userOptions.has(name) ? userOptions.get(name) : defaultOpt.value; } return options; } static set(name, value) { - userOptions[name] = value; + this.setAll({ + [name]: value + }); } - static setAll(options, init = false) { - if (init) { - if (this.get("disablePreferences")) { - return; - } - for (const name in userOptions) { - if (compatibilityParams[name] !== undefined) { - continue; - } - console.warn("setAll: The Preferences may override manually set AppOptions; " + 'please use the "disablePreferences"-option in order to prevent that.'); - break; - } - } + static setAll(options, prefs = false) { + let events; for (const name in options) { - userOptions[name] = options[name]; + 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); + } + userOptions.set(name, userOpt); + } + if (events) { + for (const [name, value] of events) { + this.eventBus.dispatch(name.toLowerCase(), { + source: this, + value + }); + } } } - static remove(name) { - delete userOptions[name]; - const val = compatibilityParams[name]; - if (val !== undefined) { - userOptions[name] = val; +} +{ + AppOptions._checkDisablePreferences = () => { + if (AppOptions.get("disablePreferences")) { + return true; } - } + for (const [name] of userOptions) { + if (compatParams.has(name)) { + continue; + } + console.warn("The Preferences may override manually set AppOptions; " + 'please use the "disablePreferences"-option to prevent that.'); + break; + } + return false; + }; } ;// CONCATENATED MODULE: ./web/pdf_link_service.js @@ -1171,26 +1233,27 @@ class PDFLinkService { if (!(typeof zoom === "object" && typeof zoom?.name === "string")) { return false; } + const argsLen = args.length; let allowNull = true; switch (zoom.name) { case "XYZ": - if (args.length !== 3) { + if (argsLen < 2 || argsLen > 3) { return false; } break; case "Fit": case "FitB": - return args.length === 0; + return argsLen === 0; case "FitH": case "FitBH": case "FitV": case "FitBV": - if (args.length !== 1) { + if (argsLen > 1) { return false; } break; case "FitR": - if (args.length !== 4) { + if (argsLen !== 4) { return false; } allowNull = false; @@ -1240,7 +1303,6 @@ const { noContextMenu, normalizeUnicode, OPS, - Outliner, PasswordResponses, PDFDataRangeTransport, PDFDateString, @@ -1248,12 +1310,10 @@ const { PermissionFlag, PixelsPerInch, RenderingCancelledException, - renderTextLayer, setLayerDimensions, shadow, TextLayer, UnexpectedResponseException, - updateTextLayer, Util, VerbosityLevel, version, @@ -1401,40 +1461,28 @@ class BaseExternalServices { updateEditorStates(data) { throw new Error("Not implemented: updateEditorStates"); } - async getNimbusExperimentData() {} - async getGlobalEventNames() { - return null; - } dispatchGlobalEvent(_event) {} } ;// CONCATENATED MODULE: ./web/preferences.js class BasePreferences { - #browserDefaults = Object.freeze({ - canvasMaxAreaInBytes: -1, - isInAutomation: false, - supportsCaretBrowsingMode: false, - supportsDocumentFonts: true, - supportsIntegratedFind: false, - supportsMouseWheelZoomCtrlKey: true, - supportsMouseWheelZoomMetaKey: true, - supportsPinchToZoom: true - }); #defaults = Object.freeze({ + altTextLearnMoreUrl: "", annotationEditorMode: 0, annotationMode: 2, cursorToolOnLoad: 0, defaultZoomDelay: 400, defaultZoomValue: "", disablePageLabels: false, + enableAltText: false, + enableGuessAltText: true, enableHighlightEditor: false, enableHighlightFloatingButton: false, - enableML: false, enablePermissions: false, enablePrintAutoRotate: true, enableScripting: true, - enableStampEditor: true, + enableUpdatedAddImage: false, externalLinkTarget: 0, highlightEditorColors: "yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F", historyUpdateUrl: false, @@ -1456,7 +1504,6 @@ class BasePreferences { enableXfa: true, viewerCssTheme: 0 }); - #prefs = Object.create(null); #initializedPromise = null; constructor() { if (this.constructor === BasePreferences) { @@ -1466,16 +1513,13 @@ class BasePreferences { browserPrefs, prefs }) => { - const options = Object.create(null); - for (const [name, val] of Object.entries(this.#browserDefaults)) { - const prefVal = browserPrefs?.[name]; - options[name] = typeof prefVal === typeof val ? prefVal : val; + if (AppOptions._checkDisablePreferences()) { + return; } - for (const [name, val] of Object.entries(this.#defaults)) { - const prefVal = prefs?.[name]; - options[name] = this.#prefs[name] = typeof prefVal === typeof val ? prefVal : val; - } - AppOptions.setAll(options, true); + AppOptions.setAll({ + ...browserPrefs, + ...prefs + }, true); }); } async _writeToStorage(prefObj) { @@ -1484,58 +1528,21 @@ class BasePreferences { async _readFromStorage(prefObj) { throw new Error("Not implemented: _readFromStorage"); } - #updatePref({ - name, - value - }) { - throw new Error("Not implemented: #updatePref"); - } async reset() { await this.#initializedPromise; - const oldPrefs = structuredClone(this.#prefs); - this.#prefs = Object.create(null); - try { - await this._writeToStorage(this.#defaults); - } catch (reason) { - this.#prefs = oldPrefs; - throw reason; - } + AppOptions.setAll(this.#defaults, true); + await this._writeToStorage(this.#defaults); } async set(name, value) { await this.#initializedPromise; - const defaultValue = this.#defaults[name], - oldPrefs = structuredClone(this.#prefs); - if (defaultValue === undefined) { - throw new Error(`Set preference: "${name}" is undefined.`); - } else if (value === undefined) { - throw new Error("Set preference: no value is specified."); - } - const valueType = typeof value, - defaultType = typeof defaultValue; - if (valueType !== defaultType) { - if (valueType === "number" && defaultType === "string") { - value = value.toString(); - } else { - throw new Error(`Set preference: "${value}" is a ${valueType}, expected a ${defaultType}.`); - } - } else if (valueType === "number" && !Number.isInteger(value)) { - throw new Error(`Set preference: "${value}" must be an integer.`); - } - this.#prefs[name] = value; - try { - await this._writeToStorage(this.#prefs); - } catch (reason) { - this.#prefs = oldPrefs; - throw reason; - } + AppOptions.setAll({ + [name]: value + }, true); + await this._writeToStorage(AppOptions.getAll(OptionKind.PREFERENCE)); } async get(name) { await this.#initializedPromise; - const defaultValue = this.#defaults[name]; - if (defaultValue === undefined) { - throw new Error(`Get preference: "${name}" is undefined.`); - } - return this.#prefs[name] ?? defaultValue; + return AppOptions.get(name); } get initializedPromise() { return this.#initializedPromise; @@ -3098,13 +3105,19 @@ class Preferences extends BasePreferences { } class ExternalServices extends BaseExternalServices { async createL10n() { - return new genericl10n_GenericL10n(AppOptions.get("locale")); + return new genericl10n_GenericL10n(AppOptions.get("localeProperties")?.lang); } createScripting() { return new GenericScripting(AppOptions.get("sandboxBundleSrc")); } } class MLManager { + async isEnabledFor(_name) { + return false; + } + async deleteModel(_service) { + return null; + } async guess() { return null; } @@ -8411,6 +8424,9 @@ class AnnotationLayerBuilder { } this.div.hidden = true; } + hasEditableAnnotations() { + return !!this.annotationLayer?.hasEditableAnnotations(); + } #updatePresentationModeState(state) { if (!this.div) { return; @@ -9142,6 +9158,7 @@ class PDFPageView { #annotationMode = AnnotationMode.ENABLE_FORMS; #enableHWA = false; #hasRestrictedScaling = false; + #isEditing = false; #layerProperties = null; #loadingId = null; #previousRotation = null; @@ -9296,6 +9313,9 @@ class PDFPageView { this.reset(); this.pdfPage?.cleanup(); } + hasEditableAnnotations() { + return !!this.annotationLayer?.hasEditableAnnotations(); + } get _textHighlighter() { return shadow(this, "_textHighlighter", new TextHighlighter({ pageIndex: this.id - 1, @@ -9472,6 +9492,19 @@ class PDFPageView { this._resetZoomLayer(); } } + toggleEditingMode(isEditing) { + if (!this.hasEditableAnnotations()) { + return; + } + this.#isEditing = isEditing; + this.reset({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true + }); + } update({ scale = 0, rotation = null, @@ -9822,7 +9855,8 @@ class PDFPageView { annotationMode: this.#annotationMode, optionalContentConfigPromise: this._optionalContentConfigPromise, annotationCanvasMap: this._annotationCanvasMap, - pageColors + pageColors, + isEditing: this.#isEditing }; const renderTask = this.renderTask = pdfPage.render(renderContext); renderTask.onContinue = renderContinueCallback; @@ -9982,8 +10016,11 @@ class PDFViewer { #enableHWA = false; #enableHighlightFloatingButton = false; #enablePermissions = false; + #enableUpdatedAddImage = false; #eventAbortController = null; #mlManager = null; + #onPageRenderedCallback = null; + #switchAnnotationEditorModeTimeoutId = null; #getAllTextInProgress = false; #hiddenCopyElement = null; #interruptCopyCondition = false; @@ -9993,7 +10030,7 @@ class PDFViewer { #scaleTimeoutId = null; #textLayerMode = TextLayerMode.ENABLE; constructor(options) { - const viewerVersion = "4.4.168"; + const viewerVersion = "4.5.136"; if (version !== viewerVersion) { throw new Error(`The API version "${version}" does not match the Viewer version "${viewerVersion}".`); } @@ -10020,6 +10057,7 @@ class PDFViewer { this.#annotationEditorMode = options.annotationEditorMode ?? AnnotationEditorType.NONE; this.#annotationEditorHighlightColors = options.annotationEditorHighlightColors || null; this.#enableHighlightFloatingButton = options.enableHighlightFloatingButton === true; + this.#enableUpdatedAddImage = options.enableUpdatedAddImage === true; this.imageResourcesPath = options.imageResourcesPath || ""; this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; this.removePageBorders = options.removePageBorders || false; @@ -10425,7 +10463,7 @@ class PDFViewer { if (pdfDocument.isPureXfa) { console.warn("Warning: XFA-editing is not implemented."); } else if (isValidAnnotationEditorMode(mode)) { - this.#annotationEditorUIManager = new AnnotationEditorUIManager(this.container, viewer, this.#altTextManager, eventBus, pdfDocument, pageColors, this.#annotationEditorHighlightColors, this.#enableHighlightFloatingButton, this.#mlManager); + this.#annotationEditorUIManager = new AnnotationEditorUIManager(this.container, viewer, this.#altTextManager, eventBus, pdfDocument, pageColors, this.#annotationEditorHighlightColors, this.#enableHighlightFloatingButton, this.#enableUpdatedAddImage, this.#mlManager); eventBus.dispatch("annotationeditoruimanager", { source: this, uiManager: this.#annotationEditorUIManager @@ -10584,6 +10622,7 @@ class PDFViewer { this.viewer.removeAttribute("lang"); this.#hiddenCopyElement?.remove(); this.#hiddenCopyElement = null; + this.#cleanupSwitchAnnotationEditorMode(); } #ensurePageViewVisible() { if (this._scrollMode !== ScrollMode.PAGE) { @@ -10956,6 +10995,34 @@ class PDFViewer { 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); } @@ -11388,6 +11455,16 @@ class PDFViewer { get containerTopLeft() { return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft]; } + #cleanupSwitchAnnotationEditorMode() { + if (this.#onPageRenderedCallback) { + this.eventBus._off("pagerendered", this.#onPageRenderedCallback); + this.#onPageRenderedCallback = null; + } + if (this.#switchAnnotationEditorModeTimeoutId !== null) { + clearTimeout(this.#switchAnnotationEditorModeTimeoutId); + this.#switchAnnotationEditorModeTimeoutId = null; + } + } get annotationEditorMode() { return this.#annotationEditorUIManager ? this.#annotationEditorMode : AnnotationEditorType.DISABLE; } @@ -11408,12 +11485,47 @@ class PDFViewer { if (!this.pdfDocument) { return; } - this.#annotationEditorMode = mode; - this.eventBus.dispatch("annotationeditormodechanged", { - source: this, - mode - }); - this.#annotationEditorUIManager.updateMode(mode, editId, isFromKeyboard); + const { + eventBus + } = this; + const updater = () => { + this.#cleanupSwitchAnnotationEditorMode(); + this.#annotationEditorMode = mode; + this.#annotationEditorUIManager.updateMode(mode, editId, isFromKeyboard); + 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(); + } + for (const pageView of this._pages) { + pageView.toggleEditingMode(isEditing); + } + const idsToRefresh = this.#switchToEditAnnotationMode(); + if (isEditing && idsToRefresh) { + this.#cleanupSwitchAnnotationEditorMode(); + this.#onPageRenderedCallback = ({ + pageNumber + }) => { + idsToRefresh.delete(pageNumber); + if (idsToRefresh.size === 0) { + this.#switchAnnotationEditorModeTimeoutId = setTimeout(updater, 0); + } + }; + const { + signal + } = this.#eventAbortController; + eventBus._on("pagerendered", this.#onPageRenderedCallback, { + signal + }); + return; + } + } + updater(); } set annotationEditorParams({ type, @@ -11721,7 +11833,7 @@ class SecondaryToolbar { class Toolbar { #opts; - constructor(options, eventBus) { + constructor(options, eventBus, toolbarDensity = 0) { this.#opts = options; this.eventBus = eventBus; const buttons = [{ @@ -11806,8 +11918,13 @@ class Toolbar { break; } }); + eventBus._on("toolbardensity", this.#updateToolbarDensity.bind(this)); + this.#updateToolbarDensity({ + value: toolbarDensity + }); this.reset(); } + #updateToolbarDensity() {} #setAnnotationEditorUIManager(uiManager, parentContainer) { const colorPicker = new ColorPicker({ uiManager @@ -12078,7 +12195,6 @@ class ViewHistory { const FORCE_PAGES_LOADED_TIMEOUT = 10000; -const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; const ViewOnLoad = { UNKNOWN: -1, PREVIOUS: 0, @@ -12110,18 +12226,17 @@ const PDFViewerApplication = { store: null, downloadManager: null, overlayManager: null, - preferences: null, + preferences: new Preferences(), toolbar: null, secondaryToolbar: null, eventBus: null, l10n: null, annotationEditorParams: null, isInitialViewSet: false, - downloadComplete: false, isViewerEmbedded: window.parent !== window, url: "", baseUrl: "", - _allowedGlobalEventsPromise: null, + mlManager: null, _downloadUrl: "", _eventBusAbortController: null, _windowAbortController: null, @@ -12141,11 +12256,9 @@ const PDFViewerApplication = { _printAnnotationStoragePromise: null, _touchInfo: null, _isCtrlKeyDown: false, - _nimbusDataPromise: null, _caretBrowsing: null, _isScrolling: false, async initialize(appConfig) { - let l10nPromise; this.appConfig = appConfig; try { await this.preferences.initializedPromise; @@ -12167,8 +12280,7 @@ const PDFViewerApplication = { if (mode) { document.documentElement.classList.add(mode); } - l10nPromise = this.externalServices.createL10n(); - this.l10n = await l10nPromise; + this.l10n = await this.externalServices.createL10n(); document.getElementsByTagName("html")[0].dir = this.l10n.getDirection(); this.l10n.translate(appConfig.appContainer || document.documentElement); if (this.isViewerEmbedded && AppOptions.get("externalLinkTarget") === LinkTarget.NONE) { @@ -12257,7 +12369,9 @@ const PDFViewerApplication = { } } if (params.has("locale")) { - AppOptions.set("locale", params.get("locale")); + AppOptions.set("localeProperties", { + lang: params.get("locale") + }); } }, async _initializeViewerComponents() { @@ -12318,6 +12432,7 @@ const PDFViewerApplication = { annotationEditorMode, annotationEditorHighlightColors: AppOptions.get("highlightEditorColors"), enableHighlightFloatingButton: AppOptions.get("enableHighlightFloatingButton"), + enableUpdatedAddImage: AppOptions.get("enableUpdatedAddImage"), imageResourcesPath: AppOptions.get("imageResourcesPath"), enablePrintAutoRotate: AppOptions.get("enablePrintAutoRotate"), maxCanvasPixels: AppOptions.get("maxCanvasPixels"), @@ -12355,9 +12470,6 @@ const PDFViewerApplication = { } if (appConfig.annotationEditorParams) { if (annotationEditorMode !== AnnotationEditorType.DISABLE) { - if (AppOptions.get("enableStampEditor")) { - appConfig.toolbar?.editorStampButton?.classList.remove("hidden"); - } const editorHighlightButton = appConfig.toolbar?.editorHighlightButton; if (editorHighlightButton && AppOptions.get("enableHighlightEditor")) { editorHighlightButton.hidden = false; @@ -12380,7 +12492,7 @@ const PDFViewerApplication = { }); } if (appConfig.toolbar) { - this.toolbar = new Toolbar(appConfig.toolbar, eventBus); + this.toolbar = new Toolbar(appConfig.toolbar, eventBus, AppOptions.get("toolbarDensity")); } if (appConfig.secondaryToolbar) { this.secondaryToolbar = new SecondaryToolbar(appConfig.secondaryToolbar, eventBus); @@ -12437,7 +12549,6 @@ const PDFViewerApplication = { } }, async run(config) { - this.preferences = new Preferences(); await this.initialize(config); const { appConfig, @@ -12514,9 +12625,6 @@ const PDFViewerApplication = { get externalServices() { return shadow(this, "externalServices", new ExternalServices()); }, - get mlManager() { - return shadow(this, "mlManager", AppOptions.get("enableML") === true ? new MLManager() : null); - }, get initialized() { return this._initializedCapability.settled; }, @@ -12597,12 +12705,10 @@ const PDFViewerApplication = { let title = pdfjs_getPdfFilenameFromUrl(url, ""); if (!title) { try { - title = decodeURIComponent(getFilenameFromUrl(url)) || url; - } catch { - title = url; - } + title = decodeURIComponent(getFilenameFromUrl(url)); + } catch {} } - this.setTitle(title); + this.setTitle(title || url); }, setTitle(title = this._title) { this._title = title; @@ -12648,7 +12754,6 @@ const PDFViewerApplication = { this.pdfLinkService.externalLinkEnabled = true; this.store = null; this.isInitialViewSet = false; - this.downloadComplete = false; this.url = ""; this.baseUrl = ""; this._downloadUrl = ""; @@ -12724,9 +12829,7 @@ const PDFViewerApplication = { async download(options = {}) { let data; try { - if (this.downloadComplete) { - data = await this.pdfDocument.getData(); - } + data = await this.pdfDocument.getData(); } catch {} this.downloadManager.download(data, this._downloadUrl, this._docFilename, options); }, @@ -12793,11 +12896,8 @@ const PDFViewerApplication = { return message; }, progress(level) { - if (!this.loadingBar || this.downloadComplete) { - return; - } const percent = Math.round(level * 100); - if (percent <= this.loadingBar.percent) { + if (!this.loadingBar || percent <= this.loadingBar.percent) { return; } this.loadingBar.percent = percent; @@ -12811,7 +12911,6 @@ const PDFViewerApplication = { length }) => { this._contentLength = length; - this.downloadComplete = true; this.loadingBar?.hide(); firstPagePromise.then(() => { this.eventBus.dispatch("documentloaded", { @@ -13413,9 +13512,6 @@ const PDFViewerApplication = { }); } addWindowResolutionChange(); - window.addEventListener("visibilitychange", webViewerVisibilityChange, { - signal - }); window.addEventListener("wheel", webViewerWheel, { passive: false, signal @@ -13730,7 +13826,7 @@ function webViewerHashchange(evt) { } } { - /*var webViewerFileInputChange = function (evt) { + var webViewerFileInputChange = function (evt) { if (PDFViewerApplication.pdfViewer?.isInPresentationMode) { return; } @@ -13742,7 +13838,7 @@ function webViewerHashchange(evt) { }; var webViewerOpenFile = function (evt) { PDFViewerApplication._openFileInput?.click(); - };*/ + }; } function webViewerPresentationMode() { PDFViewerApplication.requestPresentationMode(); @@ -13876,20 +13972,6 @@ function webViewerPageChanging({ function webViewerResolutionChange(evt) { PDFViewerApplication.pdfViewer.refresh(); } -function webViewerVisibilityChange(evt) { - if (document.visibilityState === "visible") { - setZoomDisabledTimeout(); - } -} -let zoomDisabledTimeout = null; -function setZoomDisabledTimeout() { - if (zoomDisabledTimeout) { - clearTimeout(zoomDisabledTimeout); - } - zoomDisabledTimeout = setTimeout(function () { - zoomDisabledTimeout = null; - }, WHEEL_ZOOM_DISABLED_TIMEOUT); -} function webViewerWheel(evt) { const { pdfViewer, @@ -13907,7 +13989,7 @@ function webViewerWheel(evt) { const origin = [evt.clientX, evt.clientY]; if (isPinchToZoom || evt.ctrlKey && supportsMouseWheelZoomCtrlKey || evt.metaKey && supportsMouseWheelZoomMetaKey) { evt.preventDefault(); - if (PDFViewerApplication._isScrolling || zoomDisabledTimeout || document.visibilityState === "hidden" || PDFViewerApplication.overlayManager.active) { + if (PDFViewerApplication._isScrolling || document.visibilityState === "hidden" || PDFViewerApplication.overlayManager.active) { return; } if (isPinchToZoom && supportsPinchToZoom) { @@ -14335,14 +14417,20 @@ function webViewerReportTelemetry({ }) { PDFViewerApplication.externalServices.reportTelemetry(details); } +function webViewerSetPreference({ + name, + value +}) { + PDFViewerApplication.preferences.set(name, value); +} ;// CONCATENATED MODULE: ./web/viewer.js -const pdfjsVersion = "4.4.168"; -const pdfjsBuild = "19fbc8998"; +const pdfjsVersion = "4.5.136"; +const pdfjsBuild = "3a21f03b0"; const AppConstants = { LinkTarget: LinkTarget, RenderingStates: RenderingStates, From 074aed699799a3e3a91bddb95c471ff3dddcedae Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Wed, 7 Aug 2024 17:23:41 +0200 Subject: [PATCH 4/7] Fix deprecation warning datetime Started metadata parsing for audio files --- cps/audio.py | 79 +++++++++++++++++++++++++++++++++++ cps/cw_login/login_manager.py | 4 +- cps/editbooks.py | 6 +-- cps/helper.py | 6 +-- cps/kobo.py | 8 ++-- cps/kobo_sync_status.py | 4 +- cps/shelf.py | 10 ++--- cps/tasks/thumbnail.py | 8 ++-- cps/ub.py | 8 ++-- cps/uploader.py | 9 ++++ optional-requirements.txt | 1 + 11 files changed, 116 insertions(+), 27 deletions(-) create mode 100644 cps/audio.py diff --git a/cps/audio.py b/cps/audio.py new file mode 100644 index 00000000..162b5566 --- /dev/null +++ b/cps/audio.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- + +# This file is part of the Calibre-Web (https://github.com/janeczku/calibre-web) +# Copyright (C) 2024 Ozzieisaacs +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import os + +import mutagen +import base64 + +from cps.constants import BookMeta + + +def get_audio_file_info(tmp_file_path, original_file_extension, original_file_name): + tmp_cover_name = None + audio_file = mutagen.File(tmp_file_path) + if original_file_extension in [".mp3", ".wav"]: + title = audio_file.tags.get('TIT2').text[0] if "TIT2" in audio_file.tags else None + author = audio_file.tags.get('TPE1').text[0] if "TPE1" in audio_file.tags else None + if author is None: + author = audio_file.tags.get('TPE2').text[0] if "TPE2" in audio_file.tags else None + comments = audio_file.tags.get('COMM').text[0] if "COMM" in audio_file.tags else None + tags = audio_file.tags.get('TCON').text[0] if "TCON" in audio_file.tags else None # Genre + series = audio_file.tags.get('TALB').text[0] if "TALB" in audio_file.tags else None# Album + series_id = audio_file.tags.get('TRCK').text[0] if "TRCK" in audio_file.tags else None # track no. + publisher = audio_file.tags.get('TPUB').text[0] if "TPUB" in audio_file.tags else None + pubdate = audio_file.tags.get('XDOR').text[0] if "XDOR" in audio_file.tags else None + cover_data = audio_file.tags.get('APIC:') + if cover_data: + tmp_cover_name = os.path.join(os.path.dirname(tmp_file_path), 'cover.jpg') + with open(tmp_cover_name, "wb") as cover_file: + cover_file.write(cover_data.data) + elif original_file_extension in [".ogg", ".flac"]: + title = audio_file.tags.get('TITLE')[0] if "TITLE" in audio_file else None + author = audio_file.tags.get('ARTIST')[0] if "ARTIST" in audio_file else None + comments = None # audio_file.tags.get('COMM', None) + tags = "" + series = audio_file.tags.get('ALBUM')[0] if "ALBUM" in audio_file else None + series_id = audio_file.tags.get('TRACKNUMBER')[0] if "TRACKNUMBER" in audio_file else None + publisher = audio_file.tags.get('LABEL')[0] if "LABEL" in audio_file else None + pubdate = audio_file.tags.get('DATE')[0] if "DATE" in audio_file else None + cover_data = audio_file.tags.get('METADATA_BLOCK_PICTURE') + if cover_data: + tmp_cover_name = os.path.join(os.path.dirname(tmp_file_path), 'cover.jpg') + with open(tmp_cover_name, "wb") as cover_file: + cover_file.write(mutagen.flac.Picture(base64.b64decode(cover_data[0])).data) + if hasattr(audio_file, "pictures"): + tmp_cover_name = os.path.join(os.path.dirname(tmp_file_path), 'cover.jpg') + with open(tmp_cover_name, "wb") as cover_file: + cover_file.write(audio_file.pictures[0].data) + + return BookMeta( + file_path=tmp_file_path, + extension=original_file_extension, + title=title or original_file_name , + author="Unknown" if author is None else author, + cover=tmp_cover_name, + description="" if comments is None else comments, + tags="" if tags is None else tags, + series="" if series is None else series, + series_id="1" if series_id is None else series_id.split("/")[0], + languages="", + publisher= "" if publisher is None else publisher, + pubdate="" if pubdate is None else pubdate, + identifiers=[], + ) diff --git a/cps/cw_login/login_manager.py b/cps/cw_login/login_manager.py index 21dc803d..23ba52e7 100644 --- a/cps/cw_login/login_manager.py +++ b/cps/cw_login/login_manager.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, UTC from datetime import timedelta import hashlib @@ -496,7 +496,7 @@ class LoginManager: duration = timedelta(seconds=duration) try: - expires = datetime.utcnow() + duration + expires = datetime.now(UTC) + duration except TypeError as e: raise Exception( "REMEMBER_COOKIE_DURATION must be a datetime.timedelta," diff --git a/cps/editbooks.py b/cps/editbooks.py index c1f96df1..8cb65b02 100644 --- a/cps/editbooks.py +++ b/cps/editbooks.py @@ -200,7 +200,7 @@ def edit_book(book_id): book.pubdate = db.Books.DEFAULT_PUBDATE if modify_date: - book.last_modified = datetime.utcnow() + book.last_modified = datetime.now(UTC) kobo_sync_status.remove_synced_book(edited_books_id, all=True) calibre_db.set_metadata_dirty(book.id) @@ -440,7 +440,7 @@ def edit_list_book(param): mimetype='application/json') else: return _("Parameter not found"), 400 - book.last_modified = datetime.utcnow() + book.last_modified = datetime.now(UTC) calibre_db.session.commit() # revert change for sort if automatic fields link is deactivated @@ -556,7 +556,7 @@ def table_xchange_author_title(): # toDo: Handle error edit_error = helper.update_dir_structure(edited_books_id, config.get_book_path(), input_authors[0]) if modify_date: - book.last_modified = datetime.utcnow() + book.last_modified = datetime.now(UTC) calibre_db.set_metadata_dirty(book.id) try: calibre_db.session.commit() diff --git a/cps/helper.py b/cps/helper.py index 004e1b0e..e278ac2a 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -25,7 +25,7 @@ import re import regex import shutil import socket -from datetime import datetime, timedelta +from datetime import datetime, timedelta, UTC import requests import unidecode from uuid import uuid4 @@ -793,7 +793,7 @@ def get_book_cover_thumbnail(book, resolution): .filter(ub.Thumbnail.type == THUMBNAIL_TYPE_COVER) \ .filter(ub.Thumbnail.entity_id == book.id) \ .filter(ub.Thumbnail.resolution == resolution) \ - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.utcnow())) \ + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC)) \ .first() @@ -832,7 +832,7 @@ def get_series_thumbnail(series_id, resolution): .filter(ub.Thumbnail.type == THUMBNAIL_TYPE_SERIES) \ .filter(ub.Thumbnail.entity_id == series_id) \ .filter(ub.Thumbnail.resolution == resolution) \ - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.utcnow())) \ + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) \ .first() diff --git a/cps/kobo.py b/cps/kobo.py index 3e01f410..74b85cc8 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -18,7 +18,7 @@ # along with this program. If not, see . import base64 -import datetime +from datetime import datetime, UTC import os import uuid import zipfile @@ -131,7 +131,7 @@ def convert_to_kobo_timestamp_string(timestamp): return timestamp.strftime("%Y-%m-%dT%H:%M:%SZ") except AttributeError as exc: log.debug("Timestamp not valid: {}".format(exc)) - return datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ") + return datetime.now(UTC).strftime("%Y-%m-%dT%H:%M:%SZ") @kobo.route("/v1/library/sync") @@ -375,7 +375,7 @@ def create_book_entitlement(book, archived): book_uuid = str(book.uuid) return { "Accessibility": "Full", - "ActivePeriod": {"From": convert_to_kobo_timestamp_string(datetime.datetime.utcnow())}, + "ActivePeriod": {"From": convert_to_kobo_timestamp_string(datetime.now(UTC))}, "Created": convert_to_kobo_timestamp_string(book.timestamp), "CrossRevisionId": book_uuid, "Id": book_uuid, @@ -795,7 +795,7 @@ def HandleStateRequest(book_uuid): if new_book_read_status == ub.ReadBook.STATUS_IN_PROGRESS \ and new_book_read_status != book_read.read_status: book_read.times_started_reading += 1 - book_read.last_time_started_reading = datetime.datetime.utcnow() + book_read.last_time_started_reading = datetime.datetime.now(UTC) book_read.read_status = new_book_read_status update_results_response["StatusInfoResult"] = {"Result": "Success"} except (KeyError, TypeError, ValueError, StatementError): diff --git a/cps/kobo_sync_status.py b/cps/kobo_sync_status.py index ef732aaa..46e35e9b 100644 --- a/cps/kobo_sync_status.py +++ b/cps/kobo_sync_status.py @@ -19,7 +19,7 @@ from .cw_login import current_user from . import ub -import datetime +from datetime import datetime, UTC from sqlalchemy.sql.expression import or_, and_, true # from sqlalchemy import exc @@ -58,7 +58,7 @@ def change_archived_books(book_id, state=None, message=None): archived_book = ub.ArchivedBook(user_id=current_user.id, book_id=book_id) archived_book.is_archived = state if state else not archived_book.is_archived - archived_book.last_modified = datetime.datetime.utcnow() # toDo. Check utc timestamp + archived_book.last_modified = datetime.now(UTC) # toDo. Check utc timestamp ub.session.merge(archived_book) ub.session_commit(message) diff --git a/cps/shelf.py b/cps/shelf.py index c8f43446..1cf4bdb9 100644 --- a/cps/shelf.py +++ b/cps/shelf.py @@ -21,7 +21,7 @@ # along with this program. If not, see . import sys -from datetime import datetime +from datetime import datetime, UTC from flask import Blueprint, flash, redirect, request, url_for, abort from flask_babel import gettext as _ @@ -80,7 +80,7 @@ def add_to_shelf(shelf_id, book_id): return "%s is a invalid Book Id. Could not be added to Shelf" % book_id, 400 shelf.books.append(ub.BookShelf(shelf=shelf.id, book_id=book_id, order=maxOrder + 1)) - shelf.last_modified = datetime.utcnow() + shelf.last_modified = datetime.now(UTC) try: ub.session.merge(shelf) ub.session.commit() @@ -139,7 +139,7 @@ def search_to_shelf(shelf_id): for book in books_for_shelf: maxOrder += 1 shelf.books.append(ub.BookShelf(shelf=shelf.id, book_id=book, order=maxOrder)) - shelf.last_modified = datetime.utcnow() + shelf.last_modified = datetime.now(UTC) try: ub.session.merge(shelf) ub.session.commit() @@ -185,7 +185,7 @@ def remove_from_shelf(shelf_id, book_id): try: ub.session.delete(book_shelf) - shelf.last_modified = datetime.utcnow() + shelf.last_modified = datetime.now(UTC) ub.session.commit() except (OperationalError, InvalidRequestError) as e: ub.session.rollback() @@ -271,7 +271,7 @@ def order_shelf(shelf_id): for book in books_in_shelf: setattr(book, 'order', to_save[str(book.book_id)]) counter += 1 - # if order different from before -> shelf.last_modified = datetime.utcnow() + # if order different from before -> shelf.last_modified = datetime.now(UTC) try: ub.session.commit() except (OperationalError, InvalidRequestError) as e: diff --git a/cps/tasks/thumbnail.py b/cps/tasks/thumbnail.py index d2179dd9..04746c25 100644 --- a/cps/tasks/thumbnail.py +++ b/cps/tasks/thumbnail.py @@ -123,7 +123,7 @@ class TaskGenerateCoverThumbnails(CalibreTask): .query(ub.Thumbnail) \ .filter(ub.Thumbnail.type == constants.THUMBNAIL_TYPE_COVER) \ .filter(ub.Thumbnail.entity_id == book_id) \ - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.utcnow())) \ + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) \ .all() def create_book_cover_thumbnails(self, book): @@ -165,7 +165,7 @@ class TaskGenerateCoverThumbnails(CalibreTask): self.app_db_session.rollback() def update_book_cover_thumbnail(self, book, thumbnail): - thumbnail.generated_at = datetime.utcnow() + thumbnail.generated_at = datetime.now(UTC) try: self.app_db_session.commit() @@ -326,7 +326,7 @@ class TaskGenerateSeriesThumbnails(CalibreTask): .query(ub.Thumbnail) \ .filter(ub.Thumbnail.type == constants.THUMBNAIL_TYPE_SERIES) \ .filter(ub.Thumbnail.entity_id == series_id) \ - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.utcnow())) \ + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) \ .all() def create_series_thumbnail(self, series, series_books, resolution): @@ -346,7 +346,7 @@ class TaskGenerateSeriesThumbnails(CalibreTask): self.app_db_session.rollback() def update_series_thumbnail(self, series_books, thumbnail): - thumbnail.generated_at = datetime.utcnow() + thumbnail.generated_at = datetime.now(UTC) try: self.app_db_session.commit() diff --git a/cps/ub.py b/cps/ub.py index a9570dd7..8ceb52df 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -20,7 +20,7 @@ import atexit import os import sys -import datetime +from datetime import datetime, UTC import itertools import uuid from flask import session as flask_session @@ -495,11 +495,11 @@ def receive_before_flush(session, flush_context, instances): for change in itertools.chain(session.new, session.dirty): if isinstance(change, (ReadBook, KoboStatistics, KoboBookmark)): if change.kobo_reading_state: - change.kobo_reading_state.last_modified = datetime.datetime.utcnow() + change.kobo_reading_state.last_modified = datetime.now(UTC) # Maintain the last_modified bit for the Shelf table. for change in itertools.chain(session.new, session.deleted): if isinstance(change, BookShelf): - change.ub_shelf.last_modified = datetime.datetime.utcnow() + change.ub_shelf.last_modified = datetime.now(UTC) # Baseclass representing Downloads from calibre-web in app.db @@ -563,7 +563,7 @@ class Thumbnail(Base): type = Column(SmallInteger, default=constants.THUMBNAIL_TYPE_COVER) resolution = Column(SmallInteger, default=constants.COVER_THUMBNAIL_SMALL) filename = Column(String, default=filename) - generated_at = Column(DateTime, default=lambda: datetime.datetime.utcnow()) + generated_at = Column(DateTime, default=lambda: datetime.now(UTC)) expiration = Column(DateTime, nullable=True) diff --git a/cps/uploader.py b/cps/uploader.py index bb3a49b7..571f68ba 100644 --- a/cps/uploader.py +++ b/cps/uploader.py @@ -68,6 +68,13 @@ except ImportError as e: log.debug('Cannot import fb2, extracting fb2 metadata will not work: %s', e) use_fb2_meta = False +try: + from . import audio + use_audio_meta = True +except ImportError as e: + log.debug('Cannot import mutagen, extracting audio metadata will not work: %s', e) + use_audio_meta = False + def process(tmp_file_path, original_file_name, original_file_extension, rar_executable): meta = default_meta(tmp_file_path, original_file_name, original_file_extension) @@ -84,6 +91,8 @@ def process(tmp_file_path, original_file_name, original_file_extension, rar_exec original_file_name, original_file_extension, rar_executable) + elif extension_upper in [".MP3", ".OGG", ".FLAC", ".WAV"] and use_audio_meta: + meta = audio.get_audio_file_info(tmp_file_path, original_file_extension, original_file_name) except Exception as ex: log.warning('cannot parse metadata, using default: %s', ex) diff --git a/optional-requirements.txt b/optional-requirements.txt index d63bc41c..0d715524 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -36,6 +36,7 @@ python-dateutil>=2.1,<2.10.0 beautifulsoup4>=4.0.1,<4.13.0 faust-cchardet>=2.1.18,<2.1.20 py7zr>=0.15.0,<0.21.0 +mutagen>=1.40.0,<1.50.0 # Comics natsort>=2.2.0,<8.5.0 From a56d1c80ae8dffb6235d6cb4879531ed6065f343 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 10 Aug 2024 18:09:52 +0200 Subject: [PATCH 5/7] Remove deprecated utcnow method Bugfix mp3 cover metadata extraction --- cps/__init__.py | 3 +++ cps/audio.py | 56 +++++++++++++++++++++++++++++++++++++----- cps/db.py | 4 +-- cps/editbooks.py | 8 ++++-- cps/helper.py | 43 ++++++++++++++++---------------- cps/kobo.py | 2 +- cps/tasks/thumbnail.py | 15 ++++++----- cps/ub.py | 32 ++++++++++++------------ cps/uploader.py | 2 +- 9 files changed, 107 insertions(+), 58 deletions(-) diff --git a/cps/__init__.py b/cps/__init__.py index 2b8808fa..8b1fecdd 100644 --- a/cps/__init__.py +++ b/cps/__init__.py @@ -72,6 +72,9 @@ mimetypes.add_type('application/mpeg', '.mpeg') mimetypes.add_type('audio/mpeg', '.mp3') mimetypes.add_type('audio/x-m4a', '.m4a') mimetypes.add_type('audio/x-m4a', '.m4b') +mimetypes.add_type('audio/x-hx-aac-adts', '.aac') +mimetypes.add_type('audio/vnd.dolby.dd-raw', '.ac3') +mimetypes.add_type('video/x-ms-asf', '.asf') mimetypes.add_type('audio/ogg', '.ogg') mimetypes.add_type('application/ogg', '.oga') mimetypes.add_type('text/css', '.css') diff --git a/cps/audio.py b/cps/audio.py index 162b5566..f9098742 100644 --- a/cps/audio.py +++ b/cps/audio.py @@ -20,6 +20,7 @@ import os import mutagen import base64 +from . import cover from cps.constants import BookMeta @@ -27,22 +28,35 @@ from cps.constants import BookMeta def get_audio_file_info(tmp_file_path, original_file_extension, original_file_name): tmp_cover_name = None audio_file = mutagen.File(tmp_file_path) - if original_file_extension in [".mp3", ".wav"]: + comments = None + if original_file_extension in [".mp3", ".wav", ".aiff"]: + cover_data = list() + for key, val in audio_file.tags.items(): + if key.startswith("APIC:"): + cover_data.append(val) + if key.startswith("COMM:"): + comments = val.text[0] title = audio_file.tags.get('TIT2').text[0] if "TIT2" in audio_file.tags else None author = audio_file.tags.get('TPE1').text[0] if "TPE1" in audio_file.tags else None if author is None: author = audio_file.tags.get('TPE2').text[0] if "TPE2" in audio_file.tags else None - comments = audio_file.tags.get('COMM').text[0] if "COMM" in audio_file.tags else None tags = audio_file.tags.get('TCON').text[0] if "TCON" in audio_file.tags else None # Genre series = audio_file.tags.get('TALB').text[0] if "TALB" in audio_file.tags else None# Album series_id = audio_file.tags.get('TRCK').text[0] if "TRCK" in audio_file.tags else None # track no. publisher = audio_file.tags.get('TPUB').text[0] if "TPUB" in audio_file.tags else None - pubdate = audio_file.tags.get('XDOR').text[0] if "XDOR" in audio_file.tags else None - cover_data = audio_file.tags.get('APIC:') + pubdate = str(audio_file.tags.get('TDRL').text[0]) if "TDRL" in audio_file.tags else None + if not pubdate: + pubdate = str(audio_file.tags.get('TDRC').text[0]) if "TDRC" in audio_file.tags else None + if not pubdate: + pubdate = str(audio_file.tags.get('TDOR').text[0]) if "TDOR" in audio_file.tags else None if cover_data: tmp_cover_name = os.path.join(os.path.dirname(tmp_file_path), 'cover.jpg') - with open(tmp_cover_name, "wb") as cover_file: - cover_file.write(cover_data.data) + cover_info = cover_data[0] + for dat in cover_data: + if dat.type == mutagen.id3.PictureType.COVER_FRONT: + cover_info = dat + break + cover.cover_processing(tmp_file_path, cover_info.data, "." + cover_info.mime[-3:]) elif original_file_extension in [".ogg", ".flac"]: title = audio_file.tags.get('TITLE')[0] if "TITLE" in audio_file else None author = audio_file.tags.get('ARTIST')[0] if "ARTIST" in audio_file else None @@ -61,6 +75,36 @@ def get_audio_file_info(tmp_file_path, original_file_extension, original_file_na tmp_cover_name = os.path.join(os.path.dirname(tmp_file_path), 'cover.jpg') with open(tmp_cover_name, "wb") as cover_file: cover_file.write(audio_file.pictures[0].data) + elif original_file_extension in [".aac"]: + title = audio_file.tags.get('Title').value if "title" in audio_file else None + author = audio_file.tags.get('Artist').value if "artist" in audio_file else None + comments = None # audio_file.tags.get('COMM', None) + tags = "" + series = audio_file.tags.get('Album').value if "Album" in audio_file else None + series_id = audio_file.tags.get('Track').value if "Track" in audio_file else None + publisher = audio_file.tags.get('Label').value if "Label" in audio_file else None + pubdate = audio_file.tags.get('Year').value if "Year" in audio_file else None + cover_data = audio_file.tags['Cover Art (Front)'] + if cover_data: + tmp_cover_name = os.path.join(os.path.dirname(tmp_file_path), 'cover.jpg') + with open(tmp_cover_name, "wb") as cover_file: + cover_file.write(cover_data.value.split(b"\x00",1)[1]) + elif original_file_extension in [".asf"]: + title = audio_file.tags.get('Title')[0].value if "title" in audio_file else None + author = audio_file.tags.get('Artist')[0].value if "artist" in audio_file else None + comments = None # audio_file.tags.get('COMM', None) + tags = "" + series = audio_file.tags.get('Album')[0].value if "Album" in audio_file else None + series_id = audio_file.tags.get('Track')[0].value if "Track" in audio_file else None + publisher = audio_file.tags.get('Label')[0].value if "Label" in audio_file else None + pubdate = audio_file.tags.get('Year')[0].value if "Year" in audio_file else None + cover_data = audio_file.tags['WM/Picture'] + if cover_data: + tmp_cover_name = os.path.join(os.path.dirname(tmp_file_path), 'cover.jpg') + with open(tmp_cover_name, "wb") as cover_file: + cover_file.write(cover_data[0].value) + + return BookMeta( file_path=tmp_file_path, diff --git a/cps/db.py b/cps/db.py index 62b68b47..758714ed 100644 --- a/cps/db.py +++ b/cps/db.py @@ -1029,10 +1029,10 @@ class CalibreDB: return title.strip() try: - # sqlalchemy <1.4.24 + # sqlalchemy <1.4.24 and sqlalchemy 2.0 conn = conn or self.session.connection().connection.driver_connection except AttributeError: - # sqlalchemy >1.4.24 and sqlalchemy 2.0 + # sqlalchemy >1.4.24 conn = conn or self.session.connection().connection.connection try: conn.create_function("title_sort", 1, _title_sort) diff --git a/cps/editbooks.py b/cps/editbooks.py index 8cb65b02..a143919c 100644 --- a/cps/editbooks.py +++ b/cps/editbooks.py @@ -246,8 +246,12 @@ def upload(): modify_date = False # create the function for sorting... calibre_db.update_title_sort(config) - calibre_db.session.connection().connection.connection.create_function('uuid4', 0, lambda: str(uuid4())) - + try: + # sqlalchemy 2.0 + uuid_func = calibre_db.session.connection().connection.driver_connection + except AttributeError: + uuid_func = calibre_db.session.connection().connection.connection + uuid_func.create_function('uuid4', 0,lambda: str(uuid4())) meta, error = file_handling_on_upload(requested_file) if error: return error diff --git a/cps/helper.py b/cps/helper.py index e278ac2a..a5931019 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -788,24 +788,23 @@ def get_book_cover_internal(book, resolution=None): def get_book_cover_thumbnail(book, resolution): if book and book.has_cover: - return ub.session \ - .query(ub.Thumbnail) \ - .filter(ub.Thumbnail.type == THUMBNAIL_TYPE_COVER) \ - .filter(ub.Thumbnail.entity_id == book.id) \ - .filter(ub.Thumbnail.resolution == resolution) \ - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC)) \ - .first() + return (ub.session + .query(ub.Thumbnail) + .filter(ub.Thumbnail.type == THUMBNAIL_TYPE_COVER) + .filter(ub.Thumbnail.entity_id == book.id) + .filter(ub.Thumbnail.resolution == resolution) + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) + .first()) def get_series_thumbnail_on_failure(series_id, resolution): - book = calibre_db.session \ - .query(db.Books) \ - .join(db.books_series_link) \ - .join(db.Series) \ - .filter(db.Series.id == series_id) \ - .filter(db.Books.has_cover == 1) \ - .first() - + book = (calibre_db.session + .query(db.Books) + .join(db.books_series_link) + .join(db.Series) + .filter(db.Series.id == series_id) + .filter(db.Books.has_cover == 1) + .first()) return get_book_cover_internal(book, resolution=resolution) @@ -827,13 +826,13 @@ def get_series_cover_internal(series_id, resolution=None): def get_series_thumbnail(series_id, resolution): - return ub.session \ - .query(ub.Thumbnail) \ - .filter(ub.Thumbnail.type == THUMBNAIL_TYPE_SERIES) \ - .filter(ub.Thumbnail.entity_id == series_id) \ - .filter(ub.Thumbnail.resolution == resolution) \ - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) \ - .first() + return (ub.session + .query(ub.Thumbnail) + .filter(ub.Thumbnail.type == THUMBNAIL_TYPE_SERIES) + .filter(ub.Thumbnail.entity_id == series_id) + .filter(ub.Thumbnail.resolution == resolution) + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) + .first()) # saves book cover from url diff --git a/cps/kobo.py b/cps/kobo.py index 74b85cc8..8e5eed55 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -795,7 +795,7 @@ def HandleStateRequest(book_uuid): if new_book_read_status == ub.ReadBook.STATUS_IN_PROGRESS \ and new_book_read_status != book_read.read_status: book_read.times_started_reading += 1 - book_read.last_time_started_reading = datetime.datetime.now(UTC) + book_read.last_time_started_reading = datetime.now(UTC) book_read.read_status = new_book_read_status update_results_response["StatusInfoResult"] = {"Result": "Success"} except (KeyError, TypeError, ValueError, StatementError): diff --git a/cps/tasks/thumbnail.py b/cps/tasks/thumbnail.py index 04746c25..76930953 100644 --- a/cps/tasks/thumbnail.py +++ b/cps/tasks/thumbnail.py @@ -20,14 +20,13 @@ import os from shutil import copyfile, copyfileobj from urllib.request import urlopen from io import BytesIO +from datetime import datetime, UTC from .. import constants from cps import config, db, fs, gdriveutils, logger, ub from cps.services.worker import CalibreTask, STAT_CANCELLED, STAT_ENDED -from datetime import datetime from sqlalchemy import func, text, or_ from flask_babel import lazy_gettext as N_ - try: from wand.image import Image use_IM = True @@ -322,12 +321,12 @@ class TaskGenerateSeriesThumbnails(CalibreTask): .all() def get_series_thumbnails(self, series_id): - return self.app_db_session \ - .query(ub.Thumbnail) \ - .filter(ub.Thumbnail.type == constants.THUMBNAIL_TYPE_SERIES) \ - .filter(ub.Thumbnail.entity_id == series_id) \ - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) \ - .all() + return (self.app_db_session + .query(ub.Thumbnail) + .filter(ub.Thumbnail.type == constants.THUMBNAIL_TYPE_SERIES) + .filter(ub.Thumbnail.entity_id == series_id) + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) + .all()) def create_series_thumbnail(self, series, series_books, resolution): thumbnail = ub.Thumbnail() diff --git a/cps/ub.py b/cps/ub.py index 8ceb52df..86184c72 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -20,7 +20,7 @@ import atexit import os import sys -from datetime import datetime, UTC +from datetime import datetime, UTC, timedelta import itertools import uuid from flask import session as flask_session @@ -77,7 +77,7 @@ def store_user_session(): if flask_session.get('_user_id', ""): try: if not check_user_session(_user, _id, _random): - expiry = int((datetime.datetime.now() + datetime.timedelta(days=31)).timestamp()) + expiry = int((datetime.now() + timedelta(days=31)).timestamp()) user_session = User_Sessions(_user, _id, _random, expiry) session.add(user_session) session.commit() @@ -109,7 +109,7 @@ def check_user_session(user_id, session_key, random): User_Sessions.random == random, ).one_or_none() if found is not None: - new_expiry = int((datetime.datetime.now() + datetime.timedelta(days=31)).timestamp()) + new_expiry = int((datetime.now() + timedelta(days=31)).timestamp()) if new_expiry - found.expiry > 86400: found.expiry = new_expiry session.merge(found) @@ -370,8 +370,8 @@ class Shelf(Base): user_id = Column(Integer, ForeignKey('user.id')) kobo_sync = Column(Boolean, default=False) books = relationship("BookShelf", backref="ub_shelf", cascade="all, delete-orphan", lazy="dynamic") - created = Column(DateTime, default=datetime.datetime.utcnow) - last_modified = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) + created = Column(DateTime, default=lambda: datetime.now(UTC)) + last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) def __repr__(self): return '' % (self.id, self.name) @@ -385,7 +385,7 @@ class BookShelf(Base): book_id = Column(Integer) order = Column(Integer) shelf = Column(Integer, ForeignKey('shelf.id')) - date_added = Column(DateTime, default=datetime.datetime.utcnow) + date_added = Column(DateTime, default=lambda: datetime.now(UTC)) def __repr__(self): return '' % self.id @@ -398,7 +398,7 @@ class ShelfArchive(Base): id = Column(Integer, primary_key=True) uuid = Column(String) user_id = Column(Integer, ForeignKey('user.id')) - last_modified = Column(DateTime, default=datetime.datetime.utcnow) + last_modified = Column(DateTime, default=lambda: datetime.now(UTC)) class ReadBook(Base): @@ -418,7 +418,7 @@ class ReadBook(Base): cascade="all", backref=backref("book_read_link", uselist=False)) - last_modified = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) + last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) last_time_started_reading = Column(DateTime, nullable=True) times_started_reading = Column(Integer, default=0, nullable=False) @@ -441,7 +441,7 @@ class ArchivedBook(Base): user_id = Column(Integer, ForeignKey('user.id')) book_id = Column(Integer) is_archived = Column(Boolean, unique=False) - last_modified = Column(DateTime, default=datetime.datetime.utcnow) + last_modified = Column(DateTime, default=lambda: datetime.now(UTC)) class KoboSyncedBooks(Base): @@ -460,8 +460,8 @@ class KoboReadingState(Base): id = Column(Integer, primary_key=True, autoincrement=True) user_id = Column(Integer, ForeignKey('user.id')) book_id = Column(Integer) - last_modified = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) - priority_timestamp = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) + last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) + priority_timestamp = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) current_bookmark = relationship("KoboBookmark", uselist=False, backref="kobo_reading_state", cascade="all, delete") statistics = relationship("KoboStatistics", uselist=False, backref="kobo_reading_state", cascade="all, delete") @@ -471,7 +471,7 @@ class KoboBookmark(Base): id = Column(Integer, primary_key=True) kobo_reading_state_id = Column(Integer, ForeignKey('kobo_reading_state.id')) - last_modified = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) + last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) location_source = Column(String) location_type = Column(String) location_value = Column(String) @@ -484,7 +484,7 @@ class KoboStatistics(Base): id = Column(Integer, primary_key=True) kobo_reading_state_id = Column(Integer, ForeignKey('kobo_reading_state.id')) - last_modified = Column(DateTime, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow) + last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) remaining_time_minutes = Column(Integer) spent_reading_minutes = Column(Integer) @@ -496,7 +496,7 @@ def receive_before_flush(session, flush_context, instances): if isinstance(change, (ReadBook, KoboStatistics, KoboBookmark)): if change.kobo_reading_state: change.kobo_reading_state.last_modified = datetime.now(UTC) - # Maintain the last_modified bit for the Shelf table. + # Maintain the last_modified_bit for the Shelf table. for change in itertools.chain(session.new, session.deleted): if isinstance(change, BookShelf): change.ub_shelf.last_modified = datetime.now(UTC) @@ -539,7 +539,7 @@ class RemoteAuthToken(Base): def __init__(self): super().__init__() self.auth_token = (hexlify(os.urandom(4))).decode('utf-8') - self.expiration = datetime.datetime.now() + datetime.timedelta(minutes=10) # 10 min from now + self.expiration = datetime.now() + timedelta(minutes=10) # 10 min from now def __repr__(self): return '' % self.id @@ -614,7 +614,7 @@ def migrate_Database(_session): def clean_database(_session): # Remove expired remote login tokens - now = datetime.datetime.now() + now = datetime.now() try: _session.query(RemoteAuthToken).filter(now > RemoteAuthToken.expiration).\ filter(RemoteAuthToken.token_type != 1).delete() diff --git a/cps/uploader.py b/cps/uploader.py index 571f68ba..01b765bf 100644 --- a/cps/uploader.py +++ b/cps/uploader.py @@ -91,7 +91,7 @@ def process(tmp_file_path, original_file_name, original_file_extension, rar_exec original_file_name, original_file_extension, rar_executable) - elif extension_upper in [".MP3", ".OGG", ".FLAC", ".WAV"] and use_audio_meta: + elif extension_upper in [".MP3", ".OGG", ".FLAC", ".WAV", ".AAC", ".AIFF", ".ASF", ".MP4"] and use_audio_meta: meta = audio.get_audio_file_info(tmp_file_path, original_file_extension, original_file_name) except Exception as ex: log.warning('cannot parse metadata, using default: %s', ex) From 7a8d054b28fad35499e1c7ea89397149e3395e34 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sat, 10 Aug 2024 21:05:29 +0200 Subject: [PATCH 6/7] Make datetime utcnow compatible to older python versions --- cps/cw_login/login_manager.py | 5 +++-- cps/db.py | 6 +++--- cps/editbooks.py | 12 ++++++------ cps/helper.py | 6 +++--- cps/kobo.py | 8 ++++---- cps/kobo_sync_status.py | 4 ++-- cps/shelf.py | 10 +++++----- cps/tasks/thumbnail.py | 10 +++++----- cps/ub.py | 28 ++++++++++++++-------------- 9 files changed, 45 insertions(+), 44 deletions(-) diff --git a/cps/cw_login/login_manager.py b/cps/cw_login/login_manager.py index 23ba52e7..a3714af6 100644 --- a/cps/cw_login/login_manager.py +++ b/cps/cw_login/login_manager.py @@ -1,4 +1,5 @@ -from datetime import datetime, UTC +from datetime import datetime +from datetime import timezone from datetime import timedelta import hashlib @@ -496,7 +497,7 @@ class LoginManager: duration = timedelta(seconds=duration) try: - expires = datetime.now(UTC) + duration + expires = datetime.now(timezone.utc) + duration except TypeError as e: raise Exception( "REMEMBER_COOKIE_DURATION must be a datetime.timedelta," diff --git a/cps/db.py b/cps/db.py index 758714ed..d0edb871 100644 --- a/cps/db.py +++ b/cps/db.py @@ -20,7 +20,7 @@ import os import re import json -from datetime import datetime +from datetime import datetime, timezone from urllib.parse import quote import unidecode from weakref import WeakSet @@ -378,10 +378,10 @@ class Books(Base): title = Column(String(collation='NOCASE'), nullable=False, default='Unknown') sort = Column(String(collation='NOCASE')) author_sort = Column(String(collation='NOCASE')) - timestamp = Column(TIMESTAMP, default=datetime.utcnow) + timestamp = Column(TIMESTAMP, default=lambda: datetime.now(timezone.utc)) pubdate = Column(TIMESTAMP, default=DEFAULT_PUBDATE) series_index = Column(String, nullable=False, default="1.0") - last_modified = Column(TIMESTAMP, default=datetime.utcnow) + last_modified = Column(TIMESTAMP, default=lambda: datetime.now(timezone.utc)) path = Column(String, default="", nullable=False) has_cover = Column(Integer, default=0) uuid = Column(String) diff --git a/cps/editbooks.py b/cps/editbooks.py index a143919c..33a95fb1 100644 --- a/cps/editbooks.py +++ b/cps/editbooks.py @@ -21,7 +21,7 @@ # along with this program. If not, see . import os -from datetime import datetime, UTC +from datetime import datetime, timezone import json from shutil import copyfile from uuid import uuid4 @@ -200,7 +200,7 @@ def edit_book(book_id): book.pubdate = db.Books.DEFAULT_PUBDATE if modify_date: - book.last_modified = datetime.now(UTC) + book.last_modified = datetime.now(timezone.utc) kobo_sync_status.remove_synced_book(edited_books_id, all=True) calibre_db.set_metadata_dirty(book.id) @@ -444,7 +444,7 @@ def edit_list_book(param): mimetype='application/json') else: return _("Parameter not found"), 400 - book.last_modified = datetime.now(UTC) + book.last_modified = datetime.now(timezone.utc) calibre_db.session.commit() # revert change for sort if automatic fields link is deactivated @@ -560,7 +560,7 @@ def table_xchange_author_title(): # toDo: Handle error edit_error = helper.update_dir_structure(edited_books_id, config.get_book_path(), input_authors[0]) if modify_date: - book.last_modified = datetime.now(UTC) + book.last_modified = datetime.now(timezone.utc) calibre_db.set_metadata_dirty(book.id) try: calibre_db.session.commit() @@ -711,8 +711,8 @@ def create_book_on_upload(modify_date, meta): pubdate = datetime(101, 1, 1) # Calibre adds books with utc as timezone - db_book = db.Books(title, "", sort_authors, datetime.now(UTC), pubdate, - '1', datetime.now(UTC), path, meta.cover, db_author, [], "") + db_book = db.Books(title, "", sort_authors, datetime.now(timezone.utc), pubdate, + '1', datetime.now(timezone.utc), path, meta.cover, db_author, [], "") modify_date |= modify_database_object(input_authors, db_book.authors, db.Authors, calibre_db.session, 'author') diff --git a/cps/helper.py b/cps/helper.py index a5931019..bc95762c 100644 --- a/cps/helper.py +++ b/cps/helper.py @@ -25,7 +25,7 @@ import re import regex import shutil import socket -from datetime import datetime, timedelta, UTC +from datetime import datetime, timedelta, timezone import requests import unidecode from uuid import uuid4 @@ -793,7 +793,7 @@ def get_book_cover_thumbnail(book, resolution): .filter(ub.Thumbnail.type == THUMBNAIL_TYPE_COVER) .filter(ub.Thumbnail.entity_id == book.id) .filter(ub.Thumbnail.resolution == resolution) - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(timezone.utc))) .first()) @@ -831,7 +831,7 @@ def get_series_thumbnail(series_id, resolution): .filter(ub.Thumbnail.type == THUMBNAIL_TYPE_SERIES) .filter(ub.Thumbnail.entity_id == series_id) .filter(ub.Thumbnail.resolution == resolution) - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(timezone.utc))) .first()) diff --git a/cps/kobo.py b/cps/kobo.py index 8e5eed55..bd4deea5 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -18,7 +18,7 @@ # along with this program. If not, see . import base64 -from datetime import datetime, UTC +from datetime import datetime, timezone import os import uuid import zipfile @@ -131,7 +131,7 @@ def convert_to_kobo_timestamp_string(timestamp): return timestamp.strftime("%Y-%m-%dT%H:%M:%SZ") except AttributeError as exc: log.debug("Timestamp not valid: {}".format(exc)) - return datetime.now(UTC).strftime("%Y-%m-%dT%H:%M:%SZ") + return datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ") @kobo.route("/v1/library/sync") @@ -375,7 +375,7 @@ def create_book_entitlement(book, archived): book_uuid = str(book.uuid) return { "Accessibility": "Full", - "ActivePeriod": {"From": convert_to_kobo_timestamp_string(datetime.now(UTC))}, + "ActivePeriod": {"From": convert_to_kobo_timestamp_string(datetime.now(timezone.utc))}, "Created": convert_to_kobo_timestamp_string(book.timestamp), "CrossRevisionId": book_uuid, "Id": book_uuid, @@ -795,7 +795,7 @@ def HandleStateRequest(book_uuid): if new_book_read_status == ub.ReadBook.STATUS_IN_PROGRESS \ and new_book_read_status != book_read.read_status: book_read.times_started_reading += 1 - book_read.last_time_started_reading = datetime.now(UTC) + book_read.last_time_started_reading = datetime.now(timezone.utc) book_read.read_status = new_book_read_status update_results_response["StatusInfoResult"] = {"Result": "Success"} except (KeyError, TypeError, ValueError, StatementError): diff --git a/cps/kobo_sync_status.py b/cps/kobo_sync_status.py index 46e35e9b..357b84ef 100644 --- a/cps/kobo_sync_status.py +++ b/cps/kobo_sync_status.py @@ -19,7 +19,7 @@ from .cw_login import current_user from . import ub -from datetime import datetime, UTC +from datetime import datetime, timezone from sqlalchemy.sql.expression import or_, and_, true # from sqlalchemy import exc @@ -58,7 +58,7 @@ def change_archived_books(book_id, state=None, message=None): archived_book = ub.ArchivedBook(user_id=current_user.id, book_id=book_id) archived_book.is_archived = state if state else not archived_book.is_archived - archived_book.last_modified = datetime.now(UTC) # toDo. Check utc timestamp + archived_book.last_modified = datetime.now(timezone.utc) # toDo. Check utc timestamp ub.session.merge(archived_book) ub.session_commit(message) diff --git a/cps/shelf.py b/cps/shelf.py index 1cf4bdb9..6558e8d5 100644 --- a/cps/shelf.py +++ b/cps/shelf.py @@ -21,7 +21,7 @@ # along with this program. If not, see . import sys -from datetime import datetime, UTC +from datetime import datetime, timezone from flask import Blueprint, flash, redirect, request, url_for, abort from flask_babel import gettext as _ @@ -80,7 +80,7 @@ def add_to_shelf(shelf_id, book_id): return "%s is a invalid Book Id. Could not be added to Shelf" % book_id, 400 shelf.books.append(ub.BookShelf(shelf=shelf.id, book_id=book_id, order=maxOrder + 1)) - shelf.last_modified = datetime.now(UTC) + shelf.last_modified = datetime.now(timezone.utc) try: ub.session.merge(shelf) ub.session.commit() @@ -139,7 +139,7 @@ def search_to_shelf(shelf_id): for book in books_for_shelf: maxOrder += 1 shelf.books.append(ub.BookShelf(shelf=shelf.id, book_id=book, order=maxOrder)) - shelf.last_modified = datetime.now(UTC) + shelf.last_modified = datetime.now(timezone.utc) try: ub.session.merge(shelf) ub.session.commit() @@ -185,7 +185,7 @@ def remove_from_shelf(shelf_id, book_id): try: ub.session.delete(book_shelf) - shelf.last_modified = datetime.now(UTC) + shelf.last_modified = datetime.now(timezone.utc) ub.session.commit() except (OperationalError, InvalidRequestError) as e: ub.session.rollback() @@ -271,7 +271,7 @@ def order_shelf(shelf_id): for book in books_in_shelf: setattr(book, 'order', to_save[str(book.book_id)]) counter += 1 - # if order different from before -> shelf.last_modified = datetime.now(UTC) + # if order different from before -> shelf.last_modified = datetime.now(timezone.utc) try: ub.session.commit() except (OperationalError, InvalidRequestError) as e: diff --git a/cps/tasks/thumbnail.py b/cps/tasks/thumbnail.py index 76930953..2142b018 100644 --- a/cps/tasks/thumbnail.py +++ b/cps/tasks/thumbnail.py @@ -20,7 +20,7 @@ import os from shutil import copyfile, copyfileobj from urllib.request import urlopen from io import BytesIO -from datetime import datetime, UTC +from datetime import datetime, timezone from .. import constants from cps import config, db, fs, gdriveutils, logger, ub @@ -122,7 +122,7 @@ class TaskGenerateCoverThumbnails(CalibreTask): .query(ub.Thumbnail) \ .filter(ub.Thumbnail.type == constants.THUMBNAIL_TYPE_COVER) \ .filter(ub.Thumbnail.entity_id == book_id) \ - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) \ + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(timezone.utc))) \ .all() def create_book_cover_thumbnails(self, book): @@ -164,7 +164,7 @@ class TaskGenerateCoverThumbnails(CalibreTask): self.app_db_session.rollback() def update_book_cover_thumbnail(self, book, thumbnail): - thumbnail.generated_at = datetime.now(UTC) + thumbnail.generated_at = datetime.now(timezone.utc) try: self.app_db_session.commit() @@ -325,7 +325,7 @@ class TaskGenerateSeriesThumbnails(CalibreTask): .query(ub.Thumbnail) .filter(ub.Thumbnail.type == constants.THUMBNAIL_TYPE_SERIES) .filter(ub.Thumbnail.entity_id == series_id) - .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(UTC))) + .filter(or_(ub.Thumbnail.expiration.is_(None), ub.Thumbnail.expiration > datetime.now(timezone.utc))) .all()) def create_series_thumbnail(self, series, series_books, resolution): @@ -345,7 +345,7 @@ class TaskGenerateSeriesThumbnails(CalibreTask): self.app_db_session.rollback() def update_series_thumbnail(self, series_books, thumbnail): - thumbnail.generated_at = datetime.now(UTC) + thumbnail.generated_at = datetime.now(timezone.utc) try: self.app_db_session.commit() diff --git a/cps/ub.py b/cps/ub.py index 86184c72..e548cc12 100644 --- a/cps/ub.py +++ b/cps/ub.py @@ -20,7 +20,7 @@ import atexit import os import sys -from datetime import datetime, UTC, timedelta +from datetime import datetime, timezone, timedelta import itertools import uuid from flask import session as flask_session @@ -370,8 +370,8 @@ class Shelf(Base): user_id = Column(Integer, ForeignKey('user.id')) kobo_sync = Column(Boolean, default=False) books = relationship("BookShelf", backref="ub_shelf", cascade="all, delete-orphan", lazy="dynamic") - created = Column(DateTime, default=lambda: datetime.now(UTC)) - last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) + created = Column(DateTime, default=lambda: datetime.now(timezone.utc)) + last_modified = Column(DateTime, default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc)) def __repr__(self): return '' % (self.id, self.name) @@ -385,7 +385,7 @@ class BookShelf(Base): book_id = Column(Integer) order = Column(Integer) shelf = Column(Integer, ForeignKey('shelf.id')) - date_added = Column(DateTime, default=lambda: datetime.now(UTC)) + date_added = Column(DateTime, default=lambda: datetime.now(timezone.utc)) def __repr__(self): return '' % self.id @@ -398,7 +398,7 @@ class ShelfArchive(Base): id = Column(Integer, primary_key=True) uuid = Column(String) user_id = Column(Integer, ForeignKey('user.id')) - last_modified = Column(DateTime, default=lambda: datetime.now(UTC)) + last_modified = Column(DateTime, default=lambda: datetime.now(timezone.utc)) class ReadBook(Base): @@ -418,7 +418,7 @@ class ReadBook(Base): cascade="all", backref=backref("book_read_link", uselist=False)) - last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) + last_modified = Column(DateTime, default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc)) last_time_started_reading = Column(DateTime, nullable=True) times_started_reading = Column(Integer, default=0, nullable=False) @@ -441,7 +441,7 @@ class ArchivedBook(Base): user_id = Column(Integer, ForeignKey('user.id')) book_id = Column(Integer) is_archived = Column(Boolean, unique=False) - last_modified = Column(DateTime, default=lambda: datetime.now(UTC)) + last_modified = Column(DateTime, default=lambda: datetime.now(timezone.utc)) class KoboSyncedBooks(Base): @@ -460,8 +460,8 @@ class KoboReadingState(Base): id = Column(Integer, primary_key=True, autoincrement=True) user_id = Column(Integer, ForeignKey('user.id')) book_id = Column(Integer) - last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) - priority_timestamp = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) + last_modified = Column(DateTime, default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc)) + priority_timestamp = Column(DateTime, default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc)) current_bookmark = relationship("KoboBookmark", uselist=False, backref="kobo_reading_state", cascade="all, delete") statistics = relationship("KoboStatistics", uselist=False, backref="kobo_reading_state", cascade="all, delete") @@ -471,7 +471,7 @@ class KoboBookmark(Base): id = Column(Integer, primary_key=True) kobo_reading_state_id = Column(Integer, ForeignKey('kobo_reading_state.id')) - last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) + last_modified = Column(DateTime, default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc)) location_source = Column(String) location_type = Column(String) location_value = Column(String) @@ -484,7 +484,7 @@ class KoboStatistics(Base): id = Column(Integer, primary_key=True) kobo_reading_state_id = Column(Integer, ForeignKey('kobo_reading_state.id')) - last_modified = Column(DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) + last_modified = Column(DateTime, default=lambda: datetime.now(timezone.utc), onupdate=lambda: datetime.now(timezone.utc)) remaining_time_minutes = Column(Integer) spent_reading_minutes = Column(Integer) @@ -495,11 +495,11 @@ def receive_before_flush(session, flush_context, instances): for change in itertools.chain(session.new, session.dirty): if isinstance(change, (ReadBook, KoboStatistics, KoboBookmark)): if change.kobo_reading_state: - change.kobo_reading_state.last_modified = datetime.now(UTC) + change.kobo_reading_state.last_modified = datetime.now(timezone.utc) # Maintain the last_modified_bit for the Shelf table. for change in itertools.chain(session.new, session.deleted): if isinstance(change, BookShelf): - change.ub_shelf.last_modified = datetime.now(UTC) + change.ub_shelf.last_modified = datetime.now(timezone.utc) # Baseclass representing Downloads from calibre-web in app.db @@ -563,7 +563,7 @@ class Thumbnail(Base): type = Column(SmallInteger, default=constants.THUMBNAIL_TYPE_COVER) resolution = Column(SmallInteger, default=constants.COVER_THUMBNAIL_SMALL) filename = Column(String, default=filename) - generated_at = Column(DateTime, default=lambda: datetime.now(UTC)) + generated_at = Column(DateTime, default=lambda: datetime.now(timezone.utc)) expiration = Column(DateTime, nullable=True) From 4523a12708107408cfe26b05df7550aea1db6cd4 Mon Sep 17 00:00:00 2001 From: Ozzie Isaacs Date: Sun, 11 Aug 2024 08:21:01 +0200 Subject: [PATCH 7/7] Fixes after testrun --- cps/debug_info.py | 3 +- cps/jinjia.py | 1 - cps/kobo.py | 8 +- setup.cfg | 3 +- test/Calibre-Web TestSummary_Linux.html | 1622 +++++++++++++++-------- 5 files changed, 1065 insertions(+), 572 deletions(-) diff --git a/cps/debug_info.py b/cps/debug_info.py index 3be60700..3907f2a7 100644 --- a/cps/debug_info.py +++ b/cps/debug_info.py @@ -74,7 +74,8 @@ def send_debug(): for fp in file_list: zf.write(fp, os.path.basename(fp)) memory_zip.seek(0) - if int(__version__.split('.')[0]) < 2: + version = importlib.metadata.version("flask") + if int(version.split('.')[0]) < 2: return send_file(memory_zip, as_attachment=True, attachment_filename="Calibre-Web-debug-pack.zip") diff --git a/cps/jinjia.py b/cps/jinjia.py index 80c2b7ea..01abf5a6 100644 --- a/cps/jinjia.py +++ b/cps/jinjia.py @@ -26,7 +26,6 @@ from markupsafe import escape import datetime import mimetypes from uuid import uuid4 -import re from flask import Blueprint, request, url_for from flask_babel import format_date diff --git a/cps/kobo.py b/cps/kobo.py index bd4deea5..03fc29c3 100644 --- a/cps/kobo.py +++ b/cps/kobo.py @@ -150,15 +150,15 @@ def HandleSyncRequest(): # if no books synced don't respect sync_token if not ub.session.query(ub.KoboSyncedBooks).filter(ub.KoboSyncedBooks.user_id == current_user.id).count(): - sync_token.books_last_modified = datetime.datetime.min - sync_token.books_last_created = datetime.datetime.min - sync_token.reading_state_last_modified = datetime.datetime.min + sync_token.books_last_modified = datetime.min + sync_token.books_last_created = datetime.min + sync_token.reading_state_last_modified = datetime.min new_books_last_modified = sync_token.books_last_modified # needed for sync selected shelfs only new_books_last_created = sync_token.books_last_created # needed to distinguish between new and changed entitlement new_reading_state_last_modified = sync_token.reading_state_last_modified - new_archived_last_modified = datetime.datetime.min + new_archived_last_modified = datetime.min sync_results = [] # We reload the book database so that the user gets a fresh view of the library diff --git a/setup.cfg b/setup.cfg index 26eef25d..2d326d62 100644 --- a/setup.cfg +++ b/setup.cfg @@ -53,7 +53,7 @@ install_requires = unidecode>=0.04.19,<1.4.0 lxml>=4.9.1,<5.3.0 flask-wtf>=0.14.2,<1.3.0 - chardet>=3.0.0,<4.1.0 + chardet>=3.0.0,<5.3.0 advocate>=1.0.0,<1.1.0 Flask-Limiter>=2.3.0,<3.9.0 regex>=2022.3.2,<2024.6.25 @@ -100,6 +100,7 @@ metadata = beautifulsoup4>=4.0.1,<4.13.0 faust-cchardet>=2.1.18,<2.1.20 py7zr>=0.15.0,<0.21.0 + mutagen>=1.40.0,<1.50.0 comics = natsort>=2.2.0,<8.5.0 comicapi>=2.2.0,<3.3.0 diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html index 3bd3a93d..ccd12d1b 100644 --- a/test/Calibre-Web TestSummary_Linux.html +++ b/test/Calibre-Web TestSummary_Linux.html @@ -37,20 +37,20 @@
-

Start Time: 2024-08-03 20:30:20

+

Start Time: 2024-08-10 21:08:57

-

Stop Time: 2024-08-04 04:01:30

+

Stop Time: 2024-08-11 04:24:46

-

Duration: 6h 17 min

+

Duration: 6h 0 min

@@ -852,11 +852,11 @@ - + TestEbookConvertCalibreGDrive 7 - 7 - 0 + 6 + 1 0 0 @@ -911,11 +911,33 @@ - +
TestEbookConvertCalibreGDrive - test_email_only
- PASS + +
+ FAIL +
+ + + + @@ -972,11 +994,11 @@ - + TestEbookConvertGDriveKepubify 3 - 2 - 1 + 3 + 0 0 0 @@ -995,33 +1017,11 @@ - +
TestEbookConvertGDriveKepubify - test_convert_only
- -
- FAIL -
- - - - + PASS @@ -1248,11 +1248,11 @@ AssertionError: 1 != 3 - + TestEditBooks 38 - 36 - 0 + 31 + 5 0 2 @@ -1334,47 +1334,154 @@ AssertionError: 1 != 3 - +
TestEditBooks - test_edit_custom_float
- PASS + +
+ FAIL +
+ + + + - +
TestEditBooks - test_edit_custom_int
- PASS + +
+ FAIL +
+ + + + - +
TestEditBooks - test_edit_custom_rating
- PASS + +
+ FAIL +
+ + + + - +
TestEditBooks - test_edit_custom_single_select
- PASS + +
+ FAIL +
+ + + + - +
TestEditBooks - test_edit_custom_text
- PASS + +
+ FAIL +
+ + + + @@ -1639,12 +1746,12 @@ AssertionError: 1 != 3 - + TestEditAuthors 9 - 5 + 9 + 0 0 - 4 0 Detail @@ -1662,118 +1769,38 @@ AssertionError: 1 != 3 - +
TestEditAuthors - test_change_capital_one_author_one_book
- -
- ERROR -
- - - - + PASS - +
TestEditAuthors - test_change_capital_one_author_two_books
- -
- ERROR -
- - - - + PASS - +
TestEditAuthors - test_change_capital_one_author_two_books_coauthor
- -
- ERROR -
- - - - + PASS - +
TestEditAuthors - test_change_capital_rename_co_author
- -
- ERROR -
- - - - + PASS @@ -2206,8 +2233,8 @@ NameError: name 'SMB_LIB' is not defined
Traceback (most recent call last):
-  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_metadata.py", line 69, in test_load_metadata
-    if 'https://comicvine.gamespot.com/' == results[10]['source']:
+  File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_metadata.py", line 90, in test_load_metadata
+    elif len(results)>19 and 'https://amazon.com/' == results[20]['source']:
 IndexError: list index out of range
@@ -2219,11 +2246,11 @@ IndexError: list index out of range - + TestEditBooksOnGdrive 18 - 18 - 0 + 13 + 5 0 0 @@ -2287,47 +2314,154 @@ IndexError: list index out of range - +
TestEditBooksOnGdrive - test_edit_custom_float
- PASS + +
+ FAIL +
+ + + + - +
TestEditBooksOnGdrive - test_edit_custom_int
- PASS + +
+ FAIL +
+ + + + - +
TestEditBooksOnGdrive - test_edit_custom_rating
- PASS + +
+ FAIL +
+ + + + - +
TestEditBooksOnGdrive - test_edit_custom_single_select
- PASS + +
+ FAIL +
+ + + + - +
TestEditBooksOnGdrive - test_edit_custom_text
- PASS + +
+ FAIL +
+ + + + @@ -2396,13 +2530,13 @@ IndexError: list index out of range - + TestLoadMetadataScholar 1 - 0 1 0 0 + 0 Detail @@ -2410,41 +2544,21 @@ IndexError: list index out of range - +
TestLoadMetadataScholar - test_load_metadata
- -
- FAIL -
- - - - + PASS - + TestSTARTTLS 3 - 2 - 1 + 3 + 0 0 0 @@ -2454,33 +2568,11 @@ AssertionError: 30 != 0 - +
TestSTARTTLS - test_STARTTLS
- -
- FAIL -
- - - - + PASS @@ -2884,11 +2976,11 @@ AssertionError: 1 != 2 - + TestKoboSync 12 - 12 - 0 + 4 + 8 0 0 @@ -2898,11 +2990,35 @@ AssertionError: 1 != 2 - +
TestKoboSync - test_book_download
- PASS + +
+ FAIL +
+ + + + @@ -2934,29 +3050,101 @@ AssertionError: 1 != 2 - +
TestKoboSync - test_kobo_sync_selected_shelfs
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSync - test_shelves_add_remove_books
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSync - test_sync_changed_book
- PASS + +
+ FAIL +
+ + + + @@ -2970,48 +3158,144 @@ AssertionError: 1 != 2 - +
TestKoboSync - test_sync_reading_state
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSync - test_sync_shelf
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSync - test_sync_unchanged
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSync - test_sync_upload
- PASS + +
+ FAIL +
+ + + + - + TestKoboSyncBig 6 - 6 0 + 6 0 0 @@ -3021,56 +3305,188 @@ AssertionError: 1 != 2 - +
TestKoboSyncBig - test_download_cover
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSyncBig - test_kobo_sync_multi_user
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSyncBig - test_kobo_sync_selected_shelves
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSyncBig - test_sync_changed_book
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSyncBig - test_sync_reading_state
- PASS + +
+ FAIL +
+ + + + - +
TestKoboSyncBig - test_sync_shelf
- PASS + +
+ FAIL +
+ + + + @@ -3427,11 +3843,11 @@ AssertionError: 1 != 2 - + TestLogging 9 - 8 - 0 + 7 + 1 0 1 @@ -3459,11 +3875,33 @@ AssertionError: 1 != 2 - +
TestLogging - test_debuginfo_download
- PASS + +
+ FAIL +
+ + + + @@ -4882,6 +5320,55 @@ AssertionError: 1 != 2 + + _FailedTest + 1 + 0 + 0 + 1 + 0 + + Detail + + + + + + + +
_FailedTest - test_upload_audio
+ + +
+ ERROR +
+ + + + + + + + + TestUploadEPubs 6 @@ -4890,13 +5377,13 @@ AssertionError: 1 != 2 0 0 - Detail + Detail - +
TestUploadEPubs - test_upload_epub_comments
@@ -4905,7 +5392,7 @@ AssertionError: 1 != 2 - +
TestUploadEPubs - test_upload_epub_cover
@@ -4914,7 +5401,7 @@ AssertionError: 1 != 2 - +
TestUploadEPubs - test_upload_epub_cover_formats
@@ -4923,7 +5410,7 @@ AssertionError: 1 != 2 - +
TestUploadEPubs - test_upload_epub_duplicate
@@ -4932,7 +5419,7 @@ AssertionError: 1 != 2 - +
TestUploadEPubs - test_upload_epub_identifier
@@ -4941,7 +5428,7 @@ AssertionError: 1 != 2 - +
TestUploadEPubs - test_upload_epub_lang
@@ -4951,21 +5438,21 @@ AssertionError: 1 != 2 - + TestUserList 18 - 17 - 1 + 18 + 0 0 0 - Detail + Detail - +
TestUserList - test_edit_user_email
@@ -4974,7 +5461,7 @@ AssertionError: 1 != 2 - +
TestUserList - test_list_visibility
@@ -4983,7 +5470,7 @@ AssertionError: 1 != 2 - +
TestUserList - test_user_list_admin_role
@@ -4992,7 +5479,7 @@ AssertionError: 1 != 2 - +
TestUserList - test_user_list_check_sort
@@ -5001,7 +5488,7 @@ AssertionError: 1 != 2 - +
TestUserList - test_user_list_denied_tags
@@ -5010,7 +5497,7 @@ AssertionError: 1 != 2 - +
TestUserList - test_user_list_download_role
@@ -5019,36 +5506,16 @@ AssertionError: 1 != 2 - +
TestUserList - test_user_list_edit_button
- -
- FAIL -
- - - - + PASS - +
TestUserList - test_user_list_edit_email
@@ -5057,7 +5524,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_edit_kindle
@@ -5066,7 +5533,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_edit_language
@@ -5075,7 +5542,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_edit_locale
@@ -5084,7 +5551,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_edit_name
@@ -5093,7 +5560,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_edit_visiblility
@@ -5102,7 +5569,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_guest_edit
@@ -5111,7 +5578,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_remove_admin
@@ -5120,7 +5587,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_requests
@@ -5129,7 +5596,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_search
@@ -5138,7 +5605,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserList - test_user_list_sort
@@ -5156,13 +5623,13 @@ AssertionError: False is not true : Press cancel in User edit leads not back to 0 0 - Detail + Detail - +
TestUserLoad - test_user_change_vis
@@ -5180,13 +5647,13 @@ AssertionError: False is not true : Press cancel in User edit leads not back to 0 0 - Detail + Detail - +
TestUserTemplate - test_allow_column_restriction
@@ -5195,7 +5662,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_allow_tag_restriction
@@ -5204,7 +5671,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_archived_format_template
@@ -5213,7 +5680,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_author_user_template
@@ -5222,7 +5689,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_best_user_template
@@ -5231,7 +5698,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_category_user_template
@@ -5240,7 +5707,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_deny_column_restriction
@@ -5249,7 +5716,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_deny_tag_restriction
@@ -5258,7 +5725,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_detail_random_user_template
@@ -5267,7 +5734,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_download_user_template
@@ -5276,7 +5743,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_format_user_template
@@ -5285,7 +5752,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_hot_user_template
@@ -5294,7 +5761,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_language_user_template
@@ -5303,7 +5770,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_limit_book_languages
@@ -5312,7 +5779,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_list_user_template
@@ -5321,7 +5788,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_publisher_user_template
@@ -5330,7 +5797,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_random_user_template
@@ -5339,7 +5806,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_read_user_template
@@ -5348,7 +5815,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_recent_user_template
@@ -5357,7 +5824,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_series_user_template
@@ -5366,7 +5833,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestUserTemplate - test_ui_language_settings
@@ -5379,18 +5846,18 @@ AssertionError: False is not true : Press cancel in User edit leads not back to TestCalibreWebVisibilitys 35 - 34 - 1 + 33 + 2 0 0 - Detail + Detail - +
TestCalibreWebVisibilitys - test_about
@@ -5399,7 +5866,7 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestCalibreWebVisibilitys - test_admin_SMTP_Settings
@@ -5408,26 +5875,209 @@ AssertionError: False is not true : Press cancel in User edit leads not back to - +
TestCalibreWebVisibilitys - test_admin_add_user
+ PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_password
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_archived
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_authors
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_category
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_file_formats
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_hot
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_language
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_publisher
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_random
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_rated
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_rating
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_read
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_admin_change_visibility_series
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_allow_columns
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_allow_tags
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_archive_books
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_authors_max_settings
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_change_title
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_checked_logged_in
+ + PASS + + + + + + +
TestCalibreWebVisibilitys - test_hide_custom_column
+
- FAIL + FAIL
-