@galacean/effects-plugin-ktx2 2.9.0 → 2.9.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_function.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_native_super.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../src/ktx2-common.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_like_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js","../src/transcoder/worker-pool.ts","../src/transcoder/texture-transcoder.ts","../src/transcoder/buffer-reader.ts","../src/ktx2-container.ts","../src/transcoder/khronos-workercode.ts","../src/transcoder/khronos-transcoder.ts","../src/ktx2-loader.ts","../src/index.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","function _is_native_reflect_construct() {\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\n\nexport { _is_native_reflect_construct as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","function _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n\n return _get_prototype_of(o);\n}\nexport { _get_prototype_of as _ };\n","function _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nexport { _is_native_function as _ };\n","import { _ as _construct } from \"./_construct.js\";\nimport { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_function } from \"./_is_native_function.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") throw new TypeError(\"Super expression must either be null or a function\");\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n\n return _set_prototype_of(Wrapper, Class);\n };\n\n return _wrap_native_super(Class);\n}\nexport { _wrap_native_super as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/**\n * KTX2 transcode target format.\n */\nexport enum KTX2TargetFormat {\n /** RGB(A) compressed format, 128 bits per 4x4 pixel block. */\n ASTC = 0\n}\n\n/**\n * Texture format enumeration.\n */\nexport enum TextureFormat {\n /** RGB format, 8 bits per channel. */\n R8G8B8 = 0,\n /** RGBA format, 8 bits per channel. */\n R8G8B8A8 = 1,\n /** RGB(A) compressed format, 128 bits per 4x4 pixel block. */\n ASTC_4x4 = 2\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexport { _create_class as _ };\n","function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\nexport { _array_like_to_array as _ };\n","import { _ as _array_like_to_array } from \"./_array_like_to_array.js\";\n\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n\n var n = Object.prototype.toString.call(o).slice(8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nexport { _unsupported_iterable_to_array as _ };\n","import { _ as _unsupported_iterable_to_array } from \"./_unsupported_iterable_to_array.js\";\n\nfunction _create_for_of_iterator_helper_loose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (it) return (it = it.call(o)).next.bind(it);\n // Fallback for engines without symbol support\n if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n\n var i = 0;\n\n return function() {\n if (i >= o.length) return { done: true };\n\n return { done: false, value: o[i++] };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _create_for_of_iterator_helper_loose as _ };\n","/**\n * @internal\n * WorkerPool, T 为发送消息的类型,U 为返回值的类型。\n */\nexport class WorkerPool<T = any, U = any> {\n private taskQueue: TaskItem<T, U>[] = [];\n private workerStatus: number = 0;\n private workerItems: WorkerItem<U>[];\n private initPromises: Map<number, Promise<Worker>> = new Map();\n private destroyed = false;\n\n /**\n * WorkerPool 的构造函数。\n * @param limitedCount - worker数量上限\n * @param workerCreator - worker创建器\n */\n constructor (\n public readonly limitedCount = 2,\n private readonly workerCreator: () => Worker | Promise<Worker>,\n ) {\n if (limitedCount > 8 || limitedCount < 1) {\n throw new Error('limitedCount must be between 1 and 8');\n }\n this.workerItems = new Array<WorkerItem<U>>(limitedCount);\n }\n\n prepareWorker () {\n const count = this.limitedCount;\n const promises: Promise<Worker>[] = [];\n\n for (let i = 0; i < count; i++) {\n promises.push(this.ensureWorker(i));\n }\n\n return Promise.all(promises);\n }\n\n private ensureWorker (workerId: number): Promise<Worker> {\n if (!this.initPromises.has(workerId)) {\n this.initPromises.set(workerId, this.initWorker(workerId));\n }\n\n return this.initPromises.get(workerId)!;\n }\n\n /**\n * 向 worker 发送消息。\n * @param message - 要发送给 worker 的消息\n * @returns 返回一个消息处理结果的 Promise\n */\n postMessage (message: T): Promise<U> {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker Pool destroyed'));\n }\n\n return new Promise((resolve, reject) => {\n const workerId = this.getIdleWorkerId();\n\n if (workerId !== -1) {\n this.ensureWorker(workerId)\n .then(() => {\n if (this.destroyed) {\n throw new Error('Worker Pool destroyed');\n }\n const workerItem = this.workerItems[workerId];\n\n workerItem.resolve = resolve;\n workerItem.reject = reject;\n workerItem.worker.postMessage(message);\n })\n .catch(error => {\n this.workerStatus &= ~(1 << workerId);\n this.initPromises.delete(workerId);\n reject(error);\n });\n } else {\n this.taskQueue.push({ resolve, reject, message });\n }\n });\n }\n\n private initWorker (workerId: number): Promise<Worker> {\n return Promise.resolve(this.workerCreator()).then(worker => {\n if (this.destroyed) {\n worker.terminate();\n throw new Error('Worker Pool destroyed');\n }\n\n const onMessage = this.onMessage.bind(this, workerId);\n const onError = (event: ErrorEvent) => {\n const workerItem = this.workerItems[workerId];\n\n if (workerItem) {\n workerItem.reject(event.error || new Error(event.message || 'Worker error'));\n this.nextTask(workerId);\n }\n };\n\n worker.addEventListener('message', onMessage);\n worker.addEventListener('error', onError);\n\n this.workerItems[workerId] = {\n worker,\n resolve: () => { },\n reject: () => { },\n onMessage,\n onError,\n };\n\n return worker;\n });\n }\n\n /**\n * 获取空闲的 worker ID,并原子性地标记为忙碌\n * @returns worker ID,如果没有空闲 worker 返回 -1\n */\n private getIdleWorkerId () {\n for (let i = 0, count = this.limitedCount; i < count; i++) {\n if (!(this.workerStatus & (1 << i))) {\n this.workerStatus |= 1 << i; // ✅ 原子性标记\n\n return i;\n }\n }\n\n return -1;\n }\n\n private onMessage (workerId: number, msg: MessageEvent<U>) {\n const workerItem = this.workerItems[workerId];\n\n if (!workerItem) {\n return;\n }\n\n const error = (msg.data as ErrorMessageData).error;\n\n if (error) {\n workerItem.reject(error);\n } else {\n workerItem.resolve(msg.data);\n }\n\n this.nextTask(workerId);\n }\n\n private nextTask (workerId: number) {\n if (this.taskQueue.length) {\n const taskItem = this.taskQueue.shift() as TaskItem<T, U>;\n const workerItem = this.workerItems[workerId];\n\n if (!workerItem) {\n taskItem.reject(new Error('Worker not initialized'));\n this.workerStatus &= ~(1 << workerId);\n\n return;\n }\n\n workerItem.resolve = taskItem.resolve;\n workerItem.reject = taskItem.reject;\n workerItem.worker.postMessage(taskItem.message);\n } else {\n this.workerStatus &= ~(1 << workerId);\n }\n }\n\n destroy (): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n const workerItems = this.workerItems;\n const error = new Error('Worker Pool destroyed');\n\n for (let i = 0, n = workerItems.length; i < n; i++) {\n const workerItem = workerItems[i];\n\n if (!workerItem) { continue; }\n\n if (workerItem.onMessage) {\n workerItem.worker.removeEventListener('message', workerItem.onMessage);\n }\n if (workerItem.onError) {\n workerItem.worker.removeEventListener('error', workerItem.onError);\n }\n\n workerItem.worker.terminate();\n workerItem.reject?.(error);\n }\n\n while (this.taskQueue.length) {\n this.taskQueue.shift()?.reject(error);\n }\n\n workerItems.length = 0;\n this.taskQueue.length = 0;\n this.workerStatus = 0;\n this.initPromises.clear();\n }\n}\n\ninterface ErrorMessageData {\n error: unknown,\n}\n\ninterface WorkerItem<U> {\n worker: Worker,\n resolve: (item: U | PromiseLike<U>) => void,\n reject: (reason?: any) => void,\n onMessage?: (msg: MessageEvent<U>) => void,\n onError?: (event: ErrorEvent) => void,\n}\n\ninterface TaskItem<T, U> {\n message: T,\n resolve: (item: U | PromiseLike<U>) => void,\n reject: (reason?: any) => void,\n}\n","import { WorkerPool } from './worker-pool';\n\nexport abstract class TextureTranscoder {\n protected transcodeWorkerPool: WorkerPool;\n protected initPromise: Promise<Worker[]>;\n\n constructor (\n public readonly workerLimitCount: number,\n ) { }\n\n init () {\n if (!this.initPromise) {\n this.initPromise = this.initTranscodeWorkerPool();\n }\n\n return this.initPromise;\n }\n\n destroy () {\n this.transcodeWorkerPool?.destroy();\n }\n\n protected abstract initTranscodeWorkerPool (): Promise<Worker[]>;\n\n protected createTranscodePool (workerURL: string, transcoderWasm: WebAssembly.Module) {\n this.transcodeWorkerPool = new WorkerPool(this.workerLimitCount, () => {\n return new Promise<Worker>((resolve, reject) => {\n const worker = new Worker(workerURL);\n const msg: InitMessage = {\n type: 'init',\n transcoderWasm,\n };\n const cleanup = () => {\n worker.removeEventListener('message', onMessage);\n worker.removeEventListener('error', onError);\n };\n\n function onMessage (e: MessageEvent<{ error?: Error }>) {\n if (e.data.error) {\n reject(e.data.error);\n } else {\n worker.removeEventListener('message', onMessage);\n resolve(worker);\n }\n }\n function onError (e: ErrorEvent) {\n cleanup();\n worker.terminate();\n reject(e.error ?? new Error(e.message || 'Worker init error'));\n }\n worker.addEventListener('message', onMessage);\n worker.addEventListener('error', onError);\n worker.postMessage(msg);\n });\n });\n\n return this.transcodeWorkerPool.prepareWorker();\n }\n}\n\ntype MessageType = 'init' | 'transcode';\n\nexport interface BaseMessage {\n type: MessageType,\n}\n\nexport interface InitMessage extends BaseMessage {\n type: 'init',\n transcoderWasm: WebAssembly.Module,\n}\n\nexport type TranscodeResult = {\n width: number,\n height: number,\n hasAlpha: boolean,\n format: number,\n faces: Array<{ data: Uint8Array, width: number, height: number }>[],\n faceCount: number,\n};\n\nexport interface EncodedData {\n buffer: Uint8Array,\n levelWidth: number,\n levelHeight: number,\n uncompressedByteLength: number,\n}\n\nexport interface DecodedData {\n width: number,\n height: number,\n data: Uint8Array,\n}\n\nexport interface KhronosTranscoderMessage extends BaseMessage {\n type: 'transcode',\n format: number,\n needZstd: boolean,\n data: EncodedData[][],\n zstddecWasmModule?: WebAssembly.Module,\n}\n\nexport type IKhronosMessageMessage = InitMessage | KhronosTranscoderMessage;\n\nexport function decodeText (array: Uint8Array): string {\n if (typeof TextDecoder !== 'undefined') {\n return new TextDecoder('utf-8').decode(array);\n }\n\n // TextDecoder polyfill\n let s = '';\n\n for (let i = 0, il = array.length; i < il; i++) {\n s += String.fromCharCode(array[i]);\n }\n\n return decodeURIComponent(encodeURIComponent(s));\n}\n","import { decodeText } from './texture-transcoder';\n\nexport class BufferReader {\n private dataView: DataView;\n private littleEndian: boolean;\n private pos: number;\n private baseOffset: number;\n\n constructor (\n public data: Uint8Array,\n byteOffset = 0,\n byteLength?: number,\n littleEndian = true,\n ) {\n this.dataView = new DataView(\n data.buffer,\n data.byteOffset + byteOffset,\n byteLength ?? data.byteLength - byteOffset,\n );\n this.littleEndian = littleEndian;\n this.pos = 0;\n this.baseOffset = byteOffset;\n }\n\n get position () {\n return this.pos;\n }\n\n get offset () {\n return this.pos + this.baseOffset;\n }\n\n nextUint8 () {\n const value = this.dataView.getUint8(this.pos);\n\n this.pos += 1;\n\n return value;\n }\n\n nextUint16 () {\n const value = this.dataView.getUint16(this.pos, this.littleEndian);\n\n this.pos += 2;\n\n return value;\n }\n\n nextUint32 () {\n const value = this.dataView.getUint32(this.pos, this.littleEndian);\n\n this.pos += 4;\n\n return value;\n }\n\n nextInt32 () {\n const value = this.dataView.getInt32(this.pos, this.littleEndian);\n\n this.pos += 4;\n\n return value;\n }\n\n nextInt32Array (len: number) {\n const value = new Int32Array(this.data.buffer, this.pos + this.dataView.byteOffset, len);\n\n this.pos += 4 * len;\n\n return value;\n }\n\n nextFloat32 () {\n const value = this.dataView.getFloat32(this.pos, this.littleEndian);\n\n this.pos += 4;\n\n return value;\n }\n\n nextFloat32Array (len: number) {\n const value = new Float32Array(this.data.buffer, this.pos + this.dataView.byteOffset, len);\n\n this.pos += 4 * len;\n\n return value;\n }\n\n nextUint32Array (len: number) {\n const value = new Uint32Array(this.data.buffer, this.pos + this.dataView.byteOffset, len);\n\n this.pos += 4 * len;\n\n return value;\n }\n\n nextUint8Array (len: number) {\n const value = new Uint8Array(this.data.buffer, this.pos + this.dataView.byteOffset, len);\n\n this.pos += len;\n\n return value;\n }\n\n nextUint64 () {\n if (!this.littleEndian) {\n throw new Error('nextUint64 only supports little-endian');\n }\n const left = this.dataView.getUint32(this.pos, this.littleEndian);\n const right = this.dataView.getUint32(this.pos + 4, this.littleEndian);\n const value = left + 2 ** 32 * right;\n\n this.pos += 8;\n\n return value;\n }\n\n nextStr (): string {\n const strByteLength = this.nextUint16();\n const uint8Array = new Uint8Array(this.data.buffer, this.pos + this.dataView.byteOffset, strByteLength);\n\n this.pos += strByteLength;\n\n return decodeText(uint8Array);\n }\n\n skip (bytes: number) {\n this.pos += bytes;\n\n return this;\n }\n\n scan (maxByteLength: number, term: number = 0x00): Uint8Array {\n const byteOffset = this.pos;\n let byteLength = 0;\n\n while (this.dataView.getUint8(this.pos) !== term && byteLength < maxByteLength) {\n byteLength++;\n this.pos++;\n }\n\n if (byteLength < maxByteLength) { this.pos++; }\n\n return new Uint8Array(this.dataView.buffer, this.dataView.byteOffset + byteOffset, byteLength);\n }\n}\n","import { BufferReader } from './transcoder/buffer-reader';\nimport { decodeText } from './transcoder/texture-transcoder';\n\nexport enum DFDTransferFunction {\n linear = 1,\n sRGB = 2,\n}\n\nenum ColorModel {\n ETC1S = 163,\n UASTC = 166,\n}\n\nexport enum SupercompressionScheme {\n None,\n BasisLZ,\n Zstd,\n ZLib,\n}\n\nexport class KTX2Container {\n vkFormat = 0;\n\n typeSize = 1;\n\n pixelWidth = 0;\n\n pixelHeight = 0;\n\n pixelDepth = 0;\n\n layerCount = 0;\n\n faceCount = 1;\n\n supercompressionScheme: SupercompressionScheme = SupercompressionScheme.None;\n\n levels: KTX2Level[] = [];\n\n dataFormatDescriptor: KTX2DataFormatDescriptorBasicFormat;\n\n keyValue: Record<string, string | Uint8Array> = {};\n\n globalData: KTX2GlobalDataBasisLZ | null = null;\n\n constructor (buffer: Uint8Array) {\n this.parse(buffer);\n }\n\n get isSRGB () {\n return this.dataFormatDescriptor.transferFunction === DFDTransferFunction.sRGB;\n }\n\n get isUASTC () {\n return this.dataFormatDescriptor.colorModel === ColorModel.UASTC;\n }\n\n get isNotBasis () {\n return this.vkFormat != 0;\n }\n\n /**\n * 释放内部持有的原始二进制数据引用\n */\n clear (): void {\n for (const level of this.levels) {\n (level as { levelData: Uint8Array | null }).levelData = null;\n }\n this.levels.length = 0;\n this.globalData = null;\n }\n\n private parse (data: Uint8Array) {\n const KTX2_IDENTIFIER = new Uint8Array([\n 0xAB, 0x4B, 0x54, 0x58, 0x20, 0x32, 0x30, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A,\n ]);\n\n if (data.length < KTX2_IDENTIFIER.length || !KTX2_IDENTIFIER.every((v, i) => data[i] === v)) {\n throw new Error('Texture missing KTX2 identifier.');\n }\n\n const buffer = data.buffer;\n const byteOffset = data.byteOffset;\n\n const headerBufferReader = new BufferReader(data, 12);\n\n this.vkFormat = headerBufferReader.nextUint32();\n this.typeSize = headerBufferReader.nextUint32();\n this.pixelWidth = headerBufferReader.nextUint32();\n this.pixelHeight = headerBufferReader.nextUint32();\n\n this.pixelDepth = headerBufferReader.nextUint32();\n this.layerCount = headerBufferReader.nextUint32();\n this.faceCount = headerBufferReader.nextUint32();\n\n const levelCount = Math.max(1, headerBufferReader.nextUint32());\n\n this.supercompressionScheme = headerBufferReader.nextUint32();\n\n const dfdByteOffset = headerBufferReader.nextUint32();\n const dfdByteLength = headerBufferReader.nextUint32();\n\n const kvdByteOffset = headerBufferReader.nextUint32();\n const kvdByteLength = headerBufferReader.nextUint32();\n\n const sgdByteOffset = headerBufferReader.nextUint64();\n const sgdByteLength = headerBufferReader.nextUint64();\n\n // level index\n const ktxLevels = new Array<KTX2Level>(levelCount);\n const levelByteLength = levelCount * 3 * 8;\n const levelReader = new BufferReader(data, headerBufferReader.offset, levelByteLength);\n\n this.levels = ktxLevels;\n\n for (let i = 0; i < levelCount; i++) {\n ktxLevels[i] = {\n levelData: new Uint8Array(buffer, byteOffset + levelReader.nextUint64(), levelReader.nextUint64()),\n uncompressedByteLength: levelReader.nextUint64(),\n };\n }\n\n // Data Format Descriptor (DFD).\n const dfdReader = new BufferReader(data, dfdByteOffset, dfdByteLength);\n\n const dfd: KTX2DataFormatDescriptorBasicFormat = {\n vendorId: dfdReader.skip(4 /* totalSize */).nextUint16(),\n descriptorType: dfdReader.nextUint16(),\n versionNumber: dfdReader.nextUint16(),\n descriptorBlockSize: dfdReader.nextUint16(),\n colorModel: dfdReader.nextUint8(),\n colorPrimaries: dfdReader.nextUint8(),\n transferFunction: dfdReader.nextUint8(),\n flags: dfdReader.nextUint8(),\n texelBlockDimension: [\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n ],\n bytesPlane: [\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n ],\n samples: [],\n };\n\n this.dataFormatDescriptor = dfd;\n\n const sampleStart = 6;\n const sampleWords = 4;\n const numSamples = (dfd.descriptorBlockSize / 4 - sampleStart) / sampleWords;\n\n for (let i = 0; i < numSamples; i++) {\n const sample = {\n bitOffset: dfdReader.nextUint16(),\n bitLength: dfdReader.nextUint8(),\n channelType: dfdReader.nextUint8(),\n samplePosition: [\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n ],\n sampleLower: -Infinity,\n sampleUpper: Infinity,\n };\n\n if (sample.channelType & 0x40) {\n sample.sampleLower = dfdReader.nextInt32();\n sample.sampleUpper = dfdReader.nextInt32();\n } else {\n sample.sampleLower = dfdReader.nextUint32();\n sample.sampleUpper = dfdReader.nextUint32();\n }\n\n dfd.samples[i] = sample;\n }\n\n const kvdReader = new BufferReader(data, kvdByteOffset, kvdByteLength, true);\n\n while (kvdReader.position < kvdByteLength) {\n const keyValueByteLength = kvdReader.nextUint32();\n const keyData = kvdReader.scan(keyValueByteLength);\n const key = decodeText(keyData);\n\n // 4-byte alignment.\n const valueData = kvdReader.nextUint8Array(keyValueByteLength - keyData.byteLength - 1);\n\n if (/^ktx/i.test(key)) {\n const decodedValue = decodeText(valueData);\n let trimmedValue = decodedValue;\n\n while (trimmedValue.length > 0 && trimmedValue.charCodeAt(trimmedValue.length - 1) === 0) {\n trimmedValue = trimmedValue.slice(0, -1);\n }\n this.keyValue[key] = trimmedValue;\n } else {\n this.keyValue[key] = valueData;\n }\n const kvPadding = keyValueByteLength % 4 ? 4 - (keyValueByteLength % 4) : 0; // align(4)\n\n // 4-byte alignment.\n kvdReader.skip(kvPadding);\n }\n\n if (sgdByteLength <= 0) { return this; }\n\n const sgdReader = new BufferReader(data, sgdByteOffset, sgdByteLength, true);\n\n const endpointCount = sgdReader.nextUint16();\n const selectorCount = sgdReader.nextUint16();\n const endpointsByteLength = sgdReader.nextUint32();\n const selectorsByteLength = sgdReader.nextUint32();\n const tablesByteLength = sgdReader.nextUint32();\n const extendedByteLength = sgdReader.nextUint32();\n\n const imageDescs: KTX2GlobalDataBasisLZImageDesc[] = new Array(levelCount);\n\n for (let i = 0; i < levelCount; i++) {\n imageDescs[i] = {\n imageFlags: sgdReader.nextUint32(),\n rgbSliceByteOffset: sgdReader.nextUint32(),\n rgbSliceByteLength: sgdReader.nextUint32(),\n alphaSliceByteOffset: sgdReader.nextUint32(),\n alphaSliceByteLength: sgdReader.nextUint32(),\n };\n }\n\n const endpointsByteOffset = sgdByteOffset + sgdReader.position;\n const selectorsByteOffset = endpointsByteOffset + endpointsByteLength;\n const tablesByteOffset = selectorsByteOffset + selectorsByteLength;\n const extendedByteOffset = tablesByteOffset + tablesByteLength;\n\n const endpointsData = new Uint8Array(buffer, byteOffset + endpointsByteOffset, endpointsByteLength);\n const selectorsData = new Uint8Array(buffer, byteOffset + selectorsByteOffset, selectorsByteLength);\n const tablesData = new Uint8Array(buffer, byteOffset + tablesByteOffset, tablesByteLength);\n const extendedData = new Uint8Array(buffer, byteOffset + extendedByteOffset, extendedByteLength);\n\n this.globalData = {\n endpointCount,\n selectorCount,\n imageDescs,\n endpointsData,\n selectorsData,\n tablesData,\n extendedData,\n };\n }\n}\n\ninterface KTX2Level {\n levelData: Uint8Array,\n uncompressedByteLength: number,\n}\n\ninterface KTX2DataFormatDescriptorBasicFormat {\n vendorId: number,\n descriptorType: number,\n versionNumber: number,\n /** @deprecated Inferred. */\n descriptorBlockSize: number,\n colorModel: ColorModel,\n colorPrimaries: number,\n transferFunction: DFDTransferFunction,\n flags: number,\n texelBlockDimension: [number, number, number, number],\n bytesPlane: [number, number, number, number, number, number, number, number],\n samples: KTX2BasicFormatSample[],\n}\n\ninterface KTX2BasicFormatSample {\n bitOffset: number,\n bitLength: number,\n channelType: number,\n samplePosition: number[],\n sampleLower: number,\n sampleUpper: number,\n}\n\ninterface KTX2GlobalDataBasisLZ {\n endpointCount: number,\n selectorCount: number,\n imageDescs: KTX2GlobalDataBasisLZImageDesc[],\n endpointsData: Uint8Array,\n selectorsData: Uint8Array,\n tablesData: Uint8Array,\n extendedData: Uint8Array,\n}\n\ninterface KTX2GlobalDataBasisLZImageDesc {\n imageFlags: number,\n rgbSliceByteOffset: number,\n rgbSliceByteLength: number,\n alphaSliceByteOffset: number,\n alphaSliceByteLength: number,\n}\n","/* eslint-disable compat/compat */\n/* eslint-disable promise/no-nesting */\nimport type { DecodedData, EncodedData } from './texture-transcoder';\n\n// eslint-disable-next-line compat/compat\nexport interface WasmTranscoder extends WebAssembly.Exports {\n memory: WebAssembly.Memory,\n transcode: (nBlocks: number) => number,\n}\n\nexport interface DecoderExports {\n memory: WebAssembly.Memory,\n ZSTD_findDecompressedSize: (compressedPtr: number, compressedSize: number) => number,\n ZSTD_decompress: (\n uncompressedPtr: number,\n uncompressedSize: number,\n compressedPtr: number,\n compressedSize: number,\n ) => number,\n malloc: (ptr: number) => number,\n free: (ptr: number) => void,\n}\n\nexport interface DecoderInstance {\n readonly exports: DecoderExports,\n}\n\n/**\n * 转码核心代码\n * 主线程调用时会返回 API 对象\n * Worker 中使用时需要拼接消息处理代码\n */\nexport function TranscodeWorkerCode () {\n let wasmPromise: Promise<WebAssembly.Exports>;\n\n /**\n * ZSTD (Zstandard) decoder.\n */\n class ZSTDDecoder {\n public heap: Uint8Array = new Uint8Array(0);\n public instance: DecoderInstance | null = null;\n public importObject = {\n env: {\n emscripten_notify_memory_growth: (): void => {\n this.heap = new Uint8Array(this.instance!.exports.memory.buffer);\n },\n },\n };\n public initPromise: Promise<void> | undefined;\n\n init (zstddecWasmModule: WebAssembly.Module): Promise<void> {\n if (!this.initPromise) {\n this.initPromise = WebAssembly\n .instantiate(zstddecWasmModule, this.importObject)\n .then((result: WebAssembly.Instance) => {\n this.instance = result as unknown as DecoderInstance;\n this.importObject.env.emscripten_notify_memory_growth();\n });\n }\n\n return this.initPromise;\n }\n\n decode (array: Uint8Array, uncompressedSize = 0): Uint8Array {\n if (!this.instance) {\n throw new Error('ZSTDDecoder: Await .init() before decoding.');\n }\n\n const exports = this.instance.exports;\n const compressedSize = array.byteLength;\n const compressedPtr = exports.malloc(compressedSize);\n\n this.heap.set(array, compressedPtr);\n\n uncompressedSize = uncompressedSize || Number(exports.ZSTD_findDecompressedSize(compressedPtr, compressedSize));\n const uncompressedPtr = exports.malloc(uncompressedSize);\n const actualSize = exports.ZSTD_decompress(uncompressedPtr, uncompressedSize, compressedPtr, compressedSize);\n\n if (actualSize < 0) {\n exports.free(compressedPtr);\n exports.free(uncompressedPtr);\n throw new Error('ZSTDDecoder: decompression failed.');\n }\n\n // Read decompressed data and free WASM memory\n const dec = this.heap.slice(uncompressedPtr, uncompressedPtr + actualSize);\n\n exports.free(compressedPtr);\n exports.free(uncompressedPtr);\n\n return dec;\n }\n }\n\n function transcodeASTC (\n wasmTranscoder: WasmTranscoder,\n compressedData: Uint8Array,\n width: number,\n height: number,\n ) {\n const nBlocks = ((width + 3) >> 2) * ((height + 3) >> 2);\n const texMemoryPages = (nBlocks * 16 + 65535) >> 16;\n const memory = wasmTranscoder.memory;\n const delta = texMemoryPages + 1 - (memory.buffer.byteLength >> 16);\n\n if (delta > 0) { memory.grow(delta); }\n\n const textureView = new Uint8Array(memory.buffer, 65536, nBlocks * 16);\n\n textureView.set(compressedData);\n\n return wasmTranscoder.transcode(nBlocks) === 0 ? textureView : null;\n }\n\n function initTranscoder (transcoderWasmModule: WebAssembly.Module) {\n wasmPromise = WebAssembly\n .instantiate(transcoderWasmModule, {\n env: { memory: new WebAssembly.Memory({ initial: 16 }) },\n })\n .then(moduleWrapper => moduleWrapper.exports);\n\n return wasmPromise;\n }\n\n const zstdDecoder = new ZSTDDecoder();\n\n function transcode (\n data: EncodedData[][],\n needZstd: boolean,\n transcoderWasmModule: WasmTranscoder,\n zstddecWasmModule?: WebAssembly.Module,\n ) {\n const faceCount = data.length;\n const result: DecodedData[][] = new Array(faceCount);\n const decodedLevelCache = needZstd ? new Map() : undefined;\n let promise = Promise.resolve();\n\n if (needZstd && zstddecWasmModule) {\n void zstdDecoder.init(zstddecWasmModule);\n promise = zstdDecoder.initPromise!;\n }\n\n return promise.then(() => {\n for (let faceIndex = 0; faceIndex < faceCount; faceIndex++) {\n const mipmapCount = data[faceIndex].length;\n const decodedData: DecodedData[] = new Array(mipmapCount);\n\n for (let i = 0; i < mipmapCount; i++) {\n const { buffer, levelHeight, levelWidth, uncompressedByteLength } = data[faceIndex][i];\n let levelBuffer = buffer;\n\n if (needZstd) {\n let decoded = decodedLevelCache?.get(i);\n\n if (!decoded) {\n decoded = zstdDecoder.decode(buffer.slice(), uncompressedByteLength);\n decodedLevelCache?.set(i, decoded);\n }\n levelBuffer = decoded;\n }\n\n const faceByteLength = levelBuffer.byteLength / faceCount;\n const originByteOffset = levelBuffer.byteOffset;\n const decodedBuffer = transcodeASTC(\n transcoderWasmModule,\n new Uint8Array(levelBuffer.buffer, originByteOffset + faceIndex * faceByteLength, faceByteLength),\n levelWidth,\n levelHeight\n );\n\n if (decodedBuffer) {\n decodedData[i] = {\n // use wasm memory as buffer, should slice to avoid duplicate\n data: decodedBuffer.slice(),\n width: levelWidth,\n height: levelHeight,\n };\n } else {\n throw new Error('buffer decoded error');\n }\n }\n result[faceIndex] = decodedData;\n }\n\n return result;\n });\n }\n\n // 仅在 Worker 环境中注册消息处理,避免在主线程调用时污染 window.onmessage\n // Worker 环境中没有 window 对象\n if (typeof window === 'undefined') {\n self.onmessage = function onmessage (event) {\n const message = event.data;\n\n switch (message.type) {\n case 'init':\n initTranscoder(message.transcoderWasm)\n .then(() => {\n self.postMessage('init-completed');\n })\n .catch(error => {\n self.postMessage({ error });\n });\n\n break;\n case 'transcode':\n if (!wasmPromise) {\n self.postMessage({ error: new Error('Transcoder not initialized.') });\n\n break;\n }\n\n wasmPromise\n .then(transcoderWasmModule => {\n transcode(\n message.data,\n message.needZstd,\n transcoderWasmModule as unknown as WasmTranscoder,\n message.zstddecWasmModule,\n ).then(decodedData => {\n self.postMessage(decodedData);\n }).catch(error => self.postMessage({ error }));\n })\n .catch(error => {\n self.postMessage({ error });\n });\n\n break;\n }\n };\n }\n\n // 主线程使用\n return {\n ZSTDDecoder,\n transcodeASTC,\n initTranscoder,\n zstdDecoder,\n transcode,\n getWasmPromise: () => wasmPromise,\n };\n}\n","/* eslint-disable promise/no-nesting */\nimport type { KTX2Container } from '../ktx2-container';\nimport { SupercompressionScheme } from '../ktx2-container';\nimport type { KTX2TargetFormat } from '../ktx2-common';\nimport type { DecodedData, EncodedData, KhronosTranscoderMessage, TranscodeResult } from './texture-transcoder';\nimport { TextureTranscoder } from './texture-transcoder';\nimport type { WasmTranscoder } from './khronos-workercode';\nimport { TranscodeWorkerCode } from './khronos-workercode';\nimport uastcAstcWasm from '../libs/uastc_astc.wasm';\nimport zstddecWasm from '../libs/zstddec.wasm';\n\n/**\n * 主线程 ASTC/UASTC 转码器\n */\nclass KhronosMainThreadTranscoder {\n private context: ReturnType<typeof TranscodeWorkerCode> | null = null;\n\n async init (): Promise<void> {\n if (!this.context) {\n this.context = TranscodeWorkerCode();\n\n const transcoderWasmModule = await uastcAstcWasm();\n\n await this.context.initTranscoder(transcoderWasmModule);\n }\n }\n\n async transcode (\n data: EncodedData[][],\n needZstd: boolean,\n zstddecWasmModule?: WebAssembly.Module,\n ): Promise<DecodedData[][]> {\n await this.init();\n\n const wasmModule = await this.context?.getWasmPromise() as unknown as WasmTranscoder;\n\n return this.context!.transcode(data, needZstd, wasmModule, zstddecWasmModule);\n }\n\n destroy (): void {\n this.context = null;\n }\n}\n\n/**\n * KTX2 Khronos ASTC/UASTC 转码器\n * 支持主线程和 Worker 两种执行模式\n */\nexport class KhronosTranscoder extends TextureTranscoder {\n private mainThreadTranscoder: KhronosMainThreadTranscoder | null = null;\n private workerURL?: string;\n\n constructor (\n workerLimitCount: number,\n public readonly type: KTX2TargetFormat,\n ) {\n super(workerLimitCount);\n }\n\n async initTranscodeWorkerPool () {\n // 主线程模式\n if (this.workerLimitCount <= 0) {\n this.mainThreadTranscoder = new KhronosMainThreadTranscoder();\n await this.mainThreadTranscoder.init();\n\n return [];\n }\n\n // Worker 模式\n const transcoderWasm = await uastcAstcWasm();\n\n // 将 TranscodeWorkerCode 整体序列化\n const workerEntryCode = `\n (${TranscodeWorkerCode.toString()})();\n `;\n\n const workerURL = URL.createObjectURL(\n new Blob([workerEntryCode], {\n type: 'application/javascript',\n })\n );\n\n this.workerURL = workerURL;\n\n return this.createTranscodePool(workerURL, transcoderWasm);\n }\n\n async transcode (ktx2Container: KTX2Container, neededLevelCount?: number): Promise<TranscodeResult> {\n const needZstd = ktx2Container.supercompressionScheme === SupercompressionScheme.Zstd;\n const availableLevelCount = ktx2Container.levels.length;\n const levelCount = neededLevelCount ?? availableLevelCount;\n\n if (levelCount < 1 || levelCount > availableLevelCount) {\n throw new Error(`neededLevelCount ${levelCount} is out of range [1, ${availableLevelCount}].`);\n }\n const faceCount = ktx2Container.faceCount;\n // 准备编码数据,只处理需要的 level,避免转码后丢弃多余结果\n const encodedData: EncodedData[][] = new Array<EncodedData[]>(faceCount);\n\n for (let faceIndex = 0; faceIndex < faceCount; faceIndex++) {\n const mipmapData = new Array(levelCount);\n\n for (let mipmapIndex = 0; mipmapIndex < levelCount; mipmapIndex++) {\n const level = ktx2Container.levels[mipmapIndex];\n const levelWidth = Math.floor(ktx2Container.pixelWidth / (1 << mipmapIndex)) || 1;\n const levelHeight = Math.floor(ktx2Container.pixelHeight / (1 << mipmapIndex)) || 1;\n const originBuffer = level.levelData.buffer;\n const originOffset = level.levelData.byteOffset;\n const originByteLength = level.levelData.byteLength;\n\n mipmapData[mipmapIndex] = {\n buffer: new Uint8Array(originBuffer, originOffset, originByteLength),\n levelWidth,\n levelHeight,\n uncompressedByteLength: level.uncompressedByteLength,\n };\n }\n encodedData[faceIndex] = mipmapData;\n }\n\n const zstddecWasmModule = needZstd ? await zstddecWasm() : undefined;\n\n let faces: Array<{ width: number, height: number, data: Uint8Array }[]>;\n\n // 主线程模式\n if (this.workerLimitCount <= 0 && this.mainThreadTranscoder) {\n faces = await this.mainThreadTranscoder.transcode(encodedData, needZstd, zstddecWasmModule);\n } else {\n // WebWorker 模式\n if (!this.transcodeWorkerPool) {\n throw new Error('KhronosTranscoder: transcodeWorkerPool is not initialized.');\n }\n\n const postMessageData: KhronosTranscoderMessage = {\n type: 'transcode',\n format: 0,\n needZstd,\n data: encodedData,\n zstddecWasmModule,\n };\n\n faces = await this.transcodeWorkerPool.postMessage(postMessageData);\n }\n\n return {\n width: ktx2Container.pixelWidth,\n height: ktx2Container.pixelHeight,\n hasAlpha: true,\n format: 0,\n faces,\n faceCount,\n };\n }\n\n override destroy (): void {\n super.destroy();\n\n if (this.mainThreadTranscoder) {\n this.mainThreadTranscoder.destroy();\n this.mainThreadTranscoder = null;\n }\n\n if (this.workerURL) {\n URL.revokeObjectURL(this.workerURL);\n this.workerURL = undefined;\n }\n }\n}\n\n","import type {\n Texture2DSourceOptionsCompressed, TextureDataType, TextureLoader, Scene, SceneLoadOptions,\n} from '@galacean/effects';\nimport {\n TextureSourceType, loadBinary, glContext, textureLoaderRegistry, Plugin,\n} from '@galacean/effects';\nimport { KTX2TargetFormat } from './ktx2-common';\nimport { KTX2Container } from './ktx2-container';\nimport type { TranscodeResult } from './transcoder/texture-transcoder';\nimport { KhronosTranscoder } from './transcoder/khronos-transcoder';\n\n/**\n * KTX2 加载器插件\n */\nexport class KTX2Loader extends Plugin implements TextureLoader {\n private khronosTranscoder: KhronosTranscoder | null = null;\n private khronosInitPromise?: Promise<void>;\n\n /**\n * KTX2 加载器\n * - workerCount 大于 0 时使用 WebWorker\n * - 默认使用主线程\n */\n constructor (\n private readonly workerCount = 0,\n ) {\n super();\n }\n\n override async onAssetsLoadStart (_scene: Scene, _options?: SceneLoadOptions): Promise<void> {\n // 仅在未手动注册时才自动注册,避免覆盖用户通过 registerKTX2Loader(workerCount) 的自定义配置\n if (!textureLoaderRegistry.has('ktx2')) {\n registerKTX2Loader(this.workerCount);\n }\n }\n\n /**\n * 初始化 Khronos Transcoder\n */\n private async initKhronosTranscoder (): Promise<void> {\n if (this.khronosTranscoder) {\n return;\n }\n\n try {\n const transcoder = new KhronosTranscoder(this.workerCount, KTX2TargetFormat.ASTC);\n\n await transcoder.init();\n this.khronosTranscoder = transcoder;\n } catch (error) {\n console.error('Failed to initialize KhronosTranscoder:', error);\n this.khronosTranscoder = null;\n this.khronosInitPromise = undefined;\n throw error;\n }\n }\n\n /**\n * 确保 Khronos Transcoder 已初始化\n */\n private async ensureKhronosTranscoder (): Promise<KhronosTranscoder> {\n if (this.khronosTranscoder) {\n return this.khronosTranscoder;\n }\n\n if (!this.khronosInitPromise) {\n this.khronosInitPromise = this.initKhronosTranscoder();\n }\n\n await this.khronosInitPromise;\n\n if (!this.khronosTranscoder) {\n throw new Error('KhronosTranscoder initialization failed');\n }\n\n return this.khronosTranscoder;\n }\n\n /**\n * 从 ArrayBuffer 加载 KTX2 纹理并返回压缩纹理源选项\n */\n async loadFromBuffer (arrBuffer: ArrayBuffer) {\n const buffer = new Uint8Array(arrBuffer);\n const { ktx2Container, result, hasFullMipmapChain } = await this.parseBuffer(buffer);\n const textureOptions = this.createTextureByBuffer(ktx2Container, result, hasFullMipmapChain);\n\n // 转码完成后释放原始 KTX2 数据\n ktx2Container.clear();\n\n return textureOptions;\n }\n\n /**\n * 从 URL 加载 KTX2 纹理并返回压缩纹理源选项\n */\n async loadFromURL (url: string) {\n const buffer = new Uint8Array(await loadBinary(url));\n const { ktx2Container, result, hasFullMipmapChain } = await this.parseBuffer(buffer);\n const textureOptions = this.createTextureByBuffer(ktx2Container, result, hasFullMipmapChain);\n\n // 转码完成后释放原始 KTX2 数据\n ktx2Container.clear();\n\n return textureOptions;\n }\n\n /**\n * @internal\n * 解析并转码 KTX2 文件 - 专用于 UASTC 转 ASTC\n */\n private async parseBuffer (buffer: Uint8Array) {\n const ktx2Container = new KTX2Container(buffer);\n\n // 验证格式支持\n if (!ktx2Container.isUASTC) {\n throw new Error('Unsupported KTX2: only UASTC format is supported');\n }\n\n // 提前判断需要转码的 level 数量,避免转码后丢弃多余结果\n const { pixelWidth, pixelHeight } = ktx2Container;\n const maxDimension = Math.max(pixelWidth, pixelHeight);\n const availableLevelCount = ktx2Container.levels.length;\n const fullChainCount = maxDimension > 0 ? Math.floor(Math.log2(maxDimension)) + 1 : 1;\n const hasFullMipmapChain = availableLevelCount > 1 && availableLevelCount >= fullChainCount;\n const neededLevelCount = hasFullMipmapChain ? availableLevelCount : 1;\n // 前置在gpucapability已经检测过可用\n const transcoder = await this.ensureKhronosTranscoder();\n const result = await transcoder.transcode(ktx2Container, neededLevelCount);\n\n return {\n ktx2Container,\n result,\n hasFullMipmapChain,\n };\n }\n\n /**\n * @internal\n * 根据转码结果创建引擎所需的压缩纹理源选项\n * @param hasFullMipmapChain - 是否包含完整 mipmap 链(由 parseBuffer 提前判断)\n */\n private createTextureByBuffer (\n ktx2Container: KTX2Container,\n transcodeResult: TranscodeResult,\n hasFullMipmapChain: boolean,\n ): Texture2DSourceOptionsCompressed {\n const { pixelWidth, pixelHeight, faceCount } = ktx2Container;\n const { internalFormat, format, type } = this.getASTC4x4TextureDetail();\n\n if (Math.max(pixelWidth, pixelHeight) === 0) {\n throw new Error('Invalid KTX2 texture: both width and height are zero');\n }\n\n const target = faceCount === 6 ? glContext.TEXTURE_CUBE_MAP : glContext.TEXTURE_2D;\n const faces = transcodeResult.faces;\n // 转码时已按 neededLevelCount 截断,直接使用全部转码结果\n const levelCount = hasFullMipmapChain ? (faces[0]?.length ?? 0) : 1;\n const mipmaps: TextureDataType[] = [];\n\n for (let level = 0; level < levelCount; level++) {\n for (let face = 0; face < faceCount; face++) {\n const src = faces[face][level];\n\n mipmaps.push({\n data: src.data,\n width: src.width,\n height: src.height,\n });\n }\n }\n\n return {\n sourceType: TextureSourceType.compressed,\n target,\n internalFormat,\n format,\n type,\n mipmaps,\n };\n }\n\n /**\n * @internal\n * 获取 ASTC 4x4 的 WebGL 格式信息\n */\n private getASTC4x4TextureDetail () {\n const COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93b0;\n\n return {\n internalFormat: COMPRESSED_RGBA_ASTC_4x4_KHR,\n format: 0,\n type: 0,\n };\n }\n\n /**\n * 销毁加载器,释放资源\n */\n dispose (): void {\n this.khronosTranscoder?.destroy();\n this.khronosTranscoder = null;\n this.khronosInitPromise = undefined;\n }\n}\n\n/**\n * 注册 KTX2 加载器到全局注册表\n * @param workerCount - 大于 0 时使用 WebWorker,默认使用主线程\n */\nexport function registerKTX2Loader (workerCount = 0) {\n textureLoaderRegistry.register('ktx2', () => {\n return new KTX2Loader(workerCount);\n });\n}\n\n/**\n * 注销 KTX2 加载器\n */\nexport function unregisterKTX2Loader () {\n textureLoaderRegistry.unregister('ktx2');\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger, registerPlugin } from '@galacean/effects';\nimport { KTX2Loader } from './ktx2-loader';\n\nexport * from './ktx2-loader';\n\n/**\n * 插件版本号\n */\nexport const version = __VERSION__;\n\nregisterPlugin('ktx2', KTX2Loader);\n\nlogger.info(`Plugin ktx2 version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 KTX2 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the KTX2 plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\n );\n}"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_async_to_generator","fn","self","args","arguments","apply","err","undefined","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","_is_native_reflect_construct","result","Boolean","valueOf","call","Reflect","construct","_","_construct","Parent","Class","a","push","Constructor","Function","bind","instance","_get_prototype_of","getPrototypeOf","_is_native_function","toString","indexOf","_wrap_native_super","_cache","Map","has","get","set","Wrapper","enumerable","__generator","thisArg","body","label","sent","t","trys","ops","f","y","g","Iterator","next","verb","Symbol","iterator","n","v","step","op","pop","length","e","SuppressedError","suppressed","message","Error","name","KTX2TargetFormat","TextureFormat","_defineProperties","target","props","i","descriptor","defineProperty","_create_class","protoProps","staticProps","_array_like_to_array","arr","len","arr2","Array","_unsupported_iterable_to_array","minLen","slice","from","test","_create_for_of_iterator_helper_loose","allowArrayLike","it","isArray","WorkerPool","workerCreator","limitedCount","taskQueue","workerStatus","initPromises","destroyed","workerItems","prepareWorker","count","promises","ensureWorker","all","workerId","initWorker","postMessage","getIdleWorkerId","workerItem","worker","catch","delete","terminate","onMessage","onError","event","nextTask","addEventListener","msg","data","taskItem","shift","destroy","removeEventListener","clear","TextureTranscoder","workerLimitCount","init","initPromise","initTranscodeWorkerPool","transcodeWorkerPool","createTranscodePool","workerURL","transcoderWasm","cleanup","Worker","type","decodeText","array","TextDecoder","decode","s","il","String","fromCharCode","decodeURIComponent","encodeURIComponent","BufferReader","byteOffset","byteLength","littleEndian","dataView","DataView","buffer","pos","baseOffset","nextUint8","getUint8","nextUint16","getUint16","nextUint32","getUint32","nextInt32","getInt32","nextInt32Array","Int32Array","nextFloat32","getFloat32","nextFloat32Array","Float32Array","nextUint32Array","Uint32Array","nextUint8Array","Uint8Array","nextUint64","left","right","nextStr","strByteLength","uint8Array","skip","bytes","scan","maxByteLength","term","position","offset","DFDTransferFunction","ColorModel","SupercompressionScheme","KTX2Container","vkFormat","typeSize","pixelWidth","pixelHeight","pixelDepth","layerCount","faceCount","supercompressionScheme","levels","keyValue","globalData","parse","level","levelData","KTX2_IDENTIFIER","every","headerBufferReader","levelCount","Math","max","dfdByteOffset","dfdByteLength","kvdByteOffset","kvdByteLength","sgdByteOffset","sgdByteLength","ktxLevels","levelByteLength","levelReader","uncompressedByteLength","dfdReader","dfd","vendorId","descriptorType","versionNumber","descriptorBlockSize","colorModel","colorPrimaries","transferFunction","flags","texelBlockDimension","bytesPlane","samples","dataFormatDescriptor","sampleStart","sampleWords","numSamples","sample","bitOffset","bitLength","channelType","samplePosition","sampleLower","Infinity","sampleUpper","kvdReader","keyValueByteLength","keyData","valueData","decodedValue","trimmedValue","charCodeAt","kvPadding","sgdReader","endpointCount","selectorCount","endpointsByteLength","selectorsByteLength","tablesByteLength","extendedByteLength","imageDescs","imageFlags","rgbSliceByteOffset","rgbSliceByteLength","alphaSliceByteOffset","alphaSliceByteLength","endpointsByteOffset","selectorsByteOffset","tablesByteOffset","extendedByteOffset","endpointsData","selectorsData","tablesData","extendedData","isSRGB","isUASTC","isNotBasis","TranscodeWorkerCode","wasmPromise","ZSTDDecoder","heap","importObject","env","emscripten_notify_memory_growth","exports","memory","zstddecWasmModule","WebAssembly","instantiate","uncompressedSize","compressedSize","compressedPtr","malloc","Number","ZSTD_findDecompressedSize","uncompressedPtr","actualSize","ZSTD_decompress","free","dec","transcodeASTC","wasmTranscoder","compressedData","width","height","nBlocks","texMemoryPages","delta","grow","textureView","transcode","initTranscoder","transcoderWasmModule","Memory","initial","moduleWrapper","zstdDecoder","needZstd","decodedLevelCache","promise","faceIndex","mipmapCount","decodedData","levelHeight","levelWidth","levelBuffer","decoded","faceByteLength","originByteOffset","decodedBuffer","window","onmessage","getWasmPromise","KhronosMainThreadTranscoder","context","uastcAstcWasm","wasmModule","KhronosTranscoder","mainThreadTranscoder","workerEntryCode","URL","createObjectURL","Blob","ktx2Container","neededLevelCount","availableLevelCount","encodedData","mipmapData","mipmapIndex","originBuffer","originOffset","originByteLength","faces","postMessageData","Zstd","floor","zstddecWasm","format","hasAlpha","revokeObjectURL","KTX2Loader","workerCount","khronosTranscoder","onAssetsLoadStart","_scene","_options","textureLoaderRegistry","registerKTX2Loader","initKhronosTranscoder","transcoder","ASTC","console","khronosInitPromise","ensureKhronosTranscoder","loadFromBuffer","arrBuffer","hasFullMipmapChain","textureOptions","parseBuffer","createTextureByBuffer","loadFromURL","url","loadBinary","maxDimension","fullChainCount","log2","transcodeResult","getASTC4x4TextureDetail","internalFormat","glContext","TEXTURE_CUBE_MAP","TEXTURE_2D","mipmaps","face","src","sourceType","TextureSourceType","compressed","COMPRESSED_RGBA_ASTC_4x4_KHR","dispose","Plugin","register","unregisterKTX2Loader","unregister","version","registerPlugin","logger","EFFECTS"],"mappings":";;;;;;;;;;;AAAA,SAASA,kBAAmBC,CAAAA,GAAG,EAAEC,OAAO,EAAEC,MAAM,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAA;IACrE,IAAI;AACA,QAAA,IAAIC,IAAOP,GAAAA,GAAG,CAACK,GAAAA,CAAI,CAACC,GAAAA,CAAAA,CAAAA;QACpB,IAAIE,KAAAA,GAAQD,KAAKC,KAAK,CAAA;AAC1B,KAAA,CAAE,OAAOC,KAAO,EAAA;QACZP,MAAOO,CAAAA,KAAAA,CAAAA,CAAAA;AACP,QAAA,OAAA;AACJ,KAAA;IACA,IAAIF,IAAAA,CAAKG,IAAI,EAAET,OAAQO,CAAAA,KAAAA,CAAAA,CAAAA;AAClBG,SAAAA,OAAAA,CAAQV,OAAO,CAACO,KAAOI,CAAAA,CAAAA,IAAI,CAACT,KAAOC,EAAAA,MAAAA,CAAAA,CAAAA;AAC5C,CAAA;AACA,SAASS,oBAAoBC,EAAE,EAAA;IAC3B,OAAO,WAAA;QACH,IAAIC,IAAAA,GAAO,IAAI,EAAEC,IAAOC,GAAAA,SAAAA,CAAAA;AAExB,QAAA,OAAO,IAAIN,OAAAA,CAAQ,SAASV,OAAO,EAAEC,MAAM,EAAA;AACvC,YAAA,IAAIF,GAAMc,GAAAA,EAAAA,CAAGI,KAAK,CAACH,IAAMC,EAAAA,IAAAA,CAAAA,CAAAA;AAEzB,YAAA,SAASb,MAAMK,KAAK,EAAA;AAChBT,gBAAAA,kBAAAA,CAAmBC,GAAKC,EAAAA,OAAAA,EAASC,MAAQC,EAAAA,KAAAA,EAAOC,QAAQ,MAAQI,EAAAA,KAAAA,CAAAA,CAAAA;AACpE,aAAA;AAEA,YAAA,SAASJ,OAAOe,GAAG,EAAA;AACfpB,gBAAAA,kBAAAA,CAAmBC,GAAKC,EAAAA,OAAAA,EAASC,MAAQC,EAAAA,KAAAA,EAAOC,QAAQ,OAASe,EAAAA,GAAAA,CAAAA,CAAAA;AACrE,aAAA;YAEAhB,KAAMiB,CAAAA,SAAAA,CAAAA,CAAAA;AACV,SAAA,CAAA,CAAA;AACJ,KAAA,CAAA;AACJ;;AC7BA,SAASC,iBAAAA,CAAkBC,CAAC,EAAEC,CAAC,EAAA;AAC3BF,IAAAA,iBAAAA,GAAoBG,OAAOC,cAAc,IAAI,SAASA,cAAeH,CAAAA,CAAC,EAAEC,CAAC,EAAA;AACrED,QAAAA,CAAAA,CAAEI,SAAS,GAAGH,CAAAA,CAAAA;QAEd,OAAOD,CAAAA,CAAAA;AACX,KAAA,CAAA;AAEA,IAAA,OAAOD,kBAAkBC,CAAGC,EAAAA,CAAAA,CAAAA,CAAAA;AAChC;;ACNA,SAASI,SAAAA,CAAUC,QAAQ,EAAEC,UAAU,EAAA;AACnC,IAAA,IAAI,OAAOA,UAAAA,KAAe,UAAcA,IAAAA,UAAAA,KAAe,IAAM,EAAA;AACzD,QAAA,MAAM,IAAIC,SAAU,CAAA,oDAAA,CAAA,CAAA;AACxB,KAAA;IAEAF,QAASG,CAAAA,SAAS,GAAGP,MAAOQ,CAAAA,MAAM,CAACH,UAAcA,IAAAA,UAAAA,CAAWE,SAAS,EAAE;QAAEE,WAAa,EAAA;YAAEzB,KAAOoB,EAAAA,QAAAA;YAAUM,QAAU,EAAA,IAAA;YAAMC,YAAc,EAAA,IAAA;AAAK,SAAA;AAAE,KAAA,CAAA,CAAA;IAE9I,IAAIN,UAAAA,EAAYR,kBAAkBO,QAAUC,EAAAA,UAAAA,CAAAA,CAAAA;AAChD;;ACVA,SAASO,4BAAAA,GAAAA;;;;;IAKL,IAAI;;;AAGA,QAAA,IAAIC,MAAS,GAAA,CAACC,OAAQP,CAAAA,SAAS,CAACQ,OAAO,CAACC,IAAI,CAACC,QAAQC,SAAS,CAACJ,OAAS,EAAA,EAAE,EAAE,WAAY,EAAA,CAAA,CAAA,CAAA;KAC1F,CAAA,OAAOK,GAAG,EAAC;IACb,OAAQP,CAAAA,4BAA+B,GAAA,SAAA,4BAAA,GAAA;AACnC,QAAA,OAAO,CAAC,CAACC,MAAAA,CAAAA;KACb,GAAA,CAAA;AACJ;;ACXA,SAASO,UAAWC,CAAAA,MAAM,EAAE7B,IAAI,EAAE8B,KAAK,EAAA;IACnC,IAAIV,4BAAAA,EAAAA,EAAgCQ,UAAaH,GAAAA,OAAAA,CAAQC,SAAS,CAAA;AAC7D,SAAA;AACDE,QAAAA,UAAAA,GAAa,SAASF,SAAUG,CAAAA,MAAM,EAAE7B,IAAI,EAAE8B,KAAK,EAAA;AAC/C,YAAA,IAAIC,CAAI,GAAA;AAAC,gBAAA,IAAA;AAAK,aAAA,CAAA;AACdA,YAAAA,CAAAA,CAAEC,IAAI,CAAC9B,KAAK,CAAC6B,CAAG/B,EAAAA,IAAAA,CAAAA,CAAAA;AAChB,YAAA,IAAIiC,cAAcC,QAASC,CAAAA,IAAI,CAACjC,KAAK,CAAC2B,MAAQE,EAAAA,CAAAA,CAAAA,CAAAA;AAC9C,YAAA,IAAIK,WAAW,IAAIH,WAAAA,EAAAA,CAAAA;AAEnB,YAAA,IAAIH,KAAOzB,EAAAA,iBAAAA,CAAkB+B,QAAUN,EAAAA,KAAAA,CAAMf,SAAS,CAAA,CAAA;YAEtD,OAAOqB,QAAAA,CAAAA;AACX,SAAA,CAAA;AACJ,KAAA;IAEA,OAAOR,UAAAA,CAAW1B,KAAK,CAAC,IAAMD,EAAAA,SAAAA,CAAAA,CAAAA;AAClC;;AClBA,SAASoC,kBAAkB/B,CAAC,EAAA;IACxB+B,iBAAoB7B,GAAAA,MAAAA,CAAOC,cAAc,GAAGD,MAAAA,CAAO8B,cAAc,GAAG,SAASA,eAAehC,CAAC,EAAA;AACzF,QAAA,OAAOA,CAAEI,CAAAA,SAAS,IAAIF,MAAAA,CAAO8B,cAAc,CAAChC,CAAAA,CAAAA,CAAAA;AAChD,KAAA,CAAA;AAEA,IAAA,OAAO+B,iBAAkB/B,CAAAA,CAAAA,CAAAA,CAAAA;AAC7B;;ACNA,SAASiC,oBAAoBzC,EAAE,EAAA;IAC3B,OAAOoC,QAAAA,CAASM,QAAQ,CAAChB,IAAI,CAAC1B,EAAI2C,CAAAA,CAAAA,OAAO,CAAC,eAAA,CAAA,KAAqB,CAAC,CAAA,CAAA;AACpE;;ACGA,SAASC,mBAAmBZ,KAAK,EAAA;AAC7B,IAAA,IAAIa,MAAS,GAAA,OAAOC,GAAQ,KAAA,UAAA,GAAa,IAAIA,GAAQxC,EAAAA,GAAAA,SAAAA,CAAAA;AACrDsC,IAAAA,kBAAAA,GAAqB,4BAASZ,KAAK,EAAA;AAC/B,QAAA,IAAIA,KAAU,KAAA,IAAA,IAAQ,CAACS,mBAAAA,CAAoBT,QAAQ,OAAOA,KAAAA,CAAAA;AAC1D,QAAA,IAAI,OAAOA,KAAAA,KAAU,UAAY,EAAA,MAAM,IAAIhB,SAAU,CAAA,oDAAA,CAAA,CAAA;QACrD,IAAI,OAAO6B,WAAW,WAAa,EAAA;AAC/B,YAAA,IAAIA,OAAOE,GAAG,CAACf,QAAQ,OAAOa,MAAAA,CAAOG,GAAG,CAAChB,KAAAA,CAAAA,CAAAA;YACzCa,MAAOI,CAAAA,GAAG,CAACjB,KAAOkB,EAAAA,OAAAA,CAAAA,CAAAA;AACtB,SAAA;QAEA,SAASA,OAAAA,GAAAA;AACL,YAAA,OAAOpB,WAAWE,KAAO7B,EAAAA,SAAAA,EAAWoC,iBAAkB,CAAA,IAAI,EAAEpB,WAAW,CAAA,CAAA;AAC3E,SAAA;AACA+B,QAAAA,OAAAA,CAAQjC,SAAS,GAAGP,MAAAA,CAAOQ,MAAM,CAACc,KAAAA,CAAMf,SAAS,EAAE;YAAEE,WAAa,EAAA;gBAAEzB,KAAOwD,EAAAA,OAAAA;gBAASC,UAAY,EAAA,KAAA;gBAAO/B,QAAU,EAAA,IAAA;gBAAMC,YAAc,EAAA,IAAA;AAAK,aAAA;AAAE,SAAA,CAAA,CAAA;AAE5I,QAAA,OAAOd,kBAAkB2C,OAASlB,EAAAA,KAAAA,CAAAA,CAAAA;AACtC,KAAA,CAAA;AAEA,IAAA,OAAOY,kBAAmBZ,CAAAA,KAAAA,CAAAA,CAAAA;AAC9B;;ACoGO,SAASoB,WAAAA,CAAYC,OAAO,EAAEC,IAAI,EAAA;AACvC,IAAA,IAAIzB,CAAI,GAAA;QAAE0B,KAAO,EAAA,CAAA;AAAGC,QAAAA,IAAAA,EAAM,SAANA,IAAAA,GAAAA;YAAmB,IAAIC,CAAC,CAAC,CAAE,CAAA,GAAG,GAAG,MAAMA,CAAC,CAAC,CAAE,CAAA,CAAA;YAAE,OAAOA,CAAC,CAAC,CAAE,CAAA,CAAA;AAAE,SAAA;AAAGC,QAAAA,IAAAA,EAAM,EAAE;AAAEC,QAAAA,GAAAA,EAAK,EAAE;AAAC,KAAA,EAAGC,CAAGC,EAAAA,CAAAA,EAAGJ,CAAGK,EAAAA,CAAAA,GAAIpD,OAAOQ,MAAM,CAAC,CAAC,OAAO6C,QAAa,KAAA,UAAA,GAAaA,QAAWrD,GAAAA,MAAK,EAAGO,SAAS,CAAA,CAAA;IAC/L,OAAO6C,CAAAA,CAAEE,IAAI,GAAGC,IAAK,CAAA,CAAA,CAAA,EAAIH,CAAC,CAAC,OAAQ,CAAA,GAAGG,IAAK,CAAA,CAAA,CAAA,EAAIH,CAAC,CAAC,SAAS,GAAGG,IAAAA,CAAK,CAAI,CAAA,EAAA,OAAOC,MAAW,KAAA,UAAA,KAAeJ,CAAC,CAACI,MAAAA,CAAOC,QAAQ,CAAC,GAAG,WAAA;AAAa,QAAA,OAAO,IAAI,CAAA;AAAE,KAAA,CAAIL,EAAAA,CAAAA,CAAAA;AAC1J,IAAA,SAASG,KAAKG,CAAC,EAAA;AAAI,QAAA,OAAO,SAAUC,CAAC,EAAA;AAAI,YAAA,OAAOC,IAAK,CAAA;AAACF,gBAAAA,CAAAA;AAAGC,gBAAAA,CAAAA;AAAE,aAAA,CAAA,CAAA;AAAG,SAAA,CAAA;AAAG,KAAA;AACjE,IAAA,SAASC,KAAKC,EAAE,EAAA;QACZ,IAAIX,CAAAA,EAAG,MAAM,IAAI5C,SAAU,CAAA,iCAAA,CAAA,CAAA;AAC3B,QAAA,MAAO8C,CAAMA,KAAAA,CAAI,GAAA,CAAA,EAAGS,EAAE,CAAC,CAAA,CAAE,KAAK1C,CAAI,GAAA,CAAA,CAAC,CAAA,EAAIA,EAAG,IAAI;YAC1C,IAAI+B,CAAAA,GAAI,CAAGC,EAAAA,CAAAA,KAAMJ,CAAAA,GAAIc,EAAE,CAAC,CAAE,CAAA,GAAG,CAAIV,GAAAA,CAAC,CAAC,QAAA,CAAS,GAAGU,EAAE,CAAC,CAAE,CAAA,GAAGV,CAAC,CAAC,OAAQ,CAAA,KAAMJ,CAAAA,CAAAA,GAAII,CAAC,CAAC,SAAS,KAAKJ,CAAE/B,CAAAA,IAAI,CAACmC,CAAAA,CAAAA,EAAI,CAAA,CAAA,GAAKA,CAAEG,CAAAA,IAAI,CAAD,IAAM,CAAEP,CAAAA,CAAIA,GAAAA,CAAAA,CAAE/B,IAAI,CAACmC,CAAGU,EAAAA,EAAE,CAAC,CAAA,CAAE,CAAA,EAAG3E,IAAI,EAAE,OAAO6D,CAAAA,CAAAA;YAC3J,IAAII,CAAAA,GAAI,CAAGJ,EAAAA,CAAAA,EAAGc,EAAK,GAAA;gBAACA,EAAE,CAAC,EAAE,GAAG,CAAA;AAAGd,gBAAAA,CAAAA,CAAE/D,KAAK;AAAC,aAAA,CAAA;YACvC,OAAQ6E,EAAE,CAAC,CAAE,CAAA;gBACT,KAAK,CAAA,CAAA;gBAAG,KAAK,CAAA;oBAAGd,CAAIc,GAAAA,EAAAA,CAAAA;AAAI,oBAAA,MAAA;gBACxB,KAAK,CAAA;AAAG1C,oBAAAA,CAAAA,CAAE0B,KAAK,EAAA,CAAA;oBAAI,OAAO;wBAAE7D,KAAO6E,EAAAA,EAAE,CAAC,CAAE,CAAA;wBAAE3E,IAAM,EAAA,KAAA;AAAM,qBAAA,CAAA;gBACtD,KAAK,CAAA;AAAGiC,oBAAAA,CAAAA,CAAE0B,KAAK,EAAA,CAAA;oBAAIM,CAAIU,GAAAA,EAAE,CAAC,CAAE,CAAA,CAAA;oBAAEA,EAAK,GAAA;AAAC,wBAAA,CAAA;AAAE,qBAAA,CAAA;AAAE,oBAAA,SAAA;gBACxC,KAAK,CAAA;oBAAGA,EAAK1C,GAAAA,CAAAA,CAAE8B,GAAG,CAACa,GAAG,EAAA,CAAA;oBAAI3C,CAAE6B,CAAAA,IAAI,CAACc,GAAG,EAAA,CAAA;AAAI,oBAAA,SAAA;AACxC,gBAAA;AACI,oBAAA,IAAI,EAAEf,CAAI5B,GAAAA,CAAAA,CAAE6B,IAAI,EAAED,CAAIA,GAAAA,CAAAA,CAAEgB,MAAM,GAAG,CAAKhB,IAAAA,CAAC,CAACA,CAAEgB,CAAAA,MAAM,GAAG,CAAA,CAAE,CAAD,KAAOF,EAAE,CAAC,CAAA,CAAE,KAAK,CAAA,IAAKA,EAAE,CAAC,CAAE,CAAA,KAAK,CAAA,CAAI,EAAA;wBAAE1C,CAAI,GAAA,CAAA,CAAA;AAAG,wBAAA,SAAA;AAAU,qBAAA;oBAC3G,IAAI0C,EAAE,CAAC,CAAE,CAAA,KAAK,MAAM,CAACd,CAAMc,IAAAA,EAAE,CAAC,CAAA,CAAE,GAAGd,CAAC,CAAC,CAAE,CAAA,IAAIc,EAAE,CAAC,EAAE,GAAGd,CAAC,CAAC,CAAA,CAAE,CAAI,EAAA;AAAE5B,wBAAAA,CAAAA,CAAE0B,KAAK,GAAGgB,EAAE,CAAC,CAAE,CAAA,CAAA;AAAE,wBAAA,MAAA;AAAO,qBAAA;oBACrF,IAAIA,EAAE,CAAC,CAAA,CAAE,KAAK,CAAA,IAAK1C,CAAE0B,CAAAA,KAAK,GAAGE,CAAC,CAAC,CAAA,CAAE,EAAE;AAAE5B,wBAAAA,CAAAA,CAAE0B,KAAK,GAAGE,CAAC,CAAC,CAAE,CAAA,CAAA;wBAAEA,CAAIc,GAAAA,EAAAA,CAAAA;AAAI,wBAAA,MAAA;AAAO,qBAAA;AACpE,oBAAA,IAAId,KAAK5B,CAAE0B,CAAAA,KAAK,GAAGE,CAAC,CAAC,EAAE,EAAE;AAAE5B,wBAAAA,CAAAA,CAAE0B,KAAK,GAAGE,CAAC,CAAC,CAAE,CAAA,CAAA;wBAAE5B,CAAE8B,CAAAA,GAAG,CAACzB,IAAI,CAACqC,EAAAA,CAAAA,CAAAA;AAAK,wBAAA,MAAA;AAAO,qBAAA;AAClE,oBAAA,IAAId,CAAC,CAAC,CAAA,CAAE,EAAE5B,CAAE8B,CAAAA,GAAG,CAACa,GAAG,EAAA,CAAA;oBACnB3C,CAAE6B,CAAAA,IAAI,CAACc,GAAG,EAAA,CAAA;AAAI,oBAAA,SAAA;AACtB,aAAA;YACAD,EAAKjB,GAAAA,IAAAA,CAAK5B,IAAI,CAAC2B,OAASxB,EAAAA,CAAAA,CAAAA,CAAAA;AAC5B,SAAA,CAAE,OAAO6C,CAAG,EAAA;YAAEH,EAAK,GAAA;AAAC,gBAAA,CAAA;AAAGG,gBAAAA,CAAAA;AAAE,aAAA,CAAA;YAAEb,CAAI,GAAA,CAAA,CAAA;SAAa,QAAA;AAAED,YAAAA,CAAAA,GAAIH,CAAI,GAAA,CAAA,CAAA;AAAG,SAAA;QACzD,IAAIc,EAAE,CAAC,CAAE,CAAA,GAAG,GAAG,MAAMA,EAAE,CAAC,CAAE,CAAA,CAAA;QAAE,OAAO;YAAE7E,KAAO6E,EAAAA,EAAE,CAAC,CAAE,CAAA,GAAGA,EAAE,CAAC,CAAA,CAAE,GAAG,KAAK,CAAA;YAAG3E,IAAM,EAAA,IAAA;AAAK,SAAA,CAAA;AACnF,KAAA;AACF,CAAA;AAiLuB,OAAO+E,eAAAA,KAAoB,UAAaA,GAAAA,eAAAA,GAAkB,0BAAUhF,KAAK,EAAEiF,UAAU,EAAEC,OAAO,EAAA;IACnH,IAAIH,CAAAA,GAAI,IAAII,KAAMD,CAAAA,OAAAA,CAAAA,CAAAA;IAClB,OAAOH,CAAAA,CAAEK,IAAI,GAAG,iBAAmBL,EAAAA,CAAAA,CAAE/E,KAAK,GAAGA,KAAO+E,EAAAA,CAAAA,CAAEE,UAAU,GAAGA,UAAYF,EAAAA,CAAAA,CAAAA;AACjF;;AC1UA;;AAEC,IAAA,IAAA,gBAAA,CAAA;AACWM,CAAAA,SAAAA,gBAAAA,EAAAA;mEACkD,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAA,CAAA;GADlDA,gBAAAA,KAAAA,gBAAAA,GAAAA,EAAAA,CAAAA,CAAAA,CAAAA;;AAQAC,CAAAA,SAAAA,aAAAA,EAAAA;2CAC0B,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAA,CAAA;4CAEC,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAA,CAAA;mEAEuB,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAA,CAAA;GALlDA,aAAAA,KAAAA,aAAAA,GAAAA,EAAAA,CAAAA,CAAAA;;ACXZ,SAASC,iBAAAA,CAAkBC,MAAM,EAAEC,KAAK,EAAA;AACpC,IAAA,IAAK,IAAIC,CAAI,GAAA,CAAA,EAAGA,IAAID,KAAMX,CAAAA,MAAM,EAAEY,CAAK,EAAA,CAAA;QACnC,IAAIC,UAAAA,GAAaF,KAAK,CAACC,CAAE,CAAA,CAAA;AACzBC,QAAAA,UAAAA,CAAWnC,UAAU,GAAGmC,UAAWnC,CAAAA,UAAU,IAAI,KAAA,CAAA;AACjDmC,QAAAA,UAAAA,CAAWjE,YAAY,GAAG,IAAA,CAAA;AAE1B,QAAA,IAAI,OAAWiE,IAAAA,UAAAA,EAAYA,UAAWlE,CAAAA,QAAQ,GAAG,IAAA,CAAA;AAEjDV,QAAAA,MAAAA,CAAO6E,cAAc,CAACJ,MAAQG,EAAAA,UAAAA,CAAW/F,GAAG,EAAE+F,UAAAA,CAAAA,CAAAA;AAClD,KAAA;AACJ,CAAA;AACA,SAASE,aAAcrD,CAAAA,WAAW,EAAEsD,UAAU,EAAEC,WAAW,EAAA;AACvD,IAAA,IAAID,UAAYP,EAAAA,iBAAAA,CAAkB/C,WAAYlB,CAAAA,SAAS,EAAEwE,UAAAA,CAAAA,CAAAA;IACzD,IAAIC,WAAAA,EAAaR,kBAAkB/C,WAAauD,EAAAA,WAAAA,CAAAA,CAAAA;IAEhD,OAAOvD,WAAAA,CAAAA;AACX;;AChBA,SAASwD,oBAAAA,CAAqBC,GAAG,EAAEC,GAAG,EAAA;IAClC,IAAIA,GAAAA,IAAO,QAAQA,GAAMD,GAAAA,GAAAA,CAAInB,MAAM,EAAEoB,GAAAA,GAAMD,IAAInB,MAAM,CAAA;AAErD,IAAA,IAAK,IAAIY,CAAI,GAAA,CAAA,EAAGS,IAAO,GAAA,IAAIC,MAAMF,GAAMR,CAAAA,EAAAA,CAAAA,GAAIQ,GAAKR,EAAAA,CAAAA,EAAAA,CAAKS,IAAI,CAACT,CAAAA,CAAE,GAAGO,GAAG,CAACP,CAAE,CAAA,CAAA;IAErE,OAAOS,IAAAA,CAAAA;AACX;;ACJA,SAASE,8BAAAA,CAA+BxF,CAAC,EAAEyF,MAAM,EAAA;AAC7C,IAAA,IAAI,CAACzF,CAAG,EAAA,OAAA;AACR,IAAA,IAAI,OAAOA,CAAAA,KAAM,QAAU,EAAA,OAAOmF,qBAAqBnF,CAAGyF,EAAAA,MAAAA,CAAAA,CAAAA;AAE1D,IAAA,IAAI7B,CAAI1D,GAAAA,MAAAA,CAAOO,SAAS,CAACyB,QAAQ,CAAChB,IAAI,CAAClB,CAAG0F,CAAAA,CAAAA,KAAK,CAAC,CAAA,EAAG,CAAC,CAAA,CAAA,CAAA;IAEpD,IAAI9B,CAAAA,KAAM,YAAY5D,CAAEW,CAAAA,WAAW,EAAEiD,CAAI5D,GAAAA,CAAAA,CAAEW,WAAW,CAAC4D,IAAI,CAAA;AAC3D,IAAA,IAAIX,MAAM,KAASA,IAAAA,CAAAA,KAAM,OAAO,OAAO2B,KAAAA,CAAMI,IAAI,CAAC/B,CAAAA,CAAAA,CAAAA;IAClD,IAAIA,CAAAA,KAAM,eAAe,0CAA2CgC,CAAAA,IAAI,CAAChC,CAAI,CAAA,EAAA,OAAOuB,qBAAqBnF,CAAGyF,EAAAA,MAAAA,CAAAA,CAAAA;AAChH;;ACTA,SAASI,oCAAAA,CAAqC7F,CAAC,EAAE8F,cAAc,EAAA;AAC3D,IAAA,IAAIC,EAAK,GAAA,OAAOrC,MAAW,KAAA,WAAA,IAAe1D,CAAC,CAAC0D,MAAOC,CAAAA,QAAQ,CAAC,IAAI3D,CAAC,CAAC,YAAa,CAAA,CAAA;AAE/E,IAAA,IAAI+F,EAAI,EAAA,OAAO,CAACA,EAAKA,GAAAA,EAAAA,CAAG7E,IAAI,CAAClB,CAAC,CAAA,EAAGwD,IAAI,CAAC3B,IAAI,CAACkE,EAAAA,CAAAA,CAAAA;;AAE3C,IAAA,IAAIR,KAAMS,CAAAA,OAAO,CAAChG,CAAAA,CAAAA,KAAO+F,EAAKP,GAAAA,8BAAAA,CAA+BxF,CAAC,CAAA,CAAA,IAAM8F,kBAAkB9F,CAAK,IAAA,OAAOA,CAAEiE,CAAAA,MAAM,KAAK,QAAU,EAAA;AACrH,QAAA,IAAI8B,IAAI/F,CAAI+F,GAAAA,EAAAA,CAAAA;AAEZ,QAAA,IAAIlB,CAAI,GAAA,CAAA,CAAA;QAER,OAAO,WAAA;AACH,YAAA,IAAIA,CAAK7E,IAAAA,CAAAA,CAAEiE,MAAM,EAAE,OAAO;gBAAE7E,IAAM,EAAA,IAAA;AAAK,aAAA,CAAA;YAEvC,OAAO;gBAAEA,IAAM,EAAA,KAAA;gBAAOF,KAAOc,EAAAA,CAAC,CAAC6E,CAAI,EAAA,CAAA;AAAC,aAAA,CAAA;AACxC,SAAA,CAAA;AACJ,KAAA;AAEA,IAAA,MAAM,IAAIrE,SAAU,CAAA,uIAAA,CAAA,CAAA;AACxB;;ACpBA;;;AAGC,IACM,IAAA,UAAMyF,iBAAD,WAAL;AAAMA,IAAAA,SAAAA,UAAAA,CAaT,YAAgC,EACfC,aAA6C,EAAA;AAD9D,QAAA,IAAgBC,yBAAAA,YAAe,GAAA,CAAA,CAAA;aAAfA,YAAAA,GAAAA,YAAAA,CAAAA;aACCD,aAAAA,GAAAA,aAAAA,CAAAA;AAbXE,QAAAA,IAAAA,CAAAA,SAAAA,GAA8B,EAAE,CAAA;aAChCC,YAAuB,GAAA,CAAA,CAAA;AAEvBC,QAAAA,IAAAA,CAAAA,YAAAA,GAA6C,IAAIhE,GAAAA,EAAAA,CAAAA;aACjDiE,SAAY,GAAA,KAAA,CAAA;QAWlB,IAAIJ,YAAAA,GAAe,CAAKA,IAAAA,YAAAA,GAAe,CAAG,EAAA;AACxC,YAAA,MAAM,IAAI7B,KAAM,CAAA,sCAAA,CAAA,CAAA;AAClB,SAAA;AACA,QAAA,IAAI,CAACkC,WAAW,GAAG,IAAIjB,KAAqBY,CAAAA,YAAAA,CAAAA,CAAAA;;AAnBnCF,IAAAA,IAAAA,MAAAA,GAAAA,UAAAA,CAAAA,SAAAA,CAAAA;IAsBXQ,MAAAA,CAAAA,aASC,GATDA,SAAAA,aAAAA,GAAAA;QACE,IAAMC,KAAAA,GAAQ,IAAI,CAACP,YAAY,CAAA;AAC/B,QAAA,IAAMQ,WAA8B,EAAE,CAAA;AAEtC,QAAA,IAAK,IAAI9B,CAAAA,GAAI,CAAGA,EAAAA,CAAAA,GAAI6B,OAAO7B,CAAK,EAAA,CAAA;AAC9B8B,YAAAA,QAAAA,CAASjF,IAAI,CAAC,IAAI,CAACkF,YAAY,CAAC/B,CAAAA,CAAAA,CAAAA,CAAAA;AAClC,SAAA;QAEA,OAAOxF,OAAAA,CAAQwH,GAAG,CAACF,QAAAA,CAAAA,CAAAA;AACrB,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQC,YAMP,GAND,SAAQA,YAAAA,CAAcE,QAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAACR,YAAY,CAAC/D,GAAG,CAACuE,QAAW,CAAA,EAAA;YACpC,IAAI,CAACR,YAAY,CAAC7D,GAAG,CAACqE,QAAU,EAAA,IAAI,CAACC,UAAU,CAACD,QAAAA,CAAAA,CAAAA,CAAAA;AAClD,SAAA;AAEA,QAAA,OAAO,IAAI,CAACR,YAAY,CAAC9D,GAAG,CAACsE,QAAAA,CAAAA,CAAAA;AAC/B,KAAA,CAAA;AAEA;;;;AAIC,MACDE,MAAAA,CAAAA,WA6BC,GA7BDA,SAAAA,YAAa3C,OAAU,EAAA;;QACrB,IAAI,IAAI,CAACkC,SAAS,EAAE;AAClB,YAAA,OAAOlH,OAAQT,CAAAA,MAAM,CAAC,IAAI0F,KAAM,CAAA,uBAAA,CAAA,CAAA,CAAA;AAClC,SAAA;QAEA,OAAO,IAAIjF,OAAQ,CAAA,SAACV,OAASC,EAAAA,MAAAA,EAAAA;YAC3B,IAAMkI,QAAAA,GAAW,MAAKG,eAAe,EAAA,CAAA;YAErC,IAAIH,QAAAA,KAAa,CAAC,CAAG,EAAA;AACnB,gBAAA,KAAA,CAAKF,YAAY,CAACE,QACfxH,CAAAA,CAAAA,IAAI,CAAC,WAAA;oBACJ,IAAI,KAAA,CAAKiH,SAAS,EAAE;AAClB,wBAAA,MAAM,IAAIjC,KAAM,CAAA,uBAAA,CAAA,CAAA;AAClB,qBAAA;AACA,oBAAA,IAAM4C,UAAa,GAAA,KAAA,CAAKV,WAAW,CAACM,QAAS,CAAA,CAAA;AAE7CI,oBAAAA,UAAAA,CAAWvI,OAAO,GAAGA,OAAAA,CAAAA;AACrBuI,oBAAAA,UAAAA,CAAWtI,MAAM,GAAGA,MAAAA,CAAAA;oBACpBsI,UAAWC,CAAAA,MAAM,CAACH,WAAW,CAAC3C,OAAAA,CAAAA,CAAAA;iBAE/B+C,CAAAA,CAAAA,KAAK,CAACjI,SAAAA,KAAAA,EAAAA;AACL,oBAAA,KAAA,CAAKkH,YAAY,IAAI,EAAE,KAAKS,QAAO,CAAA,CAAA;oBACnC,KAAKR,CAAAA,YAAY,CAACe,MAAM,CAACP,QAAAA,CAAAA,CAAAA;oBACzBlI,MAAOO,CAAAA,KAAAA,CAAAA,CAAAA;AACT,iBAAA,CAAA,CAAA;aACG,MAAA;gBACL,KAAKiH,CAAAA,SAAS,CAAC1E,IAAI,CAAC;oBAAE/C,OAAAA,EAAAA,OAAAA;oBAASC,MAAAA,EAAAA,MAAAA;oBAAQyF,OAAAA,EAAAA,OAAAA;AAAQ,iBAAA,CAAA,CAAA;AACjD,aAAA;AACF,SAAA,CAAA,CAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQ0C,UA8BP,GA9BD,SAAQA,UAAAA,CAAYD,QAAgB,EAAA;;QAClC,OAAOzH,OAAAA,CAAQV,OAAO,CAAC,IAAI,CAACuH,aAAa,EAAA,CAAA,CAAI5G,IAAI,CAAC6H,SAAAA,MAAAA,EAAAA;YAChD,IAAI,KAAA,CAAKZ,SAAS,EAAE;AAClBY,gBAAAA,MAAAA,CAAOG,SAAS,EAAA,CAAA;AAChB,gBAAA,MAAM,IAAIhD,KAAM,CAAA,uBAAA,CAAA,CAAA;AAClB,aAAA;AAEA,YAAA,IAAMiD,SAAY,GAAA,KAAA,CAAKA,SAAS,CAAC1F,IAAI,CAAOiF,KAAAA,EAAAA,QAAAA,CAAAA,CAAAA;AAC5C,YAAA,IAAMU,UAAU,SAACC,KAAAA,EAAAA;AACf,gBAAA,IAAMP,UAAa,GAAA,KAAA,CAAKV,WAAW,CAACM,QAAS,CAAA,CAAA;AAE7C,gBAAA,IAAII,UAAY,EAAA;oBACdA,UAAWtI,CAAAA,MAAM,CAAC6I,KAAMtI,CAAAA,KAAK,IAAI,IAAImF,KAAAA,CAAMmD,KAAMpD,CAAAA,OAAO,IAAI,cAAA,CAAA,CAAA,CAAA;AAC5D,oBAAA,KAAA,CAAKqD,QAAQ,CAACZ,QAAAA,CAAAA,CAAAA;AAChB,iBAAA;AACF,aAAA,CAAA;YAEAK,MAAOQ,CAAAA,gBAAgB,CAAC,SAAWJ,EAAAA,SAAAA,CAAAA,CAAAA;YACnCJ,MAAOQ,CAAAA,gBAAgB,CAAC,OAASH,EAAAA,OAAAA,CAAAA,CAAAA;YAEjC,KAAKhB,CAAAA,WAAW,CAACM,QAAAA,CAAS,GAAG;gBAC3BK,MAAAA,EAAAA,MAAAA;AACAxI,gBAAAA,OAAAA,EAAS,WAAQ,EAAA;AACjBC,gBAAAA,MAAAA,EAAQ,WAAQ,EAAA;gBAChB2I,SAAAA,EAAAA,SAAAA;gBACAC,OAAAA,EAAAA,OAAAA;AACF,aAAA,CAAA;YAEA,OAAOL,MAAAA,CAAAA;AACT,SAAA,CAAA,CAAA;AACF,KAAA,CAAA;AAEA;;;MAIA,MAAA,CAAQF,eAUP,GAVD,SAAQA,eAAAA,GAAAA;QACN,IAAK,IAAIpC,CAAI,GAAA,CAAA,EAAG6B,KAAQ,GAAA,IAAI,CAACP,YAAY,EAAEtB,CAAI6B,GAAAA,KAAAA,EAAO7B,CAAK,EAAA,CAAA;YACzD,IAAI,EAAE,IAAI,CAACwB,YAAY,GAAI,CAAA,IAAKxB,CAAC,CAAI,EAAA;AACnC,gBAAA,IAAI,CAACwB,YAAY,IAAI,CAAA,IAAKxB;gBAE1B,OAAOA,CAAAA,CAAAA;AACT,aAAA;AACF,SAAA;AAEA,QAAA,OAAO,CAAC,CAAA,CAAA;AACV,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQ0C,SAgBP,GAhBD,SAAQA,SAAWT,CAAAA,QAAgB,EAAEc,GAAoB,EAAA;AACvD,QAAA,IAAMV,UAAa,GAAA,IAAI,CAACV,WAAW,CAACM,QAAS,CAAA,CAAA;AAE7C,QAAA,IAAI,CAACI,UAAY,EAAA;AACf,YAAA,OAAA;AACF,SAAA;AAEA,QAAA,IAAM/H,KAAQ,GAACyI,GAAIC,CAAAA,IAAI,CAAsB1I,KAAK,CAAA;AAElD,QAAA,IAAIA,KAAO,EAAA;AACT+H,YAAAA,UAAAA,CAAWtI,MAAM,CAACO,KAAAA,CAAAA,CAAAA;SACb,MAAA;YACL+H,UAAWvI,CAAAA,OAAO,CAACiJ,GAAAA,CAAIC,IAAI,CAAA,CAAA;AAC7B,SAAA;QAEA,IAAI,CAACH,QAAQ,CAACZ,QAAAA,CAAAA,CAAAA;AAChB,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQY,QAkBP,GAlBD,SAAQA,QAAAA,CAAUZ,QAAgB,EAAA;AAChC,QAAA,IAAI,IAAI,CAACV,SAAS,CAACnC,MAAM,EAAE;AACzB,YAAA,IAAM6D,QAAW,GAAA,IAAI,CAAC1B,SAAS,CAAC2B,KAAK,EAAA,CAAA;AACrC,YAAA,IAAMb,UAAa,GAAA,IAAI,CAACV,WAAW,CAACM,QAAS,CAAA,CAAA;AAE7C,YAAA,IAAI,CAACI,UAAY,EAAA;gBACfY,QAASlJ,CAAAA,MAAM,CAAC,IAAI0F,KAAM,CAAA,wBAAA,CAAA,CAAA,CAAA;AAC1B,gBAAA,IAAI,CAAC+B,YAAY,IAAI,EAAE,KAAKS,QAAO,CAAA,CAAA;AAEnC,gBAAA,OAAA;AACF,aAAA;YAEAI,UAAWvI,CAAAA,OAAO,GAAGmJ,QAAAA,CAASnJ,OAAO,CAAA;YACrCuI,UAAWtI,CAAAA,MAAM,GAAGkJ,QAAAA,CAASlJ,MAAM,CAAA;AACnCsI,YAAAA,UAAAA,CAAWC,MAAM,CAACH,WAAW,CAACc,SAASzD,OAAO,CAAA,CAAA;SACzC,MAAA;AACL,YAAA,IAAI,CAACgC,YAAY,IAAI,EAAE,KAAKS,QAAO,CAAA,CAAA;AACrC,SAAA;AACF,KAAA,CAAA;IAEAkB,MAAAA,CAAAA,OAiCC,GAjCDA,SAAAA,OAAAA,GAAAA;QACE,IAAI,IAAI,CAACzB,SAAS,EAAE;AAClB,YAAA,OAAA;AACF,SAAA;QAEA,IAAI,CAACA,SAAS,GAAG,IAAA,CAAA;QACjB,IAAMC,WAAAA,GAAc,IAAI,CAACA,WAAW,CAAA;QACpC,IAAMrH,KAAAA,GAAQ,IAAImF,KAAM,CAAA,uBAAA,CAAA,CAAA;QAExB,IAAK,IAAIO,IAAI,CAAGjB,EAAAA,CAAAA,GAAI4C,YAAYvC,MAAM,EAAEY,CAAIjB,GAAAA,CAAAA,EAAGiB,CAAK,EAAA,CAAA;YAClD,IAAMqC,UAAAA,GAAaV,WAAW,CAAC3B,CAAE,CAAA,CAAA;AAEjC,YAAA,IAAI,CAACqC,UAAY,EAAA;AAAE,gBAAA,SAAA;AAAU,aAAA;YAE7B,IAAIA,UAAAA,CAAWK,SAAS,EAAE;AACxBL,gBAAAA,UAAAA,CAAWC,MAAM,CAACc,mBAAmB,CAAC,SAAA,EAAWf,WAAWK,SAAS,CAAA,CAAA;AACvE,aAAA;YACA,IAAIL,UAAAA,CAAWM,OAAO,EAAE;AACtBN,gBAAAA,UAAAA,CAAWC,MAAM,CAACc,mBAAmB,CAAC,OAAA,EAASf,WAAWM,OAAO,CAAA,CAAA;AACnE,aAAA;YAEAN,UAAWC,CAAAA,MAAM,CAACG,SAAS,EAAA,CAAA;AAC3BJ,YAAAA,UAAAA,CAAWtI,MAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAjBsI,UAAWtI,CAAAA,MAAM,MAAjBsI,UAAoB/H,EAAAA,KAAAA,CAAAA,CAAAA;AACtB,SAAA;AAEA,QAAA,MAAO,IAAI,CAACiH,SAAS,CAACnC,MAAM,CAAE;AAC5B,YAAA,IAAA,qBAAA,CAAA;aAAA,qBAAA,GAAA,IAAI,CAACmC,SAAS,CAAC2B,KAAK,EAApB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAwBnJ,MAAM,CAACO,KAAAA,CAAAA,CAAAA;AACjC,SAAA;AAEAqH,QAAAA,WAAAA,CAAYvC,MAAM,GAAG,CAAA,CAAA;AACrB,QAAA,IAAI,CAACmC,SAAS,CAACnC,MAAM,GAAG,CAAA,CAAA;QACxB,IAAI,CAACoC,YAAY,GAAG,CAAA,CAAA;QACpB,IAAI,CAACC,YAAY,CAAC4B,KAAK,EAAA,CAAA;AACzB,KAAA,CAAA;AApMWjC,IAAAA,OAAAA,UAAAA,CAAAA;AAqMZ,CAAA,EAAA;;ACvMM,IAAA,iBAAekC,iBAAV,WAAL;AAAeA,IAAAA,SAAAA,iBAAAA,CAKlB,gBAAwC,EAAA;aAAxBC,gBAAAA,GAAAA,gBAAAA,CAAAA;;AALED,IAAAA,IAAAA,MAAAA,GAAAA,iBAAAA,CAAAA,SAAAA,CAAAA;IAQpBE,MAAAA,CAAAA,IAMC,GANDA,SAAAA,IAAAA,GAAAA;AACE,QAAA,IAAI,CAAC,IAAI,CAACC,WAAW,EAAE;AACrB,YAAA,IAAI,CAACA,WAAW,GAAG,IAAI,CAACC,uBAAuB,EAAA,CAAA;AACjD,SAAA;QAEA,OAAO,IAAI,CAACD,WAAW,CAAA;AACzB,KAAA,CAAA;IAEAN,MAAAA,CAAAA,OAEC,GAFDA,SAAAA,OAAAA,GAAAA;AACE,QAAA,IAAA,yBAAA,CAAA;AAAA,QAAA,CAAA,yBAAA,GAAA,IAAI,CAACQ,mBAAmB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAxB,0BAA0BR,OAAO,EAAA,CAAA;AACnC,KAAA,CAAA;AAIA,IAAA,MAAA,CAAUS,mBAiCT,GAjCD,SAAUA,mBAAqBC,CAAAA,SAAiB,EAAEC,cAAkC,EAAA;QAClF,IAAI,CAACH,mBAAmB,GAAG,IAAIvC,WAAW,IAAI,CAACmC,gBAAgB,EAAE,WAAA;YAC/D,OAAO,IAAI/I,OAAgB,CAAA,SAACV,OAASC,EAAAA,MAAAA,EAAAA;oBAmB1B4I,OAAT,GAAA,SAASA,QAAStD,CAAa,EAAA;AAC7B0E,oBAAAA,OAAAA,EAAAA,CAAAA;AACAzB,oBAAAA,MAAAA,CAAOG,SAAS,EAAA,CAAA;AACTpD,oBAAAA,IAAAA,QAAAA,CAAAA;oBAAPtF,MAAOsF,CAAAA,CAAAA,QAAAA,GAAAA,CAAAA,CAAE/E,KAAK,KAAA,IAAA,GAAP+E,WAAW,IAAII,KAAAA,CAAMJ,CAAEG,CAAAA,OAAO,IAAI,mBAAA,CAAA,CAAA,CAAA;AAC3C,iBAAA,CAAA;gBAtBA,IAAM8C,MAAAA,GAAS,IAAI0B,MAAOH,CAAAA,SAAAA,CAAAA,CAAAA;AAC1B,gBAAA,IAAMd,GAAmB,GAAA;oBACvBkB,IAAM,EAAA,MAAA;oBACNH,cAAAA,EAAAA,cAAAA;AACF,iBAAA,CAAA;AACA,gBAAA,IAAMC,OAAU,GAAA,WAAA;oBACdzB,MAAOc,CAAAA,mBAAmB,CAAC,SAAWV,EAAAA,SAAAA,CAAAA,CAAAA;oBACtCJ,MAAOc,CAAAA,mBAAmB,CAAC,OAAST,EAAAA,OAAAA,CAAAA,CAAAA;AACtC,iBAAA,CAAA;AAEA,gBAAA,SAASD,UAAWrD,CAAkC,EAAA;AACpD,oBAAA,IAAIA,CAAE2D,CAAAA,IAAI,CAAC1I,KAAK,EAAE;wBAChBP,MAAOsF,CAAAA,CAAAA,CAAE2D,IAAI,CAAC1I,KAAK,CAAA,CAAA;qBACd,MAAA;wBACLgI,MAAOc,CAAAA,mBAAmB,CAAC,SAAWV,EAAAA,SAAAA,CAAAA,CAAAA;wBACtC5I,OAAQwI,CAAAA,MAAAA,CAAAA,CAAAA;AACV,qBAAA;AACF,iBAAA;gBAMAA,MAAOQ,CAAAA,gBAAgB,CAAC,SAAWJ,EAAAA,SAAAA,CAAAA,CAAAA;gBACnCJ,MAAOQ,CAAAA,gBAAgB,CAAC,OAASH,EAAAA,OAAAA,CAAAA,CAAAA;AACjCL,gBAAAA,MAAAA,CAAOH,WAAW,CAACY,GAAAA,CAAAA,CAAAA;AACrB,aAAA,CAAA,CAAA;AACF,SAAA,CAAA,CAAA;AAEA,QAAA,OAAO,IAAI,CAACY,mBAAmB,CAAC/B,aAAa,EAAA,CAAA;AAC/C,KAAA,CAAA;AAvDoB0B,IAAAA,OAAAA,iBAAAA,CAAAA;AAwDrB,CAAA,EAAA,CAAA;AA6CM,SAASY,WAAYC,KAAiB,EAAA;IAC3C,IAAI,OAAOC,gBAAgB,WAAa,EAAA;AACtC,QAAA,OAAO,IAAIA,WAAAA,CAAY,OAASC,CAAAA,CAAAA,MAAM,CAACF,KAAAA,CAAAA,CAAAA;AACzC,KAAA;;AAGA,IAAA,IAAIG,CAAI,GAAA,EAAA,CAAA;IAER,IAAK,IAAItE,IAAI,CAAGuE,EAAAA,EAAAA,GAAKJ,MAAM/E,MAAM,EAAEY,CAAIuE,GAAAA,EAAAA,EAAIvE,CAAK,EAAA,CAAA;AAC9CsE,QAAAA,CAAAA,IAAKE,MAAOC,CAAAA,YAAY,CAACN,KAAK,CAACnE,CAAE,CAAA,CAAA,CAAA;AACnC,KAAA;AAEA,IAAA,OAAO0E,mBAAmBC,kBAAmBL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAC/C;;AClHO,IAAA,YAAMM,iBAAD,WAAL;AAAMA,IAAAA,SAAAA,YAAAA,CAOT,IAAuB,EACvBC,UAAc,EACdC,UAAmB,EACnBC,YAAmB,EAAA;AAFnBF,QAAAA,IAAAA,uBAAAA,UAAa,GAAA,CAAA,CAAA;AAEbE,QAAAA,IAAAA,yBAAAA,YAAe,GAAA,IAAA,CAAA;aAHR/B,IAAAA,GAAAA,IAAAA,CAAAA;AAKP,QAAA,IAAI,CAACgC,QAAQ,GAAG,IAAIC,QAAAA,CAClBjC,KAAKkC,MAAM,EACXlC,IAAK6B,CAAAA,UAAU,GAAGA,UAClBC,EAAAA,UAAAA,IAAAA,IAAAA,GAAAA,UAAc9B,GAAAA,IAAAA,CAAK8B,UAAU,GAAGD,UAAAA,CAAAA,CAAAA;QAElC,IAAI,CAACE,YAAY,GAAGA,YAAAA,CAAAA;QACpB,IAAI,CAACI,GAAG,GAAG,CAAA,CAAA;QACX,IAAI,CAACC,UAAU,GAAGP,UAAAA,CAAAA;;AAnBTD,IAAAA,IAAAA,MAAAA,GAAAA,YAAAA,CAAAA,SAAAA,CAAAA;IA8BXS,MAAAA,CAAAA,SAMC,GANDA,SAAAA,SAAAA,GAAAA;QACE,IAAMhL,KAAAA,GAAQ,IAAI,CAAC2K,QAAQ,CAACM,QAAQ,CAAC,IAAI,CAACH,GAAG,CAAA,CAAA;QAE7C,IAAI,CAACA,GAAG,IAAI,CAAA,CAAA;QAEZ,OAAO9K,KAAAA,CAAAA;AACT,KAAA,CAAA;IAEAkL,MAAAA,CAAAA,UAMC,GANDA,SAAAA,UAAAA,GAAAA;AACE,QAAA,IAAMlL,KAAQ,GAAA,IAAI,CAAC2K,QAAQ,CAACQ,SAAS,CAAC,IAAI,CAACL,GAAG,EAAE,IAAI,CAACJ,YAAY,CAAA,CAAA;QAEjE,IAAI,CAACI,GAAG,IAAI,CAAA,CAAA;QAEZ,OAAO9K,KAAAA,CAAAA;AACT,KAAA,CAAA;IAEAoL,MAAAA,CAAAA,UAMC,GANDA,SAAAA,UAAAA,GAAAA;AACE,QAAA,IAAMpL,KAAQ,GAAA,IAAI,CAAC2K,QAAQ,CAACU,SAAS,CAAC,IAAI,CAACP,GAAG,EAAE,IAAI,CAACJ,YAAY,CAAA,CAAA;QAEjE,IAAI,CAACI,GAAG,IAAI,CAAA,CAAA;QAEZ,OAAO9K,KAAAA,CAAAA;AACT,KAAA,CAAA;IAEAsL,MAAAA,CAAAA,SAMC,GANDA,SAAAA,SAAAA,GAAAA;AACE,QAAA,IAAMtL,KAAQ,GAAA,IAAI,CAAC2K,QAAQ,CAACY,QAAQ,CAAC,IAAI,CAACT,GAAG,EAAE,IAAI,CAACJ,YAAY,CAAA,CAAA;QAEhE,IAAI,CAACI,GAAG,IAAI,CAAA,CAAA;QAEZ,OAAO9K,KAAAA,CAAAA;AACT,KAAA,CAAA;AAEAwL,IAAAA,MAAAA,CAAAA,cAMC,GANDA,SAAAA,cAAAA,CAAgBrF,GAAW,EAAA;AACzB,QAAA,IAAMnG,QAAQ,IAAIyL,UAAAA,CAAW,IAAI,CAAC9C,IAAI,CAACkC,MAAM,EAAE,IAAI,CAACC,GAAG,GAAG,IAAI,CAACH,QAAQ,CAACH,UAAU,EAAErE,GAAAA,CAAAA,CAAAA;QAEpF,IAAI,CAAC2E,GAAG,IAAI,CAAI3E,GAAAA,GAAAA,CAAAA;QAEhB,OAAOnG,KAAAA,CAAAA;AACT,KAAA,CAAA;IAEA0L,MAAAA,CAAAA,WAMC,GANDA,SAAAA,WAAAA,GAAAA;AACE,QAAA,IAAM1L,KAAQ,GAAA,IAAI,CAAC2K,QAAQ,CAACgB,UAAU,CAAC,IAAI,CAACb,GAAG,EAAE,IAAI,CAACJ,YAAY,CAAA,CAAA;QAElE,IAAI,CAACI,GAAG,IAAI,CAAA,CAAA;QAEZ,OAAO9K,KAAAA,CAAAA;AACT,KAAA,CAAA;AAEA4L,IAAAA,MAAAA,CAAAA,gBAMC,GANDA,SAAAA,gBAAAA,CAAkBzF,GAAW,EAAA;AAC3B,QAAA,IAAMnG,QAAQ,IAAI6L,YAAAA,CAAa,IAAI,CAAClD,IAAI,CAACkC,MAAM,EAAE,IAAI,CAACC,GAAG,GAAG,IAAI,CAACH,QAAQ,CAACH,UAAU,EAAErE,GAAAA,CAAAA,CAAAA;QAEtF,IAAI,CAAC2E,GAAG,IAAI,CAAI3E,GAAAA,GAAAA,CAAAA;QAEhB,OAAOnG,KAAAA,CAAAA;AACT,KAAA,CAAA;AAEA8L,IAAAA,MAAAA,CAAAA,eAMC,GANDA,SAAAA,eAAAA,CAAiB3F,GAAW,EAAA;AAC1B,QAAA,IAAMnG,QAAQ,IAAI+L,WAAAA,CAAY,IAAI,CAACpD,IAAI,CAACkC,MAAM,EAAE,IAAI,CAACC,GAAG,GAAG,IAAI,CAACH,QAAQ,CAACH,UAAU,EAAErE,GAAAA,CAAAA,CAAAA;QAErF,IAAI,CAAC2E,GAAG,IAAI,CAAI3E,GAAAA,GAAAA,CAAAA;QAEhB,OAAOnG,KAAAA,CAAAA;AACT,KAAA,CAAA;AAEAgM,IAAAA,MAAAA,CAAAA,cAMC,GANDA,SAAAA,cAAAA,CAAgB7F,GAAW,EAAA;AACzB,QAAA,IAAMnG,QAAQ,IAAIiM,UAAAA,CAAW,IAAI,CAACtD,IAAI,CAACkC,MAAM,EAAE,IAAI,CAACC,GAAG,GAAG,IAAI,CAACH,QAAQ,CAACH,UAAU,EAAErE,GAAAA,CAAAA,CAAAA;QAEpF,IAAI,CAAC2E,GAAG,IAAI3E,GAAAA,CAAAA;QAEZ,OAAOnG,KAAAA,CAAAA;AACT,KAAA,CAAA;IAEAkM,MAAAA,CAAAA,UAWC,GAXDA,SAAAA,UAAAA,GAAAA;AACE,QAAA,IAAI,CAAC,IAAI,CAACxB,YAAY,EAAE;AACtB,YAAA,MAAM,IAAItF,KAAM,CAAA,wCAAA,CAAA,CAAA;AAClB,SAAA;AACA,QAAA,IAAM+G,IAAO,GAAA,IAAI,CAACxB,QAAQ,CAACU,SAAS,CAAC,IAAI,CAACP,GAAG,EAAE,IAAI,CAACJ,YAAY,CAAA,CAAA;AAChE,QAAA,IAAM0B,KAAQ,GAAA,IAAI,CAACzB,QAAQ,CAACU,SAAS,CAAC,IAAI,CAACP,GAAG,GAAG,CAAG,EAAA,IAAI,CAACJ,YAAY,CAAA,CAAA;AACrE,QAAA,IAAM1K,KAAQmM,GAAAA,IAAAA,GAAO,IAAA,CAAA,GAAA,CAAA,GAAK,EAAKC,CAAAA,GAAAA,KAAAA,CAAAA;QAE/B,IAAI,CAACtB,GAAG,IAAI,CAAA,CAAA;QAEZ,OAAO9K,KAAAA,CAAAA;AACT,KAAA,CAAA;IAEAqM,MAAAA,CAAAA,OAOC,GAPDA,SAAAA,OAAAA,GAAAA;QACE,IAAMC,aAAAA,GAAgB,IAAI,CAACpB,UAAU,EAAA,CAAA;AACrC,QAAA,IAAMqB,aAAa,IAAIN,UAAAA,CAAW,IAAI,CAACtD,IAAI,CAACkC,MAAM,EAAE,IAAI,CAACC,GAAG,GAAG,IAAI,CAACH,QAAQ,CAACH,UAAU,EAAE8B,aAAAA,CAAAA,CAAAA;QAEzF,IAAI,CAACxB,GAAG,IAAIwB,aAAAA,CAAAA;AAEZ,QAAA,OAAOzC,UAAW0C,CAAAA,UAAAA,CAAAA,CAAAA;AACpB,KAAA,CAAA;AAEAC,IAAAA,MAAAA,CAAAA,IAIC,GAJDA,SAAAA,IAAAA,CAAMC,KAAa,EAAA;QACjB,IAAI,CAAC3B,GAAG,IAAI2B,KAAAA,CAAAA;AAEZ,QAAA,OAAO,IAAI,CAAA;AACb,KAAA,CAAA;AAEAC,IAAAA,MAAAA,CAAAA,IAYC,GAZDA,SAAAA,IAAMC,CAAAA,aAAqB,EAAEC,IAAmB,EAAA;AAAnBA,QAAAA,IAAAA,iBAAAA,IAAe,GAAA,IAAA,CAAA;QAC1C,IAAMpC,UAAAA,GAAa,IAAI,CAACM,GAAG,CAAA;AAC3B,QAAA,IAAIL,UAAa,GAAA,CAAA,CAAA;AAEjB,QAAA,MAAO,IAAI,CAACE,QAAQ,CAACM,QAAQ,CAAC,IAAI,CAACH,GAAG,CAAA,KAAM8B,IAAQnC,IAAAA,UAAAA,GAAakC,aAAe,CAAA;AAC9ElC,YAAAA,UAAAA,EAAAA,CAAAA;AACA,YAAA,IAAI,CAACK,GAAG,EAAA,CAAA;AACV,SAAA;AAEA,QAAA,IAAIL,aAAakC,aAAe,EAAA;AAAE,YAAA,IAAI,CAAC7B,GAAG,EAAA,CAAA;AAAI,SAAA;AAE9C,QAAA,OAAO,IAAImB,UAAAA,CAAW,IAAI,CAACtB,QAAQ,CAACE,MAAM,EAAE,IAAI,CAACF,QAAQ,CAACH,UAAU,GAAGA,UAAYC,EAAAA,UAAAA,CAAAA,CAAAA;AACrF,KAAA,CAAA;AA9IWF,IAAAA,aAAAA,CAAAA,YAAAA,EAAAA;;YAsBPsC,GAAAA,EAAAA,UAAAA;AAAJ,YAAA,GAAA,EAAA,SAAA,GAAA,GAAA;gBACE,OAAO,IAAI,CAAC/B,GAAG,CAAA;AACjB,aAAA;;;YAEIgC,GAAAA,EAAAA,QAAAA;AAAJ,YAAA,GAAA,EAAA,SAAA,GAAA,GAAA;AACE,gBAAA,OAAO,IAAI,CAAChC,GAAG,GAAG,IAAI,CAACC,UAAU,CAAA;AACnC,aAAA;;;AA5BWR,IAAAA,OAAAA,YAAAA,CAAAA;AA+IZ,CAAA,EAAA;;;AC9IWwC,CAAAA,SAAAA,mBAAAA,EAAAA;;;GAAAA,mBAAAA,KAAAA,mBAAAA,GAAAA,EAAAA,CAAAA,CAAAA,CAAAA;;AAKPC,CAAAA,SAAAA,UAAAA,EAAAA;;;GAAAA,UAAAA,KAAAA,UAAAA,GAAAA,EAAAA,CAAAA,CAAAA,CAAAA;;AAKOC,CAAAA,SAAAA,sBAAAA,EAAAA;;;;;GAAAA,sBAAAA,KAAAA,sBAAAA,GAAAA,EAAAA,CAAAA,CAAAA,CAAAA;AAOL,IAAA,aAAMC,iBAAD,WAAL;AAAMA,IAAAA,SAAAA,aAAAA,CAyBErC,MAAkB,EAAA;aAxB/BsC,QAAW,GAAA,CAAA,CAAA;aAEXC,QAAW,GAAA,CAAA,CAAA;aAEXC,UAAa,GAAA,CAAA,CAAA;aAEbC,WAAc,GAAA,CAAA,CAAA;aAEdC,UAAa,GAAA,CAAA,CAAA;aAEbC,UAAa,GAAA,CAAA,CAAA;aAEbC,SAAY,GAAA,CAAA,CAAA;AAEZC,QAAAA,IAAAA,CAAAA,sBAAAA,GAAAA,CAAAA,CAAAA;AAEAC,QAAAA,IAAAA,CAAAA,MAAAA,GAAsB,EAAE,CAAA;AAIxBC,QAAAA,IAAAA,CAAAA,QAAAA,GAAgD,EAAC,CAAA;aAEjDC,UAA2C,GAAA,IAAA,CAAA;QAGzC,IAAI,CAACC,KAAK,CAACjD,MAAAA,CAAAA,CAAAA;;AA1BFqC,IAAAA,IAAAA,MAAAA,GAAAA,aAAAA,CAAAA,SAAAA,CAAAA;AAyCX;;MAGAlE,MAAAA,CAAAA,KAMC,GANDA,SAAAA,KAAAA,GAAAA;QACE,IAAoB,IAAA,SAAA,GAAA,oCAAA,CAAA,IAAI,CAAC2E,MAAM,CAAE,EAAA,KAAA,EAAA,CAAA,CAAA,KAAA,GAAA,SAAA,EAAA,EAAA,IAAA,EAAA;AAAtBI,YAAAA,IAAAA,KAAAA,GAAAA,KAAAA,CAAAA,KAAAA,CAAAA;AACRA,YAAAA,KAAAA,CAA2CC,SAAS,GAAG,IAAA,CAAA;AAC1D,SAAA;AACA,QAAA,IAAI,CAACL,MAAM,CAAC5I,MAAM,GAAG,CAAA,CAAA;QACrB,IAAI,CAAC8I,UAAU,GAAG,IAAA,CAAA;AACpB,KAAA,CAAA;AAEA,IAAA,MAAA,CAAQC,KAsLP,GAtLD,SAAQA,KAAAA,CAAOnF,IAAgB,EAAA;QAC7B,IAAMsF,eAAAA,GAAkB,IAAIhC,UAAW,CAAA;AACrC,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AAAM,YAAA,IAAA;AACnE,SAAA,CAAA,CAAA;QAED,IAAItD,IAAAA,CAAK5D,MAAM,GAAGkJ,eAAgBlJ,CAAAA,MAAM,IAAI,CAACkJ,eAAgBC,CAAAA,KAAK,CAAC,SAACvJ,CAAGgB,EAAAA,CAAAA,EAAAA;mBAAMgD,IAAI,CAAChD,EAAE,KAAKhB,CAAAA,CAAAA;AAAI,SAAA,CAAA,EAAA;AAC3F,YAAA,MAAM,IAAIS,KAAM,CAAA,kCAAA,CAAA,CAAA;AAClB,SAAA;QAEA,IAAMyF,MAAAA,GAASlC,KAAKkC,MAAM,CAAA;QAC1B,IAAML,UAAAA,GAAa7B,KAAK6B,UAAU,CAAA;QAElC,IAAM2D,kBAAAA,GAAqB,IAAI5D,YAAAA,CAAa5B,IAAM,EAAA,EAAA,CAAA,CAAA;AAElD,QAAA,IAAI,CAACwE,QAAQ,GAAGgB,kBAAAA,CAAmB/C,UAAU,EAAA,CAAA;AAC7C,QAAA,IAAI,CAACgC,QAAQ,GAAGe,kBAAAA,CAAmB/C,UAAU,EAAA,CAAA;AAC7C,QAAA,IAAI,CAACiC,UAAU,GAAGc,kBAAAA,CAAmB/C,UAAU,EAAA,CAAA;AAC/C,QAAA,IAAI,CAACkC,WAAW,GAAGa,kBAAAA,CAAmB/C,UAAU,EAAA,CAAA;AAEhD,QAAA,IAAI,CAACmC,UAAU,GAAGY,kBAAAA,CAAmB/C,UAAU,EAAA,CAAA;AAC/C,QAAA,IAAI,CAACoC,UAAU,GAAGW,kBAAAA,CAAmB/C,UAAU,EAAA,CAAA;AAC/C,QAAA,IAAI,CAACqC,SAAS,GAAGU,kBAAAA,CAAmB/C,UAAU,EAAA,CAAA;AAE9C,QAAA,IAAMgD,aAAaC,IAAKC,CAAAA,GAAG,CAAC,CAAA,EAAGH,mBAAmB/C,UAAU,EAAA,CAAA,CAAA;AAE5D,QAAA,IAAI,CAACsC,sBAAsB,GAAGS,kBAAAA,CAAmB/C,UAAU,EAAA,CAAA;QAE3D,IAAMmD,aAAAA,GAAgBJ,mBAAmB/C,UAAU,EAAA,CAAA;QACnD,IAAMoD,aAAAA,GAAgBL,mBAAmB/C,UAAU,EAAA,CAAA;QAEnD,IAAMqD,aAAAA,GAAgBN,mBAAmB/C,UAAU,EAAA,CAAA;QACnD,IAAMsD,aAAAA,GAAgBP,mBAAmB/C,UAAU,EAAA,CAAA;QAEnD,IAAMuD,aAAAA,GAAgBR,mBAAmBjC,UAAU,EAAA,CAAA;QACnD,IAAM0C,aAAAA,GAAgBT,mBAAmBjC,UAAU,EAAA,CAAA;;QAGnD,IAAM2C,SAAAA,GAAY,IAAIxI,KAAiB+H,CAAAA,UAAAA,CAAAA,CAAAA;QACvC,IAAMU,eAAAA,GAAkBV,aAAa,CAAI,GAAA,CAAA,CAAA;AACzC,QAAA,IAAMW,cAAc,IAAIxE,YAAAA,CAAa5B,IAAMwF,EAAAA,kBAAAA,CAAmBrB,MAAM,EAAEgC,eAAAA,CAAAA,CAAAA;QAEtE,IAAI,CAACnB,MAAM,GAAGkB,SAAAA,CAAAA;AAEd,QAAA,IAAK,IAAIlJ,CAAAA,GAAI,CAAGA,EAAAA,CAAAA,GAAIyI,YAAYzI,CAAK,EAAA,CAAA;YACnCkJ,SAAS,CAAClJ,EAAE,GAAG;gBACbqI,SAAW,EAAA,IAAI/B,WAAWpB,MAAQL,EAAAA,UAAAA,GAAauE,YAAY7C,UAAU,EAAA,EAAI6C,YAAY7C,UAAU,EAAA,CAAA;AAC/F8C,gBAAAA,sBAAAA,EAAwBD,YAAY7C,UAAU,EAAA;AAChD,aAAA,CAAA;AACF,SAAA;;AAGA,QAAA,IAAM+C,SAAY,GAAA,IAAI1E,YAAa5B,CAAAA,IAAAA,EAAM4F,aAAeC,EAAAA,aAAAA,CAAAA,CAAAA;AAExD,QAAA,IAAMU,GAA2C,GAAA;AAC/CC,YAAAA,QAAAA,EAAUF,UAAUzC,IAAI,CAAC,CAAE,mBAAiBtB,UAAU,EAAA;AACtDkE,YAAAA,cAAAA,EAAgBH,UAAU/D,UAAU,EAAA;AACpCmE,YAAAA,aAAAA,EAAeJ,UAAU/D,UAAU,EAAA;AACnCoE,YAAAA,mBAAAA,EAAqBL,UAAU/D,UAAU,EAAA;AACzCqE,YAAAA,UAAAA,EAAYN,UAAUjE,SAAS,EAAA;AAC/BwE,YAAAA,cAAAA,EAAgBP,UAAUjE,SAAS,EAAA;AACnCyE,YAAAA,gBAAAA,EAAkBR,UAAUjE,SAAS,EAAA;AACrC0E,YAAAA,KAAAA,EAAOT,UAAUjE,SAAS,EAAA;YAC1B2E,mBAAqB,EAAA;AACnBV,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACpB,aAAA;YACD4E,UAAY,EAAA;AACVX,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,gBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACpB,aAAA;AACD6E,YAAAA,OAAAA,EAAS,EAAE;AACb,SAAA,CAAA;QAEA,IAAI,CAACC,oBAAoB,GAAGZ,GAAAA,CAAAA;AAE5B,QAAA,IAAMa,WAAc,GAAA,CAAA,CAAA;AACpB,QAAA,IAAMC,WAAc,GAAA,CAAA,CAAA;QACpB,IAAMC,UAAAA,GAAa,CAACf,GAAAA,CAAII,mBAAmB,GAAG,CAAA,GAAIS,WAAU,IAAKC,WAAAA,CAAAA;AAEjE,QAAA,IAAK,IAAIrK,EAAAA,GAAI,CAAGA,EAAAA,EAAAA,GAAIsK,YAAYtK,EAAK,EAAA,CAAA;AACnC,YAAA,IAAMuK,MAAS,GAAA;AACbC,gBAAAA,SAAAA,EAAWlB,UAAU/D,UAAU,EAAA;AAC/BkF,gBAAAA,SAAAA,EAAWnB,UAAUjE,SAAS,EAAA;AAC9BqF,gBAAAA,WAAAA,EAAapB,UAAUjE,SAAS,EAAA;gBAChCsF,cAAgB,EAAA;AACdrB,oBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,oBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,oBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACnBiE,oBAAAA,SAAAA,CAAUjE,SAAS,EAAA;AACpB,iBAAA;AACDuF,gBAAAA,WAAAA,EAAa,CAACC,QAAAA;gBACdC,WAAaD,EAAAA,QAAAA;AACf,aAAA,CAAA;YAEA,IAAIN,MAAAA,CAAOG,WAAW,GAAG,IAAM,EAAA;gBAC7BH,MAAOK,CAAAA,WAAW,GAAGtB,SAAAA,CAAU3D,SAAS,EAAA,CAAA;gBACxC4E,MAAOO,CAAAA,WAAW,GAAGxB,SAAAA,CAAU3D,SAAS,EAAA,CAAA;aACnC,MAAA;gBACL4E,MAAOK,CAAAA,WAAW,GAAGtB,SAAAA,CAAU7D,UAAU,EAAA,CAAA;gBACzC8E,MAAOO,CAAAA,WAAW,GAAGxB,SAAAA,CAAU7D,UAAU,EAAA,CAAA;AAC3C,aAAA;YAEA8D,GAAIW,CAAAA,OAAO,CAAClK,EAAAA,CAAE,GAAGuK,MAAAA,CAAAA;AACnB,SAAA;AAEA,QAAA,IAAMQ,SAAY,GAAA,IAAInG,YAAa5B,CAAAA,IAAAA,EAAM8F,eAAeC,aAAe,EAAA,IAAA,CAAA,CAAA;QAEvE,MAAOgC,SAAAA,CAAU7D,QAAQ,GAAG6B,aAAe,CAAA;YACzC,IAAMiC,kBAAAA,GAAqBD,UAAUtF,UAAU,EAAA,CAAA;YAC/C,IAAMwF,OAAAA,GAAUF,SAAUhE,CAAAA,IAAI,CAACiE,kBAAAA,CAAAA,CAAAA;AAC/B,YAAA,IAAM9Q,MAAMgK,UAAW+G,CAAAA,OAAAA,CAAAA,CAAAA;;AAGvB,YAAA,IAAMC,YAAYH,SAAU1E,CAAAA,cAAc,CAAC2E,kBAAqBC,GAAAA,OAAAA,CAAQnG,UAAU,GAAG,CAAA,CAAA,CAAA;YAErF,IAAI,OAAA,CAAQ/D,IAAI,CAAC7G,GAAM,CAAA,EAAA;AACrB,gBAAA,IAAMiR,eAAejH,UAAWgH,CAAAA,SAAAA,CAAAA,CAAAA;AAChC,gBAAA,IAAIE,YAAeD,GAAAA,YAAAA,CAAAA;gBAEnB,MAAOC,YAAAA,CAAahM,MAAM,GAAG,CAAKgM,IAAAA,YAAAA,CAAaC,UAAU,CAACD,YAAahM,CAAAA,MAAM,GAAG,CAAA,CAAA,KAAO,CAAG,CAAA;AACxFgM,oBAAAA,YAAAA,GAAeA,YAAavK,CAAAA,KAAK,CAAC,CAAA,EAAG,CAAC,CAAA,CAAA,CAAA;AACxC,iBAAA;AACA,gBAAA,IAAI,CAACoH,QAAQ,CAAC/N,GAAAA,CAAI,GAAGkR,YAAAA,CAAAA;aAChB,MAAA;AACL,gBAAA,IAAI,CAACnD,QAAQ,CAAC/N,GAAAA,CAAI,GAAGgR,SAAAA,CAAAA;AACvB,aAAA;AACA,YAAA,IAAMI,YAAYN,kBAAqB,GAAA,CAAA,GAAI,IAAKA,kBAAqB,GAAA,CAAA,GAAK;;AAG1ED,YAAAA,SAAAA,CAAUlE,IAAI,CAACyE,SAAAA,CAAAA,CAAAA;AACjB,SAAA;AAEA,QAAA,IAAIrC,iBAAiB,CAAG,EAAA;AAAE,YAAA,OAAO,IAAI,CAAA;AAAE,SAAA;AAEvC,QAAA,IAAMsC,SAAY,GAAA,IAAI3G,YAAa5B,CAAAA,IAAAA,EAAMgG,eAAeC,aAAe,EAAA,IAAA,CAAA,CAAA;QAEvE,IAAMuC,aAAAA,GAAgBD,UAAUhG,UAAU,EAAA,CAAA;QAC1C,IAAMkG,aAAAA,GAAgBF,UAAUhG,UAAU,EAAA,CAAA;QAC1C,IAAMmG,mBAAAA,GAAsBH,UAAU9F,UAAU,EAAA,CAAA;QAChD,IAAMkG,mBAAAA,GAAsBJ,UAAU9F,UAAU,EAAA,CAAA;QAChD,IAAMmG,gBAAAA,GAAmBL,UAAU9F,UAAU,EAAA,CAAA;QAC7C,IAAMoG,kBAAAA,GAAqBN,UAAU9F,UAAU,EAAA,CAAA;QAE/C,IAAMqG,UAAAA,GAA+C,IAAIpL,KAAM+H,CAAAA,UAAAA,CAAAA,CAAAA;AAE/D,QAAA,IAAK,IAAIzI,EAAAA,GAAI,CAAGA,EAAAA,EAAAA,GAAIyI,YAAYzI,EAAK,EAAA,CAAA;YACnC8L,UAAU,CAAC9L,GAAE,GAAG;AACd+L,gBAAAA,UAAAA,EAAYR,UAAU9F,UAAU,EAAA;AAChCuG,gBAAAA,kBAAAA,EAAoBT,UAAU9F,UAAU,EAAA;AACxCwG,gBAAAA,kBAAAA,EAAoBV,UAAU9F,UAAU,EAAA;AACxCyG,gBAAAA,oBAAAA,EAAsBX,UAAU9F,UAAU,EAAA;AAC1C0G,gBAAAA,oBAAAA,EAAsBZ,UAAU9F,UAAU,EAAA;AAC5C,aAAA,CAAA;AACF,SAAA;QAEA,IAAM2G,mBAAAA,GAAsBpD,aAAgBuC,GAAAA,SAAAA,CAAUrE,QAAQ,CAAA;AAC9D,QAAA,IAAMmF,sBAAsBD,mBAAsBV,GAAAA,mBAAAA,CAAAA;AAClD,QAAA,IAAMY,mBAAmBD,mBAAsBV,GAAAA,mBAAAA,CAAAA;AAC/C,QAAA,IAAMY,qBAAqBD,gBAAmBV,GAAAA,gBAAAA,CAAAA;AAE9C,QAAA,IAAMY,aAAgB,GAAA,IAAIlG,UAAWpB,CAAAA,MAAAA,EAAQL,aAAauH,mBAAqBV,EAAAA,mBAAAA,CAAAA,CAAAA;AAC/E,QAAA,IAAMe,aAAgB,GAAA,IAAInG,UAAWpB,CAAAA,MAAAA,EAAQL,aAAawH,mBAAqBV,EAAAA,mBAAAA,CAAAA,CAAAA;AAC/E,QAAA,IAAMe,UAAa,GAAA,IAAIpG,UAAWpB,CAAAA,MAAAA,EAAQL,aAAayH,gBAAkBV,EAAAA,gBAAAA,CAAAA,CAAAA;AACzE,QAAA,IAAMe,YAAe,GAAA,IAAIrG,UAAWpB,CAAAA,MAAAA,EAAQL,aAAa0H,kBAAoBV,EAAAA,kBAAAA,CAAAA,CAAAA;QAE7E,IAAI,CAAC3D,UAAU,GAAG;YAChBsD,aAAAA,EAAAA,aAAAA;YACAC,aAAAA,EAAAA,aAAAA;YACAK,UAAAA,EAAAA,UAAAA;YACAU,aAAAA,EAAAA,aAAAA;YACAC,aAAAA,EAAAA,aAAAA;YACAC,UAAAA,EAAAA,UAAAA;YACAC,YAAAA,EAAAA,YAAAA;AACF,SAAA,CAAA;AACF,KAAA,CAAA;AA1OWpF,IAAAA,aAAAA,CAAAA,aAAAA,EAAAA;;YA6BPqF,GAAAA,EAAAA,QAAAA;AAAJ,YAAA,GAAA,EAAA,SAAA,GAAA,GAAA;AACE,gBAAA,OAAO,IAAI,CAACzC,oBAAoB,CAACL,gBAAgB,KAAA,CAAA,CAAA;AACnD,aAAA;;;YAEI+C,GAAAA,EAAAA,SAAAA;AAAJ,YAAA,GAAA,EAAA,SAAA,GAAA,GAAA;AACE,gBAAA,OAAO,IAAI,CAAC1C,oBAAoB,CAACP,UAAU,KAAA,GAAA,CAAA;AAC7C,aAAA;;;YAEIkD,GAAAA,EAAAA,YAAAA;AAAJ,YAAA,GAAA,EAAA,SAAA,GAAA,GAAA;gBACE,OAAO,IAAI,CAACtF,QAAQ,IAAI,CAAA,CAAA;AAC1B,aAAA;;;AAvCWD,IAAAA,OAAAA,aAAAA,CAAAA;AA2OZ,CAAA,EAAA;;AC/PD;;;;AA+BC,IACM,SAASwF,mBAAAA,GAAAA;IACd,IAAIC,WAAAA,CAAAA;AAEJ;;MAGA,IAAA,WAAMC,iBAAD,WAAL;AAAMA,QAAAA,SAAAA,WAAAA,GAAAA;;AACGC,YAAAA,IAAAA,CAAAA,IAAAA,GAAmB,IAAI5G,UAAW,CAAA,CAAA,CAAA,CAAA;iBAClCrJ,QAAmC,GAAA,IAAA,CAAA;iBACnCkQ,YAAe,GAAA;gBACpBC,GAAK,EAAA;oBACHC,+BAAiC,EAAA,WAAA;wBAC/B,KAAKH,CAAAA,IAAI,GAAG,IAAI5G,UAAW,CAAA,KAAA,CAAKrJ,QAAQ,CAAEqQ,OAAO,CAACC,MAAM,CAACrI,MAAM,CAAA,CAAA;AACjE,qBAAA;AACF,iBAAA;AACF,aAAA,CAAA;;AATI+H,QAAAA,IAAAA,MAAAA,GAAAA,WAAAA,CAAAA,SAAAA,CAAAA;AAYJzJ,QAAAA,MAAAA,CAAAA,IAWC,GAXDA,SAAAA,IAAAA,CAAMgK,iBAAqC,EAAA;;AACzC,YAAA,IAAI,CAAC,IAAI,CAAC/J,WAAW,EAAE;AACrB,gBAAA,IAAI,CAACA,WAAW,GAAGgK,WAAAA,CAChBC,WAAW,CAACF,iBAAmB,EAAA,IAAI,CAACL,YAAY,CAChD1S,CAAAA,IAAI,CAAC,SAACyB,MAAAA,EAAAA;AACL,oBAAA,KAAA,CAAKe,QAAQ,GAAGf,MAAAA,CAAAA;AAChB,oBAAA,KAAA,CAAKiR,YAAY,CAACC,GAAG,CAACC,+BAA+B,EAAA,CAAA;AACvD,iBAAA,CAAA,CAAA;AACJ,aAAA;YAEA,OAAO,IAAI,CAAC5J,WAAW,CAAA;AACzB,SAAA,CAAA;AAEAY,QAAAA,MAAAA,CAAAA,MA4BC,GA5BDA,SAAAA,MAAQF,CAAAA,KAAiB,EAAEwJ,gBAAoB,EAAA;AAApBA,YAAAA,IAAAA,6BAAAA,gBAAmB,GAAA,CAAA,CAAA;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC1Q,QAAQ,EAAE;AAClB,gBAAA,MAAM,IAAIwC,KAAM,CAAA,6CAAA,CAAA,CAAA;AAClB,aAAA;AAEA,YAAA,IAAM6N,OAAU,GAAA,IAAI,CAACrQ,QAAQ,CAACqQ,OAAO,CAAA;YACrC,IAAMM,cAAAA,GAAiBzJ,MAAMW,UAAU,CAAA;YACvC,IAAM+I,aAAAA,GAAgBP,OAAQQ,CAAAA,MAAM,CAACF,cAAAA,CAAAA,CAAAA;AAErC,YAAA,IAAI,CAACV,IAAI,CAACtP,GAAG,CAACuG,KAAO0J,EAAAA,aAAAA,CAAAA,CAAAA;AAErBF,YAAAA,gBAAAA,GAAmBA,gBAAoBI,IAAAA,MAAAA,CAAOT,OAAQU,CAAAA,yBAAyB,CAACH,aAAeD,EAAAA,cAAAA,CAAAA,CAAAA,CAAAA;YAC/F,IAAMK,eAAAA,GAAkBX,OAAQQ,CAAAA,MAAM,CAACH,gBAAAA,CAAAA,CAAAA;AACvC,YAAA,IAAMO,aAAaZ,OAAQa,CAAAA,eAAe,CAACF,eAAAA,EAAiBN,kBAAkBE,aAAeD,EAAAA,cAAAA,CAAAA,CAAAA;AAE7F,YAAA,IAAIM,aAAa,CAAG,EAAA;AAClBZ,gBAAAA,OAAAA,CAAQc,IAAI,CAACP,aAAAA,CAAAA,CAAAA;AACbP,gBAAAA,OAAAA,CAAQc,IAAI,CAACH,eAAAA,CAAAA,CAAAA;AACb,gBAAA,MAAM,IAAIxO,KAAM,CAAA,oCAAA,CAAA,CAAA;AAClB,aAAA;;YAGA,IAAM4O,GAAAA,GAAM,IAAI,CAACnB,IAAI,CAACrM,KAAK,CAACoN,iBAAiBA,eAAkBC,GAAAA,UAAAA,CAAAA,CAAAA;AAE/DZ,YAAAA,OAAAA,CAAQc,IAAI,CAACP,aAAAA,CAAAA,CAAAA;AACbP,YAAAA,OAAAA,CAAQc,IAAI,CAACH,eAAAA,CAAAA,CAAAA;YAEb,OAAOI,GAAAA,CAAAA;AACT,SAAA,CAAA;AArDIpB,QAAAA,OAAAA,WAAAA,CAAAA;;AAwDN,IAAA,SAASqB,cACPC,cAA8B,EAC9BC,cAA0B,EAC1BC,KAAa,EACbC,MAAc,EAAA;AAEd,QAAA,IAAMC,OAAU,GAAC,CAACF,KAAQ,GAAA,CAAA,IAAM,CAAA,KAAOC,MAAS,GAAA,CAAA,IAAM,CAAA,CAAA,CAAA;AACtD,QAAA,IAAME,cAAiB,GAACD,OAAU,GAAA,EAAA,GAAK,KAAU,IAAA,EAAA,CAAA;QACjD,IAAMpB,MAAAA,GAASgB,eAAehB,MAAM,CAAA;QACpC,IAAMsB,KAAAA,GAAQD,iBAAiB,CAAKrB,IAAAA,OAAOrI,MAAM,CAACJ,UAAU,IAAI,EAAC,CAAA,CAAA;AAEjE,QAAA,IAAI+J,QAAQ,CAAG,EAAA;AAAEtB,YAAAA,MAAAA,CAAOuB,IAAI,CAACD,KAAAA,CAAAA,CAAAA;AAAQ,SAAA;AAErC,QAAA,IAAME,cAAc,IAAIzI,UAAAA,CAAWiH,OAAOrI,MAAM,EAAE,OAAOyJ,OAAU,GAAA,EAAA,CAAA,CAAA;AAEnEI,QAAAA,WAAAA,CAAYnR,GAAG,CAAC4Q,cAAAA,CAAAA,CAAAA;AAEhB,QAAA,OAAOD,cAAeS,CAAAA,SAAS,CAACL,OAAAA,CAAAA,KAAa,IAAII,WAAc,GAAA,IAAA,CAAA;AACjE,KAAA;AAEA,IAAA,SAASE,eAAgBC,oBAAwC,EAAA;QAC/DlC,WAAcS,GAAAA,WAAAA,CACXC,WAAW,CAACwB,oBAAsB,EAAA;YACjC9B,GAAK,EAAA;gBAAEG,MAAQ,EAAA,IAAIE,WAAY0B,CAAAA,MAAM,CAAC;oBAAEC,OAAS,EAAA,EAAA;AAAG,iBAAA,CAAA;AAAG,aAAA;SAExD3U,CAAAA,CAAAA,IAAI,CAAC4U,SAAAA,aAAAA,EAAAA;AAAiBA,YAAAA,OAAAA,aAAAA,CAAc/B,OAAO,CAAA;;QAE9C,OAAON,WAAAA,CAAAA;AACT,KAAA;AAEA,IAAA,IAAMsC,cAAc,IAAIrC,WAAAA,EAAAA,CAAAA;AAExB,IAAA,SAAS+B,UACPhM,IAAqB,EACrBuM,QAAiB,EACjBL,oBAAoC,EACpC1B,iBAAsC,EAAA;QAEtC,IAAM1F,SAAAA,GAAY9E,KAAK5D,MAAM,CAAA;QAC7B,IAAMlD,MAAAA,GAA0B,IAAIwE,KAAMoH,CAAAA,SAAAA,CAAAA,CAAAA;QAC1C,IAAM0H,iBAAAA,GAAoBD,QAAW,GAAA,IAAI9R,GAAQxC,EAAAA,GAAAA,SAAAA,CAAAA;QACjD,IAAIwU,OAAAA,GAAUjV,QAAQV,OAAO,EAAA,CAAA;AAE7B,QAAA,IAAIyV,YAAY/B,iBAAmB,EAAA;YACjC,KAAK8B,WAAAA,CAAY9L,IAAI,CAACgK,iBAAAA,CAAAA,CAAAA;AACtBiC,YAAAA,OAAAA,GAAUH,YAAY7L,WAAW,CAAA;AACnC,SAAA;QAEA,OAAOgM,OAAAA,CAAQhV,IAAI,CAAC,WAAA;AAClB,YAAA,IAAK,IAAIiV,SAAAA,GAAY,CAAGA,EAAAA,SAAAA,GAAY5H,WAAW4H,SAAa,EAAA,CAAA;AAC1D,gBAAA,IAAMC,WAAc3M,GAAAA,IAAI,CAAC0M,SAAAA,CAAU,CAACtQ,MAAM,CAAA;gBAC1C,IAAMwQ,WAAAA,GAA6B,IAAIlP,KAAMiP,CAAAA,WAAAA,CAAAA,CAAAA;AAE7C,gBAAA,IAAK,IAAI3P,CAAAA,GAAI,CAAGA,EAAAA,CAAAA,GAAI2P,aAAa3P,CAAK,EAAA,CAAA;AACpC,oBAAA,IAAoEgD,oBAAAA,IAAI,CAAC0M,SAAU,CAAA,CAAC1P,EAAE,EAA9EkF,MAAAA,GAA4DlC,iBAA5DkC,CAAAA,MAAAA,EAAQ2K,cAAoD7M,iBAApD6M,CAAAA,WAAAA,EAAaC,aAAuC9M,iBAAvC8M,CAAAA,UAAAA,EAAYzG,yBAA2BrG,iBAA3BqG,CAAAA,sBAAAA,CAAAA;AACzC,oBAAA,IAAI0G,WAAc7K,GAAAA,MAAAA,CAAAA;AAElB,oBAAA,IAAIqK,QAAU,EAAA;AACZ,wBAAA,IAAIS,OAAUR,GAAAA,iBAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAmB7R,CAAAA,GAAG,CAACqC,CAAAA,CAAAA,CAAAA;AAErC,wBAAA,IAAI,CAACgQ,OAAS,EAAA;AACZA,4BAAAA,OAAAA,GAAUV,WAAYjL,CAAAA,MAAM,CAACa,MAAAA,CAAOrE,KAAK,EAAIwI,EAAAA,sBAAAA,CAAAA,CAAAA;4BAC7CmG,iBAAAA,IAAAA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAAA,CAAmB5R,GAAG,CAACoC,CAAGgQ,EAAAA,OAAAA,CAAAA,CAAAA;AAC5B,yBAAA;wBACAD,WAAcC,GAAAA,OAAAA,CAAAA;AAChB,qBAAA;oBAEA,IAAMC,cAAAA,GAAiBF,WAAYjL,CAAAA,UAAU,GAAGgD,SAAAA,CAAAA;oBAChD,IAAMoI,gBAAAA,GAAmBH,YAAYlL,UAAU,CAAA;AAC/C,oBAAA,IAAMsL,aAAgB7B,GAAAA,aAAAA,CACpBY,oBACA,EAAA,IAAI5I,UAAWyJ,CAAAA,WAAAA,CAAY7K,MAAM,EAAEgL,gBAAmBR,GAAAA,SAAAA,GAAYO,cAAgBA,EAAAA,cAAAA,CAAAA,EAClFH,UACAD,EAAAA,WAAAA,CAAAA,CAAAA;AAGF,oBAAA,IAAIM,aAAe,EAAA;wBACjBP,WAAW,CAAC5P,EAAE,GAAG;;AAEfgD,4BAAAA,IAAAA,EAAMmN,cAActP,KAAK,EAAA;4BACzB4N,KAAOqB,EAAAA,UAAAA;4BACPpB,MAAQmB,EAAAA,WAAAA;AACV,yBAAA,CAAA;qBACK,MAAA;AACL,wBAAA,MAAM,IAAIpQ,KAAM,CAAA,sBAAA,CAAA,CAAA;AAClB,qBAAA;AACF,iBAAA;gBACAvD,MAAM,CAACwT,UAAU,GAAGE,WAAAA,CAAAA;AACtB,aAAA;YAEA,OAAO1T,MAAAA,CAAAA;AACT,SAAA,CAAA,CAAA;AACF,KAAA;;;IAIA,IAAI,OAAOkU,WAAW,WAAa,EAAA;AACjCxV,QAAAA,IAAAA,CAAKyV,SAAS,GAAG,SAASA,SAAAA,CAAWzN,KAAK,EAAA;YACxC,IAAMpD,OAAAA,GAAUoD,MAAMI,IAAI,CAAA;AAE1B,YAAA,OAAQxD,QAAQyE,IAAI;gBAClB,KAAK,MAAA;AACHgL,oBAAAA,cAAAA,CAAezP,OAAQsE,CAAAA,cAAc,CAClCrJ,CAAAA,IAAI,CAAC,WAAA;AACJG,wBAAAA,IAAAA,CAAKuH,WAAW,CAAC,gBAAA,CAAA,CAAA;qBAElBI,CAAAA,CAAAA,KAAK,CAACjI,SAAAA,KAAAA,EAAAA;AACLM,wBAAAA,IAAAA,CAAKuH,WAAW,CAAC;4BAAE7H,KAAAA,EAAAA,KAAAA;AAAM,yBAAA,CAAA,CAAA;AAC3B,qBAAA,CAAA,CAAA;AAEF,oBAAA,MAAA;gBACF,KAAK,WAAA;AACH,oBAAA,IAAI,CAAC0S,WAAa,EAAA;AAChBpS,wBAAAA,IAAAA,CAAKuH,WAAW,CAAC;AAAE7H,4BAAAA,KAAAA,EAAO,IAAImF,KAAM,CAAA,6BAAA,CAAA;AAA+B,yBAAA,CAAA,CAAA;AAEnE,wBAAA,MAAA;AACF,qBAAA;oBAEAuN,WACGvS,CAAAA,IAAI,CAACyU,SAAAA,oBAAAA,EAAAA;AACJF,wBAAAA,SAAAA,CACExP,OAAQwD,CAAAA,IAAI,EACZxD,OAAAA,CAAQ+P,QAAQ,EAChBL,oBACA1P,EAAAA,OAAAA,CAAQgO,iBAAiB,CAAA,CACzB/S,IAAI,CAACmV,SAAAA,WAAAA,EAAAA;AACLhV,4BAAAA,IAAAA,CAAKuH,WAAW,CAACyN,WAAAA,CAAAA,CAAAA;yBAChBrN,CAAAA,CAAAA,KAAK,CAACjI,SAAAA,KAAAA,EAAAA;AAASM,4BAAAA,OAAAA,IAAAA,CAAKuH,WAAW,CAAC;gCAAE7H,KAAAA,EAAAA,KAAAA;AAAM,6BAAA,CAAA,CAAA;;qBAE5CiI,CAAAA,CAAAA,KAAK,CAACjI,SAAAA,KAAAA,EAAAA;AACLM,wBAAAA,IAAAA,CAAKuH,WAAW,CAAC;4BAAE7H,KAAAA,EAAAA,KAAAA;AAAM,yBAAA,CAAA,CAAA;AAC3B,qBAAA,CAAA,CAAA;AAEF,oBAAA,MAAA;AACJ,aAAA;AACF,SAAA,CAAA;AACF,KAAA;;IAGA,OAAO;QACL2S,WAAAA,EAAAA,WAAAA;QACAqB,aAAAA,EAAAA,aAAAA;QACAW,cAAAA,EAAAA,cAAAA;QACAK,WAAAA,EAAAA,WAAAA;QACAN,SAAAA,EAAAA,SAAAA;QACAsB,cAAgB,EAAA,WAAA;AAAMtD,YAAAA,OAAAA,WAAAA,CAAAA;;AACxB,KAAA,CAAA;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtOA;;IAGA,IAAA,2BAAMuD,iBAAD,WAAL;AAAMA,IAAAA,SAAAA,2BAAAA,GAAAA;aACIC,OAAyD,GAAA,IAAA,CAAA;;AAD7DD,IAAAA,IAAAA,MAAAA,GAAAA,2BAAAA,CAAAA,SAAAA,CAAAA;IAGJ,MAAM/M,CAAAA,IAQL,GARD,SAAMA,IAAAA,GAAAA;;eAAN,mBAAA,CAAA,WAAA;AAIU0L,YAAAA,IAAAA,oBAAAA,CAAAA;;;;6BAHJ,CAAC,KAAA,CAAKsB,OAAO,EAAb,OAAA;;;;AACF,wBAAA,KAAA,CAAKA,OAAO,GAAGzD,mBAAAA,EAAAA,CAAAA;AAEc,wBAAA,OAAA;;AAAM0D,4BAAAA,aAAAA,EAAAA;;;wBAA7BvB,oBAAuB,GAAA,MAAA,CAAA,IAAA,EAAA,CAAA;AAE7B,wBAAA,OAAA;;4BAAM,KAAKsB,CAAAA,OAAO,CAACvB,cAAc,CAACC,oBAAAA,CAAAA;;;AAAlC,wBAAA,MAAA,CAAA,IAAA,EAAA,CAAA;;;;;;;;AAEJ,SAAA,CAAA,EAAA,CAAA;;IAEA,MAAMF,CAAAA,SAUL,GAVD,SAAMA,SAAAA,CACJhM,IAAqB,EACrBuM,QAAiB,EACjB/B,iBAAsC,EAAA;;eAHxC,mBAAA,CAAA,WAAA;gBAO2B,aAAnBkD,EAAAA,UAAAA,CAAAA;;;;AAFN,wBAAA,OAAA;;AAAM,4BAAA,KAAA,CAAKlN,IAAI,EAAA;;;AAAf,wBAAA,MAAA,CAAA,IAAA,EAAA,CAAA;AAEmB,wBAAA,OAAA;;AAAM,4BAAA,CAAA,aAAA,GAAA,KAAKgN,CAAAA,OAAO,KAAZ,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAcF,cAAc,EAAA;;;wBAA/CI,UAAa,GAAA,MAAA,CAAA,IAAA,EAAA,CAAA;AAEnB,wBAAA,OAAA;;AAAO,4BAAA,KAAA,CAAKF,OAAO,CAAExB,SAAS,CAAChM,IAAAA,EAAMuM,UAAUmB,UAAYlD,EAAAA,iBAAAA,CAAAA;;;;AAC7D,SAAA,CAAA,EAAA,CAAA;;IAEArK,MAAAA,CAAAA,OAEC,GAFDA,SAAAA,OAAAA,GAAAA;QACE,IAAI,CAACqN,OAAO,GAAG,IAAA,CAAA;AACjB,KAAA,CAAA;AA3BID,IAAAA,OAAAA,2BAAAA,CAAAA;;AA8BN;;;AAGC,IACM,IAAA,iBAAMI,iBAAD,SAAL,iBAAA,EAAA;AAAMA,IAAAA,SAAAA,CAAAA,iBAAAA,EAAAA,iBAAAA,CAAAA,CAAAA;aAAAA,iBAKTpN,CAAAA,gBAAwB,EACRU,IAAsB,EAAA;;AAEhCV,QAAAA,KAAAA,GAAAA,iBAAAA,CAAAA,IAAAA,CAAAA,IAAAA,EAAAA,gBAAAA,CAAAA,IAAAA,IAAAA,CAAAA;cAFUU,IAAAA,GAAAA,IAAAA,CAAAA;cALV2M,oBAA2D,GAAA,IAAA,CAAA;;;AADxDD,IAAAA,IAAAA,MAAAA,GAAAA,iBAAAA,CAAAA,SAAAA,CAAAA;IAWX,MAAMjN,CAAAA,uBA0BL,GA1BD,SAAMA,uBAAAA,GAAAA;;eAAN,mBAAA,CAAA,WAAA;AAUQI,YAAAA,IAAAA,cAAAA,EAGA+M,eAIAhN,EAAAA,SAAAA,CAAAA;;;;AAfF,wBAAA,IAAA,EAAA,KAAKN,CAAAA,gBAAgB,IAAI,CAAA,CAAzB,EAAA,OAAA;;;;wBACF,KAAKqN,CAAAA,oBAAoB,GAAG,IAAIL,2BAAAA,EAAAA,CAAAA;AAChC,wBAAA,OAAA;;4BAAM,KAAKK,CAAAA,oBAAoB,CAACpN,IAAI,EAAA;;;AAApC,wBAAA,MAAA,CAAA,IAAA,EAAA,CAAA;AAEA,wBAAA,OAAA;;;;;AAIqB,wBAAA,OAAA;;AAAMiN,4BAAAA,aAAAA,EAAAA;;;wBAAvB3M,cAAiB,GAAA,MAAA,CAAA,IAAA,EAAA,CAAA;;AAGjB+M,wBAAAA,eAAAA,GAAkB,WAAC,GACpB9D,mBAAoB1P,CAAAA,QAAQ,EAAG,GAAA,cAAA,CAAA;wBAG9BwG,SAAYiN,GAAAA,GAAAA,CAAIC,eAAe,CACnC,IAAIC,IAAAA,CAAAA;AAAMH,4BAAAA,eAAAA;AAAkB,yBAAA,EAAA;4BAC1B5M,IAAM,EAAA,wBAAA;AACR,yBAAA,CAAA,CAAA,CAAA;AAGF,wBAAA,KAAA,CAAKJ,SAAS,GAAGA,SAAAA,CAAAA;AAEjB,wBAAA,OAAA;;4BAAO,KAAKD,CAAAA,mBAAmB,CAACC,SAAWC,EAAAA,cAAAA,CAAAA;;;;AAC7C,SAAA,CAAA,EAAA,CAAA;;AAEA,IAAA,MAAA,CAAMkL,SAiEL,GAjED,SAAMA,SAAWiC,CAAAA,aAA4B,EAAEC,gBAAyB,EAAA;;eAAxE,mBAAA,CAAA,WAAA;AACQ3B,YAAAA,IAAAA,QAAAA,EACA4B,mBACA1I,EAAAA,UAAAA,EAKAX,SAEAsJ,EAAAA,WAAAA,EAEG1B,WACD2B,UAEGC,EAAAA,WAAAA,EACDlJ,KACA0H,EAAAA,UAAAA,EACAD,WACA0B,EAAAA,YAAAA,EACAC,YACAC,EAAAA,gBAAAA,EAYJjE,yBAEFkE,KAWIC,EAAAA,eAAAA,CAAAA;;;;AA7CFpC,wBAAAA,QAAAA,GAAW0B,aAAclJ,CAAAA,sBAAsB,KAAKT,sBAAAA,CAAuBsK,IAAI,CAAA;wBAC/ET,mBAAsBF,GAAAA,aAAAA,CAAcjJ,MAAM,CAAC5I,MAAM,CAAA;AACjDqJ,wBAAAA,UAAAA,GAAayI,2BAAAA,gBAAoBC,GAAAA,mBAAAA,CAAAA;wBAEvC,IAAI1I,UAAAA,GAAa,CAAKA,IAAAA,UAAAA,GAAa0I,mBAAqB,EAAA;AACtD,4BAAA,MAAM,IAAI1R,KAAM,CAAC,mBAAmBgJ,GAAAA,UAAAA,GAAW,0BAAuB0I,mBAAoB,GAAA,IAAA,CAAA,CAAA;AAC5F,yBAAA;AACMrJ,wBAAAA,SAAAA,GAAYmJ,cAAcnJ,SAAS,CAAA;;AAEnCsJ,wBAAAA,WAAAA,GAA+B,IAAI1Q,KAAqBoH,CAAAA,SAAAA,CAAAA,CAAAA;AAE9D,wBAAA,IAAS4H,SAAY,GAAA,CAAA,EAAGA,SAAY5H,GAAAA,SAAAA,EAAW4H,SAAa,EAAA,CAAA;AACpD2B,4BAAAA,UAAAA,GAAa,IAAI3Q,KAAM+H,CAAAA,UAAAA,CAAAA,CAAAA;AAE7B,4BAAA,IAAS6I,WAAc,GAAA,CAAA,EAAGA,WAAc7I,GAAAA,UAAAA,EAAY6I,WAAe,EAAA,CAAA;gCAC3DlJ,KAAQ6I,GAAAA,aAAAA,CAAcjJ,MAAM,CAACsJ,WAAY,CAAA,CAAA;gCACzCxB,UAAapH,GAAAA,IAAAA,CAAKmJ,KAAK,CAACZ,aAAAA,CAAcvJ,UAAU,IAAI,CAAK4J,IAAAA,WAAU,CAAO,CAAA,IAAA,CAAA,CAAA;gCAC1EzB,WAAcnH,GAAAA,IAAAA,CAAKmJ,KAAK,CAACZ,aAAAA,CAActJ,WAAW,IAAI,CAAK2J,IAAAA,WAAU,CAAO,CAAA,IAAA,CAAA,CAAA;gCAC5EC,YAAenJ,GAAAA,KAAAA,CAAMC,SAAS,CAACnD,MAAM,CAAA;gCACrCsM,YAAepJ,GAAAA,KAAAA,CAAMC,SAAS,CAACxD,UAAU,CAAA;gCACzC4M,gBAAmBrJ,GAAAA,KAAAA,CAAMC,SAAS,CAACvD,UAAU,CAAA;gCAEnDuM,UAAU,CAACC,YAAY,GAAG;oCACxBpM,MAAQ,EAAA,IAAIoB,UAAWiL,CAAAA,YAAAA,EAAcC,YAAcC,EAAAA,gBAAAA,CAAAA;oCACnD3B,UAAAA,EAAAA,UAAAA;oCACAD,WAAAA,EAAAA,WAAAA;AACAxG,oCAAAA,sBAAAA,EAAwBjB,MAAMiB,sBAAsB;AACtD,iCAAA,CAAA;AACF,6BAAA;4BACA+H,WAAW,CAAC1B,UAAU,GAAG2B,UAAAA,CAAAA;AAC3B,yBAAA;6BAE0B9B,QAAAA,EAAAA,OAAAA;;;;AAAW,wBAAA,OAAA;;AAAMuC,4BAAAA,WAAAA,EAAAA;;;AAAN,wBAAA,IAAA,GAAA,MAAA,CAAA,IAAA,EAAA,CAAA;;;;;;AAAsB7W,wBAAAA,IAAAA,GAAAA,SAAAA,CAAAA;;;AAArDuS,wBAAAA,iBAAAA,GAAAA,IAAAA,CAAAA;AAKF,wBAAA,IAAA,EAAA,MAAKjK,gBAAgB,IAAI,KAAK,KAAKqN,CAAAA,oBAAoB,CAAvD,EAAA,OAAA;;;;AACM,wBAAA,OAAA;;AAAM,4BAAA,KAAA,CAAKA,oBAAoB,CAAC5B,SAAS,CAACoC,aAAa7B,QAAU/B,EAAAA,iBAAAA,CAAAA;;;wBAAzEkE,KAAQ,GAAA,MAAA,CAAA,IAAA,EAAA,CAAA;;;;;;;wBAGR,IAAI,CAAC,KAAK/N,CAAAA,mBAAmB,EAAE;AAC7B,4BAAA,MAAM,IAAIlE,KAAM,CAAA,4DAAA,CAAA,CAAA;AAClB,yBAAA;wBAEMkS,eAA4C,GAAA;4BAChD1N,IAAM,EAAA,WAAA;4BACN8N,MAAQ,EAAA,CAAA;4BACRxC,QAAAA,EAAAA,QAAAA;4BACAvM,IAAMoO,EAAAA,WAAAA;4BACN5D,iBAAAA,EAAAA,iBAAAA;AACF,yBAAA,CAAA;AAEQ,wBAAA,OAAA;;4BAAM,KAAK7J,CAAAA,mBAAmB,CAACxB,WAAW,CAACwP,eAAAA,CAAAA;;;wBAAnDD,KAAQ,GAAA,MAAA,CAAA,IAAA,EAAA,CAAA;;;AAGV,wBAAA,OAAA;;AAAO,4BAAA;AACLjD,gCAAAA,KAAAA,EAAOwC,cAAcvJ,UAAU;AAC/BgH,gCAAAA,MAAAA,EAAQuC,cAActJ,WAAW;gCACjCqK,QAAU,EAAA,IAAA;gCACVD,MAAQ,EAAA,CAAA;gCACRL,KAAAA,EAAAA,KAAAA;gCACA5J,SAAAA,EAAAA,SAAAA;AACF,6BAAA;;;;AACF,SAAA,CAAA,EAAA,CAAA;;IAEA,MAAS3E,CAAAA,OAYR,GAZD,SAASA,OAAAA,GAAAA;AACP,QAAA,iBAAA,CAAA,SAAA,CAAMA,OAAD,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;QAEL,IAAI,IAAI,CAACyN,oBAAoB,EAAE;YAC7B,IAAI,CAACA,oBAAoB,CAACzN,OAAO,EAAA,CAAA;YACjC,IAAI,CAACyN,oBAAoB,GAAG,IAAA,CAAA;AAC9B,SAAA;QAEA,IAAI,IAAI,CAAC/M,SAAS,EAAE;AAClBiN,YAAAA,GAAAA,CAAImB,eAAe,CAAC,IAAI,CAACpO,SAAS,CAAA,CAAA;YAClC,IAAI,CAACA,SAAS,GAAG5I,SAAAA,CAAAA;AACnB,SAAA;AACF,KAAA,CAAA;AAtHW0V,IAAAA,OAAAA,iBAAAA,CAAAA;EAA0BrN,iBAuHtC,CAAA;;AC5JD;;AAEC,IACM,IAAA,UAAM4O,iBAAD,SAAL,MAAA,EAAA;AAAMA,IAAAA,SAAAA,CAAAA,UAAAA,EAAAA,MAAAA,CAAAA,CAAAA;AAAAA,IAAAA,SAAAA,UAAAA,CAUT,WAAgC,EAAA;AAAhC,QAAA,IAAiBC,wBAAAA,WAAc,GAAA,CAAA,CAAA;;;cAAdA,WAAAA,GAAAA,WAAAA,CAAAA;cATXC,iBAA8C,GAAA,IAAA,CAAA;;;AAD3CF,IAAAA,IAAAA,MAAAA,GAAAA,UAAAA,CAAAA,SAAAA,CAAAA;AAeX,IAAA,MAAA,CAAeG,iBAKd,GALD,SAAeA,iBAAmBC,CAAAA,MAAa,EAAEC,QAA2B,EAAA;;eAA5E,mBAAA,CAAA,WAAA;;;AAEE,gBAAA,IAAI,CAACC,qBAAAA,CAAsB9U,GAAG,CAAC,MAAS,CAAA,EAAA;AACtC+U,oBAAAA,kBAAAA,CAAmB,MAAKN,WAAW,CAAA,CAAA;AACrC,iBAAA;;;;;AACF,SAAA,CAAA,EAAA,CAAA;;AAEA;;MAGA,MAAA,CAAcO,qBAgBb,GAhBD,SAAcA,qBAAAA,GAAAA;;eAAd,mBAAA,CAAA,WAAA;gBAMUC,UAICrY,EAAAA,KAAAA,CAAAA;;;;wBATT,IAAI,KAAA,CAAK8X,iBAAiB,EAAE;AAC1B,4BAAA,OAAA;;;AACF,yBAAA;;;;;;;;;AAGQO,wBAAAA,UAAAA,GAAa,IAAIhC,iBAAkB,CAAA,KAAA,CAAKwB,WAAW,EAAExS,iBAAiBiT,IAAI,CAAA,CAAA;AAEhF,wBAAA,OAAA;;AAAMD,4BAAAA,UAAAA,CAAWnP,IAAI,EAAA;;;AAArB,wBAAA,MAAA,CAAA,IAAA,EAAA,CAAA;AACA,wBAAA,KAAA,CAAK4O,iBAAiB,GAAGO,UAAAA,CAAAA;;;;;;AAClBrY,wBAAAA,KAAAA,GAAAA,MAAAA,CAAAA,IAAAA,EAAAA,CAAAA;wBACPuY,OAAQvY,CAAAA,KAAK,CAAC,yCAA2CA,EAAAA,KAAAA,CAAAA,CAAAA;AACzD,wBAAA,KAAA,CAAK8X,iBAAiB,GAAG,IAAA,CAAA;AACzB,wBAAA,KAAA,CAAKU,kBAAkB,GAAG7X,SAAAA,CAAAA;wBAC1B,MAAMX,KAAAA,CAAAA;;;;;;;AAEV,SAAA,CAAA,EAAA,CAAA;;AAEA;;MAGA,MAAA,CAAcyY,uBAgBb,GAhBD,SAAcA,uBAAAA,GAAAA;;eAAd,mBAAA,CAAA,WAAA;;;;wBACE,IAAI,KAAA,CAAKX,iBAAiB,EAAE;AAC1B,4BAAA,OAAA;;AAAO,gCAAA,KAAA,CAAKA,iBAAiB;;AAC/B,yBAAA;wBAEA,IAAI,CAAC,KAAKU,CAAAA,kBAAkB,EAAE;4BAC5B,KAAKA,CAAAA,kBAAkB,GAAG,KAAA,CAAKJ,qBAAqB,EAAA,CAAA;AACtD,yBAAA;AAEA,wBAAA,OAAA;;AAAM,4BAAA,KAAA,CAAKI,kBAAkB;;;AAA7B,wBAAA,MAAA,CAAA,IAAA,EAAA,CAAA;wBAEA,IAAI,CAAC,KAAKV,CAAAA,iBAAiB,EAAE;AAC3B,4BAAA,MAAM,IAAI3S,KAAM,CAAA,yCAAA,CAAA,CAAA;AAClB,yBAAA;AAEA,wBAAA,OAAA;;AAAO,4BAAA,KAAA,CAAK2S,iBAAiB;;;;AAC/B,SAAA,CAAA,EAAA,CAAA;;AAEA;;AAEC,MACD,MAAMY,CAAAA,cASL,GATD,SAAMA,eAAgBC,SAAsB,EAAA;;eAA5C,mBAAA,CAAA,WAAA;gBACQ/N,MACgD,EAAA,IAAA,EAA9C+L,aAAe/U,EAAAA,MAAAA,EAAQgX,kBACzBC,EAAAA,cAAAA,CAAAA;;;;AAFAjO,wBAAAA,MAAAA,GAAS,IAAIoB,UAAW2M,CAAAA,SAAAA,CAAAA,CAAAA;AACwB,wBAAA,OAAA;;AAAM,4BAAA,KAAA,CAAKG,WAAW,CAAClO,MAAAA,CAAAA;;;wBAAvB,IAAA,GAAA,MAAA,CAAA,IAAA,EAAA,EAA9C+L,gBAA8C,IAA9CA,CAAAA,aAAAA,EAAe/U,SAA+B,IAA/BA,CAAAA,MAAAA,EAAQgX,qBAAuB,IAAvBA,CAAAA,kBAAAA,CAAAA;AACzBC,wBAAAA,cAAAA,GAAiB,KAAKE,CAAAA,qBAAqB,CAACpC,aAAAA,EAAe/U,MAAQgX,EAAAA,kBAAAA,CAAAA,CAAAA;;AAGzEjC,wBAAAA,aAAAA,CAAc5N,KAAK,EAAA,CAAA;AAEnB,wBAAA,OAAA;;AAAO8P,4BAAAA,cAAAA;;;;AACT,SAAA,CAAA,EAAA,CAAA;;AAEA;;AAEC,MACD,MAAMG,CAAAA,WASL,GATD,SAAMA,YAAaC,GAAW,EAAA;;eAA9B,mBAAA,CAAA,WAAA;gBACQrO,MACgD,EAAA,CAAA,EAAA,IAAA,EAA9C+L,aAAe/U,EAAAA,MAAAA,EAAQgX,kBACzBC,EAAAA,cAAAA,CAAAA;;;;AAFa7M,wBAAAA,CAAAA,GAAAA,UAAAA,CAAAA,IAAAA,CAAAA;AAAW,wBAAA,OAAA;;4BAAMkN,UAAWD,CAAAA,GAAAA,CAAAA;;;wBAAzCrO,MAAS,GAAA,KAAA,CAAA,CAAA,KAAIoB,CAAAA,UAAAA,EAAAA;;AAAW,4BAAA,MAAA,CAAA,IAAA,EAAA;AAAqB,yBAAA,CAAA,CAAA,CAAA;AACG,wBAAA,OAAA;;AAAM,4BAAA,KAAA,CAAK8M,WAAW,CAAClO,MAAAA,CAAAA;;;wBAAvB,IAAA,GAAA,MAAA,CAAA,IAAA,EAAA,EAA9C+L,gBAA8C,IAA9CA,CAAAA,aAAAA,EAAe/U,SAA+B,IAA/BA,CAAAA,MAAAA,EAAQgX,qBAAuB,IAAvBA,CAAAA,kBAAAA,CAAAA;AACzBC,wBAAAA,cAAAA,GAAiB,KAAKE,CAAAA,qBAAqB,CAACpC,aAAAA,EAAe/U,MAAQgX,EAAAA,kBAAAA,CAAAA,CAAAA;;AAGzEjC,wBAAAA,aAAAA,CAAc5N,KAAK,EAAA,CAAA;AAEnB,wBAAA,OAAA;;AAAO8P,4BAAAA,cAAAA;;;;AACT,SAAA,CAAA,EAAA,CAAA;;AAEA;;;AAGC,MACD,MAAcC,CAAAA,WAwBb,GAxBD,SAAcA,YAAalO,MAAkB,EAAA;;eAA7C,mBAAA,CAAA,WAAA;AACQ+L,YAAAA,IAAAA,aAAAA,EAQEvJ,YAAYC,WACd8L,EAAAA,YAAAA,EACAtC,qBACAuC,cACAR,EAAAA,kBAAAA,EACAhC,kBAEAyB,UACAzW,EAAAA,MAAAA,CAAAA;;;;AAhBA+U,wBAAAA,aAAAA,GAAgB,IAAI1J,aAAcrC,CAAAA,MAAAA,CAAAA,CAAAA;;wBAGxC,IAAI,CAAC+L,aAAcpE,CAAAA,OAAO,EAAE;AAC1B,4BAAA,MAAM,IAAIpN,KAAM,CAAA,kDAAA,CAAA,CAAA;AAClB,yBAAA;;wBAGQiI,UAA4BuJ,GAAAA,aAAAA,CAA5BvJ,UAAYC,EAAAA,WAAAA,GAAgBsJ,aAAhBtJ,CAAAA,WAAAA,CAAAA;wBACd8L,YAAe/K,GAAAA,IAAAA,CAAKC,GAAG,CAACjB,UAAYC,EAAAA,WAAAA,CAAAA,CAAAA;wBACpCwJ,mBAAsBF,GAAAA,aAAAA,CAAcjJ,MAAM,CAAC5I,MAAM,CAAA;wBACjDsU,cAAiBD,GAAAA,YAAAA,GAAe,IAAI/K,IAAKmJ,CAAAA,KAAK,CAACnJ,IAAKiL,CAAAA,IAAI,CAACF,YAAAA,CAAAA,CAAAA,GAAiB,CAAI,GAAA,CAAA,CAAA;wBAC9EP,kBAAqB/B,GAAAA,mBAAAA,GAAsB,KAAKA,mBAAuBuC,IAAAA,cAAAA,CAAAA;AACvExC,wBAAAA,gBAAAA,GAAmBgC,qBAAqB/B,mBAAsB,GAAA,CAAA,CAAA;AAEjD,wBAAA,OAAA;;AAAM,4BAAA,KAAA,CAAK4B,uBAAuB,EAAA;;;wBAA/CJ,UAAa,GAAA,MAAA,CAAA,IAAA,EAAA,CAAA;AACJ,wBAAA,OAAA;;4BAAMA,UAAW3D,CAAAA,SAAS,CAACiC,aAAeC,EAAAA,gBAAAA,CAAAA;;;wBAAnDhV,MAAS,GAAA,MAAA,CAAA,IAAA,EAAA,CAAA;AAEf,wBAAA,OAAA;;AAAO,4BAAA;gCACL+U,aAAAA,EAAAA,aAAAA;gCACA/U,MAAAA,EAAAA,MAAAA;gCACAgX,kBAAAA,EAAAA,kBAAAA;AACF,6BAAA;;;;AACF,SAAA,CAAA,EAAA,CAAA;;AAEA;;;;MAKA,MAAA,CAAQG,qBAsCP,GAtCD,SAAQA,sBACNpC,aAA4B,EAC5B2C,eAAgC,EAChCV,kBAA2B,EAAA;AAYcxB,QAAAA,IAAAA,OAAAA,CAAAA;AAVzC,QAAA,IAAQhK,aAAuCuJ,aAAvCvJ,CAAAA,UAAAA,EAAYC,cAA2BsJ,aAA3BtJ,CAAAA,WAAAA,EAAaG,YAAcmJ,aAAdnJ,CAAAA,SAAAA,CAAAA;AACjC,QAAA,IAAyC,6BAAA,GAAA,IAAI,CAAC+L,uBAAuB,EAA7DC,EAAAA,cAAAA,GAAiC,6BAAjCA,CAAAA,cAAAA,EAAgB/B,MAAiB,GAAA,6BAAA,CAAjBA,MAAQ9N,EAAAA,IAAAA,GAAS,6BAATA,CAAAA,IAAAA,CAAAA;AAEhC,QAAA,IAAIyE,IAAKC,CAAAA,GAAG,CAACjB,UAAAA,EAAYC,iBAAiB,CAAG,EAAA;AAC3C,YAAA,MAAM,IAAIlI,KAAM,CAAA,sDAAA,CAAA,CAAA;AAClB,SAAA;AAEA,QAAA,IAAMK,SAASgI,SAAc,KAAA,CAAA,GAAIiM,UAAUC,gBAAgB,GAAGD,UAAUE,UAAU,CAAA;QAClF,IAAMvC,KAAAA,GAAQkC,gBAAgBlC,KAAK,CAAA;AAEMA,QAAAA,IAAAA,cAAAA,CAAAA;;AAAzC,QAAA,IAAMjJ,UAAayK,GAAAA,kBAAAA,GAAsBxB,CAAAA,cAAAA,GAAAA,CAAAA,OAAAA,GAAAA,KAAK,CAAC,CAAA,CAAE,KAARA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAAA,CAAUtS,MAAM,KAAA,IAAA,GAAhBsS,iBAAoB,CAAK,GAAA,CAAA,CAAA;AAClE,QAAA,IAAMwC,UAA6B,EAAE,CAAA;AAErC,QAAA,IAAK,IAAI9L,KAAAA,GAAQ,CAAGA,EAAAA,KAAAA,GAAQK,YAAYL,KAAS,EAAA,CAAA;AAC/C,YAAA,IAAK,IAAI+L,IAAAA,GAAO,CAAGA,EAAAA,IAAAA,GAAOrM,WAAWqM,IAAQ,EAAA,CAAA;AAC3C,gBAAA,IAAMC,GAAM1C,GAAAA,KAAK,CAACyC,IAAAA,CAAK,CAAC/L,KAAM,CAAA,CAAA;AAE9B8L,gBAAAA,OAAAA,CAAQrX,IAAI,CAAC;AACXmG,oBAAAA,IAAAA,EAAMoR,IAAIpR,IAAI;AACdyL,oBAAAA,KAAAA,EAAO2F,IAAI3F,KAAK;AAChBC,oBAAAA,MAAAA,EAAQ0F,IAAI1F,MAAM;AACpB,iBAAA,CAAA,CAAA;AACF,aAAA;AACF,SAAA;QAEA,OAAO;AACL2F,YAAAA,UAAAA,EAAYC,kBAAkBC,UAAU;YACxCzU,MAAAA,EAAAA,MAAAA;YACAgU,cAAAA,EAAAA,cAAAA;YACA/B,MAAAA,EAAAA,MAAAA;YACA9N,IAAAA,EAAAA,IAAAA;YACAiQ,OAAAA,EAAAA,OAAAA;AACF,SAAA,CAAA;AACF,KAAA,CAAA;AAEA;;;MAIA,MAAA,CAAQL,uBAQP,GARD,SAAQA,uBAAAA,GAAAA;AACN,QAAA,IAAMW,4BAA+B,GAAA,MAAA,CAAA;QAErC,OAAO;YACLV,cAAgBU,EAAAA,4BAAAA;YAChBzC,MAAQ,EAAA,CAAA;YACR9N,IAAM,EAAA,CAAA;AACR,SAAA,CAAA;AACF,KAAA,CAAA;AAEA;;MAGAwQ,MAAAA,CAAAA,OAIC,GAJDA,SAAAA,OAAAA,GAAAA;AACE,QAAA,IAAA,uBAAA,CAAA;AAAA,QAAA,CAAA,uBAAA,GAAA,IAAI,CAACrC,iBAAiB,KAAA,IAAA,GAAA,KAAA,CAAA,GAAtB,wBAAwBjP,OAAO,EAAA,CAAA;QAC/B,IAAI,CAACiP,iBAAiB,GAAG,IAAA,CAAA;QACzB,IAAI,CAACU,kBAAkB,GAAG7X,SAAAA,CAAAA;AAC5B,KAAA,CAAA;AA5LWiX,IAAAA,OAAAA,UAAAA,CAAAA;qBAAmBwC,MA6L/B,CAAA,EAAA;AAED;;;IAIO,SAASjC,kBAAAA,CAAoBN,WAAe,EAAA;AAAfA,IAAAA,IAAAA,wBAAAA,WAAc,GAAA,CAAA,CAAA;IAChDK,qBAAsBmC,CAAAA,QAAQ,CAAC,MAAQ,EAAA,WAAA;AACrC,QAAA,OAAO,IAAIzC,UAAWC,CAAAA,WAAAA,CAAAA,CAAAA;AACxB,KAAA,CAAA,CAAA;AACF,CAAA;AAEA;;AAEC,IACM,SAASyC,oBAAAA,GAAAA;AACdpC,IAAAA,qBAAAA,CAAsBqC,UAAU,CAAC,MAAA,CAAA,CAAA;AACnC;;ACtNA;;IAGaC,IAAAA,OAAAA,GAAU,QAAY;AAEnCC,cAAAA,CAAe,MAAQ7C,EAAAA,UAAAA,CAAAA,CAAAA;AAEvB8C,MAAAA,CAAO5a,IAAI,CAAC,uBAAC,GAAuB0a,OAAQ,GAAA,GAAA,CAAA,CAAA;AAE5C,IAAIA,OAAAA,KAAYG,OAAQH,CAAAA,OAAO,EAAE;IAC/BjC,OAAQvY,CAAAA,KAAK,CACX,8CACA,EAAA,yKAAA,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_reflect_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_construct.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_get_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_is_native_function.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_wrap_native_super.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../src/ktx2-common.ts","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_array_like_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_unsupported_iterable_to_array.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_for_of_iterator_helper_loose.js","../src/transcoder/worker-pool.ts","../src/transcoder/texture-transcoder.ts","../src/transcoder/buffer-reader.ts","../src/ktx2-container.ts","../src/transcoder/khronos-workercode.ts","../src/transcoder/khronos-transcoder.ts","../src/ktx2-loader.ts","../src/index.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","function _is_native_reflect_construct() {\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n } catch (_) {}\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\n\nexport { _is_native_reflect_construct as _ };\n","import { _ as _is_native_reflect_construct } from \"./_is_native_reflect_construct.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) _construct = Reflect.construct;\n else {\n _construct = function construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n\n if (Class) _set_prototype_of(instance, Class.prototype);\n\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\nexport { _construct as _ };\n","function _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n\n return _get_prototype_of(o);\n}\nexport { _get_prototype_of as _ };\n","function _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nexport { _is_native_function as _ };\n","import { _ as _construct } from \"./_construct.js\";\nimport { _ as _get_prototype_of } from \"./_get_prototype_of.js\";\nimport { _ as _is_native_function } from \"./_is_native_function.js\";\nimport { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrap_native_super = function(Class) {\n if (Class === null || !_is_native_function(Class)) return Class;\n if (typeof Class !== \"function\") throw new TypeError(\"Super expression must either be null or a function\");\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n\n return _set_prototype_of(Wrapper, Class);\n };\n\n return _wrap_native_super(Class);\n}\nexport { _wrap_native_super as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/**\n * KTX2 transcode target format.\n */\nexport enum KTX2TargetFormat {\n /** RGB(A) compressed format, 128 bits per 4x4 pixel block. */\n ASTC = 0\n}\n\n/**\n * Texture format enumeration.\n */\nexport enum TextureFormat {\n /** RGB format, 8 bits per channel. */\n R8G8B8 = 0,\n /** RGBA format, 8 bits per channel. */\n R8G8B8A8 = 1,\n /** RGB(A) compressed format, 128 bits per 4x4 pixel block. */\n ASTC_4x4 = 2\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexport { _create_class as _ };\n","function _array_like_to_array(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\nexport { _array_like_to_array as _ };\n","import { _ as _array_like_to_array } from \"./_array_like_to_array.js\";\n\nfunction _unsupported_iterable_to_array(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _array_like_to_array(o, minLen);\n\n var n = Object.prototype.toString.call(o).slice(8, -1);\n\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);\n}\nexport { _unsupported_iterable_to_array as _ };\n","import { _ as _unsupported_iterable_to_array } from \"./_unsupported_iterable_to_array.js\";\n\nfunction _create_for_of_iterator_helper_loose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (it) return (it = it.call(o)).next.bind(it);\n // Fallback for engines without symbol support\n if (Array.isArray(o) || (it = _unsupported_iterable_to_array(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n\n var i = 0;\n\n return function() {\n if (i >= o.length) return { done: true };\n\n return { done: false, value: o[i++] };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _create_for_of_iterator_helper_loose as _ };\n","/**\n * @internal\n * WorkerPool, T 为发送消息的类型,U 为返回值的类型。\n */\nexport class WorkerPool<T = any, U = any> {\n private taskQueue: TaskItem<T, U>[] = [];\n private workerStatus: number = 0;\n private workerItems: WorkerItem<U>[];\n private initPromises: Map<number, Promise<Worker>> = new Map();\n private destroyed = false;\n\n /**\n * WorkerPool 的构造函数。\n * @param limitedCount - worker数量上限\n * @param workerCreator - worker创建器\n */\n constructor (\n public readonly limitedCount = 2,\n private readonly workerCreator: () => Worker | Promise<Worker>,\n ) {\n if (limitedCount > 8 || limitedCount < 1) {\n throw new Error('limitedCount must be between 1 and 8');\n }\n this.workerItems = new Array<WorkerItem<U>>(limitedCount);\n }\n\n prepareWorker () {\n const count = this.limitedCount;\n const promises: Promise<Worker>[] = [];\n\n for (let i = 0; i < count; i++) {\n promises.push(this.ensureWorker(i));\n }\n\n return Promise.all(promises);\n }\n\n private ensureWorker (workerId: number): Promise<Worker> {\n if (!this.initPromises.has(workerId)) {\n this.initPromises.set(workerId, this.initWorker(workerId));\n }\n\n return this.initPromises.get(workerId)!;\n }\n\n /**\n * 向 worker 发送消息。\n * @param message - 要发送给 worker 的消息\n * @returns 返回一个消息处理结果的 Promise\n */\n postMessage (message: T): Promise<U> {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker Pool destroyed'));\n }\n\n return new Promise((resolve, reject) => {\n const workerId = this.getIdleWorkerId();\n\n if (workerId !== -1) {\n this.ensureWorker(workerId)\n .then(() => {\n if (this.destroyed) {\n throw new Error('Worker Pool destroyed');\n }\n const workerItem = this.workerItems[workerId];\n\n workerItem.resolve = resolve;\n workerItem.reject = reject;\n workerItem.worker.postMessage(message);\n })\n .catch(error => {\n this.workerStatus &= ~(1 << workerId);\n this.initPromises.delete(workerId);\n reject(error);\n });\n } else {\n this.taskQueue.push({ resolve, reject, message });\n }\n });\n }\n\n private initWorker (workerId: number): Promise<Worker> {\n return Promise.resolve(this.workerCreator()).then(worker => {\n if (this.destroyed) {\n worker.terminate();\n throw new Error('Worker Pool destroyed');\n }\n\n const onMessage = this.onMessage.bind(this, workerId);\n const onError = (event: ErrorEvent) => {\n const workerItem = this.workerItems[workerId];\n\n if (workerItem) {\n workerItem.reject(event.error || new Error(event.message || 'Worker error'));\n this.nextTask(workerId);\n }\n };\n\n worker.addEventListener('message', onMessage);\n worker.addEventListener('error', onError);\n\n this.workerItems[workerId] = {\n worker,\n resolve: () => { },\n reject: () => { },\n onMessage,\n onError,\n };\n\n return worker;\n });\n }\n\n /**\n * 获取空闲的 worker ID,并原子性地标记为忙碌\n * @returns worker ID,如果没有空闲 worker 返回 -1\n */\n private getIdleWorkerId () {\n for (let i = 0, count = this.limitedCount; i < count; i++) {\n if (!(this.workerStatus & (1 << i))) {\n this.workerStatus |= 1 << i; // ✅ 原子性标记\n\n return i;\n }\n }\n\n return -1;\n }\n\n private onMessage (workerId: number, msg: MessageEvent<U>) {\n const workerItem = this.workerItems[workerId];\n\n if (!workerItem) {\n return;\n }\n\n const error = (msg.data as ErrorMessageData).error;\n\n if (error) {\n workerItem.reject(error);\n } else {\n workerItem.resolve(msg.data);\n }\n\n this.nextTask(workerId);\n }\n\n private nextTask (workerId: number) {\n if (this.taskQueue.length) {\n const taskItem = this.taskQueue.shift() as TaskItem<T, U>;\n const workerItem = this.workerItems[workerId];\n\n if (!workerItem) {\n taskItem.reject(new Error('Worker not initialized'));\n this.workerStatus &= ~(1 << workerId);\n\n return;\n }\n\n workerItem.resolve = taskItem.resolve;\n workerItem.reject = taskItem.reject;\n workerItem.worker.postMessage(taskItem.message);\n } else {\n this.workerStatus &= ~(1 << workerId);\n }\n }\n\n destroy (): void {\n if (this.destroyed) {\n return;\n }\n\n this.destroyed = true;\n const workerItems = this.workerItems;\n const error = new Error('Worker Pool destroyed');\n\n for (let i = 0, n = workerItems.length; i < n; i++) {\n const workerItem = workerItems[i];\n\n if (!workerItem) { continue; }\n\n if (workerItem.onMessage) {\n workerItem.worker.removeEventListener('message', workerItem.onMessage);\n }\n if (workerItem.onError) {\n workerItem.worker.removeEventListener('error', workerItem.onError);\n }\n\n workerItem.worker.terminate();\n workerItem.reject?.(error);\n }\n\n while (this.taskQueue.length) {\n this.taskQueue.shift()?.reject(error);\n }\n\n workerItems.length = 0;\n this.taskQueue.length = 0;\n this.workerStatus = 0;\n this.initPromises.clear();\n }\n}\n\ninterface ErrorMessageData {\n error: unknown,\n}\n\ninterface WorkerItem<U> {\n worker: Worker,\n resolve: (item: U | PromiseLike<U>) => void,\n reject: (reason?: any) => void,\n onMessage?: (msg: MessageEvent<U>) => void,\n onError?: (event: ErrorEvent) => void,\n}\n\ninterface TaskItem<T, U> {\n message: T,\n resolve: (item: U | PromiseLike<U>) => void,\n reject: (reason?: any) => void,\n}\n","import { WorkerPool } from './worker-pool';\n\nexport abstract class TextureTranscoder {\n protected transcodeWorkerPool: WorkerPool;\n protected initPromise: Promise<Worker[]>;\n\n constructor (\n public readonly workerLimitCount: number,\n ) { }\n\n init () {\n if (!this.initPromise) {\n this.initPromise = this.initTranscodeWorkerPool();\n }\n\n return this.initPromise;\n }\n\n destroy () {\n this.transcodeWorkerPool?.destroy();\n }\n\n protected abstract initTranscodeWorkerPool (): Promise<Worker[]>;\n\n protected createTranscodePool (workerURL: string, transcoderWasm: WebAssembly.Module) {\n this.transcodeWorkerPool = new WorkerPool(this.workerLimitCount, () => {\n return new Promise<Worker>((resolve, reject) => {\n const worker = new Worker(workerURL);\n const msg: InitMessage = {\n type: 'init',\n transcoderWasm,\n };\n const cleanup = () => {\n worker.removeEventListener('message', onMessage);\n worker.removeEventListener('error', onError);\n };\n\n function onMessage (e: MessageEvent<{ error?: Error }>) {\n if (e.data.error) {\n reject(e.data.error);\n } else {\n worker.removeEventListener('message', onMessage);\n resolve(worker);\n }\n }\n function onError (e: ErrorEvent) {\n cleanup();\n worker.terminate();\n reject(e.error ?? new Error(e.message || 'Worker init error'));\n }\n worker.addEventListener('message', onMessage);\n worker.addEventListener('error', onError);\n worker.postMessage(msg);\n });\n });\n\n return this.transcodeWorkerPool.prepareWorker();\n }\n}\n\ntype MessageType = 'init' | 'transcode';\n\nexport interface BaseMessage {\n type: MessageType,\n}\n\nexport interface InitMessage extends BaseMessage {\n type: 'init',\n transcoderWasm: WebAssembly.Module,\n}\n\nexport type TranscodeResult = {\n width: number,\n height: number,\n hasAlpha: boolean,\n format: number,\n faces: Array<{ data: Uint8Array, width: number, height: number }>[],\n faceCount: number,\n};\n\nexport interface EncodedData {\n buffer: Uint8Array,\n levelWidth: number,\n levelHeight: number,\n uncompressedByteLength: number,\n}\n\nexport interface DecodedData {\n width: number,\n height: number,\n data: Uint8Array,\n}\n\nexport interface KhronosTranscoderMessage extends BaseMessage {\n type: 'transcode',\n format: number,\n needZstd: boolean,\n data: EncodedData[][],\n zstddecWasmModule?: WebAssembly.Module,\n}\n\nexport type IKhronosMessageMessage = InitMessage | KhronosTranscoderMessage;\n\nexport function decodeText (array: Uint8Array): string {\n if (typeof TextDecoder !== 'undefined') {\n return new TextDecoder('utf-8').decode(array);\n }\n\n // TextDecoder polyfill\n let s = '';\n\n for (let i = 0, il = array.length; i < il; i++) {\n s += String.fromCharCode(array[i]);\n }\n\n return decodeURIComponent(encodeURIComponent(s));\n}\n","import { decodeText } from './texture-transcoder';\n\nexport class BufferReader {\n private dataView: DataView;\n private littleEndian: boolean;\n private pos: number;\n private baseOffset: number;\n\n constructor (\n public data: Uint8Array,\n byteOffset = 0,\n byteLength?: number,\n littleEndian = true,\n ) {\n this.dataView = new DataView(\n data.buffer,\n data.byteOffset + byteOffset,\n byteLength ?? data.byteLength - byteOffset,\n );\n this.littleEndian = littleEndian;\n this.pos = 0;\n this.baseOffset = byteOffset;\n }\n\n get position () {\n return this.pos;\n }\n\n get offset () {\n return this.pos + this.baseOffset;\n }\n\n nextUint8 () {\n const value = this.dataView.getUint8(this.pos);\n\n this.pos += 1;\n\n return value;\n }\n\n nextUint16 () {\n const value = this.dataView.getUint16(this.pos, this.littleEndian);\n\n this.pos += 2;\n\n return value;\n }\n\n nextUint32 () {\n const value = this.dataView.getUint32(this.pos, this.littleEndian);\n\n this.pos += 4;\n\n return value;\n }\n\n nextInt32 () {\n const value = this.dataView.getInt32(this.pos, this.littleEndian);\n\n this.pos += 4;\n\n return value;\n }\n\n nextInt32Array (len: number) {\n const value = new Int32Array(this.data.buffer, this.pos + this.dataView.byteOffset, len);\n\n this.pos += 4 * len;\n\n return value;\n }\n\n nextFloat32 () {\n const value = this.dataView.getFloat32(this.pos, this.littleEndian);\n\n this.pos += 4;\n\n return value;\n }\n\n nextFloat32Array (len: number) {\n const value = new Float32Array(this.data.buffer, this.pos + this.dataView.byteOffset, len);\n\n this.pos += 4 * len;\n\n return value;\n }\n\n nextUint32Array (len: number) {\n const value = new Uint32Array(this.data.buffer, this.pos + this.dataView.byteOffset, len);\n\n this.pos += 4 * len;\n\n return value;\n }\n\n nextUint8Array (len: number) {\n const value = new Uint8Array(this.data.buffer, this.pos + this.dataView.byteOffset, len);\n\n this.pos += len;\n\n return value;\n }\n\n nextUint64 () {\n if (!this.littleEndian) {\n throw new Error('nextUint64 only supports little-endian');\n }\n const left = this.dataView.getUint32(this.pos, this.littleEndian);\n const right = this.dataView.getUint32(this.pos + 4, this.littleEndian);\n const value = left + 2 ** 32 * right;\n\n this.pos += 8;\n\n return value;\n }\n\n nextStr (): string {\n const strByteLength = this.nextUint16();\n const uint8Array = new Uint8Array(this.data.buffer, this.pos + this.dataView.byteOffset, strByteLength);\n\n this.pos += strByteLength;\n\n return decodeText(uint8Array);\n }\n\n skip (bytes: number) {\n this.pos += bytes;\n\n return this;\n }\n\n scan (maxByteLength: number, term: number = 0x00): Uint8Array {\n const byteOffset = this.pos;\n let byteLength = 0;\n\n while (this.dataView.getUint8(this.pos) !== term && byteLength < maxByteLength) {\n byteLength++;\n this.pos++;\n }\n\n if (byteLength < maxByteLength) { this.pos++; }\n\n return new Uint8Array(this.dataView.buffer, this.dataView.byteOffset + byteOffset, byteLength);\n }\n}\n","import { BufferReader } from './transcoder/buffer-reader';\nimport { decodeText } from './transcoder/texture-transcoder';\n\nexport enum DFDTransferFunction {\n linear = 1,\n sRGB = 2,\n}\n\nenum ColorModel {\n ETC1S = 163,\n UASTC = 166,\n}\n\nexport enum SupercompressionScheme {\n None,\n BasisLZ,\n Zstd,\n ZLib,\n}\n\nexport class KTX2Container {\n vkFormat = 0;\n\n typeSize = 1;\n\n pixelWidth = 0;\n\n pixelHeight = 0;\n\n pixelDepth = 0;\n\n layerCount = 0;\n\n faceCount = 1;\n\n supercompressionScheme: SupercompressionScheme = SupercompressionScheme.None;\n\n levels: KTX2Level[] = [];\n\n dataFormatDescriptor: KTX2DataFormatDescriptorBasicFormat;\n\n keyValue: Record<string, string | Uint8Array> = {};\n\n globalData: KTX2GlobalDataBasisLZ | null = null;\n\n constructor (buffer: Uint8Array) {\n this.parse(buffer);\n }\n\n get isSRGB () {\n return this.dataFormatDescriptor.transferFunction === DFDTransferFunction.sRGB;\n }\n\n get isUASTC () {\n return this.dataFormatDescriptor.colorModel === ColorModel.UASTC;\n }\n\n get isNotBasis () {\n return this.vkFormat != 0;\n }\n\n /**\n * 释放内部持有的原始二进制数据引用\n */\n clear (): void {\n for (const level of this.levels) {\n (level as { levelData: Uint8Array | null }).levelData = null;\n }\n this.levels.length = 0;\n this.globalData = null;\n }\n\n private parse (data: Uint8Array) {\n const KTX2_IDENTIFIER = new Uint8Array([\n 0xAB, 0x4B, 0x54, 0x58, 0x20, 0x32, 0x30, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A,\n ]);\n\n if (data.length < KTX2_IDENTIFIER.length || !KTX2_IDENTIFIER.every((v, i) => data[i] === v)) {\n throw new Error('Texture missing KTX2 identifier.');\n }\n\n const buffer = data.buffer;\n const byteOffset = data.byteOffset;\n\n const headerBufferReader = new BufferReader(data, 12);\n\n this.vkFormat = headerBufferReader.nextUint32();\n this.typeSize = headerBufferReader.nextUint32();\n this.pixelWidth = headerBufferReader.nextUint32();\n this.pixelHeight = headerBufferReader.nextUint32();\n\n this.pixelDepth = headerBufferReader.nextUint32();\n this.layerCount = headerBufferReader.nextUint32();\n this.faceCount = headerBufferReader.nextUint32();\n\n const levelCount = Math.max(1, headerBufferReader.nextUint32());\n\n this.supercompressionScheme = headerBufferReader.nextUint32();\n\n const dfdByteOffset = headerBufferReader.nextUint32();\n const dfdByteLength = headerBufferReader.nextUint32();\n\n const kvdByteOffset = headerBufferReader.nextUint32();\n const kvdByteLength = headerBufferReader.nextUint32();\n\n const sgdByteOffset = headerBufferReader.nextUint64();\n const sgdByteLength = headerBufferReader.nextUint64();\n\n // level index\n const ktxLevels = new Array<KTX2Level>(levelCount);\n const levelByteLength = levelCount * 3 * 8;\n const levelReader = new BufferReader(data, headerBufferReader.offset, levelByteLength);\n\n this.levels = ktxLevels;\n\n for (let i = 0; i < levelCount; i++) {\n ktxLevels[i] = {\n levelData: new Uint8Array(buffer, byteOffset + levelReader.nextUint64(), levelReader.nextUint64()),\n uncompressedByteLength: levelReader.nextUint64(),\n };\n }\n\n // Data Format Descriptor (DFD).\n const dfdReader = new BufferReader(data, dfdByteOffset, dfdByteLength);\n\n const dfd: KTX2DataFormatDescriptorBasicFormat = {\n vendorId: dfdReader.skip(4 /* totalSize */).nextUint16(),\n descriptorType: dfdReader.nextUint16(),\n versionNumber: dfdReader.nextUint16(),\n descriptorBlockSize: dfdReader.nextUint16(),\n colorModel: dfdReader.nextUint8(),\n colorPrimaries: dfdReader.nextUint8(),\n transferFunction: dfdReader.nextUint8(),\n flags: dfdReader.nextUint8(),\n texelBlockDimension: [\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n ],\n bytesPlane: [\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n ],\n samples: [],\n };\n\n this.dataFormatDescriptor = dfd;\n\n const sampleStart = 6;\n const sampleWords = 4;\n const numSamples = (dfd.descriptorBlockSize / 4 - sampleStart) / sampleWords;\n\n for (let i = 0; i < numSamples; i++) {\n const sample = {\n bitOffset: dfdReader.nextUint16(),\n bitLength: dfdReader.nextUint8(),\n channelType: dfdReader.nextUint8(),\n samplePosition: [\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n dfdReader.nextUint8(),\n ],\n sampleLower: -Infinity,\n sampleUpper: Infinity,\n };\n\n if (sample.channelType & 0x40) {\n sample.sampleLower = dfdReader.nextInt32();\n sample.sampleUpper = dfdReader.nextInt32();\n } else {\n sample.sampleLower = dfdReader.nextUint32();\n sample.sampleUpper = dfdReader.nextUint32();\n }\n\n dfd.samples[i] = sample;\n }\n\n const kvdReader = new BufferReader(data, kvdByteOffset, kvdByteLength, true);\n\n while (kvdReader.position < kvdByteLength) {\n const keyValueByteLength = kvdReader.nextUint32();\n const keyData = kvdReader.scan(keyValueByteLength);\n const key = decodeText(keyData);\n\n // 4-byte alignment.\n const valueData = kvdReader.nextUint8Array(keyValueByteLength - keyData.byteLength - 1);\n\n if (/^ktx/i.test(key)) {\n const decodedValue = decodeText(valueData);\n let trimmedValue = decodedValue;\n\n while (trimmedValue.length > 0 && trimmedValue.charCodeAt(trimmedValue.length - 1) === 0) {\n trimmedValue = trimmedValue.slice(0, -1);\n }\n this.keyValue[key] = trimmedValue;\n } else {\n this.keyValue[key] = valueData;\n }\n const kvPadding = keyValueByteLength % 4 ? 4 - (keyValueByteLength % 4) : 0; // align(4)\n\n // 4-byte alignment.\n kvdReader.skip(kvPadding);\n }\n\n if (sgdByteLength <= 0) { return this; }\n\n const sgdReader = new BufferReader(data, sgdByteOffset, sgdByteLength, true);\n\n const endpointCount = sgdReader.nextUint16();\n const selectorCount = sgdReader.nextUint16();\n const endpointsByteLength = sgdReader.nextUint32();\n const selectorsByteLength = sgdReader.nextUint32();\n const tablesByteLength = sgdReader.nextUint32();\n const extendedByteLength = sgdReader.nextUint32();\n\n const imageDescs: KTX2GlobalDataBasisLZImageDesc[] = new Array(levelCount);\n\n for (let i = 0; i < levelCount; i++) {\n imageDescs[i] = {\n imageFlags: sgdReader.nextUint32(),\n rgbSliceByteOffset: sgdReader.nextUint32(),\n rgbSliceByteLength: sgdReader.nextUint32(),\n alphaSliceByteOffset: sgdReader.nextUint32(),\n alphaSliceByteLength: sgdReader.nextUint32(),\n };\n }\n\n const endpointsByteOffset = sgdByteOffset + sgdReader.position;\n const selectorsByteOffset = endpointsByteOffset + endpointsByteLength;\n const tablesByteOffset = selectorsByteOffset + selectorsByteLength;\n const extendedByteOffset = tablesByteOffset + tablesByteLength;\n\n const endpointsData = new Uint8Array(buffer, byteOffset + endpointsByteOffset, endpointsByteLength);\n const selectorsData = new Uint8Array(buffer, byteOffset + selectorsByteOffset, selectorsByteLength);\n const tablesData = new Uint8Array(buffer, byteOffset + tablesByteOffset, tablesByteLength);\n const extendedData = new Uint8Array(buffer, byteOffset + extendedByteOffset, extendedByteLength);\n\n this.globalData = {\n endpointCount,\n selectorCount,\n imageDescs,\n endpointsData,\n selectorsData,\n tablesData,\n extendedData,\n };\n }\n}\n\ninterface KTX2Level {\n levelData: Uint8Array,\n uncompressedByteLength: number,\n}\n\ninterface KTX2DataFormatDescriptorBasicFormat {\n vendorId: number,\n descriptorType: number,\n versionNumber: number,\n /** @deprecated Inferred. */\n descriptorBlockSize: number,\n colorModel: ColorModel,\n colorPrimaries: number,\n transferFunction: DFDTransferFunction,\n flags: number,\n texelBlockDimension: [number, number, number, number],\n bytesPlane: [number, number, number, number, number, number, number, number],\n samples: KTX2BasicFormatSample[],\n}\n\ninterface KTX2BasicFormatSample {\n bitOffset: number,\n bitLength: number,\n channelType: number,\n samplePosition: number[],\n sampleLower: number,\n sampleUpper: number,\n}\n\ninterface KTX2GlobalDataBasisLZ {\n endpointCount: number,\n selectorCount: number,\n imageDescs: KTX2GlobalDataBasisLZImageDesc[],\n endpointsData: Uint8Array,\n selectorsData: Uint8Array,\n tablesData: Uint8Array,\n extendedData: Uint8Array,\n}\n\ninterface KTX2GlobalDataBasisLZImageDesc {\n imageFlags: number,\n rgbSliceByteOffset: number,\n rgbSliceByteLength: number,\n alphaSliceByteOffset: number,\n alphaSliceByteLength: number,\n}\n","/* eslint-disable compat/compat */\n/* eslint-disable promise/no-nesting */\nimport type { DecodedData, EncodedData } from './texture-transcoder';\n\n// eslint-disable-next-line compat/compat\nexport interface WasmTranscoder extends WebAssembly.Exports {\n memory: WebAssembly.Memory,\n transcode: (nBlocks: number) => number,\n}\n\nexport interface DecoderExports {\n memory: WebAssembly.Memory,\n ZSTD_findDecompressedSize: (compressedPtr: number, compressedSize: number) => number,\n ZSTD_decompress: (\n uncompressedPtr: number,\n uncompressedSize: number,\n compressedPtr: number,\n compressedSize: number,\n ) => number,\n malloc: (ptr: number) => number,\n free: (ptr: number) => void,\n}\n\nexport interface DecoderInstance {\n readonly exports: DecoderExports,\n}\n\n/**\n * 转码核心代码\n * 主线程调用时会返回 API 对象\n * Worker 中使用时需要拼接消息处理代码\n */\nexport function TranscodeWorkerCode () {\n let wasmPromise: Promise<WebAssembly.Exports>;\n\n /**\n * ZSTD (Zstandard) decoder.\n */\n class ZSTDDecoder {\n public heap: Uint8Array = new Uint8Array(0);\n public instance: DecoderInstance | null = null;\n public importObject = {\n env: {\n emscripten_notify_memory_growth: (): void => {\n this.heap = new Uint8Array(this.instance!.exports.memory.buffer);\n },\n },\n };\n public initPromise: Promise<void> | undefined;\n\n init (zstddecWasmModule: WebAssembly.Module): Promise<void> {\n if (!this.initPromise) {\n this.initPromise = WebAssembly\n .instantiate(zstddecWasmModule, this.importObject)\n .then((result: WebAssembly.Instance) => {\n this.instance = result as unknown as DecoderInstance;\n this.importObject.env.emscripten_notify_memory_growth();\n });\n }\n\n return this.initPromise;\n }\n\n decode (array: Uint8Array, uncompressedSize = 0): Uint8Array {\n if (!this.instance) {\n throw new Error('ZSTDDecoder: Await .init() before decoding.');\n }\n\n const exports = this.instance.exports;\n const compressedSize = array.byteLength;\n const compressedPtr = exports.malloc(compressedSize);\n\n this.heap.set(array, compressedPtr);\n\n uncompressedSize = uncompressedSize || Number(exports.ZSTD_findDecompressedSize(compressedPtr, compressedSize));\n const uncompressedPtr = exports.malloc(uncompressedSize);\n const actualSize = exports.ZSTD_decompress(uncompressedPtr, uncompressedSize, compressedPtr, compressedSize);\n\n if (actualSize < 0) {\n exports.free(compressedPtr);\n exports.free(uncompressedPtr);\n throw new Error('ZSTDDecoder: decompression failed.');\n }\n\n // Read decompressed data and free WASM memory\n const dec = this.heap.slice(uncompressedPtr, uncompressedPtr + actualSize);\n\n exports.free(compressedPtr);\n exports.free(uncompressedPtr);\n\n return dec;\n }\n }\n\n function transcodeASTC (\n wasmTranscoder: WasmTranscoder,\n compressedData: Uint8Array,\n width: number,\n height: number,\n ) {\n const nBlocks = ((width + 3) >> 2) * ((height + 3) >> 2);\n const texMemoryPages = (nBlocks * 16 + 65535) >> 16;\n const memory = wasmTranscoder.memory;\n const delta = texMemoryPages + 1 - (memory.buffer.byteLength >> 16);\n\n if (delta > 0) { memory.grow(delta); }\n\n const textureView = new Uint8Array(memory.buffer, 65536, nBlocks * 16);\n\n textureView.set(compressedData);\n\n return wasmTranscoder.transcode(nBlocks) === 0 ? textureView : null;\n }\n\n function initTranscoder (transcoderWasmModule: WebAssembly.Module) {\n wasmPromise = WebAssembly\n .instantiate(transcoderWasmModule, {\n env: { memory: new WebAssembly.Memory({ initial: 16 }) },\n })\n .then(moduleWrapper => moduleWrapper.exports);\n\n return wasmPromise;\n }\n\n const zstdDecoder = new ZSTDDecoder();\n\n function transcode (\n data: EncodedData[][],\n needZstd: boolean,\n transcoderWasmModule: WasmTranscoder,\n zstddecWasmModule?: WebAssembly.Module,\n ) {\n const faceCount = data.length;\n const result: DecodedData[][] = new Array(faceCount);\n const decodedLevelCache = needZstd ? new Map() : undefined;\n let promise = Promise.resolve();\n\n if (needZstd && zstddecWasmModule) {\n void zstdDecoder.init(zstddecWasmModule);\n promise = zstdDecoder.initPromise!;\n }\n\n return promise.then(() => {\n for (let faceIndex = 0; faceIndex < faceCount; faceIndex++) {\n const mipmapCount = data[faceIndex].length;\n const decodedData: DecodedData[] = new Array(mipmapCount);\n\n for (let i = 0; i < mipmapCount; i++) {\n const { buffer, levelHeight, levelWidth, uncompressedByteLength } = data[faceIndex][i];\n let levelBuffer = buffer;\n\n if (needZstd) {\n let decoded = decodedLevelCache?.get(i);\n\n if (!decoded) {\n decoded = zstdDecoder.decode(buffer.slice(), uncompressedByteLength);\n decodedLevelCache?.set(i, decoded);\n }\n levelBuffer = decoded;\n }\n\n const faceByteLength = levelBuffer.byteLength / faceCount;\n const originByteOffset = levelBuffer.byteOffset;\n const decodedBuffer = transcodeASTC(\n transcoderWasmModule,\n new Uint8Array(levelBuffer.buffer, originByteOffset + faceIndex * faceByteLength, faceByteLength),\n levelWidth,\n levelHeight\n );\n\n if (decodedBuffer) {\n decodedData[i] = {\n // use wasm memory as buffer, should slice to avoid duplicate\n data: decodedBuffer.slice(),\n width: levelWidth,\n height: levelHeight,\n };\n } else {\n throw new Error('buffer decoded error');\n }\n }\n result[faceIndex] = decodedData;\n }\n\n return result;\n });\n }\n\n // 仅在 Worker 环境中注册消息处理,避免在主线程调用时污染 window.onmessage\n // Worker 环境中没有 window 对象\n if (typeof window === 'undefined') {\n self.onmessage = function onmessage (event) {\n const message = event.data;\n\n switch (message.type) {\n case 'init':\n initTranscoder(message.transcoderWasm)\n .then(() => {\n self.postMessage('init-completed');\n })\n .catch(error => {\n self.postMessage({ error });\n });\n\n break;\n case 'transcode':\n if (!wasmPromise) {\n self.postMessage({ error: new Error('Transcoder not initialized.') });\n\n break;\n }\n\n wasmPromise\n .then(transcoderWasmModule => {\n transcode(\n message.data,\n message.needZstd,\n transcoderWasmModule as unknown as WasmTranscoder,\n message.zstddecWasmModule,\n ).then(decodedData => {\n self.postMessage(decodedData);\n }).catch(error => self.postMessage({ error }));\n })\n .catch(error => {\n self.postMessage({ error });\n });\n\n break;\n }\n };\n }\n\n // 主线程使用\n return {\n ZSTDDecoder,\n transcodeASTC,\n initTranscoder,\n zstdDecoder,\n transcode,\n getWasmPromise: () => wasmPromise,\n };\n}\n","/* eslint-disable promise/no-nesting */\nimport type { KTX2Container } from '../ktx2-container';\nimport { SupercompressionScheme } from '../ktx2-container';\nimport type { KTX2TargetFormat } from '../ktx2-common';\nimport type { DecodedData, EncodedData, KhronosTranscoderMessage, TranscodeResult } from './texture-transcoder';\nimport { TextureTranscoder } from './texture-transcoder';\nimport type { WasmTranscoder } from './khronos-workercode';\nimport { TranscodeWorkerCode } from './khronos-workercode';\nimport uastcAstcWasm from '../libs/uastc_astc.wasm';\nimport zstddecWasm from '../libs/zstddec.wasm';\n\n/**\n * 主线程 ASTC/UASTC 转码器\n */\nclass KhronosMainThreadTranscoder {\n private context: ReturnType<typeof TranscodeWorkerCode> | null = null;\n\n async init (): Promise<void> {\n if (!this.context) {\n this.context = TranscodeWorkerCode();\n\n const transcoderWasmModule = await uastcAstcWasm();\n\n await this.context.initTranscoder(transcoderWasmModule);\n }\n }\n\n async transcode (\n data: EncodedData[][],\n needZstd: boolean,\n zstddecWasmModule?: WebAssembly.Module,\n ): Promise<DecodedData[][]> {\n await this.init();\n\n const wasmModule = await this.context?.getWasmPromise() as unknown as WasmTranscoder;\n\n return this.context!.transcode(data, needZstd, wasmModule, zstddecWasmModule);\n }\n\n destroy (): void {\n this.context = null;\n }\n}\n\n/**\n * KTX2 Khronos ASTC/UASTC 转码器\n * 支持主线程和 Worker 两种执行模式\n */\nexport class KhronosTranscoder extends TextureTranscoder {\n private mainThreadTranscoder: KhronosMainThreadTranscoder | null = null;\n private workerURL?: string;\n\n constructor (\n workerLimitCount: number,\n public readonly type: KTX2TargetFormat,\n ) {\n super(workerLimitCount);\n }\n\n async initTranscodeWorkerPool () {\n // 主线程模式\n if (this.workerLimitCount <= 0) {\n this.mainThreadTranscoder = new KhronosMainThreadTranscoder();\n await this.mainThreadTranscoder.init();\n\n return [];\n }\n\n // Worker 模式\n const transcoderWasm = await uastcAstcWasm();\n\n // 将 TranscodeWorkerCode 整体序列化\n const workerEntryCode = `\n (${TranscodeWorkerCode.toString()})();\n `;\n\n const workerURL = URL.createObjectURL(\n new Blob([workerEntryCode], {\n type: 'application/javascript',\n })\n );\n\n this.workerURL = workerURL;\n\n return this.createTranscodePool(workerURL, transcoderWasm);\n }\n\n async transcode (ktx2Container: KTX2Container, neededLevelCount?: number): Promise<TranscodeResult> {\n const needZstd = ktx2Container.supercompressionScheme === SupercompressionScheme.Zstd;\n const availableLevelCount = ktx2Container.levels.length;\n const levelCount = neededLevelCount ?? availableLevelCount;\n\n if (levelCount < 1 || levelCount > availableLevelCount) {\n throw new Error(`neededLevelCount ${levelCount} is out of range [1, ${availableLevelCount}].`);\n }\n const faceCount = ktx2Container.faceCount;\n // 准备编码数据,只处理需要的 level,避免转码后丢弃多余结果\n const encodedData: EncodedData[][] = new Array<EncodedData[]>(faceCount);\n\n for (let faceIndex = 0; faceIndex < faceCount; faceIndex++) {\n const mipmapData = new Array(levelCount);\n\n for (let mipmapIndex = 0; mipmapIndex < levelCount; mipmapIndex++) {\n const level = ktx2Container.levels[mipmapIndex];\n const levelWidth = Math.floor(ktx2Container.pixelWidth / (1 << mipmapIndex)) || 1;\n const levelHeight = Math.floor(ktx2Container.pixelHeight / (1 << mipmapIndex)) || 1;\n const originBuffer = level.levelData.buffer;\n const originOffset = level.levelData.byteOffset;\n const originByteLength = level.levelData.byteLength;\n\n mipmapData[mipmapIndex] = {\n buffer: new Uint8Array(originBuffer, originOffset, originByteLength),\n levelWidth,\n levelHeight,\n uncompressedByteLength: level.uncompressedByteLength,\n };\n }\n encodedData[faceIndex] = mipmapData;\n }\n\n const zstddecWasmModule = needZstd ? await zstddecWasm() : undefined;\n\n let faces: Array<{ width: number, height: number, data: Uint8Array }[]>;\n\n // 主线程模式\n if (this.workerLimitCount <= 0 && this.mainThreadTranscoder) {\n faces = await this.mainThreadTranscoder.transcode(encodedData, needZstd, zstddecWasmModule);\n } else {\n // WebWorker 模式\n if (!this.transcodeWorkerPool) {\n throw new Error('KhronosTranscoder: transcodeWorkerPool is not initialized.');\n }\n\n const postMessageData: KhronosTranscoderMessage = {\n type: 'transcode',\n format: 0,\n needZstd,\n data: encodedData,\n zstddecWasmModule,\n };\n\n faces = await this.transcodeWorkerPool.postMessage(postMessageData);\n }\n\n return {\n width: ktx2Container.pixelWidth,\n height: ktx2Container.pixelHeight,\n hasAlpha: true,\n format: 0,\n faces,\n faceCount,\n };\n }\n\n override destroy (): void {\n super.destroy();\n\n if (this.mainThreadTranscoder) {\n this.mainThreadTranscoder.destroy();\n this.mainThreadTranscoder = null;\n }\n\n if (this.workerURL) {\n URL.revokeObjectURL(this.workerURL);\n this.workerURL = undefined;\n }\n }\n}\n\n","import type {\n Texture2DSourceOptionsCompressed, TextureDataType, TextureLoader, Scene, SceneLoadOptions,\n} from '@galacean/effects';\nimport {\n TextureSourceType, loadBinary, glContext, textureLoaderRegistry, Plugin,\n} from '@galacean/effects';\nimport { KTX2TargetFormat } from './ktx2-common';\nimport { KTX2Container } from './ktx2-container';\nimport type { TranscodeResult } from './transcoder/texture-transcoder';\nimport { KhronosTranscoder } from './transcoder/khronos-transcoder';\n\n/**\n * KTX2 加载器插件\n */\nexport class KTX2Loader extends Plugin implements TextureLoader {\n private khronosTranscoder: KhronosTranscoder | null = null;\n private khronosInitPromise?: Promise<void>;\n\n /**\n * KTX2 加载器\n * - workerCount 大于 0 时使用 WebWorker\n * - 默认使用主线程\n */\n constructor (\n private readonly workerCount = 0,\n ) {\n super();\n }\n\n override async onAssetsLoadStart (_scene: Scene, _options?: SceneLoadOptions): Promise<void> {\n // 仅在未手动注册时才自动注册,避免覆盖用户通过 registerKTX2Loader(workerCount) 的自定义配置\n if (!textureLoaderRegistry.has('ktx2')) {\n registerKTX2Loader(this.workerCount);\n }\n }\n\n /**\n * 初始化 Khronos Transcoder\n */\n private async initKhronosTranscoder (): Promise<void> {\n if (this.khronosTranscoder) {\n return;\n }\n\n try {\n const transcoder = new KhronosTranscoder(this.workerCount, KTX2TargetFormat.ASTC);\n\n await transcoder.init();\n this.khronosTranscoder = transcoder;\n } catch (error) {\n console.error('Failed to initialize KhronosTranscoder:', error);\n this.khronosTranscoder = null;\n this.khronosInitPromise = undefined;\n throw error;\n }\n }\n\n /**\n * 确保 Khronos Transcoder 已初始化\n */\n private async ensureKhronosTranscoder (): Promise<KhronosTranscoder> {\n if (this.khronosTranscoder) {\n return this.khronosTranscoder;\n }\n\n if (!this.khronosInitPromise) {\n this.khronosInitPromise = this.initKhronosTranscoder();\n }\n\n await this.khronosInitPromise;\n\n if (!this.khronosTranscoder) {\n throw new Error('KhronosTranscoder initialization failed');\n }\n\n return this.khronosTranscoder;\n }\n\n /**\n * 从 ArrayBuffer 加载 KTX2 纹理并返回压缩纹理源选项\n */\n async loadFromBuffer (arrBuffer: ArrayBuffer) {\n const buffer = new Uint8Array(arrBuffer);\n const { ktx2Container, result, hasFullMipmapChain } = await this.parseBuffer(buffer);\n const textureOptions = this.createTextureByBuffer(ktx2Container, result, hasFullMipmapChain);\n\n // 转码完成后释放原始 KTX2 数据\n ktx2Container.clear();\n\n return textureOptions;\n }\n\n /**\n * 从 URL 加载 KTX2 纹理并返回压缩纹理源选项\n */\n async loadFromURL (url: string) {\n const buffer = new Uint8Array(await loadBinary(url));\n const { ktx2Container, result, hasFullMipmapChain } = await this.parseBuffer(buffer);\n const textureOptions = this.createTextureByBuffer(ktx2Container, result, hasFullMipmapChain);\n\n // 转码完成后释放原始 KTX2 数据\n ktx2Container.clear();\n\n return textureOptions;\n }\n\n /**\n * @internal\n * 解析并转码 KTX2 文件 - 专用于 UASTC 转 ASTC\n */\n private async parseBuffer (buffer: Uint8Array) {\n const ktx2Container = new KTX2Container(buffer);\n\n // 验证格式支持\n if (!ktx2Container.isUASTC) {\n throw new Error('Unsupported KTX2: only UASTC format is supported');\n }\n\n // 提前判断需要转码的 level 数量,避免转码后丢弃多余结果\n const { pixelWidth, pixelHeight } = ktx2Container;\n const maxDimension = Math.max(pixelWidth, pixelHeight);\n const availableLevelCount = ktx2Container.levels.length;\n const fullChainCount = maxDimension > 0 ? Math.floor(Math.log2(maxDimension)) + 1 : 1;\n const hasFullMipmapChain = availableLevelCount > 1 && availableLevelCount >= fullChainCount;\n const neededLevelCount = hasFullMipmapChain ? availableLevelCount : 1;\n // 前置在gpucapability已经检测过可用\n const transcoder = await this.ensureKhronosTranscoder();\n const result = await transcoder.transcode(ktx2Container, neededLevelCount);\n\n return {\n ktx2Container,\n result,\n hasFullMipmapChain,\n };\n }\n\n /**\n * @internal\n * 根据转码结果创建引擎所需的压缩纹理源选项\n * @param hasFullMipmapChain - 是否包含完整 mipmap 链(由 parseBuffer 提前判断)\n */\n private createTextureByBuffer (\n ktx2Container: KTX2Container,\n transcodeResult: TranscodeResult,\n hasFullMipmapChain: boolean,\n ): Texture2DSourceOptionsCompressed {\n const { pixelWidth, pixelHeight, faceCount } = ktx2Container;\n const { internalFormat, format, type } = this.getASTC4x4TextureDetail();\n\n if (Math.max(pixelWidth, pixelHeight) === 0) {\n throw new Error('Invalid KTX2 texture: both width and height are zero');\n }\n\n const target = faceCount === 6 ? glContext.TEXTURE_CUBE_MAP : glContext.TEXTURE_2D;\n const faces = transcodeResult.faces;\n // 转码时已按 neededLevelCount 截断,直接使用全部转码结果\n const levelCount = hasFullMipmapChain ? (faces[0]?.length ?? 0) : 1;\n const mipmaps: TextureDataType[] = [];\n\n for (let level = 0; level < levelCount; level++) {\n for (let face = 0; face < faceCount; face++) {\n const src = faces[face][level];\n\n mipmaps.push({\n data: src.data,\n width: src.width,\n height: src.height,\n });\n }\n }\n\n return {\n sourceType: TextureSourceType.compressed,\n target,\n internalFormat,\n format,\n type,\n mipmaps,\n };\n }\n\n /**\n * @internal\n * 获取 ASTC 4x4 的 WebGL 格式信息\n */\n private getASTC4x4TextureDetail () {\n const COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93b0;\n\n return {\n internalFormat: COMPRESSED_RGBA_ASTC_4x4_KHR,\n format: 0,\n type: 0,\n };\n }\n\n /**\n * 销毁加载器,释放资源\n */\n dispose (): void {\n this.khronosTranscoder?.destroy();\n this.khronosTranscoder = null;\n this.khronosInitPromise = undefined;\n }\n}\n\n/**\n * 注册 KTX2 加载器到全局注册表\n * @param workerCount - 大于 0 时使用 WebWorker,默认使用主线程\n */\nexport function registerKTX2Loader (workerCount = 0) {\n textureLoaderRegistry.register('ktx2', () => {\n return new KTX2Loader(workerCount);\n });\n}\n\n/**\n * 注销 KTX2 加载器\n */\nexport function unregisterKTX2Loader () {\n textureLoaderRegistry.unregister('ktx2');\n}\n","import * as EFFECTS from '@galacean/effects';\nimport { logger, registerPlugin } from '@galacean/effects';\nimport { KTX2Loader } from './ktx2-loader';\n\nexport * from './ktx2-loader';\n\n/**\n * 插件版本号\n */\nexport const version = __VERSION__;\n\nregisterPlugin('ktx2', KTX2Loader);\n\nlogger.info(`Plugin ktx2 version: ${version}.`);\n\nif (version !== EFFECTS.version) {\n console.error(\n '注意:请统一 KTX2 插件与 Player 版本,不统一的版本混用会有不可预知的后果!',\n '\\nAttention: Please ensure the KTX2 plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!'\n );\n}"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_async_to_generator","fn","self","args","arguments","apply","err","undefined","_set_prototype_of","o","p","Object","setPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","_is_native_reflect_construct","result","Boolean","valueOf","call","Reflect","construct","_","_construct","Parent","Class","a","push","Constructor","Function","bind","instance","_get_prototype_of","getPrototypeOf","_is_native_function","toString","indexOf","_wrap_native_super","_cache","Map","has","get","set","Wrapper","enumerable","__generator","thisArg","body","label","sent","t","trys","ops","f","y","g","Iterator","next","verb","Symbol","iterator","n","v","step","op","pop","length","e","SuppressedError","suppressed","message","Error","name","KTX2TargetFormat","TextureFormat","_defineProperties","target","props","i","descriptor","defineProperty","_create_class","protoProps","staticProps","_array_like_to_array","arr","len","arr2","Array","_unsupported_iterable_to_array","minLen","slice","from","test","_create_for_of_iterator_helper_loose","allowArrayLike","it","isArray","WorkerPool","workerCreator","limitedCount","taskQueue","workerStatus","initPromises","destroyed","workerItems","prepareWorker","count","promises","ensureWorker","all","workerId","initWorker","postMessage","getIdleWorkerId","workerItem","worker","catch","delete","terminate","onMessage","onError","event","nextTask","addEventListener","msg","data","taskItem","shift","destroy","removeEventListener","clear","TextureTranscoder","workerLimitCount","init","initPromise","initTranscodeWorkerPool","transcodeWorkerPool","createTranscodePool","workerURL","transcoderWasm","cleanup","Worker","type","decodeText","array","TextDecoder","decode","s","il","String","fromCharCode","decodeURIComponent","encodeURIComponent","BufferReader","byteOffset","byteLength","littleEndian","dataView","DataView","buffer","pos","baseOffset","nextUint8","getUint8","nextUint16","getUint16","nextUint32","getUint32","nextInt32","getInt32","nextInt32Array","Int32Array","nextFloat32","getFloat32","nextFloat32Array","Float32Array","nextUint32Array","Uint32Array","nextUint8Array","Uint8Array","nextUint64","left","right","nextStr","strByteLength","uint8Array","skip","bytes","scan","maxByteLength","term","position","offset","DFDTransferFunction","ColorModel","SupercompressionScheme","KTX2Container","vkFormat","typeSize","pixelWidth","pixelHeight","pixelDepth","layerCount","faceCount","supercompressionScheme","levels","keyValue","globalData","parse","level","levelData","KTX2_IDENTIFIER","every","headerBufferReader","levelCount","Math","max","dfdByteOffset","dfdByteLength","kvdByteOffset","kvdByteLength","sgdByteOffset","sgdByteLength","ktxLevels","levelByteLength","levelReader","uncompressedByteLength","dfdReader","dfd","vendorId","descriptorType","versionNumber","descriptorBlockSize","colorModel","colorPrimaries","transferFunction","flags","texelBlockDimension","bytesPlane","samples","dataFormatDescriptor","sampleStart","sampleWords","numSamples","sample","bitOffset","bitLength","channelType","samplePosition","sampleLower","Infinity","sampleUpper","kvdReader","keyValueByteLength","keyData","valueData","decodedValue","trimmedValue","charCodeAt","kvPadding","sgdReader","endpointCount","selectorCount","endpointsByteLength","selectorsByteLength","tablesByteLength","extendedByteLength","imageDescs","imageFlags","rgbSliceByteOffset","rgbSliceByteLength","alphaSliceByteOffset","alphaSliceByteLength","endpointsByteOffset","selectorsByteOffset","tablesByteOffset","extendedByteOffset","endpointsData","selectorsData","tablesData","extendedData","isSRGB","isUASTC","isNotBasis","TranscodeWorkerCode","wasmPromise","ZSTDDecoder","heap","importObject","env","emscripten_notify_memory_growth","exports","memory","zstddecWasmModule","WebAssembly","instantiate","uncompressedSize","compressedSize","compressedPtr","malloc","Number","ZSTD_findDecompressedSize","uncompressedPtr","actualSize","ZSTD_decompress","free","dec","transcodeASTC","wasmTranscoder","compressedData","width","height","nBlocks","texMemoryPages","delta","grow","textureView","transcode","initTranscoder","transcoderWasmModule","Memory","initial","moduleWrapper","zstdDecoder","needZstd","decodedLevelCache","promise","faceIndex","mipmapCount","decodedData","levelHeight","levelWidth","levelBuffer","decoded","faceByteLength","originByteOffset","decodedBuffer","window","onmessage","getWasmPromise","KhronosMainThreadTranscoder","context","uastcAstcWasm","wasmModule","KhronosTranscoder","mainThreadTranscoder","workerEntryCode","URL","createObjectURL","Blob","ktx2Container","neededLevelCount","availableLevelCount","encodedData","mipmapData","mipmapIndex","originBuffer","originOffset","originByteLength","faces","postMessageData","Zstd","floor","zstddecWasm","format","hasAlpha","revokeObjectURL","KTX2Loader","workerCount","khronosTranscoder","onAssetsLoadStart","_scene","_options","textureLoaderRegistry","registerKTX2Loader","initKhronosTranscoder","transcoder","ASTC","console","khronosInitPromise","ensureKhronosTranscoder","loadFromBuffer","arrBuffer","hasFullMipmapChain","textureOptions","parseBuffer","createTextureByBuffer","loadFromURL","url","loadBinary","maxDimension","fullChainCount","log2","transcodeResult","getASTC4x4TextureDetail","internalFormat","glContext","TEXTURE_CUBE_MAP","TEXTURE_2D","mipmaps","face","src","sourceType","TextureSourceType","compressed","COMPRESSED_RGBA_ASTC_4x4_KHR","dispose","Plugin","register","unregisterKTX2Loader","unregister","version","registerPlugin","logger","EFFECTS"],"mappings":"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"}